openvswitch: add ct_clear action
This adds a ct_clear action for clearing conntrack state. ct_clear is currently implemented in OVS userspace, but is not backed by an action in the kernel datapath. This is useful for flows that may modify a packet tuple after a ct lookup has already occurred. Signed-off-by: Eric Garver <e@erig.me> Acked-by: Pravin B Shelar <pshelar@ovn.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
833e0e2f24
commit
b8226962b1
@@ -1129,6 +1129,17 @@ int ovs_ct_execute(struct net *net, struct sk_buff *skb,
|
||||
return err;
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ovs_ct_add_helper(struct ovs_conntrack_info *info, const char *name,
|
||||
const struct sw_flow_key *key, bool log)
|
||||
{
|
||||
|
Reference in New Issue
Block a user