From 812739685c1b08a8bd0ba23e608ab69c372df1cc Mon Sep 17 00:00:00 2001 From: jhb Date: Mon, 23 Aug 2010 20:53:01 +0000 Subject: [PATCH] MFC 210936,210946: Ethernet vlan(4) interfaces have valid Ethernet link layer addresses but use a different interface type (IFT_L2VLAN vs IFT_ETHER). Treat IFT_L2VLAN interfaces like IFT_ETHER interfaces when handling link layer addresses. git-svn-id: svn://svn.freebsd.org/base/stable/8@211719 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- contrib/bsnmp/snmp_mibII/mibII.c | 1 + sbin/ifconfig/af_link.c | 4 +++- usr.sbin/ndp/ndp.c | 1 + usr.sbin/ppp/ipv6cp.c | 1 + 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/contrib/bsnmp/snmp_mibII/mibII.c b/contrib/bsnmp/snmp_mibII/mibII.c index 871469518..9258a5d40 100644 --- a/contrib/bsnmp/snmp_mibII/mibII.c +++ b/contrib/bsnmp/snmp_mibII/mibII.c @@ -843,6 +843,7 @@ check_llbcast(struct mibif *ifp) case IFT_ETHER: case IFT_FDDI: case IFT_ISO88025: + case IFT_L2VLAN: if (mib_find_rcvaddr(ifp->index, ether_bcast, 6) == NULL && (rcv = mib_rcvaddr_create(ifp, ether_bcast, 6)) != NULL) rcv->flags |= MIBRCVADDR_BCAST; diff --git a/sbin/ifconfig/af_link.c b/sbin/ifconfig/af_link.c index f77515e51..4a4b661fb 100644 --- a/sbin/ifconfig/af_link.c +++ b/sbin/ifconfig/af_link.c @@ -58,7 +58,9 @@ link_status(int s __unused, const struct ifaddrs *ifa) struct sockaddr_dl *sdl = (struct sockaddr_dl *) ifa->ifa_addr; if (sdl != NULL && sdl->sdl_alen > 0) { - if (sdl->sdl_type == IFT_ETHER && + if ((sdl->sdl_type == IFT_ETHER || + sdl->sdl_type == IFT_L2VLAN || + sdl->sdl_type == IFT_BRIDGE) && sdl->sdl_alen == ETHER_ADDR_LEN) printf("\tether %s\n", ether_ntoa((struct ether_addr *)LLADDR(sdl))); diff --git a/usr.sbin/ndp/ndp.c b/usr.sbin/ndp/ndp.c index 17e439ce5..96db6e4ed 100644 --- a/usr.sbin/ndp/ndp.c +++ b/usr.sbin/ndp/ndp.c @@ -437,6 +437,7 @@ set(argc, argv) switch (sdl->sdl_type) { case IFT_ETHER: case IFT_FDDI: case IFT_ISO88023: case IFT_ISO88024: case IFT_ISO88025: + case IFT_L2VLAN: case IFT_BRIDGE: goto overwrite; } } diff --git a/usr.sbin/ppp/ipv6cp.c b/usr.sbin/ppp/ipv6cp.c index 45571883f..72c3b9a86 100644 --- a/usr.sbin/ppp/ipv6cp.c +++ b/usr.sbin/ppp/ipv6cp.c @@ -148,6 +148,7 @@ SetInterfaceID(u_char *ifid, int userandom) switch(sdl->sdl_type) { case IFT_ETHER: case IFT_FDDI: + case IFT_L2VLAN: /* XXX need more cases? */ break; default: -- 2.45.0