netfilter: nft_fib: Mask upper DSCP bits before FIB lookup
authorIdo Schimmel <idosch@nvidia.com>
Wed, 14 Aug 2024 12:52:23 +0000 (15:52 +0300)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 20 Aug 2024 12:57:07 +0000 (14:57 +0200)
commit548a2029eb6668a47e9bc86a7ded3d33a738aa0c
tree5ba98e14c389aad8afc25d600804f47d3718e90f
parent8fed54758cd248cd311a2b5c1e180abef1866237
netfilter: nft_fib: Mask upper DSCP bits before FIB lookup

As part of its functionality, the nftables FIB expression module
performs a FIB lookup, but unlike other users of the FIB lookup API, it
does so without masking the upper DSCP bits. In particular, this differs
from the equivalent iptables match ("rpfilter") that does mask the upper
DSCP bits before the FIB lookup.

Align the module to other users of the FIB lookup API and mask the upper
DSCP bits using IPTOS_RT_MASK before the lookup.

No regressions in nft_fib.sh:

 # ./nft_fib.sh
 PASS: fib expression did not cause unwanted packet drops
 PASS: fib expression did drop packets for 1.1.1.1
 PASS: fib expression did drop packets for 1c3::c01d
 PASS: fib expression forward check with policy based routing

Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Guillaume Nault <gnault@redhat.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
net/ipv4/netfilter/nft_fib_ipv4.c