Eelco Chaudron <[email protected]> writes:
> Added new actions to the get_ovs_action_attr_str() function.
We should also note that the DROP attribute changed from a userspace
only action - it means that there could be different results depending
on which script and OVS version are being used. Might need a NEWS or
other disclaimer to make users aware. I didn't find a documented
requirement that usdt scripts need to be paired with like versions of
the ovs-vswitchd (although, we probably treat it as an implicit
requirement).
> Fixes: 8bb065961e54 ("dpif: Stub out unimplemented action
> OVS_ACTION_ATTR_DEC_TTL.")
> Fixes: 3c8d069b9bc2 ("dpif: Probe support for OVS_ACTION_ATTR_DROP.")
NOTE for MAINTAINERS: if we do backport this fix, we need to be careful
around this change in particular as there was some netlink changes
related to this.
> Fixes: 1a3bd96b4fc4 ("odp-util: Add support OVS_ACTION_ATTR_PSAMPLE.")
> Signed-off-by: Eelco Chaudron <[email protected]>
> ---
The string change is fine, but for the future we should consider
switching to pahole to populate the ovs_action_attr string.
ex:
~/git/ovs$ pahole ./vswitchd/ovs-vswitchd -C ovs_action_attr
enum ovs_action_attr {
OVS_ACTION_ATTR_UNSPEC = 0,
OVS_ACTION_ATTR_OUTPUT = 1,
OVS_ACTION_ATTR_USERSPACE = 2,
OVS_ACTION_ATTR_SET = 3,
OVS_ACTION_ATTR_PUSH_VLAN = 4,
OVS_ACTION_ATTR_POP_VLAN = 5,
OVS_ACTION_ATTR_SAMPLE = 6,
OVS_ACTION_ATTR_RECIRC = 7,
OVS_ACTION_ATTR_HASH = 8,
OVS_ACTION_ATTR_PUSH_MPLS = 9,
OVS_ACTION_ATTR_POP_MPLS = 10,
OVS_ACTION_ATTR_SET_MASKED = 11,
OVS_ACTION_ATTR_CT = 12,
OVS_ACTION_ATTR_TRUNC = 13,
OVS_ACTION_ATTR_PUSH_ETH = 14,
OVS_ACTION_ATTR_POP_ETH = 15,
OVS_ACTION_ATTR_CT_CLEAR = 16,
OVS_ACTION_ATTR_PUSH_NSH = 17,
OVS_ACTION_ATTR_POP_NSH = 18,
OVS_ACTION_ATTR_METER = 19,
OVS_ACTION_ATTR_CLONE = 20,
OVS_ACTION_ATTR_CHECK_PKT_LEN = 21,
OVS_ACTION_ATTR_ADD_MPLS = 22,
OVS_ACTION_ATTR_DEC_TTL = 23,
OVS_ACTION_ATTR_DROP = 24,
OVS_ACTION_ATTR_TUNNEL_PUSH = 25,
OVS_ACTION_ATTR_TUNNEL_POP = 26,
OVS_ACTION_ATTR_LB_OUTPUT = 27,
__OVS_ACTION_ATTR_MAX = 28,
};
So we could do something like (untested):
ovs_action_attr = get_ovs_definitions("ovs_action_attr", ...)
Such a change would be a separate patch, as I think we can accept this
to get the enums properly in line, but the end goal should be to
eliminate all the maintenance burden on keeping these enums around.
> utilities/usdt-scripts/dpif_nl_exec_monitor.py | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/utilities/usdt-scripts/dpif_nl_exec_monitor.py
> b/utilities/usdt-scripts/dpif_nl_exec_monitor.py
> index 0a9ff8123..a5cf1a35a 100755
> --- a/utilities/usdt-scripts/dpif_nl_exec_monitor.py
> +++ b/utilities/usdt-scripts/dpif_nl_exec_monitor.py
> @@ -468,9 +468,11 @@ def get_ovs_action_attr_str(attr):
> "OVS_ACTION_ATTR_CLONE",
> "OVS_ACTION_ATTR_CHECK_PKT_LEN",
> "OVS_ACTION_ATTR_ADD_MPLS",
> + "OVS_ACTION_ATTR_DEC_TTL",
> + "OVS_ACTION_ATTR_DROP",
> + "OVS_ACTION_ATTR_PSAMPLE",
> "OVS_ACTION_ATTR_TUNNEL_PUSH",
> "OVS_ACTION_ATTR_TUNNEL_POP",
> - "OVS_ACTION_ATTR_DROP",
> "OVS_ACTION_ATTR_LB_OUTPUT"]
> if attr < 0 or attr >= len(ovs_action_attr):
> return "<UNKNOWN:{}>".format(attr)
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev