Lines Matching refs:scen

22 static void ice_acl_init_entry(struct ice_acl_scen *scen)  in ice_acl_init_entry()  argument
28 scen->first_idx[ICE_ACL_PRIO_LOW] = scen->num_entry - 1; in ice_acl_init_entry()
29 scen->first_idx[ICE_ACL_PRIO_NORMAL] = scen->num_entry - in ice_acl_init_entry()
30 scen->num_entry / 4 - 1; in ice_acl_init_entry()
31 scen->first_idx[ICE_ACL_PRIO_HIGH] = 0; in ice_acl_init_entry()
33 scen->last_idx[ICE_ACL_PRIO_LOW] = scen->num_entry - in ice_acl_init_entry()
34 scen->num_entry / 4; in ice_acl_init_entry()
35 scen->last_idx[ICE_ACL_PRIO_NORMAL] = scen->num_entry / 4; in ice_acl_init_entry()
36 scen->last_idx[ICE_ACL_PRIO_HIGH] = scen->num_entry / 4 - 1; in ice_acl_init_entry()
50 ice_acl_scen_assign_entry_idx(struct ice_acl_scen *scen, in ice_acl_scen_assign_entry_idx() argument
59 first_idx = scen->first_idx[prio]; in ice_acl_scen_assign_entry_idx()
60 last_idx = scen->last_idx[prio]; in ice_acl_scen_assign_entry_idx()
64 if (!ice_test_and_set_bit(i, scen->entry_bitmap)) in ice_acl_scen_assign_entry_idx()
78 ice_acl_scen_free_entry_idx(struct ice_acl_scen *scen, u16 idx) in ice_acl_scen_free_entry_idx() argument
80 if (idx >= scen->num_entry) in ice_acl_scen_free_entry_idx()
83 if (!ice_test_and_clear_bit(idx, scen->entry_bitmap)) in ice_acl_scen_free_entry_idx()
566 struct ice_acl_scen *scen, u16 tcam_idx, in ice_acl_fill_tcam_select() argument
573 cascade_cnt = DIVIDE_AND_ROUND_UP(scen->width, in ice_acl_fill_tcam_select()
624 struct ice_acl_scen *scen) in ice_acl_set_scen_chnk_msk() argument
630 tcam_idx = ICE_ACL_TBL_TCAM_IDX(scen->start); in ice_acl_set_scen_chnk_msk()
631 chnk_offst = (u8)((scen->start % ICE_AQC_ACL_TCAM_DEPTH) / in ice_acl_set_scen_chnk_msk()
635 units = scen->num_entry / ICE_ACL_ENTRY_ALLOC_UNIT; in ice_acl_set_scen_chnk_msk()
638 num_cscd = scen->width / ICE_AQC_ACL_KEY_WIDTH_BYTES; in ice_acl_set_scen_chnk_msk()
669 struct ice_acl_scen *scen, in ice_acl_assign_act_mem_for_scen() argument
684 ice_set_bit(i, scen->act_mem_bitmap); in ice_acl_assign_act_mem_for_scen()
695 ice_acl_commit_partition(struct ice_hw *hw, struct ice_acl_scen *scen, in ice_acl_commit_partition() argument
701 tcam_idx = ICE_ACL_TBL_TCAM_IDX(scen->start); in ice_acl_commit_partition()
702 off = (scen->start % ICE_AQC_ACL_TCAM_DEPTH) / in ice_acl_commit_partition()
706 units = scen->num_entry / ICE_ACL_ENTRY_ALLOC_UNIT; in ice_acl_commit_partition()
709 num_cscd = scen->width / ICE_AQC_ACL_KEY_WIDTH_BYTES; in ice_acl_commit_partition()
747 struct ice_acl_scen *scen; in ice_acl_create_scen() local
753 scen = (struct ice_acl_scen *)ice_malloc(hw, sizeof(*scen)); in ice_acl_create_scen()
754 if (!scen) in ice_acl_create_scen()
757 scen->start = hw->acl_tbl->first_entry; in ice_acl_create_scen()
758 scen->width = ICE_AQC_ACL_KEY_WIDTH_BYTES * in ice_acl_create_scen()
760 scen->num_entry = num_entries; in ice_acl_create_scen()
762 status = ice_acl_alloc_partition(hw, scen); in ice_acl_create_scen()
769 cascade_cnt = DIVIDE_AND_ROUND_UP(scen->width, in ice_acl_create_scen()
771 first_tcam = ICE_ACL_TBL_TCAM_IDX(scen->start); in ice_acl_create_scen()
772 last_tcam = ICE_ACL_TBL_TCAM_IDX(scen->end); in ice_acl_create_scen()
779 scen->eff_width = cascade_cnt * ICE_AQC_ACL_KEY_WIDTH_BYTES - in ice_acl_create_scen()
781 scen->rng_chk_idx = (cascade_cnt - 1) * ICE_AQC_ACL_KEY_WIDTH_BYTES + in ice_acl_create_scen()
783 scen->pid_idx = (cascade_cnt - 1) * ICE_AQC_ACL_KEY_WIDTH_BYTES + in ice_acl_create_scen()
785 scen->pkt_dir_idx = (cascade_cnt - 1) * ICE_AQC_ACL_KEY_WIDTH_BYTES + in ice_acl_create_scen()
789 ice_acl_set_scen_chnk_msk(&scen_buf, scen); in ice_acl_create_scen()
804 ice_acl_fill_tcam_select(&scen_buf, scen, i, i - k); in ice_acl_create_scen()
805 ice_acl_assign_act_mem_for_scen(hw->acl_tbl, scen, in ice_acl_create_scen()
832 scen->id = *scen_id; in ice_acl_create_scen()
833 ice_acl_commit_partition(hw, scen, false); in ice_acl_create_scen()
834 ice_acl_init_entry(scen); in ice_acl_create_scen()
835 LIST_ADD(&scen->list_entry, &hw->acl_tbl->scens); in ice_acl_create_scen()
839 ice_free(hw, scen); in ice_acl_create_scen()
851 struct ice_acl_scen *scen, *tmp_scen; in ice_acl_destroy_scen() local
861 if (p->cfg.scen && p->cfg.scen->id == scen_id) { in ice_acl_destroy_scen()
879 LIST_FOR_EACH_ENTRY_SAFE(scen, tmp_scen, &hw->acl_tbl->scens, in ice_acl_destroy_scen()
881 if (scen->id == scen_id) { in ice_acl_destroy_scen()
882 LIST_DEL(&scen->list_entry); in ice_acl_destroy_scen()
883 ice_free(hw, scen); in ice_acl_destroy_scen()
971 ice_acl_add_entry(struct ice_hw *hw, struct ice_acl_scen *scen, in ice_acl_add_entry() argument
980 if (!scen) in ice_acl_add_entry()
983 *entry_idx = ice_acl_scen_assign_entry_idx(scen, prio); in ice_acl_add_entry()
984 if (*entry_idx >= scen->num_entry) { in ice_acl_add_entry()
990 num_cscd = DIVIDE_AND_ROUND_UP(scen->width, in ice_acl_add_entry()
993 entry_tcam = ICE_ACL_TBL_TCAM_IDX(scen->start); in ice_acl_add_entry()
994 idx = ICE_ACL_TBL_TCAM_ENTRY_IDX(scen->start + *entry_idx); in ice_acl_add_entry()
1026 status = ice_acl_prog_act(hw, scen, acts, acts_cnt, *entry_idx); in ice_acl_add_entry()
1030 ice_acl_rem_entry(hw, scen, *entry_idx); in ice_acl_add_entry()
1048 ice_acl_prog_act(struct ice_hw *hw, struct ice_acl_scen *scen, in ice_acl_prog_act() argument
1057 if (entry_idx >= scen->num_entry) in ice_acl_prog_act()
1063 num_cscd = DIVIDE_AND_ROUND_UP(scen->width, in ice_acl_prog_act()
1066 entry_tcam = ICE_ACL_TBL_TCAM_IDX(scen->start); in ice_acl_prog_act()
1067 idx = ICE_ACL_TBL_TCAM_ENTRY_IDX(scen->start + entry_idx); in ice_acl_prog_act()
1069 ice_for_each_set_bit(i, scen->act_mem_bitmap, in ice_acl_prog_act()
1111 ice_acl_rem_entry(struct ice_hw *hw, struct ice_acl_scen *scen, u16 entry_idx) in ice_acl_rem_entry() argument
1119 if (!scen) in ice_acl_rem_entry()
1122 if (entry_idx >= scen->num_entry) in ice_acl_rem_entry()
1125 if (!ice_is_bit_set(scen->entry_bitmap, entry_idx)) in ice_acl_rem_entry()
1129 num_cscd = DIVIDE_AND_ROUND_UP(scen->width, in ice_acl_rem_entry()
1132 entry_tcam = ICE_ACL_TBL_TCAM_IDX(scen->start); in ice_acl_rem_entry()
1133 idx = ICE_ACL_TBL_TCAM_ENTRY_IDX(scen->start + entry_idx); in ice_acl_rem_entry()
1147 ice_for_each_set_bit(i, scen->act_mem_bitmap, in ice_acl_rem_entry()
1162 ice_acl_scen_free_entry_idx(scen, entry_idx); in ice_acl_rem_entry()