Maximilian Wilhelm
9ee3a874d4
Add support for bonding / LAGs.
...
* Add a bond executor
* Add mappings from ifupdown1/2
* Add a detailed man page
* Remove legacy compatiblity glue for setups with 'requires' only
The current implementation has to work around the fact that member interfaces
will be already up then the bond is created. This is simply done by downing
them, adding them to the bundle and upping them again. This can possible be
done in a nicer way after revisiting the ordering of plugin execution (#12 ).
Closes #91
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-10-04 01:35:41 +02:00
Maximilian Wilhelm
3f67b2137d
Add VXLAN support
...
Add a vxlan exectutor as well as mappings from ifupdown2 parameters to ours.
Closes #75
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-10-02 02:20:10 +02:00
Maximilian Wilhelm
88f25e41c6
ifupdown: More specific error message.
...
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-09-25 02:28:05 +02:00
Maximilian Wilhelm
8dc2295006
ifupdown: Don't configure errornous interfaces.
...
Do not configure interfaces which have a configuration know to be broken.
Currently this only happens when using "inherit" to an non-existing iface
or to an iface and not a template, and having allow_any_iface_as_template
set to 0.
In those cases broken ifaces will not be configured unless ifup/ifdown is
invoked with --force.
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-09-25 02:15:16 +02:00
Ariadne Conill
fafce2f262
config-file: add missing default for implicit_template_conversion
2020-09-24 15:36:22 -06:00
Ariadne Conill
60d0ed34b8
interface: make interface-to-template conversion a config option (defaulting to enabled)
2020-09-23 19:07:52 -06:00
Ariadne Conill
f224c04804
interface: explicitly convert any inherited interface into a template
2020-09-23 11:47:13 -06:00
Ariadne Conill
580f054d7e
lifecycle: do not allow lif_lifecycle_run() on a template
2020-09-23 11:39:45 -06:00
Ariadne Conill
94f00b2fdc
interface-file: do not allow templates to be set as automatic
2020-09-23 11:38:29 -06:00
Ariadne Conill
5c5c316ebf
interface: add config setting to restrict inheritance to template interfaces
2020-09-23 11:34:35 -06:00
Ariadne Conill
a3987b46c8
interface-file: mark interface as template if template
keyword is used
2020-09-23 11:29:01 -06:00
Ariadne Conill
eb70e48ece
interface-file: add interface and template keywords as alias for iface
2020-09-23 11:26:28 -06:00
Ariadne Conill
f96cb273a0
interface-file: remap hardware-irq-coalesce- namespace to ethtool-coalesce- namespace
2020-09-21 09:56:48 -06:00
Ariadne Conill
2078f63e62
interface-file: remap debian hardware DMA ring terms to ethtool-dma namespace
2020-09-21 09:30:12 -06:00
Ariadne Conill
a8fcf5502f
add a missing translation
2020-09-19 09:20:14 -06:00
Ariadne Conill
27e11adac6
interface-file: remap properties used by both debian and ifupdown2 ethtool addons to the ethtool- namespace
2020-09-19 09:20:14 -06:00
Ariadne Conill
d814aa754f
config parser: explicitly skip over comments
2020-09-15 05:48:54 -06:00
Ariadne Conill
27a383cfa7
tokenizer: split out equals-as-delimiter tokenizer to its own function
2020-09-14 17:34:44 -06:00
Ariadne Conill
4b30dc4573
lifecycle: if lif_config.allow_addon_scripts is disabled, don't run addon scripts
2020-09-14 17:26:45 -06:00
Ariadne Conill
c1c9115e5d
tokenize: fix tokenization of equals
2020-09-14 17:24:44 -06:00
Ariadne Conill
5b27d8408c
config file: don't print warning if config file cannot be opened
2020-09-14 17:17:03 -06:00
Ariadne Conill
02d044c391
libifupdown: add config file loader
2020-09-14 17:15:18 -06:00
Ariadne Conill
fafa5ed7f9
libifupdown: add abstract config parser implementation
2020-09-14 17:11:59 -06:00
Ariadne Conill
537a56414a
tokenize: consider = to be equivalent to whitespace
2020-09-14 16:50:31 -06:00
Ariadne Conill
a6e022ad99
lifecycle: re-sort the interface collection by hand
2020-09-09 19:21:41 -06:00
Ariadne Conill
258e2e8a52
lifecycle: return the maximum tree depth for the dependency tree when counting depth
2020-09-09 18:12:13 -06:00
Ariadne Conill
8c8727e30f
lifecycle: drop redundant lif_lifecycle_query_dependents().
...
since we now precompile the full dependency tree, including depths,
we no longer need to re-query each leaf for dependency information.
2020-09-09 17:40:57 -06:00
Ariadne Conill
2569503afa
lifecycle: add lif_lifecycle_count_rdepends(), which calculates reverse dependency depth
2020-09-09 17:39:26 -06:00
Ariadne Conill
67dce280d7
interface: add lif_interface.rdepends_count
2020-09-09 17:13:11 -06:00
Ariadne Conill
e6c6f49143
lifecycle: remove redundant lif_state_upsert() call
...
this will be handled by lif_state_ref_if(), which also updates the
refcounting.
2020-09-09 16:01:04 -06:00
Ariadne Conill
5a0b53cd73
libifupdown: add interface being run for each executor
2020-09-09 15:50:16 -06:00
Ariadne Conill
00da19a381
lifecycle: add create/destroy phases
2020-09-09 14:36:07 -06:00
Ariadne Conill
6999a125c8
state: include limits.h
2020-09-09 13:27:34 -06:00
Ariadne Conill
c021b9420f
state: ensure rc is set to 1 if strtoul() fails
2020-09-09 11:56:19 -06:00
Ariadne Conill
3b178131bd
state: sync refcounts using mapped interface name, not physical interface name
2020-09-08 19:25:00 -06:00
Ariadne Conill
b514d31c26
ifupdown: implement --force
2020-09-08 19:17:00 -06:00
Ariadne Conill
f139bc2416
lifecycle: consider an interface eligible for takedown if it has only one dependent (itself)
2020-09-08 15:50:32 -06:00
Ariadne Conill
ca07082ff4
state: fix parsing interface names in ifstate files
2020-09-08 15:37:35 -06:00
Ariadne Conill
6603ff1000
lifecycle: use refcounting to defer interface teardown
2020-09-08 15:28:36 -06:00
Ariadne Conill
288976f015
libifupdown: introduce lif_state_ref_if() and lif_state_unref_if().
2020-09-08 15:05:02 -06:00
Ariadne Conill
865bf7cac6
state: plug memory leak when upserting
2020-09-08 15:02:39 -06:00
Ariadne Conill
8e4eb5d00c
state: migrate to lif_state_record from a bare dictionary containing the mapped ifs
2020-09-08 14:59:58 -06:00
Ariadne Conill
923b96fab8
state: use lif_next_token() when parsing ifstate files
2020-09-08 14:46:07 -06:00
Ariadne Conill
3b10494b40
change lif_interface.is_up to lif_interface.refcount
2020-09-08 14:41:25 -06:00
Ariadne Conill
ae1dc41c88
lifecycle: constify lif_interface access in several functions
2020-09-07 13:41:11 -06:00
Maximilian Wilhelm
64b24b02ed
Remove leading whitespaces before interface attribute values.
...
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-08-30 22:18:07 +02:00
Maximilian Wilhelm
570679c5bf
lifecycle: Make sure to return true when script dir doesn't exist.
...
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-08-27 12:10:12 +02:00
Maximilian Wilhelm
61ed18db2c
lifecycle: Check if script dir exist before executing run-parts.
...
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-08-27 01:15:51 +02:00
Ariadne Conill
4d64176ea3
execute: note the phase each executor is being invoked in
2020-08-26 02:06:36 -06:00
Ariadne Conill
aefaaa7457
lifecycle: only print skipping interface message if verbose
2020-08-24 11:33:56 -06:00