/linux/drivers/net/ethernet/mellanox/mlxsw/ |
H A D | spectrum_acl.c | 71 struct mlxsw_sp_acl_rule_info *rulei; member 318 struct mlxsw_sp_acl_rule_info *rulei; in mlxsw_sp_acl_rulei_create() local 321 rulei = kzalloc(sizeof(*rulei), GFP_KERNEL); in mlxsw_sp_acl_rulei_create() 322 if (!rulei) in mlxsw_sp_acl_rulei_create() 326 rulei->act_block = afa_block; in mlxsw_sp_acl_rulei_create() 327 return rulei; in mlxsw_sp_acl_rulei_create() 330 rulei->act_block = mlxsw_afa_block_create(acl->mlxsw_sp->afa); in mlxsw_sp_acl_rulei_create() 331 if (IS_ERR(rulei->act_block)) { in mlxsw_sp_acl_rulei_create() 332 err = PTR_ERR(rulei->act_block); in mlxsw_sp_acl_rulei_create() 335 rulei->action_created = 1; in mlxsw_sp_acl_rulei_create() [all …]
|
H A D | spectrum_flower.c | 60 struct mlxsw_sp_acl_rule_info *rulei, in mlxsw_sp_flower_parse_actions() argument 80 err = mlxsw_sp_acl_rulei_act_count(mlxsw_sp, rulei, extack); in mlxsw_sp_flower_parse_actions() 91 err = mlxsw_sp_acl_rulei_act_terminate(rulei); in mlxsw_sp_flower_parse_actions() 105 err = mlxsw_sp_acl_rulei_act_drop(rulei, ingress, in mlxsw_sp_flower_parse_actions() 117 rulei->egress_bind_blocker = 1; in mlxsw_sp_flower_parse_actions() 119 rulei->ingress_bind_blocker = 1; in mlxsw_sp_flower_parse_actions() 123 err = mlxsw_sp_acl_rulei_act_trap(rulei); in mlxsw_sp_flower_parse_actions() 141 err = mlxsw_sp_acl_rulei_act_jump(rulei, group_id); in mlxsw_sp_flower_parse_actions() 161 rulei->egress_bind_blocker = 1; in mlxsw_sp_flower_parse_actions() 166 err = mlxsw_sp_acl_rulei_act_ignore(mlxsw_sp, rulei, in mlxsw_sp_flower_parse_actions() [all …]
|
H A D | spectrum1_acl_tcam.c | 18 struct mlxsw_sp_acl_rule_info *rulei; member 64 struct mlxsw_sp_acl_rule_info *rulei; in mlxsw_sp1_acl_ctcam_region_catchall_add() local 70 rulei = mlxsw_sp_acl_rulei_create(mlxsw_sp->acl, NULL); in mlxsw_sp1_acl_ctcam_region_catchall_add() 71 if (IS_ERR(rulei)) { in mlxsw_sp1_acl_ctcam_region_catchall_add() 72 err = PTR_ERR(rulei); in mlxsw_sp1_acl_ctcam_region_catchall_add() 75 err = mlxsw_sp_acl_rulei_act_continue(rulei); in mlxsw_sp1_acl_ctcam_region_catchall_add() 78 err = mlxsw_sp_acl_rulei_commit(rulei); in mlxsw_sp1_acl_ctcam_region_catchall_add() 84 rulei, false); in mlxsw_sp1_acl_ctcam_region_catchall_add() 87 region->catchall.rulei = rulei; in mlxsw_sp1_acl_ctcam_region_catchall_add() 93 mlxsw_sp_acl_rulei_destroy(mlxsw_sp, rulei); in mlxsw_sp1_acl_ctcam_region_catchall_add() [all …]
|
H A D | spectrum2_mr_tcam.c | 142 mlxsw_sp2_mr_tcam_rule_parse4(struct mlxsw_sp_acl_rule_info *rulei, in mlxsw_sp2_mr_tcam_rule_parse4() argument 145 mlxsw_sp_acl_rulei_keymask_u32(rulei, MLXSW_AFK_ELEMENT_VIRT_ROUTER, in mlxsw_sp2_mr_tcam_rule_parse4() 147 mlxsw_sp_acl_rulei_keymask_buf(rulei, MLXSW_AFK_ELEMENT_SRC_IP_0_31, in mlxsw_sp2_mr_tcam_rule_parse4() 150 mlxsw_sp_acl_rulei_keymask_buf(rulei, MLXSW_AFK_ELEMENT_DST_IP_0_31, in mlxsw_sp2_mr_tcam_rule_parse4() 156 mlxsw_sp2_mr_tcam_rule_parse6(struct mlxsw_sp_acl_rule_info *rulei, in mlxsw_sp2_mr_tcam_rule_parse6() argument 159 mlxsw_sp_acl_rulei_keymask_u32(rulei, MLXSW_AFK_ELEMENT_VIRT_ROUTER_0_3, in mlxsw_sp2_mr_tcam_rule_parse6() 161 mlxsw_sp_acl_rulei_keymask_u32(rulei, MLXSW_AFK_ELEMENT_VIRT_ROUTER_4_7, in mlxsw_sp2_mr_tcam_rule_parse6() 163 mlxsw_sp_acl_rulei_keymask_u32(rulei, in mlxsw_sp2_mr_tcam_rule_parse6() 166 mlxsw_sp_acl_rulei_keymask_buf(rulei, MLXSW_AFK_ELEMENT_SRC_IP_96_127, in mlxsw_sp2_mr_tcam_rule_parse6() 169 mlxsw_sp_acl_rulei_keymask_buf(rulei, MLXSW_AFK_ELEMENT_SRC_IP_64_95, in mlxsw_sp2_mr_tcam_rule_parse6() [all …]
|
H A D | spectrum_acl_ctcam.c | 43 struct mlxsw_sp_acl_rule_info *rulei, in mlxsw_sp_acl_ctcam_region_entry_insert() argument 55 err = mlxsw_sp_acl_tcam_priority_get(mlxsw_sp, rulei, &priority, in mlxsw_sp_acl_ctcam_region_entry_insert() 65 mlxsw_afk_encode(afk, region->key_info, &rulei->values, key, mask); in mlxsw_sp_acl_ctcam_region_entry_insert() 72 act_set = mlxsw_afa_block_first_set(rulei->act_block); in mlxsw_sp_acl_ctcam_region_entry_insert() 192 struct mlxsw_sp_acl_rule_info *rulei, in mlxsw_sp_acl_ctcam_entry_add() argument 203 rulei, fillup_priority); in mlxsw_sp_acl_ctcam_entry_add() 227 struct mlxsw_sp_acl_rule_info *rulei) in mlxsw_sp_acl_ctcam_entry_action_replace() argument 231 rulei->act_block, in mlxsw_sp_acl_ctcam_entry_action_replace() 232 rulei->priority); in mlxsw_sp_acl_ctcam_entry_action_replace()
|
H A D | spectrum_acl_atcam.c | 381 struct mlxsw_sp_acl_rule_info *rulei) in mlxsw_sp_acl_atcam_region_entry_insert() argument 390 err = mlxsw_sp_acl_tcam_priority_get(mlxsw_sp, rulei, &priority, true); in mlxsw_sp_acl_atcam_region_entry_insert() 400 kvdl_index = mlxsw_afa_block_first_kvdl_index(rulei->act_block); in mlxsw_sp_acl_atcam_region_entry_insert() 446 struct mlxsw_sp_acl_rule_info *rulei) in mlxsw_sp_acl_atcam_region_entry_action_replace() argument 455 err = mlxsw_sp_acl_tcam_priority_get(mlxsw_sp, rulei, &priority, true); in mlxsw_sp_acl_atcam_region_entry_action_replace() 458 kvdl_index = mlxsw_afa_block_first_kvdl_index(rulei->act_block); in mlxsw_sp_acl_atcam_region_entry_action_replace() 474 struct mlxsw_sp_acl_rule_info *rulei) in __mlxsw_sp_acl_atcam_entry_add() argument 483 mlxsw_afk_encode(afk, region->key_info, &rulei->values, in __mlxsw_sp_acl_atcam_entry_add() 525 rulei); in __mlxsw_sp_acl_atcam_entry_add() 559 struct mlxsw_sp_acl_rule_info *rulei) in __mlxsw_sp_acl_atcam_entry_action_replace() argument [all …]
|
H A D | spectrum_acl_tcam.h | 34 struct mlxsw_sp_acl_rule_info *rulei, 54 struct mlxsw_sp_acl_rule_info *rulei); 57 struct mlxsw_sp_acl_rule_info *rulei); 126 struct mlxsw_sp_acl_rule_info *rulei, 135 struct mlxsw_sp_acl_rule_info *rulei); 224 struct mlxsw_sp_acl_rule_info *rulei); 232 struct mlxsw_sp_acl_rule_info *rulei);
|
H A D | spectrum2_acl_tcam.c | 213 struct mlxsw_sp_acl_rule_info *rulei) in mlxsw_sp2_acl_tcam_entry_add() argument 219 entry->act_block = rulei->act_block; in mlxsw_sp2_acl_tcam_entry_add() 222 rulei); in mlxsw_sp2_acl_tcam_entry_add() 240 struct mlxsw_sp_acl_rule_info *rulei) in mlxsw_sp2_acl_tcam_entry_action_replace() argument 245 entry->act_block = rulei->act_block; in mlxsw_sp2_acl_tcam_entry_action_replace() 248 &entry->aentry, rulei); in mlxsw_sp2_acl_tcam_entry_action_replace()
|
H A D | spectrum.h | 1004 struct mlxsw_sp_acl_rule_info *rulei); 1005 int mlxsw_sp_acl_rulei_commit(struct mlxsw_sp_acl_rule_info *rulei); 1006 void mlxsw_sp_acl_rulei_priority(struct mlxsw_sp_acl_rule_info *rulei, 1008 void mlxsw_sp_acl_rulei_keymask_u32(struct mlxsw_sp_acl_rule_info *rulei, 1011 void mlxsw_sp_acl_rulei_keymask_buf(struct mlxsw_sp_acl_rule_info *rulei, 1015 int mlxsw_sp_acl_rulei_act_continue(struct mlxsw_sp_acl_rule_info *rulei); 1016 int mlxsw_sp_acl_rulei_act_jump(struct mlxsw_sp_acl_rule_info *rulei, 1018 int mlxsw_sp_acl_rulei_act_terminate(struct mlxsw_sp_acl_rule_info *rulei); 1019 int mlxsw_sp_acl_rulei_act_drop(struct mlxsw_sp_acl_rule_info *rulei, 1023 int mlxsw_sp_acl_rulei_act_trap(struct mlxsw_sp_acl_rule_info *rulei); [all …]
|
H A D | spectrum_acl_tcam.c | 36 struct mlxsw_sp_acl_rule_info *rulei, in mlxsw_sp_acl_tcam_priority_get() argument 51 if (rulei->priority >= max_priority) in mlxsw_sp_acl_tcam_priority_get() 55 *priority = max_priority - rulei->priority; in mlxsw_sp_acl_tcam_priority_get() 197 struct mlxsw_sp_acl_rule_info *rulei; member 1064 entry->priv, ventry->rulei); in mlxsw_sp_acl_tcam_entry_create() 1089 struct mlxsw_sp_acl_rule_info *rulei) in mlxsw_sp_acl_tcam_entry_action_replace() argument 1094 entry->priv, rulei); in mlxsw_sp_acl_tcam_entry_action_replace() 1111 struct mlxsw_sp_acl_rule_info *rulei) in mlxsw_sp_acl_tcam_ventry_add() argument 1117 vchunk = mlxsw_sp_acl_tcam_vchunk_get(mlxsw_sp, vgroup, rulei->priority, in mlxsw_sp_acl_tcam_ventry_add() 1118 &rulei->values.elusage); in mlxsw_sp_acl_tcam_ventry_add() [all …]
|