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:

Reply via email to