There is a typo in a comment in nd6.c.
s/nd6_resove/nd6_resolve/
With that fixed OK florian@
On Tue, Jun 14, 2016 at 11:52:02AM +0200, Martin Pieuchot wrote:
> 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);
>
--
I'm not entirely sure you are real.