On Mon, Oct 16, 2017 at 12:35:35PM +0200, Martin Pieuchot wrote:
> 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
grep /usr/src found them also in etherip(4) and gif(4). Please remove.
share/man/man4/etherip.4:.Dv SIOCSIFPHYADDR
share/man/man4/gif.4:.Dv SIOCSIFPHYADDR
> ok?
OK bluhm@
> 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: