diff options
author | dwmalone <dwmalone@FreeBSD.org> | 2004-07-17 19:44:13 +0000 |
---|---|---|
committer | dwmalone <dwmalone@FreeBSD.org> | 2004-07-17 19:44:13 +0000 |
commit | 71eccf2cf55ca05d858bd43ea8dcf26e64a94c66 (patch) | |
tree | e3253b105d7c3ba69e7b3d55d4fcea1bbdd49f7c /sys/netinet/tcp_var.h | |
parent | 4c16bbdae3c2b668d0d9672affa2e8749490f8ae (diff) | |
download | FreeBSD-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.h | 1 |
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 */ |