mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
net/sched: act_api: fix miss set post_ct for ovs after do conntrack in act_ct
When openvswitch conntrack offload with act_ct action. The first rule
do conntrack in the act_ct in tc subsystem. And miss the next rule in
the tc and fallback to the ovs datapath but miss set post_ct flag
which will lead the ct_state_key with -trk flag.
Fixes: 7baf2429a1
("net/sched: cls_flower add CT_FLAGS_INVALID flag support")
Signed-off-by: wenxu <wenxu@ucloud.cn>
Reviewed-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
ce225298a0
commit
d29334c15d
5 changed files with 14 additions and 6 deletions
|
@ -271,9 +271,11 @@ static void ovs_ct_update_key(const struct sk_buff *skb,
|
|||
/* This is called to initialize CT key fields possibly coming in from the local
|
||||
* stack.
|
||||
*/
|
||||
void ovs_ct_fill_key(const struct sk_buff *skb, struct sw_flow_key *key)
|
||||
void ovs_ct_fill_key(const struct sk_buff *skb,
|
||||
struct sw_flow_key *key,
|
||||
bool post_ct)
|
||||
{
|
||||
ovs_ct_update_key(skb, NULL, key, false, false);
|
||||
ovs_ct_update_key(skb, NULL, key, post_ct, false);
|
||||
}
|
||||
|
||||
int ovs_ct_put_key(const struct sw_flow_key *swkey,
|
||||
|
@ -1332,7 +1334,7 @@ int ovs_ct_clear(struct sk_buff *skb, struct sw_flow_key *key)
|
|||
if (skb_nfct(skb)) {
|
||||
nf_conntrack_put(skb_nfct(skb));
|
||||
nf_ct_set(skb, NULL, IP_CT_UNTRACKED);
|
||||
ovs_ct_fill_key(skb, key);
|
||||
ovs_ct_fill_key(skb, key, false);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue