Page MenuHomeFreeBSD

D23872.diff
No OneTemporary

D23872.diff

Index: head/sys/netinet6/in6_fib.c
===================================================================
--- head/sys/netinet6/in6_fib.c
+++ head/sys/netinet6/in6_fib.c
@@ -115,9 +115,9 @@
pnh6->nh_mtu = min(rte->rt_mtu, IN6_LINKMTU(rte->rt_ifp));
if (rte->rt_flags & RTF_GATEWAY) {
+ /* Return address with embedded scope. */
gw = (struct sockaddr_in6 *)rte->rt_gateway;
pnh6->nh_addr = gw->sin6_addr;
- in6_clearscope(&pnh6->nh_addr);
} else
pnh6->nh_addr = *dst;
/* Set flags */
@@ -143,9 +143,9 @@
pnh6->nh_mtu = min(rte->rt_mtu, IN6_LINKMTU(rte->rt_ifp));
if (rte->rt_flags & RTF_GATEWAY) {
+ /* Return address with embedded scope. */
gw = (struct sockaddr_in6 *)rte->rt_gateway;
pnh6->nh_addr = gw->sin6_addr;
- in6_clearscope(&pnh6->nh_addr);
} else
pnh6->nh_addr = *dst;
/* Set flags */
Index: head/sys/netinet6/ip6_fastfwd.c
===================================================================
--- head/sys/netinet6/ip6_fastfwd.c
+++ head/sys/netinet6/ip6_fastfwd.c
@@ -274,14 +274,7 @@
m_clrprotoflags(m); /* Avoid confusing lower layers. */
IP_PROBE(send, NULL, NULL, ip6, nh.nh_ifp, NULL, ip6);
- /*
- * XXX: we need to use destination address with embedded scope
- * zone id, because LLTABLE uses such form of addresses for lookup.
- */
dst.sin6_addr = nh.nh_addr;
- if (IN6_IS_SCOPE_LINKLOCAL(&dst.sin6_addr))
- dst.sin6_addr.s6_addr16[1] = htons(nh.nh_ifp->if_index & 0xffff);
-
error = (*nh.nh_ifp->if_output)(nh.nh_ifp, m,
(struct sockaddr *)&dst, NULL);
if (error != 0) {

File Metadata

Mime Type
text/plain
Expires
Tue, Feb 4, 11:57 AM (15 h, 9 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16452950
Default Alt Text
D23872.diff (1 KB)

Event Timeline