Re: [PATCH net-next v3] net/core: Allow live renaming when an interface is up

From: David Ahern
Date: Tue Nov 08 2022 - 10:30:31 EST


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>