|2022-07-31||README.md: Update status||Sören Tempel|
|2022-07-09||Prefix verbose output with executor name||Sören Tempel|
|2022-07-09||Default to a 30s timeout value, instead of blocking indefinitely||Sören Tempel|
|2022-07-09||Add comment regarding root privileges||Sören Tempel|
|2022-06-28||Improve verbose debug output regarding timeout||Sören Tempel|
Clone the repository to access all 50 commits.
This software integrates ifupdown-ng with netlink link state detection via libmnl. I use this software myself and I am presently not aware of any bugs with the implemented functionality.
ifupdown-ng is a re-implementation of the
ifdown commands provided by Debian and BusyBox.
These commands configure network interfaces according to the
/etc/network/interfaces configuration file.
Interface configuration is split into multiple phases.
For each phase, different executors are run.
For example, a DHCP client may be run as an executor in the
Unfortunately, ifupdown-ng doesn’t check the interface link state before running executors of the
As such, executors which require the link to be up (e.g. the DHCP executor) usually retry requests in a configured interval until the requests succeed.
As it turns out, choosing an appropriate interval is difficult.
Inspired by bncm-waitif, this repository provides an executor which blocks until the interface state is changed to running by the Linux netlink subsystem.
In order to build this software, install the following dependencies:
Afterwards, run the following commands:
$ make # make install
Refer to the
GNUmakefile regarding available configuration variables.
In order to use this executor, add a
use waitif declaration to your interface configuration in
iface wlan0 use waitif use dhcp
In this case, the
waitif executor will block in the
up phase until the interface switched to the
dhcp executor is run and it will hopefully be able to retrieve a lease immediately.
By default, the
waitif executor will wait for up to 30 seconds for the interface to come up.
If the interface doesn’t change to
IFF_RUNNING within this timespan, then the
waitif executor exits with
It is possible to configure a different timeout value using
waitif-timeout, for example:
iface wlan0 waitif-timeout 10 use waitif use dhcp
waitif-timeout keyword specifies a timeout in seconds, the timeout can be set to zero to wait indefinitely.
ifupdown-ng currently does not stop executing executors of a given phase if one of them fails.
As such, if the
waitif up executor fails (e.g. due to a timeout) ifupdown-ng will still attempt to retrieve a DCHP lease.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.