No description
Find a file
Ariadne Conill 49dd8942f2 tests: add inheritance tests
we only need to test ifquery, as this is just a merge
operation.
2020-08-04 12:06:39 -06:00
.github/workflows implement a CI attempt 2020-07-19 06:03:08 -06:00
cmd ifupdown: only show granular locking errors in verbose mode 2020-07-29 03:18:12 -06:00
doc ifupdown: use fcntl advisory locks to serialize state changes (closes #8) 2020-07-29 03:01:49 -06:00
executor-scripts/linux executors: port @ncopa's bridge scripts to run as a native executor 2020-07-28 08:34:20 -06:00
libifupdown interface: properly sync parent-child state when inheriting 2020-08-04 12:01:06 -06:00
tests tests: add inheritance tests 2020-08-04 12:06:39 -06:00
.gitignore update gitignore 2020-07-24 07:48:50 -06:00
CODE_OF_CONDUCT.md add code of conduct 2020-07-18 04:51:25 -06:00
COPYING initial commit 2020-07-18 01:17:51 -06:00
Kyuafile tests: start working on testing capabilities 2020-07-18 19:46:32 -06:00
Makefile build: fix "ln: file exists" that pops up sometimes 2020-08-04 11:48:55 -06:00
README.md fix README formatting 2020-07-25 01:18:03 -06:00

ifupdown-ng

ifupdown-ng is a network device manager that is largely compatible with Debian ifupdown, BusyBox ifupdown and Cumulus Networks' ifupdown2.

Dependency Resolution

Dependency resolution example

ifupdown-ng uses a dependency resolver to determine interface bring-up order in a deterministic way. To use this feature, you must declare relationships between interfaces with the requires keyword. This keeps the implementation efficient. For convenience, the requires keyword is exported to executors as the IF_REQUIRES environment variable.

For compatibility with some legacy ifupdown executors, we also provide the requires keyword under other environment variables in some cases.

Caveats

  • ifupdown2 python plugins are not supported at this time. An executor could be written to handle them.

  • ifupdown-ng retains compatibility with /etc/network/if-X.d scripts, but will prefer using executors in /usr/libexec/ifupdown-ng where appropriate.

Building

On musl systems, simply do make and make install to build and install.

On glibc systems, you must additionally define LIBBSD_CFLAGS and LIBBSD_LIBS:

export LIBBSD_CFLAGS=$(pkg-config --cflags libbsd-overlay)
export LIBBSD_LIBS=$(pkg-config --libs libbsd-overlay)
make
make install

To run the tests, do make check.

To build the documentation, do make docs and make install_docs. Building the documentation requires scdoc (apk add scdoc).