The following ioctl(2)s are deprecated since 2001. I'd like to remove our kernel support for them: - SIOCSIFPHYADDR - SIOCSIFPHYADDR_IN6 - SIOCGIFPSRCADDR - SIOCGIFPSRCADDR_IN6 - SIOCGIFPDSTADDR - SIOCGIFPDSTADDR_IN6
ok? Index: net/if.c =================================================================== RCS file: /cvs/src/sys/net/if.c,v retrieving revision 1.517 diff -u -p -r1.517 if.c --- net/if.c 16 Oct 2017 08:19:15 -0000 1.517 +++ net/if.c 16 Oct 2017 10:30:05 -0000 @@ -2008,11 +2008,7 @@ ifioctl(struct socket *so, u_long cmd, c rtm_ifchg(ifp); break; - case SIOCSIFPHYADDR: case SIOCDIFPHYADDR: -#ifdef INET6 - case SIOCSIFPHYADDR_IN6: -#endif case SIOCSLIFPHYADDR: case SIOCSLIFPHYRTABLE: case SIOCSLIFPHYTTL: @@ -2026,8 +2022,6 @@ ifioctl(struct socket *so, u_long cmd, c if ((error = suser(p, 0)) != 0) return (error); /* FALLTHROUGH */ - case SIOCGIFPSRCADDR: - case SIOCGIFPDSTADDR: case SIOCGLIFPHYADDR: case SIOCGLIFPHYRTABLE: case SIOCGLIFPHYTTL: Index: net/if_gif.c =================================================================== RCS file: /cvs/src/sys/net/if_gif.c,v retrieving revision 1.99 diff -u -p -r1.99 if_gif.c --- net/if_gif.c 11 Aug 2017 21:24:19 -0000 1.99 +++ net/if_gif.c 16 Oct 2017 10:30:00 -0000 @@ -335,33 +335,9 @@ gif_ioctl(struct ifnet *ifp, u_long cmd, case SIOCDELMULTI: break; - case SIOCSIFPHYADDR: -#ifdef INET6 - case SIOCSIFPHYADDR_IN6: -#endif /* INET6 */ case SIOCSLIFPHYADDR: - switch (cmd) { - case SIOCSIFPHYADDR: - src = sintosa( - &(((struct in_aliasreq *)data)->ifra_addr)); - dst = sintosa( - &(((struct in_aliasreq *)data)->ifra_dstaddr)); - break; -#ifdef INET6 - case SIOCSIFPHYADDR_IN6: - src = sin6tosa( - &(((struct in6_aliasreq *)data)->ifra_addr)); - dst = sin6tosa( - &(((struct in6_aliasreq *)data)->ifra_dstaddr)); - break; -#endif - case SIOCSLIFPHYADDR: - src = sstosa(&(((struct if_laddrreq *)data)->addr)); - dst = sstosa(&(((struct if_laddrreq *)data)->dstaddr)); - break; - default: - return (EINVAL); - } + src = sstosa(&(((struct if_laddrreq *)data)->addr)); + dst = sstosa(&(((struct if_laddrreq *)data)->dstaddr)); /* sa_family must be equal */ if (src->sa_family != dst->sa_family) @@ -397,23 +373,6 @@ gif_ioctl(struct ifnet *ifp, u_long cmd, return (EAFNOSUPPORT); } - /* check sa_family looks sane for the cmd */ - switch (cmd) { - case SIOCSIFPHYADDR: - if (src->sa_family == AF_INET) - break; - return (EAFNOSUPPORT); -#ifdef INET6 - case SIOCSIFPHYADDR_IN6: - if (src->sa_family == AF_INET6) - break; - return (EAFNOSUPPORT); -#endif /* INET6 */ - case SIOCSLIFPHYADDR: - /* checks done in the above */ - break; - } - LIST_FOREACH(sc2, &gif_softc_list, gif_list) { if (sc2 == sc) continue; @@ -470,7 +429,6 @@ gif_ioctl(struct ifnet *ifp, u_long cmd, error = 0; break; -#ifdef SIOCDIFPHYADDR case SIOCDIFPHYADDR: if (sc->gif_psrc) { free((caddr_t)sc->gif_psrc, M_IFADDR, 0); @@ -481,66 +439,6 @@ gif_ioctl(struct ifnet *ifp, u_long cmd, sc->gif_pdst = NULL; } /* change the IFF_{UP, RUNNING} flag as well? */ - break; -#endif - - case SIOCGIFPSRCADDR: -#ifdef INET6 - case SIOCGIFPSRCADDR_IN6: -#endif /* INET6 */ - if (sc->gif_psrc == NULL) { - error = EADDRNOTAVAIL; - goto bad; - } - src = sc->gif_psrc; - switch (cmd) { - case SIOCGIFPSRCADDR: - dst = &ifr->ifr_addr; - size = sizeof(ifr->ifr_addr); - break; -#ifdef INET6 - case SIOCGIFPSRCADDR_IN6: - dst = sin6tosa( - &(((struct in6_ifreq *)data)->ifr_addr)); - size = sizeof(((struct in6_ifreq *)data)->ifr_addr); - break; -#endif /* INET6 */ - default: - error = EADDRNOTAVAIL; - goto bad; - } - if (src->sa_len > size) - return (EINVAL); - bcopy((caddr_t)src, (caddr_t)dst, src->sa_len); - break; - - case SIOCGIFPDSTADDR: -#ifdef INET6 - case SIOCGIFPDSTADDR_IN6: -#endif /* INET6 */ - if (sc->gif_pdst == NULL) { - error = EADDRNOTAVAIL; - goto bad; - } - src = sc->gif_pdst; - switch (cmd) { - case SIOCGIFPDSTADDR: - dst = &ifr->ifr_addr; - size = sizeof(ifr->ifr_addr); - break; -#ifdef INET6 - case SIOCGIFPDSTADDR_IN6: - dst = sin6tosa(&(((struct in6_ifreq *)data)->ifr_addr)); - size = sizeof(((struct in6_ifreq *)data)->ifr_addr); - break; -#endif /* INET6 */ - default: - error = EADDRNOTAVAIL; - goto bad; - } - if (src->sa_len > size) - return (EINVAL); - bcopy((caddr_t)src, (caddr_t)dst, src->sa_len); break; case SIOCGLIFPHYADDR: Index: netinet6/in6.c =================================================================== RCS file: /cvs/src/sys/netinet6/in6.c,v retrieving revision 1.211 diff -u -p -r1.211 in6.c --- netinet6/in6.c 15 Aug 2017 06:08:52 -0000 1.211 +++ netinet6/in6.c 16 Oct 2017 10:30:08 -0000 @@ -250,15 +250,12 @@ in6_ioctl(u_long cmd, caddr_t data, stru */ switch (cmd) { case SIOCAIFADDR_IN6: - case SIOCSIFPHYADDR_IN6: sa6 = &ifra->ifra_addr; break; case SIOCGIFADDR_IN6: case SIOCGIFDSTADDR_IN6: case SIOCGIFNETMASK_IN6: case SIOCDIFADDR_IN6: - case SIOCGIFPSRCADDR_IN6: - case SIOCGIFPDSTADDR_IN6: case SIOCGIFAFLAG_IN6: case SIOCSNDFLUSH_IN6: case SIOCSPFXFLUSH_IN6: