Files
twx-linux/include/net
wenxu 6d26c375a4 netfilter: nft_flow_offload: fix interaction with vrf slave device
[ Upstream commit 10f4e76587 ]

In the forward chain, the iif is changed from slave device to master vrf
device. Thus, flow offload does not find a match on the lower slave
device.

This patch uses the cached route, ie. dst->dev, to update the iif and
oif fields in the flow entry.

After this patch, the following example works fine:

 # ip addr add dev eth0 1.1.1.1/24
 # ip addr add dev eth1 10.0.0.1/24
 # ip link add user1 type vrf table 1
 # ip l set user1 up
 # ip l set dev eth0 master user1
 # ip l set dev eth1 master user1

 # nft add table firewall
 # nft add flowtable f fb1 { hook ingress priority 0 \; devices = { eth0, eth1 } \; }
 # nft add chain f ftb-all {type filter hook forward priority 0 \; policy accept \; }
 # nft add rule f ftb-all ct zone 1 ip protocol tcp flow offload @fb1
 # nft add rule f ftb-all ct zone 1 ip protocol udp flow offload @fb1

Signed-off-by: wenxu <wenxu@ucloud.cn>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-02-27 10:08:54 +01:00
..
2018-09-18 19:55:01 -07:00
2018-12-17 09:24:28 +01:00
2018-08-21 12:45:45 -07:00
2019-02-23 09:07:27 +01:00
2018-09-26 20:22:19 -07:00
2018-07-30 09:10:25 -07:00
2018-07-18 15:08:31 -07:00
2018-06-18 22:40:32 +02:00
2018-05-31 22:48:46 -04:00
2018-06-22 13:43:27 +09:00
2018-06-22 13:43:27 +09:00
2019-01-09 17:38:33 +01:00
2018-08-16 14:58:07 -07:00