Don't send an uninitilised traffic class in the IPv6 header, when

sending a TCP segment from the TCP SYN cache (like a SYN-ACK).
This fix initialises it to zero. This is correct for the ECN bits,
but is does not honor the DSCP what an application might have set via
the IPPROTO_IPV6 level socket options IPV6_TCLASS. That will be
fixed separately.

Reviewed by:		Richard Scheffenegger
MFC after:		3 days
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D23900
This commit is contained in:
Michael Tuexen 2020-03-04 12:22:53 +00:00
parent cffdc39e5e
commit 6605e5791f
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=358614

View File

@ -1794,7 +1794,8 @@ syncache_respond(struct syncache *sc, const struct mbuf *m0, int flags)
ip6->ip6_dst = sc->sc_inc.inc6_faddr;
ip6->ip6_plen = htons(tlen - hlen);
/* ip6_hlim is set after checksum */
ip6->ip6_flow &= ~IPV6_FLOWLABEL_MASK;
/* Zero out traffic class and flow label. */
ip6->ip6_flow &= ~IPV6_FLOWINFO_MASK;
ip6->ip6_flow |= sc->sc_flowlabel;
th = (struct tcphdr *)(ip6 + 1);