FreeBSD Bugzilla – Attachment 153179 Details for
Bug 197059
network locks up with IPv6 udp traffic
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
On output path send IPV6_PATHMTU ancillary data only to the socket, that had initiated an error
ipv6_pcb.diff (text/plain), 1.47 KB, created by
Andrey V. Elsukov
on 2015-02-19 16:16:23 UTC
(
hide
)
Description:
On output path send IPV6_PATHMTU ancillary data only to the socket, that had initiated an error
Filename:
MIME Type:
Creator:
Andrey V. Elsukov
Created:
2015-02-19 16:16:23 UTC
Size:
1.47 KB
patch
obsolete
>Index: head/sys/netinet6/ip6_output.c >=================================================================== >--- head/sys/netinet6/ip6_output.c (revision 278957) >+++ head/sys/netinet6/ip6_output.c (working copy) >@@ -910,19 +910,22 @@ passout: > * Even if the DONTFRAG option is specified, we cannot send the > * packet when the data length is larger than the MTU of the > * outgoing interface. >- * Notify the error by sending IPV6_PATHMTU ancillary data as >- * well as returning an error code (the latter is not described >- * in the API spec.) >+ * Notify the error by sending IPV6_PATHMTU ancillary data if >+ * application wanted to know the MTU value. Also return an >+ * error code (this is not described in the API spec). > */ >- u_int32_t mtu32; >- struct ip6ctlparam ip6cp; >- >- mtu32 = (u_int32_t)mtu; >- bzero(&ip6cp, sizeof(ip6cp)); >- ip6cp.ip6c_cmdarg = (void *)&mtu32; >- pfctlinput2(PRC_MSGSIZE, (struct sockaddr *)&ro_pmtu->ro_dst, >- (void *)&ip6cp); >- >+ bzero(&dst_sa, sizeof(dst_sa)); >+ dst_sa.sin6_family = AF_INET6; >+ dst_sa.sin6_len = sizeof(dst_sa); >+ dst_sa.sin6_addr = ip6->ip6_dst; >+ in6_setscope(&dst_sa.sin6_addr, origifp, NULL); >+ if (inp != NULL && (inp->inp_flags & IN6P_MTU) != 0 && ( >+ IN6_IS_ADDR_UNSPECIFIED(&inp->in6p_faddr) || >+ IN6_ARE_ADDR_EQUAL(&inp->in6p_faddr, &dst_sa.sin6_addr))) { >+ u_int32_t mtu32 = mtu; >+ /* INP_WLOCK_ASSERT(inp); */ >+ ip6_notify_pmtu(inp, &dst_sa, &mtu32); >+ } > error = EMSGSIZE; > goto bad; > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 197059
: 153179