git: 4fb3e0bb94ab - main - devctl: add RENAME devctl event for IFNET

Warner Losh imp at FreeBSD.org
Wed Jun 23 16:31:57 UTC 2021


The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=4fb3e0bb94abdd2d44b23937670a83876d11b97f

commit 4fb3e0bb94abdd2d44b23937670a83876d11b97f
Author:     Rozhuk Ivan <rozhuk.im at gmail.com>
AuthorDate: 2021-06-23 16:15:11 +0000
Commit:     Warner Losh <imp at FreeBSD.org>
CommitDate: 2021-06-23 16:20:58 +0000

    devctl: add RENAME devctl event for IFNET
    
    Add devd event on network iface rename.
    
    Reviewed by:            imp@,asomers@
    Sponsored by:           Netflix
    Differential Revision:  https://reviews.freebsd.org/D30839
---
 sbin/devd/devd.conf.5 | 4 +++-
 sys/net/if.c          | 5 +++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/sbin/devd/devd.conf.5 b/sbin/devd/devd.conf.5
index 1a1071584f70..56e2df684f32 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 f615d82636be..cfa795904bc9 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


More information about the dev-commits-src-all mailing list