Hi,

After converting the last user of ioctl(SIOCGDRLST_IN6) to sysctl,
I would like to remove dead kernel ioctl code.

Is it save to just delete this?

ok?

bluhm

Index: netinet6/in6.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/netinet6/in6.c,v
retrieving revision 1.116
diff -u -p -u -p -r1.116 in6.c
--- netinet6/in6.c      20 Jun 2013 12:03:40 -0000      1.116
+++ netinet6/in6.c      15 Aug 2013 15:06:06 -0000
@@ -361,10 +361,7 @@ in6_control(struct socket *so, u_long cm
                if (!privileged)
                        return (EPERM);
                /* FALLTHROUGH */
-       case OSIOCGIFINFO_IN6:
        case SIOCGIFINFO_IN6:
-       case SIOCGDRLST_IN6:
-       case SIOCGPRLST_IN6:
        case SIOCGNBRINFO_IN6:
                return (nd6_ioctl(cmd, data, ifp));
        }
Index: netinet6/in6_var.h
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/netinet6/in6_var.h,v
retrieving revision 1.40
diff -u -p -u -p -r1.40 in6_var.h
--- netinet6/in6_var.h  17 Jun 2013 18:02:24 -0000      1.40
+++ netinet6/in6_var.h  15 Aug 2013 15:03:46 -0000
@@ -400,11 +400,6 @@ struct     in6_rrenumreq {
 
 #define SIOCGIFAFLAG_IN6       _IOWR('i', 73, struct in6_ifreq)
 
-#define SIOCGDRLST_IN6         _IOWR('i', 74, struct in6_drlist)
-#define SIOCGPRLST_IN6         _IOWR('i', 75, struct in6_prlist)
-#ifdef _KERNEL
-#define OSIOCGIFINFO_IN6       _IOWR('i', 76, struct in6_ondireq)
-#endif
 #define SIOCGIFINFO_IN6                _IOWR('i', 108, struct in6_ndireq)
 #define SIOCSNDFLUSH_IN6       _IOWR('i', 77, struct in6_ifreq)
 #define SIOCGNBRINFO_IN6       _IOWR('i', 78, struct in6_nbrinfo)
Index: netinet6/nd6.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/netinet6/nd6.c,v
retrieving revision 1.99
diff -u -p -u -p -r1.99 nd6.c
--- netinet6/nd6.c      31 May 2013 15:04:24 -0000      1.99
+++ netinet6/nd6.c      15 Aug 2013 15:04:50 -0000
@@ -1238,111 +1238,13 @@ nd6_rtrequest(int req, struct rtentry *r
 int
 nd6_ioctl(u_long cmd, caddr_t data, struct ifnet *ifp)
 {
-       struct in6_drlist *drl = (struct in6_drlist *)data;
-       struct in6_oprlist *oprl = (struct in6_oprlist *)data;
        struct in6_ndireq *ndi = (struct in6_ndireq *)data;
        struct in6_nbrinfo *nbi = (struct in6_nbrinfo *)data;
-       struct nd_defrouter *dr;
-       struct nd_prefix *pr;
        struct rtentry *rt;
-       int i = 0, error = 0;
+       int error = 0;
        int s;
 
        switch (cmd) {
-       case SIOCGDRLST_IN6:
-               /*
-                * obsolete API, use sysctl under net.inet6.icmp6
-                */
-               bzero(drl, sizeof(*drl));
-               s = splsoftnet();
-               TAILQ_FOREACH(dr, &nd_defrouter, dr_entry) {
-                       if (i >= DRLSTSIZ)
-                               break;
-                       drl->defrouter[i].rtaddr = dr->rtaddr;
-                       if (IN6_IS_ADDR_LINKLOCAL(&drl->defrouter[i].rtaddr)) {
-                               /* XXX: need to this hack for KAME stack */
-                               drl->defrouter[i].rtaddr.s6_addr16[1] = 0;
-                       } else
-                               log(LOG_ERR,
-                                   "default router list contains a "
-                                   "non-linklocal address(%s)\n",
-                                   ip6_sprintf(&drl->defrouter[i].rtaddr));
-
-                       drl->defrouter[i].flags = dr->flags;
-                       drl->defrouter[i].rtlifetime = dr->rtlifetime;
-                       drl->defrouter[i].expire = dr->expire;
-                       drl->defrouter[i].if_index = dr->ifp->if_index;
-                       i++;
-               }
-               splx(s);
-               break;
-       case SIOCGPRLST_IN6:
-               /*
-                * obsolete API, use sysctl under net.inet6.icmp6
-                *
-                * XXX the structure in6_prlist was changed in backward-
-                * incompatible manner.  in6_oprlist is used for SIOCGPRLST_IN6,
-                * in6_prlist is used for nd6_sysctl() - fill_prlist().
-                */
-               /*
-                * XXX meaning of fields, especially "raflags", is very
-                * different between RA prefix list and RR/static prefix list.
-                * how about separating ioctls into two?
-                */
-               bzero(oprl, sizeof(*oprl));
-               s = splsoftnet();
-               LIST_FOREACH(pr, &nd_prefix, ndpr_entry) {
-                       struct nd_pfxrouter *pfr;
-                       int j;
-
-                       if (i >= PRLSTSIZ)
-                               break;
-                       oprl->prefix[i].prefix = pr->ndpr_prefix.sin6_addr;
-                       oprl->prefix[i].raflags = pr->ndpr_raf;
-                       oprl->prefix[i].prefixlen = pr->ndpr_plen;
-                       oprl->prefix[i].vltime = pr->ndpr_vltime;
-                       oprl->prefix[i].pltime = pr->ndpr_pltime;
-                       oprl->prefix[i].if_index = pr->ndpr_ifp->if_index;
-                       oprl->prefix[i].expire = pr->ndpr_expire;
-
-                       j = 0;
-                       LIST_FOREACH(pfr, &pr->ndpr_advrtrs, pfr_entry) {
-                               if (j < DRLSTSIZ) {
-#define RTRADDR oprl->prefix[i].advrtr[j]
-                                       RTRADDR = pfr->router->rtaddr;
-                                       if (IN6_IS_ADDR_LINKLOCAL(&RTRADDR)) {
-                                               /* XXX: hack for KAME */
-                                               RTRADDR.s6_addr16[1] = 0;
-                                       } else
-                                               log(LOG_ERR,
-                                                   "a router(%s) advertises "
-                                                   "a prefix with "
-                                                   "non-link local address\n",
-                                                   ip6_sprintf(&RTRADDR));
-#undef RTRADDR
-                               }
-                               j++;
-                       }
-                       oprl->prefix[i].advrtrs = j;
-                       oprl->prefix[i].origin = PR_ORIG_RA;
-
-                       i++;
-               }
-               splx(s);
-
-               break;
-       case OSIOCGIFINFO_IN6:
-               /* XXX: old ndp(8) assumes a positive value for linkmtu. */
-               bzero(&ndi->ndi, sizeof(ndi->ndi));
-               ndi->ndi.linkmtu = IN6_LINKMTU(ifp);
-               ndi->ndi.maxmtu = ND_IFINFO(ifp)->maxmtu;
-               ndi->ndi.basereachable = ND_IFINFO(ifp)->basereachable;
-               ndi->ndi.reachable = ND_IFINFO(ifp)->reachable;
-               ndi->ndi.retrans = ND_IFINFO(ifp)->retrans;
-               ndi->ndi.flags = ND_IFINFO(ifp)->flags;
-               ndi->ndi.recalctm = ND_IFINFO(ifp)->recalctm;
-               ndi->ndi.chlim = ND_IFINFO(ifp)->chlim;
-               break;
        case SIOCGIFINFO_IN6:
                ndi->ndi = *ND_IFINFO(ifp);
                break;
Index: netinet6/nd6.h
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/netinet6/nd6.h,v
retrieving revision 1.32
diff -u -p -u -p -r1.32 nd6.h
--- netinet6/nd6.h      11 Aug 2013 22:13:32 -0000      1.32
+++ netinet6/nd6.h      15 Aug 2013 14:27:52 -0000
@@ -113,19 +113,6 @@ struct in6_nbrinfo {
        int     state;          /* reachability state */
 };
 
-#define DRLSTSIZ 10
-#define PRLSTSIZ 10
-struct in6_drlist {
-       char ifname[IFNAMSIZ];
-       struct {
-               struct  in6_addr rtaddr;
-               time_t  expire;
-               u_short rtlifetime;
-               u_short if_index;
-               u_char  flags;
-       } defrouter[DRLSTSIZ];
-};
-
 struct in6_defrouter {
        struct  sockaddr_in6 rtaddr;
        time_t  expire;
@@ -134,40 +121,6 @@ struct     in6_defrouter {
        u_char  flags;
 };
 
-#ifdef _KERNEL
-struct in6_oprlist {
-       char ifname[IFNAMSIZ];
-       struct {
-               struct  in6_addr prefix;
-               struct  prf_ra raflags;
-               time_t  expire;
-               u_int32_t vltime;
-               u_int32_t pltime;
-               u_short if_index;
-               u_short advrtrs; /* number of advertisement routers */
-               u_char  prefixlen;
-               u_char  origin;
-               struct  in6_addr advrtr[DRLSTSIZ]; /* XXX: explicit limit */
-       } prefix[PRLSTSIZ];
-};
-#endif
-
-struct in6_prlist {
-       char ifname[IFNAMSIZ];
-       struct {
-               struct  in6_addr prefix;
-               struct  prf_ra raflags;
-               time_t  expire;
-               u_int32_t vltime;
-               u_int32_t pltime;
-               u_short if_index;
-               u_short advrtrs; /* number of advertisement routers */
-               u_char  prefixlen;
-               u_char  origin;
-               struct  in6_addr advrtr[DRLSTSIZ]; /* XXX: explicit limit */
-       } prefix[PRLSTSIZ];
-};
-
 struct in6_prefix {
        struct  sockaddr_in6 prefix;
        struct  prf_ra raflags;
@@ -182,23 +135,6 @@ struct in6_prefix {
        u_char  origin;
        /* struct sockaddr_in6 advrtr[] */
 };
-
-#ifdef _KERNEL
-struct in6_ondireq {
-       char ifname[IFNAMSIZ];
-       struct {
-               u_int32_t linkmtu;      /* LinkMTU */
-               u_int32_t maxmtu;       /* Upper bound of LinkMTU */
-               u_int32_t basereachable; /* BaseReachableTime */
-               u_int32_t reachable;    /* Reachable Time */
-               u_int32_t retrans;      /* Retrans Timer */
-               u_int32_t flags;        /* Flags */
-               int recalctm;           /* BaseReacable re-calculation timer */
-               u_int8_t chlim;         /* CurHopLimit */
-               u_int8_t receivedra;
-       } ndi;
-};
-#endif
 
 struct in6_ndireq {
        char ifname[IFNAMSIZ];

Reply via email to