Ariadne Conill
0464118429
state: synchronize is_explicit from state records to parsed interface collections
2020-10-21 09:19:09 -06:00
Ariadne Conill
69999cd357
state: write and restore explicit flag from ifstate
2020-10-21 09:19:03 -06:00
Ariadne Conill
d92cfdd184
state: add lif_state_record::is_explicit
2020-10-21 09:18:58 -06:00
Ariadne Conill
045211514b
lifecycle: skip parent interfaces marked as explicitly configured when going down
...
these interfaces will be taken down by ifdown itself when appropriate
2020-10-21 09:18:54 -06:00
Ariadne Conill
0d28f94a47
interface: auto interfaces are always explicit
2020-10-21 09:18:30 -06:00
Ariadne Conill
0abafedb9a
interface: add lif_interface::is_explicit
2020-10-21 09:18:18 -06:00
Ariadne Conill
4aa2749737
add a config option to disable automatically setting the dhcp hostname
2020-10-14 05:21:15 -06:00
Ariadne Conill
a210cf6a66
interface: set a default hostname property
2020-10-14 05:11:12 -06:00
Ariadne Conill
aec7dad1c1
interface-file: add special handler for hostname keyword
2020-10-14 05:04:06 -06:00
Ariadne Conill
ee5e8b5702
interface-file: implement source-directory
2020-10-14 04:26:26 -06:00
Ariadne Conill
5035d2e160
interface-file: handle_generic(): drop unnecessary unused declaration for state
2020-10-14 04:12:59 -06:00
Ariadne Conill
8d4c7461af
interface-file: break loops using lif_interface_file_parse_state.loaded dictionary
2020-10-14 04:07:14 -06:00
Ariadne Conill
0df3e03b68
interface-file: fully encapsulate cur_iface into lif_interface_file_parse_state
2020-10-14 04:00:39 -06:00
Ariadne Conill
3bcfe91e84
interface-file: simplify state management a bit
2020-10-14 03:48:20 -06:00
Maximilian Wilhelm
de207a5950
lifecyle: Use lif_address_format_cidr() for IF_ADDRESSES
...
Previously IF_ADDRESSES would not contain a prefix length if the address
entry in the configuration did not was in CIDR format but had a netmask
set seperately. This commit fixes that behaviour and computes a CIDR
netmask if necessary.
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-10-14 01:47:49 +02:00
Maximilian Wilhelm
365461a6f6
interface: Consider the lif_interface as const in lif_address_format_cidr()
...
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-10-14 01:45:14 +02:00
Maximilian Wilhelm
a72d87df0b
dict: lif_dict_find() + lif_dict_find_all() do not touch the dict, so mark it const.
...
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-10-14 01:39:31 +02:00
Maximilian Wilhelm
02324bebd5
Move handling of address/netmask pairs from ifquery into library.
...
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-10-14 01:24:33 +02:00
Ariadne Conill
122a54377d
lifecycle: break dependency cycles when calculating the full dependency graph
2020-10-08 02:01:46 -06:00
Ariadne Conill
175f002b3e
lifecycle: add lif_interface.is_pending to break dependency cycles
2020-10-08 01:49:44 -06:00
Maximilian Wilhelm
5302bee850
lifecycle: Don't leak allocated memory.
...
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-10-06 04:50:02 +02:00
Maximilian Wilhelm
1a2298a759
lifecycle: Use snprintf() in favor of sprintf()
...
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-10-06 04:50:02 +02:00
Maximilian Wilhelm
99b0d67b8e
lifecycle: Remove debugging statement.
...
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-10-06 04:50:02 +02:00
Maximilian Wilhelm
44be0c0721
Add myself to copyright notice in version information.
...
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-10-06 04:43:12 +02:00
Maximilian Wilhelm
8a58c0ae6d
lifecycle: Expose all adresses and gateways via the environment.
...
Gather all IP addresses and gateways and expose them as IF_ADDRESSES and
IF_GATEWAYS environment variables to executors. This eliminates the need
to run ifquery from execuctors which would have to parse the config file
again on every run.
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-10-06 04:43:12 +02:00
Ariadne Conill
df6835bd62
Merge pull request #98 from BarbarossaTM/feature/pointopoint
...
static executor: Add support for IPv4 'pointopoint' addresses.
2020-10-05 22:04:58 -04:00
Maximilian Wilhelm
6dc43a2bb4
Let's use "point-to-point" and map "pointopoint" to it.
...
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-10-06 04:03:27 +02:00
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