]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
ipv4: Unmask upper DSCP bits in fib_compute_spec_dst()
authorIdo Schimmel <idosch@nvidia.com>
Wed, 21 Aug 2024 12:52:46 +0000 (15:52 +0300)
committerJakub Kicinski <kuba@kernel.org>
Thu, 22 Aug 2024 23:59:57 +0000 (16:59 -0700)
commit39d3628f7ceabd22385dcd6811ed4c353f7c859b
tree5f401d63d4e5a88cde2eacc761a2fa5f6fe49c8f
parent2bc9778b6696337f1e0b38f07522319296b39d83
ipv4: Unmask upper DSCP bits in fib_compute_spec_dst()

As explained in commit 35ebf65e851c ("ipv4: Create and use
fib_compute_spec_dst() helper."), the function is used - for example -
to determine the source address for an ICMP reply. If we are responding
to a multicast or broadcast packet, the source address is set to the
source address that we would use if we were to send a packet to the
unicast source of the original packet. This address is determined by
performing a FIB lookup and using the preferred source address of the
resulting route.

Unmask the upper DSCP bits of the DS field of the packet that triggered
the reply so that in the future the FIB lookup could be performed
according to the full DSCP value.

No functional changes intended since the upper DSCP bits are masked when
comparing against the TOS selectors in FIB rules and routes.

Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Guillaume Nault <gnault@redhat.com>
Acked-by: Florian Westphal <fw@strlen.de>
Reviewed-by: David Ahern <dsahern@kernel.org>
Link: https://patch.msgid.link/20240821125251.1571445-8-idosch@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ipv4/fib_frontend.c