No description
Find a file
Zola e978d1a42c Fix a bug in the wifi executor script
When stopping wpa_supplicant, the code is supposed to check if a file named $PIDFILE exists and kill the process listed inside. Instead it was checking if a directory named $PIDFILE exists and because this was never the case, killing of the wpa_supplicant process would always silently fail.

This would, after a few invocations of the ifup command, leave the system with large number of running wpa_supplicant processes, all trying to take control of the same interface.
2021-11-25 22:44:19 -06:00
.github/workflows CI: install scdoc 2020-10-24 08:43:51 -06:00
cmd implement execution timeouts for executors 2021-09-19 13:05:12 -05:00
dist example config: document auto_executor_selection setting 2020-11-04 11:21:42 -07:00
doc vxlan: Document that vxlan-phsydev is required for multicast setups 2021-10-16 15:28:13 +02:00
executor-scripts Fix a bug in the wifi executor script 2021-11-25 22:44:19 -06:00
libifupdown vxlan: Add support for PTMP setups and rename options to vxlan-peer-{ip,group} 2021-10-16 15:27:30 +02:00
tests vxlan: Add support for PTMP setups and rename options to vxlan-peer-{ip,group} 2021-10-16 15:27:30 +02:00
.gitignore gitignore: Add ifprase 2021-03-21 02:37:12 +01:00
CODE_OF_CONDUCT.md add code of conduct 2020-07-18 04:51:25 -06:00
COPYING Update copyright notice 2021-09-01 19:21:21 +02:00
Kyuafile tests: start working on testing capabilities 2020-07-18 19:46:32 -06:00
Makefile Makefile: Make gcc be more pendantic and bail out on warnings 2021-09-12 18:27:41 +02:00
README.md kyua is available on Debian now 2021-08-08 12:14:20 -06:00

ifupdown-ng

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

For more information read the admin guide.

Dependency Resolution

Dependency resolution example

ifupdown-ng uses a dependency resolver to determine interface bring-up order in a deterministic way.

This is accomplished through a combination of manual hinting using the requires keyword and dependency learning using native executors.

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 install libbsd-dev or equivalent and additionally define LIBBSD_CFLAGS and LIBBSD_LIBS:

# instal packages
apt install build-essential libbsd0 libbsd-dev

# build ifupdown-ng
make LIBBSD_CFLAGS="$(pkg-config --cflags libbsd-overlay)" LIBBSD_LIBS="$(pkg-config --cflags --libs libbsd-overlay)"
make install

To run the tests, do make check. Running the checks requires kyua (apk add kyua / apt install kyua).

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

Discussion

Discuss ifupdown-ng on IRC: irc.oftc.net #ifupdown-ng