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
Ariadne Conill
3997b6a952
Merge pull request #38 from ifupdown-ng/bugfix/vlan-complex
...
vlan and assorted fixes
2020-08-24 11:14:45 -06:00
Ariadne Conill
de20e5f8a9
lifecycle: handle executors in reverse order when taking an interface down
2020-08-24 11:04:48 -06:00
Ariadne Conill
dfb979d00d
list: add LIF_LIST_FOREACH_REVERSE()
2020-08-24 11:03:18 -06:00
Ariadne Conill
aba4b18862
lifecycle: add some helpful debug
2020-08-24 10:36:17 -06:00
Ariadne Conill
68021bc652
Merge pull request #35 from ifupdown-ng/feature/bsearch-parsing
...
interface config parser rewrite
2020-08-24 04:41:06 -06:00
Ariadne Conill
1384b38c78
interface: use link executor on vlans too
2020-08-24 03:06:32 -06:00
Ariadne Conill
6d15f21073
interface: handle is_bridge and is_bond hacks in a single place
2020-08-20 04:07:51 -06:00
Ariadne Conill
aba140a977
interface-file: use bsearch to find parser functions
2020-08-20 04:04:34 -06:00
Ariadne Conill
4a11d4fdd8
interface-file: break out source keyword handling
2020-08-20 03:46:31 -06:00
Ariadne Conill
df9c0284b1
interface-file: let commands initialize the interface collection themselves
2020-08-20 03:45:56 -06:00
Ariadne Conill
b57aba1a97
interface-file: split out auto keyword handling
2020-08-20 03:41:07 -06:00
Ariadne Conill
d36a522470
interface-file: add and use report_error()
2020-08-20 03:34:59 -06:00
Ariadne Conill
0928f07af5
interface-file: imply static executor use if gateway is specified
2020-08-20 03:20:07 -06:00
Ariadne Conill
e5c592f2c1
remove lif_interface.is_dhcp too
2020-08-20 03:14:57 -06:00
Ariadne Conill
846df3272f
remove lif_interface.is_static, no longer used
2020-08-20 03:10:26 -06:00
Ariadne Conill
d463d455da
simplify executor use
statements
2020-08-20 03:08:29 -06:00
Ariadne Conill
075352b631
interface-file: remap ttl to tunnel-ttl
2020-08-19 06:20:15 -06:00
Ariadne Conill
c24143982f
interface-file: map 'mode' to tunnel-mode
2020-08-19 06:19:05 -06:00
Ariadne Conill
9cc74b58c4
interface-file: remap legacy ifupdown & ifupdown2 tunnel parameters
2020-08-19 06:18:40 -06:00
Ariadne Conill
823544aace
interface-file: map ppp-provider
2020-08-19 06:03:48 -06:00
Ariadne Conill
cb03eb1ee9
interface-file: remap problematic ifupdown2 tokens to our equivalents
2020-08-19 02:10:54 -06:00
Ariadne Conill
eeb40fc689
libifupdown: move ARRAY_SIZE() declaration from multicall
2020-08-19 01:58:41 -06:00
Ariadne Conill
049af8b9fb
interface: if an interface name contains a period, treat it as a vlan device
2020-08-04 12:29:31 -06:00
Ariadne Conill
8615cf62ef
interface: properly sync parent-child state when inheriting
2020-08-04 12:01:06 -06:00
Ariadne Conill
df2519c1ec
dict: cleanups
2020-08-04 11:59:36 -06:00
Ariadne Conill
6728d2febe
interface: add inherit property when inheriting
2020-08-04 11:48:22 -06:00
Ariadne Conill
6c7fa2919d
interface-file: add support for inherit/inherits keyword
2020-08-04 11:46:56 -06:00
Ariadne Conill
3d5ca9050e
interface: add lif_interface_collection_inherit() (ref #2 )
2020-08-04 11:46:10 -06:00
Ariadne Conill
0eb25f1d62
interface file: simplify scanning iface directives for relevant keywords
2020-08-04 11:32:34 -06:00
Ariadne Conill
1964a99e5d
lifecycle: don't insert a requires entry if it would be empty
2020-07-31 17:12:13 -06:00
Ariadne Conill
0ca8e42ee6
refactoring locking, make it per-interface to avoid deadlocks
2020-07-29 03:10:55 -06:00
Ariadne Conill
edfb91c05f
lifecycle: separate environment building into build_environment()
2020-07-29 02:24:10 -06:00
Ariadne Conill
81d0ebc3e8
remove unnecessary strcmp wrapper, use typecasting instead
2020-07-28 17:57:51 -04:00
Ariadne Conill
cfbfa07e85
list: refactor lif_list_free_nodes() a bit
2020-07-28 17:53:48 -04:00
Ariadne Conill
58816712c6
Merge pull request #7 from BarbarossaTM/deduce-use
...
Deduce which addons to 'use' from parameters names
2020-07-28 17:50:32 -04:00
Maximilian Wilhelm
8045081024
list: Set pointer to free()ed list to NULL.
...
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-07-28 23:30:09 +02:00
Maximilian Wilhelm
9d958892ed
Free nodes of a lif_dict_find_all() result.
...
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-07-28 23:25:01 +02:00
Maximilian Wilhelm
73f3690432
Deduce which addons to 'use' from parameters names ( closes #6 )
...
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-07-28 22:44:49 +02:00
Maximilian Wilhelm
2420023b74
Add comparator wrapper and type cast values properly.
...
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-07-28 22:44:42 +02:00
Maximilian Wilhelm
f51c976b52
dict: Add lif_dict_add_once()
...
Add a function to add a key/value pair to the dict only if it doesn't exist
within the dict already.
As the dict is type agnostic this requires a comparator function to be given.
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-07-28 22:44:22 +02:00
Maximilian Wilhelm
b1dfa609f9
dict: Add lif_dict_find_all().
...
As a dict can have multiple values for any given key we add a function to
query all occurences of a given key and return them as a (new) list.
Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-07-28 22:41:41 +02:00
Ariadne Conill
21bcbe1017
execute: fix memory leak in lif_execute_fmt_with_result()
2020-07-28 13:53:21 -06:00
Ariadne Conill
fb5ff4eac2
lifecycle: add support for learning dependents from executors (ref #5 )
2020-07-28 13:46:25 -06:00
Ariadne Conill
3a75de9f8c
execute: add lif_execute_buf_with_result() to collect a result buffer
2020-07-28 13:01:15 -06:00
Ariadne Conill
08805f7de3
lifecycle: handle_commands_for_phase(): drop unused lifname variable
2020-07-26 03:39:58 -06:00
Ariadne Conill
be00984946
lifecycle: stop bringing up links, use link executor instead
2020-07-26 03:38:55 -06:00
Ariadne Conill
52d2bad3b8
interface: always attach "use link" executor
2020-07-26 03:29:16 -06:00
Ariadne Conill
12307aeb9d
lifecycle: remove static address configuration (replaced with static executor)
2020-07-26 03:20:35 -06:00
Ariadne Conill
cae16c5758
simplify loopback
2020-07-26 02:59:15 -06:00
Ariadne Conill
9e4e17707f
lifecycle: expose INTERFACES_FILE env var to executors
2020-07-26 02:50:01 -06:00
Ariadne Conill
987e6399de
libifupdown: interface: add support for automatic "use static" insertion
2020-07-26 02:32:00 -06:00
Ariadne Conill
690190a0b9
libifupdown: interface-file: do not process use directives unless in an interface context
2020-07-25 08:49:37 -06:00
Ariadne Conill
7eeb7c98b5
libifupdown: lifecycle: remove built-in dhcp implementation
2020-07-25 02:50:45 -06:00
Ariadne Conill
559bf2d1a4
libifupdown: execute: fix behavior of lif_file_is_executable()
2020-07-25 02:49:44 -06:00
Ariadne Conill
95a72b5663
libifupdown: lifecycle: implement native executor support
2020-07-25 02:19:15 -06:00