Honor the IPPROTO_IPV6-level cmsg of type IPV6_TCLASS when sending an UDP/IPv4 packet on an AF_INET6 socket.
Details
- Reviewers
bz nickbanks_netflix.com peter.lei_ieee.org lstewart - Group Reviewers
transport - Commits
- rG984a58c13166: udp: honor IPV6_TCLASS cmsg for UDP/IPv4 packets
rG54da44487a16: udp: honor IPV6_TCLASS cmsg for UDP/IPv4 packets
rGe31ff080e5d5: udp: honor IPV6_TCLASS cmsg for UDP/IPv4 packets
rGd3a3854fdc6e: udp: honor IPV6_TCLASS cmsg for UDP/IPv4 packets
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Because we are neither handling the cmsg of type IPV6_2292PKTINFO or IPV6_PKTINFO. There is more work needed to clean things up. But I want bz@ in that loop and he is short of time now. We can have a function which does all the mappings, but I would suggest to do this refactoring separately and also deal with the TTL/hop limit stuff.
I would like to get this in FreeBSD 15. It is used when doing ECN for QUIC.
If you want @bz in the loop remove v4mapped sockets, remove IPv4, be done with this. /SCNR
There's also bits in TCP which would need proper dealing with some of this still and just have placeholders. I think it'll all need a rather proper makeover and unification between all bits and it can properly be done nicely enough setting letting a function know which bits we are interested and return them like we do in the IPv6 side.
I believe even if not neat and I don't like any of this, this is right.