• Andy Ren's avatar
    net/core: Allow live renaming when an interface is up · bd039b5e
    Andy Ren authored
    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@getcruise.com/Signed-off-by: default avatarAndy Ren <andy.ren@getcruise.com>
    Reviewed-by: default avatarIdo Schimmel <idosch@nvidia.com>
    Reviewed-by: default avatarDavid Ahern <dsahern@kernel.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    bd039b5e
failover.c 7.43 KB