Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Oct 2013 12:08:42 +0000 (UTC)
From:      "Andrey V. Elsukov" <ae@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r256732 - user/ae/inet6/sys/netinet6
Message-ID:  <201310181208.r9IC8ggi024702@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ae
Date: Fri Oct 18 12:08:42 2013
New Revision: 256732
URL: http://svnweb.freebsd.org/changeset/base/256732

Log:
  Since we already know outgoing interface, pass it to ip6_output and
  use IPV6_USEROIF flag in icmp6_redirect_output. Also remove
  in6_clearscope calls.

Modified:
  user/ae/inet6/sys/netinet6/icmp6.c

Modified: user/ae/inet6/sys/netinet6/icmp6.c
==============================================================================
--- user/ae/inet6/sys/netinet6/icmp6.c	Fri Oct 18 11:51:36 2013	(r256731)
+++ user/ae/inet6/sys/netinet6/icmp6.c	Fri Oct 18 12:08:42 2013	(r256732)
@@ -2466,7 +2466,6 @@ icmp6_redirect_output(struct mbuf *m0, s
 	struct llentry *ln = NULL;
 	size_t maxlen;
 	u_char *p;
-	struct ifnet *outif = NULL;
 	struct sockaddr_in6 src_sa;
 
 	icmp6_errcount(ND_REDIRECT, 0);
@@ -2704,15 +2703,7 @@ noredhdropt:;
 		m_freem(m0);
 		m0 = NULL;
 	}
-
-	/* XXX: clear embedded link IDs in the inner header */
-	in6_clearscope(&sip6->ip6_src);
-	in6_clearscope(&sip6->ip6_dst);
-	in6_clearscope(&nd_rd->nd_rd_target);
-	in6_clearscope(&nd_rd->nd_rd_dst);
-
 	ip6->ip6_plen = htons(m->m_pkthdr.len - sizeof(struct ip6_hdr));
-
 	nd_rd->nd_rd_cksum = 0;
 	nd_rd->nd_rd_cksum = in6_cksum(m, IPPROTO_ICMPV6,
 	    sizeof(*ip6), ntohs(ip6->ip6_plen));
@@ -2727,13 +2718,11 @@ noredhdropt:;
 	}
 
 	/* send the packet to outside... */
-	ip6_output(m, NULL, NULL, 0, NULL, &outif, NULL);
-	if (outif) {
-		icmp6_ifstat_inc(outif, ifs6_out_msg);
-		icmp6_ifstat_inc(outif, ifs6_out_redirect);
+	if (ip6_output(m, NULL, NULL, IPV6_USEROIF, NULL, &ifp, NULL) == 0) {
+		icmp6_ifstat_inc(ifp, ifs6_out_msg);
+		icmp6_ifstat_inc(ifp, ifs6_out_redirect);
 	}
 	ICMP6STAT_INC(icp6s_outhist[ND_REDIRECT]);
-
 	return;
 
 fail:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201310181208.r9IC8ggi024702>