devlink: add trap metadata type for cookie
authorJiri Pirko <jiri@mellanox.com>
Tue, 25 Feb 2020 10:45:19 +0000 (11:45 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 25 Feb 2020 19:05:54 +0000 (11:05 -0800)
Allow driver to indicate cookie metadata for registered traps.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Reviewed-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/devlink.h
include/uapi/linux/devlink.h
net/core/devlink.c

index 07923e6..014a8b3 100644 (file)
@@ -541,6 +541,7 @@ struct devlink_trap_group {
 };
 
 #define DEVLINK_TRAP_METADATA_TYPE_F_IN_PORT   BIT(0)
+#define DEVLINK_TRAP_METADATA_TYPE_F_FA_COOKIE BIT(1)
 
 /**
  * struct devlink_trap - Immutable packet trap attributes.
index ae37fd4..be2a294 100644 (file)
@@ -252,6 +252,8 @@ enum devlink_trap_type {
 enum {
        /* Trap can report input port as metadata */
        DEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT,
+       /* Trap can report flow action cookie as metadata */
+       DEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE,
 };
 
 enum devlink_attr {
index 0d7c5d3..12e6ef7 100644 (file)
@@ -5540,6 +5540,9 @@ static int devlink_trap_metadata_put(struct sk_buff *msg,
        if ((trap->metadata_cap & DEVLINK_TRAP_METADATA_TYPE_F_IN_PORT) &&
            nla_put_flag(msg, DEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT))
                goto nla_put_failure;
+       if ((trap->metadata_cap & DEVLINK_TRAP_METADATA_TYPE_F_FA_COOKIE) &&
+           nla_put_flag(msg, DEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE))
+               goto nla_put_failure;
 
        nla_nest_end(msg, attr);