It's no longer doing anything, so let's remove it, ok?
Index: net/pf.c
===================================================================
RCS file: /cvs/src/sys/net/pf.c,v
retrieving revision 1.975
diff -u -p -r1.975 pf.c
--- net/pf.c 7 Jun 2016 01:31:54 -0000 1.975
+++ net/pf.c 8 Jun 2016 14:34:33 -0000
@@ -5762,7 +5762,7 @@ pf_route6(struct mbuf **m, struct pf_rul
ip6stat.ip6s_noroute++;
goto bad;
}
- nd6_output(ifp, m0, dst, rt);
+ ifp->if_output(ifp, m0, sin6tosa(dst), rt);
rtfree(rt);
} else {
icmp6_error(m0, ICMP6_PACKET_TOO_BIG, 0, ifp->if_mtu);
Index: net/pf_norm.c
===================================================================
RCS file: /cvs/src/sys/net/pf_norm.c,v
retrieving revision 1.186
diff -u -p -r1.186 pf_norm.c
--- net/pf_norm.c 31 May 2016 07:35:36 -0000 1.186
+++ net/pf_norm.c 8 Jun 2016 14:34:07 -0000
@@ -761,7 +761,7 @@ pf_refragment6(struct mbuf **m0, struct
if (ifp == NULL) {
ip6_forward(m, 0);
} else if ((u_long)m->m_pkthdr.len <= ifp->if_mtu) {
- nd6_output(ifp, m, dst, rt);
+ ifp->if_output(ifp, m, sin6tosa(dst), rt);
} else {
icmp6_error(m, ICMP6_PACKET_TOO_BIG, 0,
ifp->if_mtu);
Index: netinet6/ip6_forward.c
===================================================================
RCS file: /cvs/src/sys/netinet6/ip6_forward.c,v
retrieving revision 1.90
diff -u -p -r1.90 ip6_forward.c
--- netinet6/ip6_forward.c 2 May 2016 09:30:47 -0000 1.90
+++ netinet6/ip6_forward.c 8 Jun 2016 14:33:05 -0000
@@ -332,7 +332,7 @@ reroute:
goto out;
}
- error = nd6_output(ifp, m, dst, rt);
+ error = ifp->if_output(ifp, m, sin6tosa(dst), rt);
if (error) {
ip6stat.ip6s_cantforward++;
} else {
Index: netinet6/ip6_mroute.c
===================================================================
RCS file: /cvs/src/sys/netinet6/ip6_mroute.c,v
retrieving revision 1.102
diff -u -p -r1.102 ip6_mroute.c
--- netinet6/ip6_mroute.c 21 Jan 2016 11:23:48 -0000 1.102
+++ netinet6/ip6_mroute.c 8 Jun 2016 14:30:41 -0000
@@ -1429,10 +1429,6 @@ phyint_send6(struct ip6_hdr *ip6, struct
dst6->sin6_len = sizeof(struct sockaddr_in6);
dst6->sin6_family = AF_INET6;
dst6->sin6_addr = ip6->ip6_dst;
- /*
- * We just call if_output instead of nd6_output here, since
- * we need no ND for a multicast forwarded packet...right?
- */
error = ifp->if_output(ifp, mb_copy, sin6tosa(&ro.ro_dst),
NULL);
} else {
Index: netinet6/ip6_output.c
===================================================================
RCS file: /cvs/src/sys/netinet6/ip6_output.c,v
retrieving revision 1.207
diff -u -p -r1.207 ip6_output.c
--- netinet6/ip6_output.c 19 May 2016 11:34:40 -0000 1.207
+++ netinet6/ip6_output.c 8 Jun 2016 14:33:44 -0000
@@ -692,7 +692,7 @@ reroute:
* transmit packet without fragmentation
*/
if (dontfrag || (!alwaysfrag && tlen <= mtu)) { /* case 1-a and 2-a */
- error = nd6_output(ifp, m, dst, ro->ro_rt);
+ error = ifp->if_output(ifp, m, sin6tosa(dst), ro->ro_rt);
goto done;
}
@@ -767,7 +767,8 @@ reroute:
m->m_nextpkt = 0;
if (error == 0) {
ip6stat.ip6s_ofragments++;
- error = nd6_output(ifp, m, dst, ro->ro_rt);
+ error = ifp->if_output(ifp, m, sin6tosa(dst),
+ ro->ro_rt);
} else
m_freem(m);
}
Index: netinet6/nd6.c
===================================================================
RCS file: /cvs/src/sys/netinet6/nd6.c,v
retrieving revision 1.185
diff -u -p -r1.185 nd6.c
--- netinet6/nd6.c 8 Jun 2016 12:57:58 -0000 1.185
+++ netinet6/nd6.c 8 Jun 2016 14:32:50 -0000
@@ -1352,7 +1352,7 @@ fail:
if (ln->ln_state == ND6_LLINFO_STALE) {
/*
- * XXX: since nd6_output() below will cause
+ * Since nd6_resove() in ifp->if_output() will cause
* state transition to DELAY and reset the timer,
* we must set the timer now, although it is actually
* meaningless.
@@ -1366,7 +1366,7 @@ fail:
* we assume ifp is not a p2p here, so just
* set the 2nd argument as the 1st one.
*/
- nd6_output(ifp, n, satosin6(rt_key(rt)), rt);
+ ifp->if_output(ifp, n, rt_key(rt), rt);
if (ln->ln_hold == n) {
/* n is back in ln_hold. Discard. */
m_freem(ln->ln_hold);
@@ -1486,13 +1486,6 @@ nd6_slowtimo(void *ignored_arg)
}
}
splx(s);
-}
-
-int
-nd6_output(struct ifnet *ifp, struct mbuf *m0, struct sockaddr_in6 *dst,
- struct rtentry *rt0)
-{
- return (ifp->if_output(ifp, m0, sin6tosa(dst), rt0));
}
int
Index: netinet6/nd6.h
===================================================================
RCS file: /cvs/src/sys/netinet6/nd6.h,v
retrieving revision 1.61
diff -u -p -r1.61 nd6.h
--- netinet6/nd6.h 8 Jun 2016 12:57:58 -0000 1.61
+++ netinet6/nd6.h 8 Jun 2016 14:30:33 -0000
@@ -264,13 +264,9 @@ void nd6_llinfo_settimer(struct llinfo_n
void nd6_timer(void *);
void nd6_purge(struct ifnet *);
void nd6_nud_hint(struct rtentry *);
-int nd6_resolve(struct ifnet *, struct rtentry *,
- struct mbuf *, struct sockaddr *, u_char *);
void nd6_rtrequest(struct ifnet *, int, struct rtentry *);
int nd6_ioctl(u_long, caddr_t, struct ifnet *);
void nd6_cache_lladdr(struct ifnet *, struct in6_addr *, char *, int, int,
int);
-int nd6_output(struct ifnet *, struct mbuf *, struct sockaddr_in6 *,
- struct rtentry *);
int nd6_resolve(struct ifnet *, struct rtentry *, struct mbuf *,
struct sockaddr *, u_char *);
int nd6_sysctl(int, void *, size_t *, void *, size_t);
Index: netinet6/nd6_nbr.c
===================================================================
RCS file: /cvs/src/sys/netinet6/nd6_nbr.c,v
retrieving revision 1.103
diff -u -p -r1.103 nd6_nbr.c
--- netinet6/nd6_nbr.c 1 Jun 2016 23:45:19 -0000 1.103
+++ netinet6/nd6_nbr.c 8 Jun 2016 14:32:35 -0000
@@ -875,7 +875,7 @@ nd6_na_input(struct mbuf *m, int off, in
* we assume ifp is not a loopback here, so just set the 2nd
* argument as the 1st one.
*/
- nd6_output(ifp, n, satosin6(rt_key(rt)), rt);
+ ifp->if_output(ifp, n, rt_key(rt), rt);
if (ln->ln_hold == n) {
/* n is back in ln_hold. Discard. */
m_freem(ln->ln_hold);