A brand new version of NetworkManager, a standard Linux network management daemon, is likely to reach your favourite Linux distribution soon. As usual, the new version is 100% compatible with the older releases and most users can update their systems without spending much time caring about technicalities.

Nevertheless, we’ve spent significant effort improving things under the hood, addressed many bug reports and added new features. We are especially proud of the increased community contributions to NetworkManager.

Read on to learn what awaits you in the version 1.12!

Checkpoint/Restore

One of the lesser known goodies provided by NetworkManager is the checkpoint/restore functionality. It allows the user to roll back to a working network configuration if any changes render a machine inaccessible over a network.

The user needs to define a checkpoint first, then conduct the potentially dangerous changes and finally confirm that the changes didn’t disrupt connectivity. A checkpoint is essentially a snapshot of an active network configuration along with a timer. Should the changes cause a networking outage, the timer expires before the user can confirm success and the changes are reverted, hopefully restoring connectivity.

While the checkpoint/restore D-Bus API is available since version 1.4, its use was limited to tools that would use D-Bus directly. Starting with NetworkManager 1.12 the functionality is accompanied by a libnm API. If you’re developing a network configuration tool that could benefit from the functionality, take a look. Remember, libnm is capable of GObject introspection, and thus it’s fairly simple to use it from scripting languages, such as Python. Check out our examples!

Yet better Wi-Fi: FILS, WoWLAN and IWD

The process of associating a Wi-Fi client to an Access Point is traditionally a complicated process that easily takes multiple seconds to finish. Not a huge problem for stations that tend to stay within the AP’s range after the initial association, but a severe inconvenience for those that move around and roam from AP to AP. Even one second of connectivity loss is likely to be unpleasant for a video call participant. To lower the link setup times is the goal of FILS, a recent amendment to Wi-Fi specification.

Actually using FILS requires an AP equipment recent enough to support 802.11ai amendment, Linux kernel 4.9 and a git snapshot of wpa_supplicant newer than the 2.6 release. We’ll likely see FILS getting more widely adopted in near future, but changeset contributed by Masashi Honma ensures that NetworkManager 1.12 defaults to enabling it whenever possible.

Another Wi-Fi capability that gained support from NetworkManager in version 1.12 is Wake on WLAN (or simply WoWLAN). WoWLAN makes it possible to a device equipped with sufficiently capable Wi-Fi radio to be powered-on on receiving a specially crafted network packet. The WoWLAN support used to be available as an out-of-tree patch set for Ubuntu users, but thanks to Canonical developers Alfonso Sánchez-Beato and Simon Fels the functionality will be available to all NetworkManager users.

Announcement of IWD, a new Linux wireless daemon, generated considerable interest among the Linux users two years ago. Since then IWD has seen three stable versions and Andrew Zaborowski of Intel now contributed initial IWD support to NetworkManager. It hasn’t reached feature parity with good ol’ wpa_supplicant, which we’re defaulting to in the foreseeable future, but for most users it should do just well. If you feel adventurous, go ahead and try it out!

Colorful nmcli

NetworkManager’s command line utility, nmcli, has colored its output since version 1.2. A hardcoded color palette was used when the terminal was capable of displaying colors. In version 1.12 the color palette is configurable and, perhaps more importantly to some users, colors can be disabled. The configuration mechanism is the same as was originally introduced by util-linux and documented in terminal-colors.d(5) manual.

Diet

One of the greatest pleasures of software development is undoubtly the removal of unused and unloved parts. With version 1.12 we’ve said our last goodbye to the ifnet settings plugin.

Our years-long quest to remove libnm-glib, a client library that has been superseded by libnm since version 1.0 is nearing an end. We’ve been reluctant to get rid of the library without being absolutely certain we’re not leaving any software package behind unported. It seems that now, with Fedora and Debian being able to disable libnm-glib build from their packages, we’ve reached that point. libnm-glib is now disabled by default and we’re looking forward to the final removal in a future NetworkManager version.

We’ve also noticed that we’re using only a remarkably small part of libnl, the Netlink protocol library. Netlink serves as a management interface between the kernel networking subsystem and userspace. In version 1.12, we managed to handle all Netlink interfacing completely within NetworkManager itself, getting rid of an external library. This further reduces the dependency chain of NetworkManager, hopefully to the delight of those who use NetworkManager in slimmed down installations.

Learn More

A more comprehensive overview is in the distribution’s NEWS file.

The version 1.14 is likely to arrive sooner than usual. Stay tuned!

(Thanks to Števko, Ulrich, Francesco and Thomas for correcting mistakes.)