net/sched: act_ct: fix miss set mru for ovs after defrag in act_ct
authorwenxu <wenxu@ucloud.cn>
Fri, 31 Jul 2020 02:45:01 +0000 (10:45 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 11 Aug 2020 13:35:41 +0000 (15:35 +0200)
commit7154bda4cfc1f41b339121475d2b0234141f3492
tree578aa704680c30cb44543397892f0faa42c4c183
parent95a936364f2685e9e040c6b179b553604d96de22
net/sched: act_ct: fix miss set mru for ovs after defrag in act_ct

[ Upstream commit 038ebb1a713d114d54dbf14868a73181c0c92758 ]

When openvswitch conntrack offload with act_ct action. Fragment packets
defrag in the ingress tc act_ct action and miss the next chain. Then the
packet pass to the openvswitch datapath without the mru. The over
mtu packet will be dropped in output action in openvswitch for over mtu.

"kernel: net2: dropped over-mtu packet: 1528 > 1500"

This patch add mru in the tc_skb_ext for adefrag and miss next chain
situation. And also add mru in the qdisc_skb_cb. The act_ct set the mru
to the qdisc_skb_cb when the packet defrag. And When the chain miss,
The mru is set to tc_skb_ext which can be got by ovs datapath.

Fixes: b57dc7c13ea9 ("net/sched: Introduce action ct")
Signed-off-by: wenxu <wenxu@ucloud.cn>
Reviewed-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
include/linux/skbuff.h
include/net/sch_generic.h
net/openvswitch/flow.c
net/sched/act_ct.c
net/sched/cls_api.c