mlxsw_afa 124 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c struct mlxsw_afa *mlxsw_afa_create(unsigned int max_acts_per_set, mlxsw_afa 128 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c struct mlxsw_afa *mlxsw_afa; mlxsw_afa 131 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c mlxsw_afa = kzalloc(sizeof(*mlxsw_afa), GFP_KERNEL); mlxsw_afa 132 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c if (!mlxsw_afa) mlxsw_afa 134 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c err = rhashtable_init(&mlxsw_afa->set_ht, &mlxsw_afa_set_ht_params); mlxsw_afa 137 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c err = rhashtable_init(&mlxsw_afa->fwd_entry_ht, mlxsw_afa 141 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c mlxsw_afa->max_acts_per_set = max_acts_per_set; mlxsw_afa 142 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c mlxsw_afa->ops = ops; mlxsw_afa 143 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c mlxsw_afa->ops_priv = ops_priv; mlxsw_afa 144 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c return mlxsw_afa; mlxsw_afa 147 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c rhashtable_destroy(&mlxsw_afa->set_ht); mlxsw_afa 149 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c kfree(mlxsw_afa); mlxsw_afa 154 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c void mlxsw_afa_destroy(struct mlxsw_afa *mlxsw_afa) mlxsw_afa 156 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c rhashtable_destroy(&mlxsw_afa->fwd_entry_ht); mlxsw_afa 157 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c rhashtable_destroy(&mlxsw_afa->set_ht); mlxsw_afa 158 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c kfree(mlxsw_afa); mlxsw_afa 202 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c static int mlxsw_afa_set_share(struct mlxsw_afa *mlxsw_afa, mlxsw_afa 207 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c err = rhashtable_insert_fast(&mlxsw_afa->set_ht, &set->ht_node, mlxsw_afa 211 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c err = mlxsw_afa->ops->kvdl_set_add(mlxsw_afa->ops_priv, mlxsw_afa 222 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c rhashtable_remove_fast(&mlxsw_afa->set_ht, &set->ht_node, mlxsw_afa 227 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c static void mlxsw_afa_set_unshare(struct mlxsw_afa *mlxsw_afa, mlxsw_afa 230 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c mlxsw_afa->ops->kvdl_set_del(mlxsw_afa->ops_priv, mlxsw_afa 233 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c rhashtable_remove_fast(&mlxsw_afa->set_ht, &set->ht_node, mlxsw_afa 238 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c static void mlxsw_afa_set_put(struct mlxsw_afa *mlxsw_afa, mlxsw_afa 244 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c mlxsw_afa_set_unshare(mlxsw_afa, set); mlxsw_afa 248 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c static struct mlxsw_afa_set *mlxsw_afa_set_get(struct mlxsw_afa *mlxsw_afa, mlxsw_afa 258 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c set = rhashtable_lookup_fast(&mlxsw_afa->set_ht, &orig_set->ht_key, mlxsw_afa 262 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c mlxsw_afa_set_put(mlxsw_afa, orig_set); mlxsw_afa 265 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c err = mlxsw_afa_set_share(mlxsw_afa, set); mlxsw_afa 277 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c struct mlxsw_afa *afa; mlxsw_afa 313 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c struct mlxsw_afa_block *mlxsw_afa_block_create(struct mlxsw_afa *mlxsw_afa) mlxsw_afa 321 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c block->afa = mlxsw_afa; mlxsw_afa 331 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c if (mlxsw_afa->ops->dummy_first_set) { mlxsw_afa 466 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c mlxsw_afa_fwd_entry_create(struct mlxsw_afa *mlxsw_afa, u8 local_port) mlxsw_afa 477 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c err = rhashtable_insert_fast(&mlxsw_afa->fwd_entry_ht, mlxsw_afa 483 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c err = mlxsw_afa->ops->kvdl_fwd_entry_add(mlxsw_afa->ops_priv, mlxsw_afa 491 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c rhashtable_remove_fast(&mlxsw_afa->fwd_entry_ht, &fwd_entry->ht_node, mlxsw_afa 498 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c static void mlxsw_afa_fwd_entry_destroy(struct mlxsw_afa *mlxsw_afa, mlxsw_afa 501 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c mlxsw_afa->ops->kvdl_fwd_entry_del(mlxsw_afa->ops_priv, mlxsw_afa 503 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c rhashtable_remove_fast(&mlxsw_afa->fwd_entry_ht, &fwd_entry->ht_node, mlxsw_afa 509 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c mlxsw_afa_fwd_entry_get(struct mlxsw_afa *mlxsw_afa, u8 local_port) mlxsw_afa 515 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c fwd_entry = rhashtable_lookup_fast(&mlxsw_afa->fwd_entry_ht, &ht_key, mlxsw_afa 521 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c return mlxsw_afa_fwd_entry_create(mlxsw_afa, local_port); mlxsw_afa 524 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c static void mlxsw_afa_fwd_entry_put(struct mlxsw_afa *mlxsw_afa, mlxsw_afa 529 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c mlxsw_afa_fwd_entry_destroy(mlxsw_afa, fwd_entry); mlxsw_afa 10 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.h struct mlxsw_afa; mlxsw_afa 31 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.h struct mlxsw_afa *mlxsw_afa_create(unsigned int max_acts_per_set, mlxsw_afa 34 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.h void mlxsw_afa_destroy(struct mlxsw_afa *mlxsw_afa); mlxsw_afa 35 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.h struct mlxsw_afa_block *mlxsw_afa_block_create(struct mlxsw_afa *mlxsw_afa); mlxsw_afa 154 drivers/net/ethernet/mellanox/mlxsw/spectrum.h struct mlxsw_afa *afa;