In order to define a proper API for our routine table, I'd like to turn
the "struct rt_addrinfo" into a private type (ie: only used in route.c
and rtsock.c).
This type is used by a lost of code in our network stack to add or delete
a route but also in the various *rtrequest() functions. However in
these functions the argument is never used! So the diff below kills it.
ok?
Index: net/if.c
===================================================================
RCS file: /home/ncvs/src/sys/net/if.c,v
retrieving revision 1.262
diff -u -p -r1.262 if.c
--- net/if.c 20 Aug 2013 09:14:22 -0000 1.262
+++ net/if.c 27 Aug 2013 13:50:50 -0000
@@ -985,7 +985,7 @@ ifaof_ifpforaddr(struct sockaddr *addr,
* This should be moved to /sys/net/link.c eventually.
*/
void
-link_rtrequest(int cmd, struct rtentry *rt, struct rt_addrinfo *info)
+link_rtrequest(int cmd, struct rtentry *rt)
{
struct ifaddr *ifa;
struct sockaddr *dst;
@@ -999,7 +999,7 @@ link_rtrequest(int cmd, struct rtentry *
ifafree(rt->rt_ifa);
rt->rt_ifa = ifa;
if (ifa->ifa_rtrequest && ifa->ifa_rtrequest != link_rtrequest)
- ifa->ifa_rtrequest(cmd, rt, info);
+ ifa->ifa_rtrequest(cmd, rt);
}
}
Index: net/if.h
===================================================================
RCS file: /home/ncvs/src/sys/net/if.h,v
retrieving revision 1.144
diff -u -p -r1.144 if.h
--- net/if.h 20 Jun 2013 12:03:40 -0000 1.144
+++ net/if.h 27 Aug 2013 13:50:50 -0000
@@ -494,7 +494,7 @@ struct ifaddr {
struct ifnet *ifa_ifp; /* back-pointer to interface */
TAILQ_ENTRY(ifaddr) ifa_list; /* list of addresses for interface */
/* check or clean routes (+ or -)'d */
- void (*ifa_rtrequest)(int, struct rtentry *, struct rt_addrinfo *);
+ void (*ifa_rtrequest)(int, struct rtentry *);
u_int ifa_flags; /* mostly rt_flags for cloning */
u_int ifa_refcnt; /* count of references */
int ifa_metric; /* cost of going out this interface */
@@ -842,7 +842,7 @@ struct ifaddr *ifa_ifwithroute(int, stru
struct sockaddr *, u_int);
struct ifaddr *ifaof_ifpforaddr(struct sockaddr *, struct ifnet *);
void ifafree(struct ifaddr *);
-void link_rtrequest(int, struct rtentry *, struct rt_addrinfo *);
+void link_rtrequest(int, struct rtentry *);
void if_clone_attach(struct if_clone *);
void if_clone_detach(struct if_clone *);
@@ -858,7 +858,7 @@ int loioctl(struct ifnet *, u_long, cadd
void loopattach(int);
int looutput(struct ifnet *,
struct mbuf *, struct sockaddr *, struct rtentry *);
-void lortrequest(int, struct rtentry *, struct rt_addrinfo *);
+void lortrequest(int, struct rtentry *);
void ifa_add(struct ifnet *, struct ifaddr *);
void ifa_del(struct ifnet *, struct ifaddr *);
void ifa_update_broadaddr(struct ifnet *, struct ifaddr *,
Index: net/if_loop.c
===================================================================
RCS file: /home/ncvs/src/sys/net/if_loop.c,v
retrieving revision 1.49
diff -u -p -r1.49 if_loop.c
--- net/if_loop.c 28 Mar 2013 16:55:27 -0000 1.49
+++ net/if_loop.c 27 Aug 2013 13:50:50 -0000
@@ -373,7 +373,7 @@ lo_altqstart(struct ifnet *ifp)
/* ARGSUSED */
void
-lortrequest(int cmd, struct rtentry *rt, struct rt_addrinfo *info)
+lortrequest(int cmd, struct rtentry *rt)
{
if (rt)
rt->rt_rmx.rmx_mtu = LOMTU;
Index: net/route.c
===================================================================
RCS file: /home/ncvs/src/sys/net/route.c,v
retrieving revision 1.144
diff -u -p -r1.144 route.c
--- net/route.c 28 Mar 2013 23:10:05 -0000 1.144
+++ net/route.c 27 Aug 2013 13:50:50 -0000
@@ -781,7 +781,7 @@ rtrequest1(int req, struct rt_addrinfo *
rt->rt_flags &= ~RTF_UP;
if ((ifa = rt->rt_ifa) && ifa->ifa_rtrequest)
- ifa->ifa_rtrequest(RTM_DELETE, rt, info);
+ ifa->ifa_rtrequest(RTM_DELETE, rt);
rttrash++;
if (ret_nrt)
@@ -925,14 +925,13 @@ rtrequest1(int req, struct rt_addrinfo *
"was (%p)\n", ifa, (*ret_nrt)->rt_ifa);
if ((*ret_nrt)->rt_ifa->ifa_rtrequest)
(*ret_nrt)->rt_ifa->ifa_rtrequest(
- RTM_DELETE, *ret_nrt, NULL);
+ RTM_DELETE, *ret_nrt);
ifafree((*ret_nrt)->rt_ifa);
(*ret_nrt)->rt_ifa = ifa;
(*ret_nrt)->rt_ifp = ifa->ifa_ifp;
ifa->ifa_refcnt++;
if (ifa->ifa_rtrequest)
- ifa->ifa_rtrequest(RTM_ADD, *ret_nrt,
- NULL);
+ ifa->ifa_rtrequest(RTM_ADD, *ret_nrt);
}
/*
* Copy both metrics and a back pointer to the cloned
@@ -980,7 +979,7 @@ rtrequest1(int req, struct rt_addrinfo *
#endif
if (ifa->ifa_rtrequest)
- ifa->ifa_rtrequest(req, rt, info);
+ ifa->ifa_rtrequest(req, rt);
if (ret_nrt) {
*ret_nrt = rt;
rt->rt_refcnt++;
@@ -1138,13 +1137,13 @@ rtinit(struct ifaddr *ifa, int cmd, int
printf("rtinit: wrong ifa (%p) was (%p)\n",
ifa, rt->rt_ifa);
if (rt->rt_ifa->ifa_rtrequest)
- rt->rt_ifa->ifa_rtrequest(RTM_DELETE, rt, NULL);
+ rt->rt_ifa->ifa_rtrequest(RTM_DELETE, rt);
ifafree(rt->rt_ifa);
rt->rt_ifa = ifa;
rt->rt_ifp = ifa->ifa_ifp;
ifa->ifa_refcnt++;
if (ifa->ifa_rtrequest)
- ifa->ifa_rtrequest(RTM_ADD, rt, NULL);
+ ifa->ifa_rtrequest(RTM_ADD, rt);
}
rt_newaddrmsg(cmd, ifa, error, nrt);
}
Index: net/rtsock.c
===================================================================
RCS file: /home/ncvs/src/sys/net/rtsock.c,v
retrieving revision 1.126
diff -u -p -r1.126 rtsock.c
--- net/rtsock.c 17 May 2013 11:13:37 -0000 1.126
+++ net/rtsock.c 27 Aug 2013 13:50:50 -0000
@@ -783,8 +783,7 @@ report:
struct ifaddr *oifa = rt->rt_ifa;
if (oifa != ifa) {
if (oifa && oifa->ifa_rtrequest)
- oifa->ifa_rtrequest(RTM_DELETE, rt,
- &info);
+ oifa->ifa_rtrequest(RTM_DELETE, rt);
ifafree(rt->rt_ifa);
rt->rt_ifa = ifa;
ifa->ifa_refcnt++;
@@ -849,7 +848,7 @@ report:
rtm->rtm_priority = rt->rt_priority & RTP_MASK;
rtm->rtm_flags = rt->rt_flags;
if (rt->rt_ifa && rt->rt_ifa->ifa_rtrequest)
- rt->rt_ifa->ifa_rtrequest(RTM_ADD, rt, &info);
+ rt->rt_ifa->ifa_rtrequest(RTM_ADD, rt);
if (genmask)
rt->rt_genmask = genmask;
if (info.rti_info[RTAX_LABEL] != NULL) {
Index: netinet/if_ether.c
===================================================================
RCS file: /home/ncvs/src/sys/netinet/if_ether.c,v
retrieving revision 1.104
diff -u -p -r1.104 if_ether.c
--- netinet/if_ether.c 9 Aug 2013 06:01:52 -0000 1.104
+++ netinet/if_ether.c 27 Aug 2013 13:50:50 -0000
@@ -141,7 +141,7 @@ arptimer(void *arg)
* Parallel to llc_rtrequest.
*/
void
-arp_rtrequest(int req, struct rtentry *rt, struct rt_addrinfo *info)
+arp_rtrequest(int req, struct rtentry *rt)
{
struct sockaddr *gate = rt->rt_gateway;
struct llinfo_arp *la = (struct llinfo_arp *)rt->rt_llinfo;
Index: netinet/if_ether.h
===================================================================
RCS file: /home/ncvs/src/sys/netinet/if_ether.h,v
retrieving revision 1.50
diff -u -p -r1.50 if_ether.h
--- netinet/if_ether.h 4 Jul 2013 08:22:19 -0000 1.50
+++ netinet/if_ether.h 27 Aug 2013 13:50:50 -0000
@@ -201,7 +201,7 @@ void arpintr(void);
int arpresolve(struct arpcom *,
struct rtentry *, struct mbuf *, struct sockaddr *, u_char *);
void arp_ifinit(struct arpcom *, struct ifaddr *);
-void arp_rtrequest(int, struct rtentry *, struct rt_addrinfo *);
+void arp_rtrequest(int, struct rtentry *);
int ether_addmulti(struct ifreq *, struct arpcom *);
int ether_delmulti(struct ifreq *, struct arpcom *);
Index: netinet6/nd6.c
===================================================================
RCS file: /home/ncvs/src/sys/netinet6/nd6.c,v
retrieving revision 1.101
diff -u -p -r1.101 nd6.c
--- netinet6/nd6.c 26 Aug 2013 07:15:58 -0000 1.101
+++ netinet6/nd6.c 27 Aug 2013 13:50:50 -0000
@@ -953,7 +953,7 @@ nd6_nud_hint(struct rtentry *rt, struct
*/
void
-nd6_rtrequest(int req, struct rtentry *rt, struct rt_addrinfo *info)
+nd6_rtrequest(int req, struct rtentry *rt)
{
struct sockaddr *gate = rt->rt_gateway;
struct llinfo_nd6 *ln = (struct llinfo_nd6 *)rt->rt_llinfo;
Index: netinet6/nd6.h
===================================================================
RCS file: /home/ncvs/src/sys/netinet6/nd6.h,v
retrieving revision 1.33
diff -u -p -r1.33 nd6.h
--- netinet6/nd6.h 26 Aug 2013 07:15:58 -0000 1.33
+++ netinet6/nd6.h 27 Aug 2013 13:50:50 -0000
@@ -277,7 +277,7 @@ void nd6_purge(struct ifnet *);
void nd6_nud_hint(struct rtentry *, struct in6_addr *, int);
int nd6_resolve(struct ifnet *, struct rtentry *,
struct mbuf *, struct sockaddr *, u_char *);
-void nd6_rtrequest(int, struct rtentry *, struct rt_addrinfo *);
+void nd6_rtrequest(int, struct rtentry *);
int nd6_ioctl(u_long, caddr_t, struct ifnet *);
struct rtentry *nd6_cache_lladdr(struct ifnet *, struct in6_addr *,
char *, int, int, int);