summaryrefslogtreecommitdiffstats
path: root/sys/netinet/tcp_var.h
diff options
context:
space:
mode:
authordwmalone <dwmalone@FreeBSD.org>2004-07-17 19:44:13 +0000
committerdwmalone <dwmalone@FreeBSD.org>2004-07-17 19:44:13 +0000
commit71eccf2cf55ca05d858bd43ea8dcf26e64a94c66 (patch)
treee3253b105d7c3ba69e7b3d55d4fcea1bbdd49f7c /sys/netinet/tcp_var.h
parent4c16bbdae3c2b668d0d9672affa2e8749490f8ae (diff)
downloadFreeBSD-src-71eccf2cf55ca05d858bd43ea8dcf26e64a94c66.zip
FreeBSD-src-71eccf2cf55ca05d858bd43ea8dcf26e64a94c66.tar.gz
The tcp syncache code was leaving the IPv6 flowlabel uninitialised
for the SYN|ACK packet and then letting in6_pcbconnect set the flowlabel later. Arange for the syncache/syncookie code to set and recall the flow label so that the flowlabel used for the SYN|ACK is consistent. This is done by using some of the cookie (when tcp cookies are enabeled) and by stashing the flowlabel in syncache. Tested and Discovered by: Orla McGann <orly@cnri.dit.ie> Approved by: ume, silby MFC after: 1 month
Diffstat (limited to 'sys/netinet/tcp_var.h')
-rw-r--r--sys/netinet/tcp_var.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/netinet/tcp_var.h b/sys/netinet/tcp_var.h
index 5eabf38..c8a612d 100644
--- a/sys/netinet/tcp_var.h
+++ b/sys/netinet/tcp_var.h
@@ -254,6 +254,7 @@ struct syncache {
struct mbuf *sc_ipopts; /* source route */
struct in_conninfo sc_inc; /* addresses */
u_int32_t sc_tsrecent;
+ u_int32_t sc_flowlabel; /* IPv6 flowlabel */
tcp_cc sc_cc_send; /* holds CC or CCnew */
tcp_cc sc_cc_recv;
tcp_seq sc_irs; /* seq from peer */
OpenPOWER on IntegriCloud