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: