Skip to content

[th/ifupdown-improvement] ifup: extend ifup/ifdown to be smarter about NetworkManager profiles

Thomas Haller requested to merge th/ifupdown-improvement into main

Now that NetworkManager on Fedora 33 and RHEL 9 no longer writes ifcfg-rh files by default ([1]), ifup/ifdown became less useful.

Possibly users shouldn't use it and it would be fine that new-style profiles (keyfile) no longer work with these commands. But this is deemed as too disruptive for users.

Note that our previous ifup/ifdown compat scripts only honored the argument to be part of the ifcfg filename. That was not what initscripts were doing, which called need_config() function that searched also the contents of the files. With this extension, ifup/ifdown gets smarter too, to better guess what the user might have wanted.

Extend the script by making it smarter, and to work with connection profile names.

With this extension we further solidify ifup/ifdown as part of NetworkManager command line API. That is problematic, because these tools pollute the $PATH, by not having a clear NM-specific name. Also, these scripts should only exist on Fedora/RHEL, which makes their usage non-portable to other distros. Also, other distros already ship different tools with name ifup/ifdown. Extending the use of these scripts is thus undesirable, as it furthers distro-specific commands.

Still, these arguments seem to not hold and users need to be "helped". As Fedora users cannot be expected to unlearn "ifup" today, there is no reason to assume they could in a few years. This likely means we will never get rid of these scripts.

Also, if we truly would make ifup/ifdown part of NetworkManager, then a better implementation would be that nmcli honors being called with these names. That is not done, because nmcli's implementation currently is not as nice to make that extension trivial (as it should be). It also would mean to embrace ifup/ifdown officially. A shell script works well enough as a hack.

[1] https://fedoraproject.org/wiki/Changes/NetworkManager_keyfile_instead_of_ifcfg_rh

https://bugzilla.redhat.com/show_bug.cgi?id=1954607

Merge request reports