Page MenuHomeFreeBSD

Don't Send TCP/IPv6 Segments with Uninitialised Traffic Class from the TCP SYN cache
ClosedPublic

Authored by tuexen on Feb 29 2020, 8:37 PM.
Tags
None
Referenced Files
F122534534: D23900.id69005.diff
Sun, Jul 6, 1:36 AM
Unknown Object (File)
Tue, Jul 1, 4:07 PM
Unknown Object (File)
Tue, Jun 24, 9:21 AM
Unknown Object (File)
Mon, Jun 23, 1:50 PM
Unknown Object (File)
Fri, Jun 20, 8:30 PM
Unknown Object (File)
Fri, Jun 20, 9:35 AM
Unknown Object (File)
Wed, Jun 11, 7:32 PM
Unknown Object (File)
Jun 3 2025, 7:18 AM
Subscribers

Details

Summary

When sending TCP Segments from the TCP SYN cache (like SYN-ACK segments) over IPv6, the traffic class in the IPv6 header was not initialised.

This patch ensures that the traffic class is 0, when sending TCP segments.

For the ECN bits, this is the correct value as specified in RFC 3168.

When a specific DSCP is requested by the application using

uint32_t tclass;
setsockopt(listen_fd, IPPROTO_IPV6, IPV6_TCLASS, &tclass, sizeof(tclass));

on the listening socket, this is not working correctly (and it wasn't).
It will be addressed in a separate review.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 29696