Commit 3bc3ffb6 authored by Jiri Pirko's avatar Jiri Pirko Committed by David S. Miller

mlxsw: spectrum: Rename acl_block to flow_block

The acl_block structure is going to be used for non-acl case - matchall
offload. So rename it accordingly.
Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 49c958cc
...@@ -1544,23 +1544,23 @@ static int mlxsw_sp_setup_tc_cls_matchall(struct mlxsw_sp_port *mlxsw_sp_port, ...@@ -1544,23 +1544,23 @@ static int mlxsw_sp_setup_tc_cls_matchall(struct mlxsw_sp_port *mlxsw_sp_port,
} }
static int static int
mlxsw_sp_setup_tc_cls_flower(struct mlxsw_sp_acl_block *acl_block, mlxsw_sp_setup_tc_cls_flower(struct mlxsw_sp_flow_block *flow_block,
struct flow_cls_offload *f) struct flow_cls_offload *f)
{ {
struct mlxsw_sp *mlxsw_sp = mlxsw_sp_acl_block_mlxsw_sp(acl_block); struct mlxsw_sp *mlxsw_sp = mlxsw_sp_flow_block_mlxsw_sp(flow_block);
switch (f->command) { switch (f->command) {
case FLOW_CLS_REPLACE: case FLOW_CLS_REPLACE:
return mlxsw_sp_flower_replace(mlxsw_sp, acl_block, f); return mlxsw_sp_flower_replace(mlxsw_sp, flow_block, f);
case FLOW_CLS_DESTROY: case FLOW_CLS_DESTROY:
mlxsw_sp_flower_destroy(mlxsw_sp, acl_block, f); mlxsw_sp_flower_destroy(mlxsw_sp, flow_block, f);
return 0; return 0;
case FLOW_CLS_STATS: case FLOW_CLS_STATS:
return mlxsw_sp_flower_stats(mlxsw_sp, acl_block, f); return mlxsw_sp_flower_stats(mlxsw_sp, flow_block, f);
case FLOW_CLS_TMPLT_CREATE: case FLOW_CLS_TMPLT_CREATE:
return mlxsw_sp_flower_tmplt_create(mlxsw_sp, acl_block, f); return mlxsw_sp_flower_tmplt_create(mlxsw_sp, flow_block, f);
case FLOW_CLS_TMPLT_DESTROY: case FLOW_CLS_TMPLT_DESTROY:
mlxsw_sp_flower_tmplt_destroy(mlxsw_sp, acl_block, f); mlxsw_sp_flower_tmplt_destroy(mlxsw_sp, flow_block, f);
return 0; return 0;
default: default:
return -EOPNOTSUPP; return -EOPNOTSUPP;
...@@ -1607,16 +1607,16 @@ static int mlxsw_sp_setup_tc_block_cb_matchall_eg(enum tc_setup_type type, ...@@ -1607,16 +1607,16 @@ static int mlxsw_sp_setup_tc_block_cb_matchall_eg(enum tc_setup_type type,
static int mlxsw_sp_setup_tc_block_cb_flower(enum tc_setup_type type, static int mlxsw_sp_setup_tc_block_cb_flower(enum tc_setup_type type,
void *type_data, void *cb_priv) void *type_data, void *cb_priv)
{ {
struct mlxsw_sp_acl_block *acl_block = cb_priv; struct mlxsw_sp_flow_block *flow_block = cb_priv;
switch (type) { switch (type) {
case TC_SETUP_CLSMATCHALL: case TC_SETUP_CLSMATCHALL:
return 0; return 0;
case TC_SETUP_CLSFLOWER: case TC_SETUP_CLSFLOWER:
if (mlxsw_sp_acl_block_disabled(acl_block)) if (mlxsw_sp_flow_block_disabled(flow_block))
return -EOPNOTSUPP; return -EOPNOTSUPP;
return mlxsw_sp_setup_tc_cls_flower(acl_block, type_data); return mlxsw_sp_setup_tc_cls_flower(flow_block, type_data);
default: default:
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
...@@ -1624,9 +1624,9 @@ static int mlxsw_sp_setup_tc_block_cb_flower(enum tc_setup_type type, ...@@ -1624,9 +1624,9 @@ static int mlxsw_sp_setup_tc_block_cb_flower(enum tc_setup_type type,
static void mlxsw_sp_tc_block_flower_release(void *cb_priv) static void mlxsw_sp_tc_block_flower_release(void *cb_priv)
{ {
struct mlxsw_sp_acl_block *acl_block = cb_priv; struct mlxsw_sp_flow_block *flow_block = cb_priv;
mlxsw_sp_acl_block_destroy(acl_block); mlxsw_sp_flow_block_destroy(flow_block);
} }
static LIST_HEAD(mlxsw_sp_block_cb_list); static LIST_HEAD(mlxsw_sp_block_cb_list);
...@@ -1636,7 +1636,7 @@ mlxsw_sp_setup_tc_block_flower_bind(struct mlxsw_sp_port *mlxsw_sp_port, ...@@ -1636,7 +1636,7 @@ mlxsw_sp_setup_tc_block_flower_bind(struct mlxsw_sp_port *mlxsw_sp_port,
struct flow_block_offload *f, bool ingress) struct flow_block_offload *f, bool ingress)
{ {
struct mlxsw_sp *mlxsw_sp = mlxsw_sp_port->mlxsw_sp; struct mlxsw_sp *mlxsw_sp = mlxsw_sp_port->mlxsw_sp;
struct mlxsw_sp_acl_block *acl_block; struct mlxsw_sp_flow_block *flow_block;
struct flow_block_cb *block_cb; struct flow_block_cb *block_cb;
bool register_block = false; bool register_block = false;
int err; int err;
...@@ -1645,31 +1645,31 @@ mlxsw_sp_setup_tc_block_flower_bind(struct mlxsw_sp_port *mlxsw_sp_port, ...@@ -1645,31 +1645,31 @@ mlxsw_sp_setup_tc_block_flower_bind(struct mlxsw_sp_port *mlxsw_sp_port,
mlxsw_sp_setup_tc_block_cb_flower, mlxsw_sp_setup_tc_block_cb_flower,
mlxsw_sp); mlxsw_sp);
if (!block_cb) { if (!block_cb) {
acl_block = mlxsw_sp_acl_block_create(mlxsw_sp, f->net); flow_block = mlxsw_sp_flow_block_create(mlxsw_sp, f->net);
if (!acl_block) if (!flow_block)
return -ENOMEM; return -ENOMEM;
block_cb = flow_block_cb_alloc(mlxsw_sp_setup_tc_block_cb_flower, block_cb = flow_block_cb_alloc(mlxsw_sp_setup_tc_block_cb_flower,
mlxsw_sp, acl_block, mlxsw_sp, flow_block,
mlxsw_sp_tc_block_flower_release); mlxsw_sp_tc_block_flower_release);
if (IS_ERR(block_cb)) { if (IS_ERR(block_cb)) {
mlxsw_sp_acl_block_destroy(acl_block); mlxsw_sp_flow_block_destroy(flow_block);
err = PTR_ERR(block_cb); err = PTR_ERR(block_cb);
goto err_cb_register; goto err_cb_register;
} }
register_block = true; register_block = true;
} else { } else {
acl_block = flow_block_cb_priv(block_cb); flow_block = flow_block_cb_priv(block_cb);
} }
flow_block_cb_incref(block_cb); flow_block_cb_incref(block_cb);
err = mlxsw_sp_acl_block_bind(mlxsw_sp, acl_block, err = mlxsw_sp_flow_block_bind(mlxsw_sp, flow_block,
mlxsw_sp_port, ingress, f->extack); mlxsw_sp_port, ingress, f->extack);
if (err) if (err)
goto err_block_bind; goto err_block_bind;
if (ingress) if (ingress)
mlxsw_sp_port->ing_acl_block = acl_block; mlxsw_sp_port->ing_flow_block = flow_block;
else else
mlxsw_sp_port->eg_acl_block = acl_block; mlxsw_sp_port->eg_flow_block = flow_block;
if (register_block) { if (register_block) {
flow_block_cb_add(block_cb, f); flow_block_cb_add(block_cb, f);
...@@ -1687,10 +1687,11 @@ mlxsw_sp_setup_tc_block_flower_bind(struct mlxsw_sp_port *mlxsw_sp_port, ...@@ -1687,10 +1687,11 @@ mlxsw_sp_setup_tc_block_flower_bind(struct mlxsw_sp_port *mlxsw_sp_port,
static void static void
mlxsw_sp_setup_tc_block_flower_unbind(struct mlxsw_sp_port *mlxsw_sp_port, mlxsw_sp_setup_tc_block_flower_unbind(struct mlxsw_sp_port *mlxsw_sp_port,
struct flow_block_offload *f, bool ingress) struct flow_block_offload *f,
bool ingress)
{ {
struct mlxsw_sp *mlxsw_sp = mlxsw_sp_port->mlxsw_sp; struct mlxsw_sp *mlxsw_sp = mlxsw_sp_port->mlxsw_sp;
struct mlxsw_sp_acl_block *acl_block; struct mlxsw_sp_flow_block *flow_block;
struct flow_block_cb *block_cb; struct flow_block_cb *block_cb;
int err; int err;
...@@ -1701,13 +1702,13 @@ mlxsw_sp_setup_tc_block_flower_unbind(struct mlxsw_sp_port *mlxsw_sp_port, ...@@ -1701,13 +1702,13 @@ mlxsw_sp_setup_tc_block_flower_unbind(struct mlxsw_sp_port *mlxsw_sp_port,
return; return;
if (ingress) if (ingress)
mlxsw_sp_port->ing_acl_block = NULL; mlxsw_sp_port->ing_flow_block = NULL;
else else
mlxsw_sp_port->eg_acl_block = NULL; mlxsw_sp_port->eg_flow_block = NULL;
acl_block = flow_block_cb_priv(block_cb); flow_block = flow_block_cb_priv(block_cb);
err = mlxsw_sp_acl_block_unbind(mlxsw_sp, acl_block, err = mlxsw_sp_flow_block_unbind(mlxsw_sp, flow_block,
mlxsw_sp_port, ingress); mlxsw_sp_port, ingress);
if (!err && !flow_block_cb_decref(block_cb)) { if (!err && !flow_block_cb_decref(block_cb)) {
flow_block_cb_remove(block_cb, f); flow_block_cb_remove(block_cb, f);
list_del(&block_cb->driver_list); list_del(&block_cb->driver_list);
...@@ -1797,17 +1798,17 @@ static int mlxsw_sp_feature_hw_tc(struct net_device *dev, bool enable) ...@@ -1797,17 +1798,17 @@ static int mlxsw_sp_feature_hw_tc(struct net_device *dev, bool enable)
struct mlxsw_sp_port *mlxsw_sp_port = netdev_priv(dev); struct mlxsw_sp_port *mlxsw_sp_port = netdev_priv(dev);
if (!enable) { if (!enable) {
if (mlxsw_sp_acl_block_rule_count(mlxsw_sp_port->ing_acl_block) || if (mlxsw_sp_flow_block_rule_count(mlxsw_sp_port->ing_flow_block) ||
mlxsw_sp_acl_block_rule_count(mlxsw_sp_port->eg_acl_block) || mlxsw_sp_flow_block_rule_count(mlxsw_sp_port->eg_flow_block) ||
!list_empty(&mlxsw_sp_port->mall_tc_list)) { !list_empty(&mlxsw_sp_port->mall_tc_list)) {
netdev_err(dev, "Active offloaded tc filters, can't turn hw_tc_offload off\n"); netdev_err(dev, "Active offloaded tc filters, can't turn hw_tc_offload off\n");
return -EINVAL; return -EINVAL;
} }
mlxsw_sp_acl_block_disable_inc(mlxsw_sp_port->ing_acl_block); mlxsw_sp_flow_block_disable_inc(mlxsw_sp_port->ing_flow_block);
mlxsw_sp_acl_block_disable_inc(mlxsw_sp_port->eg_acl_block); mlxsw_sp_flow_block_disable_inc(mlxsw_sp_port->eg_flow_block);
} else { } else {
mlxsw_sp_acl_block_disable_dec(mlxsw_sp_port->ing_acl_block); mlxsw_sp_flow_block_disable_dec(mlxsw_sp_port->ing_flow_block);
mlxsw_sp_acl_block_disable_dec(mlxsw_sp_port->eg_acl_block); mlxsw_sp_flow_block_disable_dec(mlxsw_sp_port->eg_flow_block);
} }
return 0; return 0;
} }
......
...@@ -287,8 +287,8 @@ struct mlxsw_sp_port { ...@@ -287,8 +287,8 @@ struct mlxsw_sp_port {
struct mlxsw_sp_port_vlan *default_vlan; struct mlxsw_sp_port_vlan *default_vlan;
struct mlxsw_sp_qdisc_state *qdisc; struct mlxsw_sp_qdisc_state *qdisc;
unsigned acl_rule_count; unsigned acl_rule_count;
struct mlxsw_sp_acl_block *ing_acl_block; struct mlxsw_sp_flow_block *ing_flow_block;
struct mlxsw_sp_acl_block *eg_acl_block; struct mlxsw_sp_flow_block *eg_flow_block;
struct { struct {
struct delayed_work shaper_dw; struct delayed_work shaper_dw;
struct hwtstamp_config hwtstamp_config; struct hwtstamp_config hwtstamp_config;
...@@ -654,7 +654,7 @@ struct mlxsw_sp_acl_rule_info { ...@@ -654,7 +654,7 @@ struct mlxsw_sp_acl_rule_info {
unsigned int counter_index; unsigned int counter_index;
}; };
struct mlxsw_sp_acl_block; struct mlxsw_sp_flow_block;
struct mlxsw_sp_acl_ruleset; struct mlxsw_sp_acl_ruleset;
/* spectrum_acl.c */ /* spectrum_acl.c */
...@@ -663,7 +663,7 @@ enum mlxsw_sp_acl_profile { ...@@ -663,7 +663,7 @@ enum mlxsw_sp_acl_profile {
MLXSW_SP_ACL_PROFILE_MR, MLXSW_SP_ACL_PROFILE_MR,
}; };
struct mlxsw_sp_acl_block { struct mlxsw_sp_flow_block {
struct list_head binding_list; struct list_head binding_list;
struct mlxsw_sp_acl_ruleset *ruleset_zero; struct mlxsw_sp_acl_ruleset *ruleset_zero;
struct mlxsw_sp *mlxsw_sp; struct mlxsw_sp *mlxsw_sp;
...@@ -679,74 +679,74 @@ struct mlxsw_sp_acl_block { ...@@ -679,74 +679,74 @@ struct mlxsw_sp_acl_block {
struct mlxsw_afk *mlxsw_sp_acl_afk(struct mlxsw_sp_acl *acl); struct mlxsw_afk *mlxsw_sp_acl_afk(struct mlxsw_sp_acl *acl);
static inline struct mlxsw_sp * static inline struct mlxsw_sp *
mlxsw_sp_acl_block_mlxsw_sp(struct mlxsw_sp_acl_block *block) mlxsw_sp_flow_block_mlxsw_sp(struct mlxsw_sp_flow_block *block)
{ {
return block->mlxsw_sp; return block->mlxsw_sp;
} }
static inline unsigned int static inline unsigned int
mlxsw_sp_acl_block_rule_count(const struct mlxsw_sp_acl_block *block) mlxsw_sp_flow_block_rule_count(const struct mlxsw_sp_flow_block *block)
{ {
return block ? block->rule_count : 0; return block ? block->rule_count : 0;
} }
static inline void static inline void
mlxsw_sp_acl_block_disable_inc(struct mlxsw_sp_acl_block *block) mlxsw_sp_flow_block_disable_inc(struct mlxsw_sp_flow_block *block)
{ {
if (block) if (block)
block->disable_count++; block->disable_count++;
} }
static inline void static inline void
mlxsw_sp_acl_block_disable_dec(struct mlxsw_sp_acl_block *block) mlxsw_sp_flow_block_disable_dec(struct mlxsw_sp_flow_block *block)
{ {
if (block) if (block)
block->disable_count--; block->disable_count--;
} }
static inline bool static inline bool
mlxsw_sp_acl_block_disabled(const struct mlxsw_sp_acl_block *block) mlxsw_sp_flow_block_disabled(const struct mlxsw_sp_flow_block *block)
{ {
return block->disable_count; return block->disable_count;
} }
static inline bool static inline bool
mlxsw_sp_acl_block_is_egress_bound(const struct mlxsw_sp_acl_block *block) mlxsw_sp_flow_block_is_egress_bound(const struct mlxsw_sp_flow_block *block)
{ {
return block->egress_binding_count; return block->egress_binding_count;
} }
static inline bool static inline bool
mlxsw_sp_acl_block_is_ingress_bound(const struct mlxsw_sp_acl_block *block) mlxsw_sp_flow_block_is_ingress_bound(const struct mlxsw_sp_flow_block *block)
{ {
return block->ingress_binding_count; return block->ingress_binding_count;
} }
static inline bool static inline bool
mlxsw_sp_acl_block_is_mixed_bound(const struct mlxsw_sp_acl_block *block) mlxsw_sp_flow_block_is_mixed_bound(const struct mlxsw_sp_flow_block *block)
{ {
return block->ingress_binding_count && block->egress_binding_count; return block->ingress_binding_count && block->egress_binding_count;
} }
struct mlxsw_sp_acl_block *mlxsw_sp_acl_block_create(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_flow_block *mlxsw_sp_flow_block_create(struct mlxsw_sp *mlxsw_sp,
struct net *net); struct net *net);
void mlxsw_sp_acl_block_destroy(struct mlxsw_sp_acl_block *block); void mlxsw_sp_flow_block_destroy(struct mlxsw_sp_flow_block *block);
int mlxsw_sp_acl_block_bind(struct mlxsw_sp *mlxsw_sp, int mlxsw_sp_flow_block_bind(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, struct mlxsw_sp_flow_block *block,
struct mlxsw_sp_port *mlxsw_sp_port, struct mlxsw_sp_port *mlxsw_sp_port,
bool ingress, bool ingress,
struct netlink_ext_ack *extack); struct netlink_ext_ack *extack);
int mlxsw_sp_acl_block_unbind(struct mlxsw_sp *mlxsw_sp, int mlxsw_sp_flow_block_unbind(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, struct mlxsw_sp_flow_block *block,
struct mlxsw_sp_port *mlxsw_sp_port, struct mlxsw_sp_port *mlxsw_sp_port,
bool ingress); bool ingress);
struct mlxsw_sp_acl_ruleset * struct mlxsw_sp_acl_ruleset *
mlxsw_sp_acl_ruleset_lookup(struct mlxsw_sp *mlxsw_sp, mlxsw_sp_acl_ruleset_lookup(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, u32 chain_index, struct mlxsw_sp_flow_block *block, u32 chain_index,
enum mlxsw_sp_acl_profile profile); enum mlxsw_sp_acl_profile profile);
struct mlxsw_sp_acl_ruleset * struct mlxsw_sp_acl_ruleset *
mlxsw_sp_acl_ruleset_get(struct mlxsw_sp *mlxsw_sp, mlxsw_sp_acl_ruleset_get(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, u32 chain_index, struct mlxsw_sp_flow_block *block, u32 chain_index,
enum mlxsw_sp_acl_profile profile, enum mlxsw_sp_acl_profile profile,
struct mlxsw_afk_element_usage *tmplt_elusage); struct mlxsw_afk_element_usage *tmplt_elusage);
void mlxsw_sp_acl_ruleset_put(struct mlxsw_sp *mlxsw_sp, void mlxsw_sp_acl_ruleset_put(struct mlxsw_sp *mlxsw_sp,
...@@ -778,7 +778,7 @@ int mlxsw_sp_acl_rulei_act_drop(struct mlxsw_sp_acl_rule_info *rulei, ...@@ -778,7 +778,7 @@ int mlxsw_sp_acl_rulei_act_drop(struct mlxsw_sp_acl_rule_info *rulei,
int mlxsw_sp_acl_rulei_act_trap(struct mlxsw_sp_acl_rule_info *rulei); int mlxsw_sp_acl_rulei_act_trap(struct mlxsw_sp_acl_rule_info *rulei);
int mlxsw_sp_acl_rulei_act_mirror(struct mlxsw_sp *mlxsw_sp, int mlxsw_sp_acl_rulei_act_mirror(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_rule_info *rulei, struct mlxsw_sp_acl_rule_info *rulei,
struct mlxsw_sp_acl_block *block, struct mlxsw_sp_flow_block *block,
struct net_device *out_dev, struct net_device *out_dev,
struct netlink_ext_ack *extack); struct netlink_ext_ack *extack);
int mlxsw_sp_acl_rulei_act_fwd(struct mlxsw_sp *mlxsw_sp, int mlxsw_sp_acl_rulei_act_fwd(struct mlxsw_sp *mlxsw_sp,
...@@ -901,19 +901,19 @@ extern const struct mlxsw_afk_ops mlxsw_sp2_afk_ops; ...@@ -901,19 +901,19 @@ extern const struct mlxsw_afk_ops mlxsw_sp2_afk_ops;
/* spectrum_flower.c */ /* spectrum_flower.c */
int mlxsw_sp_flower_replace(struct mlxsw_sp *mlxsw_sp, int mlxsw_sp_flower_replace(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, struct mlxsw_sp_flow_block *block,
struct flow_cls_offload *f); struct flow_cls_offload *f);
void mlxsw_sp_flower_destroy(struct mlxsw_sp *mlxsw_sp, void mlxsw_sp_flower_destroy(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, struct mlxsw_sp_flow_block *block,
struct flow_cls_offload *f); struct flow_cls_offload *f);
int mlxsw_sp_flower_stats(struct mlxsw_sp *mlxsw_sp, int mlxsw_sp_flower_stats(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, struct mlxsw_sp_flow_block *block,
struct flow_cls_offload *f); struct flow_cls_offload *f);
int mlxsw_sp_flower_tmplt_create(struct mlxsw_sp *mlxsw_sp, int mlxsw_sp_flower_tmplt_create(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, struct mlxsw_sp_flow_block *block,
struct flow_cls_offload *f); struct flow_cls_offload *f);
void mlxsw_sp_flower_tmplt_destroy(struct mlxsw_sp *mlxsw_sp, void mlxsw_sp_flower_tmplt_destroy(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, struct mlxsw_sp_flow_block *block,
struct flow_cls_offload *f); struct flow_cls_offload *f);
/* spectrum_qdisc.c */ /* spectrum_qdisc.c */
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
struct mlxsw_sp2_mr_tcam { struct mlxsw_sp2_mr_tcam {
struct mlxsw_sp *mlxsw_sp; struct mlxsw_sp *mlxsw_sp;
struct mlxsw_sp_acl_block *acl_block; struct mlxsw_sp_flow_block *flow_block;
struct mlxsw_sp_acl_ruleset *ruleset4; struct mlxsw_sp_acl_ruleset *ruleset4;
struct mlxsw_sp_acl_ruleset *ruleset6; struct mlxsw_sp_acl_ruleset *ruleset6;
}; };
...@@ -61,7 +61,7 @@ static int mlxsw_sp2_mr_tcam_ipv4_init(struct mlxsw_sp2_mr_tcam *mr_tcam) ...@@ -61,7 +61,7 @@ static int mlxsw_sp2_mr_tcam_ipv4_init(struct mlxsw_sp2_mr_tcam *mr_tcam)
mlxsw_sp2_mr_tcam_usage_ipv4, mlxsw_sp2_mr_tcam_usage_ipv4,
ARRAY_SIZE(mlxsw_sp2_mr_tcam_usage_ipv4)); ARRAY_SIZE(mlxsw_sp2_mr_tcam_usage_ipv4));
mr_tcam->ruleset4 = mlxsw_sp_acl_ruleset_get(mr_tcam->mlxsw_sp, mr_tcam->ruleset4 = mlxsw_sp_acl_ruleset_get(mr_tcam->mlxsw_sp,
mr_tcam->acl_block, mr_tcam->flow_block,
MLXSW_SP_L3_PROTO_IPV4, MLXSW_SP_L3_PROTO_IPV4,
MLXSW_SP_ACL_PROFILE_MR, MLXSW_SP_ACL_PROFILE_MR,
&elusage); &elusage);
...@@ -111,7 +111,7 @@ static int mlxsw_sp2_mr_tcam_ipv6_init(struct mlxsw_sp2_mr_tcam *mr_tcam) ...@@ -111,7 +111,7 @@ static int mlxsw_sp2_mr_tcam_ipv6_init(struct mlxsw_sp2_mr_tcam *mr_tcam)
mlxsw_sp2_mr_tcam_usage_ipv6, mlxsw_sp2_mr_tcam_usage_ipv6,
ARRAY_SIZE(mlxsw_sp2_mr_tcam_usage_ipv6)); ARRAY_SIZE(mlxsw_sp2_mr_tcam_usage_ipv6));
mr_tcam->ruleset6 = mlxsw_sp_acl_ruleset_get(mr_tcam->mlxsw_sp, mr_tcam->ruleset6 = mlxsw_sp_acl_ruleset_get(mr_tcam->mlxsw_sp,
mr_tcam->acl_block, mr_tcam->flow_block,
MLXSW_SP_L3_PROTO_IPV6, MLXSW_SP_L3_PROTO_IPV6,
MLXSW_SP_ACL_PROFILE_MR, MLXSW_SP_ACL_PROFILE_MR,
&elusage); &elusage);
...@@ -289,8 +289,8 @@ static int mlxsw_sp2_mr_tcam_init(struct mlxsw_sp *mlxsw_sp, void *priv) ...@@ -289,8 +289,8 @@ static int mlxsw_sp2_mr_tcam_init(struct mlxsw_sp *mlxsw_sp, void *priv)
int err; int err;
mr_tcam->mlxsw_sp = mlxsw_sp; mr_tcam->mlxsw_sp = mlxsw_sp;
mr_tcam->acl_block = mlxsw_sp_acl_block_create(mlxsw_sp, NULL); mr_tcam->flow_block = mlxsw_sp_flow_block_create(mlxsw_sp, NULL);
if (!mr_tcam->acl_block) if (!mr_tcam->flow_block)
return -ENOMEM; return -ENOMEM;
err = mlxsw_sp2_mr_tcam_ipv4_init(mr_tcam); err = mlxsw_sp2_mr_tcam_ipv4_init(mr_tcam);
...@@ -306,7 +306,7 @@ static int mlxsw_sp2_mr_tcam_init(struct mlxsw_sp *mlxsw_sp, void *priv) ...@@ -306,7 +306,7 @@ static int mlxsw_sp2_mr_tcam_init(struct mlxsw_sp *mlxsw_sp, void *priv)
err_ipv6_init: err_ipv6_init:
mlxsw_sp2_mr_tcam_ipv4_fini(mr_tcam); mlxsw_sp2_mr_tcam_ipv4_fini(mr_tcam);
err_ipv4_init: err_ipv4_init:
mlxsw_sp_acl_block_destroy(mr_tcam->acl_block); mlxsw_sp_flow_block_destroy(mr_tcam->flow_block);
return err; return err;
} }
...@@ -316,7 +316,7 @@ static void mlxsw_sp2_mr_tcam_fini(void *priv) ...@@ -316,7 +316,7 @@ static void mlxsw_sp2_mr_tcam_fini(void *priv)
mlxsw_sp2_mr_tcam_ipv6_fini(mr_tcam); mlxsw_sp2_mr_tcam_ipv6_fini(mr_tcam);
mlxsw_sp2_mr_tcam_ipv4_fini(mr_tcam); mlxsw_sp2_mr_tcam_ipv4_fini(mr_tcam);
mlxsw_sp_acl_block_destroy(mr_tcam->acl_block); mlxsw_sp_flow_block_destroy(mr_tcam->flow_block);
} }
const struct mlxsw_sp_mr_tcam_ops mlxsw_sp2_mr_tcam_ops = { const struct mlxsw_sp_mr_tcam_ops mlxsw_sp2_mr_tcam_ops = {
......
...@@ -40,7 +40,7 @@ struct mlxsw_afk *mlxsw_sp_acl_afk(struct mlxsw_sp_acl *acl) ...@@ -40,7 +40,7 @@ struct mlxsw_afk *mlxsw_sp_acl_afk(struct mlxsw_sp_acl *acl)
return acl->afk; return acl->afk;
} }
struct mlxsw_sp_acl_block_binding { struct mlxsw_sp_flow_block_binding {
struct list_head list; struct list_head list;
struct net_device *dev; struct net_device *dev;
struct mlxsw_sp_port *mlxsw_sp_port; struct mlxsw_sp_port *mlxsw_sp_port;
...@@ -48,7 +48,7 @@ struct mlxsw_sp_acl_block_binding { ...@@ -48,7 +48,7 @@ struct mlxsw_sp_acl_block_binding {
}; };
struct mlxsw_sp_acl_ruleset_ht_key { struct mlxsw_sp_acl_ruleset_ht_key {
struct mlxsw_sp_acl_block *block; struct mlxsw_sp_flow_block *block;
u32 chain_index; u32 chain_index;
const struct mlxsw_sp_acl_profile_ops *ops; const struct mlxsw_sp_acl_profile_ops *ops;
}; };
...@@ -103,8 +103,8 @@ mlxsw_sp_acl_ruleset_is_singular(const struct mlxsw_sp_acl_ruleset *ruleset) ...@@ -103,8 +103,8 @@ mlxsw_sp_acl_ruleset_is_singular(const struct mlxsw_sp_acl_ruleset *ruleset)
static int static int
mlxsw_sp_acl_ruleset_bind(struct mlxsw_sp *mlxsw_sp, mlxsw_sp_acl_ruleset_bind(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, struct mlxsw_sp_flow_block *block,
struct mlxsw_sp_acl_block_binding *binding) struct mlxsw_sp_flow_block_binding *binding)
{ {
struct mlxsw_sp_acl_ruleset *ruleset = block->ruleset_zero; struct mlxsw_sp_acl_ruleset *ruleset = block->ruleset_zero;
const struct mlxsw_sp_acl_profile_ops *ops = ruleset->ht_key.ops; const struct mlxsw_sp_acl_profile_ops *ops = ruleset->ht_key.ops;
...@@ -115,8 +115,8 @@ mlxsw_sp_acl_ruleset_bind(struct mlxsw_sp *mlxsw_sp, ...@@ -115,8 +115,8 @@ mlxsw_sp_acl_ruleset_bind(struct mlxsw_sp *mlxsw_sp,
static void static void
mlxsw_sp_acl_ruleset_unbind(struct mlxsw_sp *mlxsw_sp, mlxsw_sp_acl_ruleset_unbind(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, struct mlxsw_sp_flow_block *block,
struct mlxsw_sp_acl_block_binding *binding) struct mlxsw_sp_flow_block_binding *binding)
{ {
struct mlxsw_sp_acl_ruleset *ruleset = block->ruleset_zero; struct mlxsw_sp_acl_ruleset *ruleset = block->ruleset_zero;
const struct mlxsw_sp_acl_profile_ops *ops = ruleset->ht_key.ops; const struct mlxsw_sp_acl_profile_ops *ops = ruleset->ht_key.ops;
...@@ -126,7 +126,7 @@ mlxsw_sp_acl_ruleset_unbind(struct mlxsw_sp *mlxsw_sp, ...@@ -126,7 +126,7 @@ mlxsw_sp_acl_ruleset_unbind(struct mlxsw_sp *mlxsw_sp,
} }
static bool static bool
mlxsw_sp_acl_ruleset_block_bound(const struct mlxsw_sp_acl_block *block) mlxsw_sp_acl_ruleset_block_bound(const struct mlxsw_sp_flow_block *block)
{ {
return block->ruleset_zero; return block->ruleset_zero;
} }
...@@ -134,9 +134,9 @@ mlxsw_sp_acl_ruleset_block_bound(const struct mlxsw_sp_acl_block *block) ...@@ -134,9 +134,9 @@ mlxsw_sp_acl_ruleset_block_bound(const struct mlxsw_sp_acl_block *block)
static int static int
mlxsw_sp_acl_ruleset_block_bind(struct mlxsw_sp *mlxsw_sp, mlxsw_sp_acl_ruleset_block_bind(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_ruleset *ruleset, struct mlxsw_sp_acl_ruleset *ruleset,
struct mlxsw_sp_acl_block *block) struct mlxsw_sp_flow_block *block)
{ {
struct mlxsw_sp_acl_block_binding *binding; struct mlxsw_sp_flow_block_binding *binding;
int err; int err;
block->ruleset_zero = ruleset; block->ruleset_zero = ruleset;
...@@ -159,19 +159,19 @@ mlxsw_sp_acl_ruleset_block_bind(struct mlxsw_sp *mlxsw_sp, ...@@ -159,19 +159,19 @@ mlxsw_sp_acl_ruleset_block_bind(struct mlxsw_sp *mlxsw_sp,
static void static void
mlxsw_sp_acl_ruleset_block_unbind(struct mlxsw_sp *mlxsw_sp, mlxsw_sp_acl_ruleset_block_unbind(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_ruleset *ruleset, struct mlxsw_sp_acl_ruleset *ruleset,
struct mlxsw_sp_acl_block *block) struct mlxsw_sp_flow_block *block)
{ {
struct mlxsw_sp_acl_block_binding *binding; struct mlxsw_sp_flow_block_binding *binding;
list_for_each_entry(binding, &block->binding_list, list) list_for_each_entry(binding, &block->binding_list, list)
mlxsw_sp_acl_ruleset_unbind(mlxsw_sp, block, binding); mlxsw_sp_acl_ruleset_unbind(mlxsw_sp, block, binding);
block->ruleset_zero = NULL; block->ruleset_zero = NULL;
} }
struct mlxsw_sp_acl_block *mlxsw_sp_acl_block_create(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_flow_block *
struct net *net) mlxsw_sp_flow_block_create(struct mlxsw_sp *mlxsw_sp, struct net *net)
{ {
struct mlxsw_sp_acl_block *block; struct mlxsw_sp_flow_block *block;
block = kzalloc(sizeof(*block), GFP_KERNEL); block = kzalloc(sizeof(*block), GFP_KERNEL);
if (!block) if (!block)
...@@ -182,17 +182,17 @@ struct mlxsw_sp_acl_block *mlxsw_sp_acl_block_create(struct mlxsw_sp *mlxsw_sp, ...@@ -182,17 +182,17 @@ struct mlxsw_sp_acl_block *mlxsw_sp_acl_block_create(struct mlxsw_sp *mlxsw_sp,
return block; return block;
} }
void mlxsw_sp_acl_block_destroy(struct mlxsw_sp_acl_block *block) void mlxsw_sp_flow_block_destroy(struct mlxsw_sp_flow_block *block)
{ {
WARN_ON(!list_empty(&block->binding_list)); WARN_ON(!list_empty(&block->binding_list));
kfree(block); kfree(block);
} }
static struct mlxsw_sp_acl_block_binding * static struct mlxsw_sp_flow_block_binding *
mlxsw_sp_acl_block_lookup(struct mlxsw_sp_acl_block *block, mlxsw_sp_flow_block_lookup(struct mlxsw_sp_flow_block *block,
struct mlxsw_sp_port *mlxsw_sp_port, bool ingress) struct mlxsw_sp_port *mlxsw_sp_port, bool ingress)
{ {
struct mlxsw_sp_acl_block_binding *binding; struct mlxsw_sp_flow_block_binding *binding;
list_for_each_entry(binding, &block->binding_list, list) list_for_each_entry(binding, &block->binding_list, list)
if (binding->mlxsw_sp_port == mlxsw_sp_port && if (binding->mlxsw_sp_port == mlxsw_sp_port &&
...@@ -201,16 +201,16 @@ mlxsw_sp_acl_block_lookup(struct mlxsw_sp_acl_block *block, ...@@ -201,16 +201,16 @@ mlxsw_sp_acl_block_lookup(struct mlxsw_sp_acl_block *block,
return NULL; return NULL;
} }
int mlxsw_sp_acl_block_bind(struct mlxsw_sp *mlxsw_sp, int mlxsw_sp_flow_block_bind(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, struct mlxsw_sp_flow_block *block,
struct mlxsw_sp_port *mlxsw_sp_port, struct mlxsw_sp_port *mlxsw_sp_port,
bool ingress, bool ingress,
struct netlink_ext_ack *extack) struct netlink_ext_ack *extack)
{ {
struct mlxsw_sp_acl_block_binding *binding; struct mlxsw_sp_flow_block_binding *binding;
int err; int err;
if (WARN_ON(mlxsw_sp_acl_block_lookup(block, mlxsw_sp_port, ingress))) if (WARN_ON(mlxsw_sp_flow_block_lookup(block, mlxsw_sp_port, ingress)))
return -EEXIST; return -EEXIST;
if (ingress && block->ingress_blocker_rule_count) { if (ingress && block->ingress_blocker_rule_count) {
...@@ -247,14 +247,14 @@ int mlxsw_sp_acl_block_bind(struct mlxsw_sp *mlxsw_sp, ...@@ -247,14 +247,14 @@ int mlxsw_sp_acl_block_bind(struct mlxsw_sp *mlxsw_sp,
return err; return err;
} }
int mlxsw_sp_acl_block_unbind(struct mlxsw_sp *mlxsw_sp, int mlxsw_sp_flow_block_unbind(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, struct mlxsw_sp_flow_block *block,
struct mlxsw_sp_port *mlxsw_sp_port, struct mlxsw_sp_port *mlxsw_sp_port,
bool ingress) bool ingress)
{ {
struct mlxsw_sp_acl_block_binding *binding; struct mlxsw_sp_flow_block_binding *binding;
binding = mlxsw_sp_acl_block_lookup(block, mlxsw_sp_port, ingress); binding = mlxsw_sp_flow_block_lookup(block, mlxsw_sp_port, ingress);
if (!binding) if (!binding)
return -ENOENT; return -ENOENT;
...@@ -274,7 +274,7 @@ int mlxsw_sp_acl_block_unbind(struct mlxsw_sp *mlxsw_sp, ...@@ -274,7 +274,7 @@ int mlxsw_sp_acl_block_unbind(struct mlxsw_sp *mlxsw_sp,
static struct mlxsw_sp_acl_ruleset * static struct mlxsw_sp_acl_ruleset *
mlxsw_sp_acl_ruleset_create(struct mlxsw_sp *mlxsw_sp, mlxsw_sp_acl_ruleset_create(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, u32 chain_index, struct mlxsw_sp_flow_block *block, u32 chain_index,
const struct mlxsw_sp_acl_profile_ops *ops, const struct mlxsw_sp_acl_profile_ops *ops,
struct mlxsw_afk_element_usage *tmplt_elusage) struct mlxsw_afk_element_usage *tmplt_elusage)
{ {
...@@ -345,7 +345,7 @@ static void mlxsw_sp_acl_ruleset_ref_dec(struct mlxsw_sp *mlxsw_sp, ...@@ -345,7 +345,7 @@ static void mlxsw_sp_acl_ruleset_ref_dec(struct mlxsw_sp *mlxsw_sp,
static struct mlxsw_sp_acl_ruleset * static struct mlxsw_sp_acl_ruleset *
__mlxsw_sp_acl_ruleset_lookup(struct mlxsw_sp_acl *acl, __mlxsw_sp_acl_ruleset_lookup(struct mlxsw_sp_acl *acl,
struct mlxsw_sp_acl_block *block, u32 chain_index, struct mlxsw_sp_flow_block *block, u32 chain_index,
const struct mlxsw_sp_acl_profile_ops *ops) const struct mlxsw_sp_acl_profile_ops *ops)
{ {
struct mlxsw_sp_acl_ruleset_ht_key ht_key; struct mlxsw_sp_acl_ruleset_ht_key ht_key;
...@@ -360,7 +360,7 @@ __mlxsw_sp_acl_ruleset_lookup(struct mlxsw_sp_acl *acl, ...@@ -360,7 +360,7 @@ __mlxsw_sp_acl_ruleset_lookup(struct mlxsw_sp_acl *acl,
struct mlxsw_sp_acl_ruleset * struct mlxsw_sp_acl_ruleset *
mlxsw_sp_acl_ruleset_lookup(struct mlxsw_sp *mlxsw_sp, mlxsw_sp_acl_ruleset_lookup(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, u32 chain_index, struct mlxsw_sp_flow_block *block, u32 chain_index,
enum mlxsw_sp_acl_profile profile) enum mlxsw_sp_acl_profile profile)
{ {
const struct mlxsw_sp_acl_profile_ops *ops; const struct mlxsw_sp_acl_profile_ops *ops;
...@@ -378,7 +378,7 @@ mlxsw_sp_acl_ruleset_lookup(struct mlxsw_sp *mlxsw_sp, ...@@ -378,7 +378,7 @@ mlxsw_sp_acl_ruleset_lookup(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_ruleset * struct mlxsw_sp_acl_ruleset *
mlxsw_sp_acl_ruleset_get(struct mlxsw_sp *mlxsw_sp, mlxsw_sp_acl_ruleset_get(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, u32 chain_index, struct mlxsw_sp_flow_block *block, u32 chain_index,
enum mlxsw_sp_acl_profile profile, enum mlxsw_sp_acl_profile profile,
struct mlxsw_afk_element_usage *tmplt_elusage) struct mlxsw_afk_element_usage *tmplt_elusage)
{ {
...@@ -541,11 +541,11 @@ int mlxsw_sp_acl_rulei_act_fwd(struct mlxsw_sp *mlxsw_sp, ...@@ -541,11 +541,11 @@ int mlxsw_sp_acl_rulei_act_fwd(struct mlxsw_sp *mlxsw_sp,
int mlxsw_sp_acl_rulei_act_mirror(struct mlxsw_sp *mlxsw_sp, int mlxsw_sp_acl_rulei_act_mirror(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_rule_info *rulei, struct mlxsw_sp_acl_rule_info *rulei,
struct mlxsw_sp_acl_block *block, struct mlxsw_sp_flow_block *block,
struct net_device *out_dev, struct net_device *out_dev,
struct netlink_ext_ack *extack) struct netlink_ext_ack *extack)
{ {
struct mlxsw_sp_acl_block_binding *binding; struct mlxsw_sp_flow_block_binding *binding;
struct mlxsw_sp_port *in_port; struct mlxsw_sp_port *in_port;
if (!list_is_singular(&block->binding_list)) { if (!list_is_singular(&block->binding_list)) {
...@@ -553,7 +553,7 @@ int mlxsw_sp_acl_rulei_act_mirror(struct mlxsw_sp *mlxsw_sp, ...@@ -553,7 +553,7 @@ int mlxsw_sp_acl_rulei_act_mirror(struct mlxsw_sp *mlxsw_sp,
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
binding = list_first_entry(&block->binding_list, binding = list_first_entry(&block->binding_list,
struct mlxsw_sp_acl_block_binding, list); struct mlxsw_sp_flow_block_binding, list);
in_port = binding->mlxsw_sp_port; in_port = binding->mlxsw_sp_port;
return mlxsw_afa_block_append_mirror(rulei->act_block, return mlxsw_afa_block_append_mirror(rulei->act_block,
...@@ -775,7 +775,7 @@ int mlxsw_sp_acl_rule_add(struct mlxsw_sp *mlxsw_sp, ...@@ -775,7 +775,7 @@ int mlxsw_sp_acl_rule_add(struct mlxsw_sp *mlxsw_sp,
{ {
struct mlxsw_sp_acl_ruleset *ruleset = rule->ruleset; struct mlxsw_sp_acl_ruleset *ruleset = rule->ruleset;
const struct mlxsw_sp_acl_profile_ops *ops = ruleset->ht_key.ops; const struct mlxsw_sp_acl_profile_ops *ops = ruleset->ht_key.ops;
struct mlxsw_sp_acl_block *block = ruleset->ht_key.block; struct mlxsw_sp_flow_block *block = ruleset->ht_key.block;
int err; int err;
err = ops->rule_add(mlxsw_sp, ruleset->priv, rule->priv, rule->rulei); err = ops->rule_add(mlxsw_sp, ruleset->priv, rule->priv, rule->rulei);
...@@ -819,7 +819,7 @@ void mlxsw_sp_acl_rule_del(struct mlxsw_sp *mlxsw_sp, ...@@ -819,7 +819,7 @@ void mlxsw_sp_acl_rule_del(struct mlxsw_sp *mlxsw_sp,
{ {
struct mlxsw_sp_acl_ruleset *ruleset = rule->ruleset; struct mlxsw_sp_acl_ruleset *ruleset = rule->ruleset;
const struct mlxsw_sp_acl_profile_ops *ops = ruleset->ht_key.ops; const struct mlxsw_sp_acl_profile_ops *ops = ruleset->ht_key.ops;
struct mlxsw_sp_acl_block *block = ruleset->ht_key.block; struct mlxsw_sp_flow_block *block = ruleset->ht_key.block;
block->egress_blocker_rule_count -= rule->rulei->egress_bind_blocker; block->egress_blocker_rule_count -= rule->rulei->egress_bind_blocker;
block->ingress_blocker_rule_count -= rule->rulei->ingress_bind_blocker; block->ingress_blocker_rule_count -= rule->rulei->ingress_bind_blocker;
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
#include "core_acl_flex_keys.h" #include "core_acl_flex_keys.h"
static int mlxsw_sp_flower_parse_actions(struct mlxsw_sp *mlxsw_sp, static int mlxsw_sp_flower_parse_actions(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, struct mlxsw_sp_flow_block *block,
struct mlxsw_sp_acl_rule_info *rulei, struct mlxsw_sp_acl_rule_info *rulei,
struct flow_action *flow_action, struct flow_action *flow_action,
struct netlink_ext_ack *extack) struct netlink_ext_ack *extack)
...@@ -53,11 +53,11 @@ static int mlxsw_sp_flower_parse_actions(struct mlxsw_sp *mlxsw_sp, ...@@ -53,11 +53,11 @@ static int mlxsw_sp_flower_parse_actions(struct mlxsw_sp *mlxsw_sp,
case FLOW_ACTION_DROP: { case FLOW_ACTION_DROP: {
bool ingress; bool ingress;
if (mlxsw_sp_acl_block_is_mixed_bound(block)) { if (mlxsw_sp_flow_block_is_mixed_bound(block)) {
NL_SET_ERR_MSG_MOD(extack, "Drop action is not supported when block is bound to ingress and egress"); NL_SET_ERR_MSG_MOD(extack, "Drop action is not supported when block is bound to ingress and egress");
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
ingress = mlxsw_sp_acl_block_is_ingress_bound(block); ingress = mlxsw_sp_flow_block_is_ingress_bound(block);
err = mlxsw_sp_acl_rulei_act_drop(rulei, ingress, err = mlxsw_sp_acl_rulei_act_drop(rulei, ingress,
act->cookie, extack); act->cookie, extack);
if (err) { if (err) {
...@@ -106,7 +106,7 @@ static int mlxsw_sp_flower_parse_actions(struct mlxsw_sp *mlxsw_sp, ...@@ -106,7 +106,7 @@ static int mlxsw_sp_flower_parse_actions(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_fid *fid; struct mlxsw_sp_fid *fid;
u16 fid_index; u16 fid_index;
if (mlxsw_sp_acl_block_is_egress_bound(block)) { if (mlxsw_sp_flow_block_is_egress_bound(block)) {
NL_SET_ERR_MSG_MOD(extack, "Redirect action is not supported on egress"); NL_SET_ERR_MSG_MOD(extack, "Redirect action is not supported on egress");
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
...@@ -190,7 +190,7 @@ static int mlxsw_sp_flower_parse_actions(struct mlxsw_sp *mlxsw_sp, ...@@ -190,7 +190,7 @@ static int mlxsw_sp_flower_parse_actions(struct mlxsw_sp *mlxsw_sp,
static int mlxsw_sp_flower_parse_meta(struct mlxsw_sp_acl_rule_info *rulei, static int mlxsw_sp_flower_parse_meta(struct mlxsw_sp_acl_rule_info *rulei,
struct flow_cls_offload *f, struct flow_cls_offload *f,
struct mlxsw_sp_acl_block *block) struct mlxsw_sp_flow_block *block)
{ {
struct flow_rule *rule = flow_cls_offload_flow_rule(f); struct flow_rule *rule = flow_cls_offload_flow_rule(f);
struct mlxsw_sp_port *mlxsw_sp_port; struct mlxsw_sp_port *mlxsw_sp_port;
...@@ -371,7 +371,7 @@ static int mlxsw_sp_flower_parse_ip(struct mlxsw_sp *mlxsw_sp, ...@@ -371,7 +371,7 @@ static int mlxsw_sp_flower_parse_ip(struct mlxsw_sp *mlxsw_sp,
} }
static int mlxsw_sp_flower_parse(struct mlxsw_sp *mlxsw_sp, static int mlxsw_sp_flower_parse(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, struct mlxsw_sp_flow_block *block,
struct mlxsw_sp_acl_rule_info *rulei, struct mlxsw_sp_acl_rule_info *rulei,
struct flow_cls_offload *f) struct flow_cls_offload *f)
{ {
...@@ -460,7 +460,7 @@ static int mlxsw_sp_flower_parse(struct mlxsw_sp *mlxsw_sp, ...@@ -460,7 +460,7 @@ static int mlxsw_sp_flower_parse(struct mlxsw_sp *mlxsw_sp,
struct flow_match_vlan match; struct flow_match_vlan match;
flow_rule_match_vlan(rule, &match); flow_rule_match_vlan(rule, &match);
if (mlxsw_sp_acl_block_is_egress_bound(block)) { if (mlxsw_sp_flow_block_is_egress_bound(block)) {
NL_SET_ERR_MSG_MOD(f->common.extack, "vlan_id key is not supported on egress"); NL_SET_ERR_MSG_MOD(f->common.extack, "vlan_id key is not supported on egress");
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
...@@ -505,7 +505,7 @@ static int mlxsw_sp_flower_parse(struct mlxsw_sp *mlxsw_sp, ...@@ -505,7 +505,7 @@ static int mlxsw_sp_flower_parse(struct mlxsw_sp *mlxsw_sp,
} }
int mlxsw_sp_flower_replace(struct mlxsw_sp *mlxsw_sp, int mlxsw_sp_flower_replace(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, struct mlxsw_sp_flow_block *block,
struct flow_cls_offload *f) struct flow_cls_offload *f)
{ {
struct mlxsw_sp_acl_rule_info *rulei; struct mlxsw_sp_acl_rule_info *rulei;
...@@ -552,7 +552,7 @@ int mlxsw_sp_flower_replace(struct mlxsw_sp *mlxsw_sp, ...@@ -552,7 +552,7 @@ int mlxsw_sp_flower_replace(struct mlxsw_sp *mlxsw_sp,
} }
void mlxsw_sp_flower_destroy(struct mlxsw_sp *mlxsw_sp, void mlxsw_sp_flower_destroy(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, struct mlxsw_sp_flow_block *block,
struct flow_cls_offload *f) struct flow_cls_offload *f)
{ {
struct mlxsw_sp_acl_ruleset *ruleset; struct mlxsw_sp_acl_ruleset *ruleset;
...@@ -574,7 +574,7 @@ void mlxsw_sp_flower_destroy(struct mlxsw_sp *mlxsw_sp, ...@@ -574,7 +574,7 @@ void mlxsw_sp_flower_destroy(struct mlxsw_sp *mlxsw_sp,
} }
int mlxsw_sp_flower_stats(struct mlxsw_sp *mlxsw_sp, int mlxsw_sp_flower_stats(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, struct mlxsw_sp_flow_block *block,
struct flow_cls_offload *f) struct flow_cls_offload *f)
{ {
enum flow_action_hw_stats used_hw_stats = FLOW_ACTION_HW_STATS_DISABLED; enum flow_action_hw_stats used_hw_stats = FLOW_ACTION_HW_STATS_DISABLED;
...@@ -611,7 +611,7 @@ int mlxsw_sp_flower_stats(struct mlxsw_sp *mlxsw_sp, ...@@ -611,7 +611,7 @@ int mlxsw_sp_flower_stats(struct mlxsw_sp *mlxsw_sp,
} }
int mlxsw_sp_flower_tmplt_create(struct mlxsw_sp *mlxsw_sp, int mlxsw_sp_flower_tmplt_create(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, struct mlxsw_sp_flow_block *block,
struct flow_cls_offload *f) struct flow_cls_offload *f)
{ {
struct mlxsw_sp_acl_ruleset *ruleset; struct mlxsw_sp_acl_ruleset *ruleset;
...@@ -632,7 +632,7 @@ int mlxsw_sp_flower_tmplt_create(struct mlxsw_sp *mlxsw_sp, ...@@ -632,7 +632,7 @@ int mlxsw_sp_flower_tmplt_create(struct mlxsw_sp *mlxsw_sp,
} }
void mlxsw_sp_flower_tmplt_destroy(struct mlxsw_sp *mlxsw_sp, void mlxsw_sp_flower_tmplt_destroy(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_block *block, struct mlxsw_sp_flow_block *block,
struct flow_cls_offload *f) struct flow_cls_offload *f)
{ {
struct mlxsw_sp_acl_ruleset *ruleset; struct mlxsw_sp_acl_ruleset *ruleset;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment