summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.h
diff options
context:
space:
mode:
authorJiri Pirko2018-07-08 22:51:23 +0200
committerDavid S. Miller2018-07-10 01:24:17 +0200
commita5995cc801f9b6a66af1d20b2025ff0c20a4c0bf (patch)
tree5b36ca53fdb543deffd9901f10dd945bdd679cac /drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.h
parentmlxsw: spectrum_acl: Convert mlxsw_afk_create args to ops (diff)
downloadkernel-qcow2-linux-a5995cc801f9b6a66af1d20b2025ff0c20a4c0bf.tar.gz
kernel-qcow2-linux-a5995cc801f9b6a66af1d20b2025ff0c20a4c0bf.tar.xz
kernel-qcow2-linux-a5995cc801f9b6a66af1d20b2025ff0c20a4c0bf.zip
mlxsw: spectrum_acl: Move block items encoding into Spectrum op
Since Spectrum-2 encodes blocks into different HW layout, push this code into Spectrum-specific op. Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.h')
-rw-r--r--drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.h b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.h
index 6d3817dcb0f3..441636cd13d8 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.h
+++ b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.h
@@ -219,6 +219,8 @@ struct mlxsw_afk;
struct mlxsw_afk_ops {
const struct mlxsw_afk_block *blocks;
unsigned int blocks_count;
+ void (*encode_one)(const struct mlxsw_afk_element_inst *elinst,
+ int block_index, char *storage, char *output);
};
struct mlxsw_afk *mlxsw_afk_create(unsigned int max_blocks,
@@ -255,7 +257,8 @@ void mlxsw_afk_values_add_buf(struct mlxsw_afk_element_values *values,
enum mlxsw_afk_element element,
const char *key_value, const char *mask_value,
unsigned int len);
-void mlxsw_afk_encode(struct mlxsw_afk_key_info *key_info,
+void mlxsw_afk_encode(struct mlxsw_afk *mlxsw_afk,
+ struct mlxsw_afk_key_info *key_info,
struct mlxsw_afk_element_values *values,
char *key, char *mask);