On 11/7/22 10:42 AM, Andy Ren wrote: > Allow a network interface to be renamed when the interface > is up. > > As described in the netconsole documentation [1], when netconsole is > used as a built-in, it will bring up the specified interface as soon as > possible. As a result, user space will not be able to rename the > interface since the kernel disallows renaming of interfaces that are > administratively up unless the 'IFF_LIVE_RENAME_OK' private flag was set > by the kernel. > > The original solution [2] to this problem was to add a new parameter to > the netconsole configuration parameters that allows renaming of > the interface used by netconsole while it is administratively up. > However, during the discussion that followed, it became apparent that we > have no reason to keep the current restriction and instead we should > allow user space to rename interfaces regardless of their administrative > state: > > 1. The restriction was put in place over 20 years ago when renaming was > only possible via IOCTL and before rtnetlink started notifying user > space about such changes like it does today. > > 2. The 'IFF_LIVE_RENAME_OK' flag was added over 3 years ago in version > 5.2 and no regressions were reported. > > 3. In-kernel listeners to 'NETDEV_CHANGENAME' do not seem to care about > the administrative state of interface. > > Therefore, allow user space to rename running interfaces by removing the > restriction and the associated 'IFF_LIVE_RENAME_OK' flag. Help in > possible triage by emitting a message to the kernel log that an > interface was renamed while UP. > > [1] https://www.kernel.org/doc/Documentation/networking/netconsole.rst > [2] https://lore.kernel.org/netdev/20221102002420.2613004-1-andy.ren@xxxxxxxxxxxxx/ > > Signed-off-by: Andy Ren <andy.ren@xxxxxxxxxxxxx> > --- > > Notes: > Changes from v1->v2 > - Added placeholder comment in place of removed IFF_LIVE_RENAME_OK flag > - Added extra logging hints to indicate whether a network interface was > renamed while UP > > Changes from v2->v3 > - Patch description changes > > include/linux/netdevice.h | 4 +--- > net/core/dev.c | 19 ++----------------- > net/core/failover.c | 6 +++--- > 3 files changed, 6 insertions(+), 23 deletions(-) > Reviewed-by: David Ahern <dsahern@xxxxxxxxxx>