diff --git a/sbin/devd/devd.conf.5 b/sbin/devd/devd.conf.5 index 1a1071584f7..56e2df684f3 100644 --- a/sbin/devd/devd.conf.5 +++ b/sbin/devd/devd.conf.5 @@ -40,7 +40,7 @@ .\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS .\" SOFTWARE. .\" -.Dd October 12, 2020 +.Dd June 23, 2021 .Dt DEVD.CONF 5 .Os .Sh NAME @@ -467,6 +467,8 @@ Carrier status changed to DOWN. The network interface is attached to the system. .It Li IFNET Ta Em inet Ta Li DETACH Ta The network interface is detached from the system. +.It Li IFNET Ta Em inet Ta Li RENAME Ta +The network interface is renamed. .El .Pp .Bl -column "System" "Subsystem" "1234567" -compact diff --git a/sys/net/if.c b/sys/net/if.c index f615d82636b..cfa795904bc 100644 --- a/sys/net/if.c +++ b/sys/net/if.c @@ -2468,6 +2468,7 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, caddr_t data, struct thread *td) size_t descrlen; char *descrbuf, *odescrbuf; char new_name[IFNAMSIZ]; + char old_name[IFNAMSIZ], strbuf[IFNAMSIZ + 8]; struct ifaddr *ifa; struct sockaddr_dl *sdl; @@ -2673,6 +2674,7 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, caddr_t data, struct thread *td) if_printf(ifp, "changing name to '%s'\n", new_name); IF_ADDR_WLOCK(ifp); + strlcpy(old_name, ifp->if_xname, sizeof(old_name)); strlcpy(ifp->if_xname, new_name, sizeof(ifp->if_xname)); ifa = ifp->if_addr; sdl = (struct sockaddr_dl *)ifa->ifa_addr; @@ -2700,6 +2702,9 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, caddr_t data, struct thread *td) rt_ifannouncemsg(ifp, IFAN_ARRIVAL); ifp->if_flags &= ~IFF_RENAMING; + + snprintf(strbuf, sizeof(strbuf), "name=%s", new_name); + devctl_notify("IFNET", old_name, "RENAME", strbuf); break; #ifdef VIMAGE