mirror of
https://github.com/openvswitch/ovs
synced 2025-09-02 15:25:22 +00:00
dpif: Add support for OVS_ACTION_ATTR_CT_CLEAR
This supports using the ct_clear action in the kernel datapath. To preserve compatibility with current ct_clear behavior on old kernels, we only pass this action down to the datapath if a probe reveals the datapath actually supports it. Signed-off-by: Eric Garver <e@erig.me> Acked-by: William Tu <u9012063@gmail.com> Acked-by: Flavio Leitner <fbl@sysclose.org> Signed-off-by: Justin Pettit <jpettit@ovn.org>
This commit is contained in:
committed by
Justin Pettit
parent
70bbaa4649
commit
1fe178d251
@@ -118,6 +118,7 @@ odp_action_len(uint16_t type)
|
||||
case OVS_ACTION_ATTR_SET_MASKED: return ATTR_LEN_VARIABLE;
|
||||
case OVS_ACTION_ATTR_SAMPLE: return ATTR_LEN_VARIABLE;
|
||||
case OVS_ACTION_ATTR_CT: return ATTR_LEN_VARIABLE;
|
||||
case OVS_ACTION_ATTR_CT_CLEAR: return 0;
|
||||
case OVS_ACTION_ATTR_PUSH_ETH: return sizeof(struct ovs_action_push_eth);
|
||||
case OVS_ACTION_ATTR_POP_ETH: return 0;
|
||||
case OVS_ACTION_ATTR_CLONE: return ATTR_LEN_VARIABLE;
|
||||
@@ -1131,6 +1132,9 @@ format_odp_action(struct ds *ds, const struct nlattr *a,
|
||||
case OVS_ACTION_ATTR_CT:
|
||||
format_odp_conntrack_action(ds, a);
|
||||
break;
|
||||
case OVS_ACTION_ATTR_CT_CLEAR:
|
||||
ds_put_cstr(ds, "ct_clear");
|
||||
break;
|
||||
case OVS_ACTION_ATTR_CLONE:
|
||||
format_odp_clone_action(ds, a, portno_names);
|
||||
break;
|
||||
@@ -2284,6 +2288,13 @@ parse_odp_action(const char *s, const struct simap *port_names,
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
if (!strncmp(s, "ct_clear", 8)) {
|
||||
nl_msg_put_flag(actions, OVS_ACTION_ATTR_CT_CLEAR);
|
||||
return 8;
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
int retval;
|
||||
|
||||
|
Reference in New Issue
Block a user