Lines Matching refs:vsi
749 ice_vsi_config_tc_queue_mapping(struct ice_vsi *vsi, in ice_vsi_config_tc_queue_mapping() argument
764 vsi->nb_qps = RTE_MIN(vsi->nb_qps, ICE_MAX_Q_PER_TC); in ice_vsi_config_tc_queue_mapping()
765 bsf = rte_bsf32(vsi->nb_qps); in ice_vsi_config_tc_queue_mapping()
767 vsi->nb_qps = 0x1 << bsf; in ice_vsi_config_tc_queue_mapping()
777 info->q_mapping[0] = rte_cpu_to_le_16(vsi->base_queue); in ice_vsi_config_tc_queue_mapping()
778 info->q_mapping[1] = rte_cpu_to_le_16(vsi->nb_qps); in ice_vsi_config_tc_queue_mapping()
823 ice_find_mac_filter(struct ice_vsi *vsi, struct rte_ether_addr *macaddr) in ice_find_mac_filter() argument
827 TAILQ_FOREACH(f, &vsi->mac_list, next) { in ice_find_mac_filter()
836 ice_add_mac_filter(struct ice_vsi *vsi, struct rte_ether_addr *mac_addr) in ice_add_mac_filter() argument
841 struct ice_hw *hw = ICE_VSI_TO_HW(vsi); in ice_add_mac_filter()
845 f = ice_find_mac_filter(vsi, mac_addr); in ice_add_mac_filter()
865 m_list_itr->fltr_info.vsi_handle = vsi->idx; in ice_add_mac_filter()
884 TAILQ_INSERT_TAIL(&vsi->mac_list, f, next); in ice_add_mac_filter()
885 vsi->mac_num++; in ice_add_mac_filter()
895 ice_remove_mac_filter(struct ice_vsi *vsi, struct rte_ether_addr *mac_addr) in ice_remove_mac_filter() argument
900 struct ice_hw *hw = ICE_VSI_TO_HW(vsi); in ice_remove_mac_filter()
904 f = ice_find_mac_filter(vsi, mac_addr); in ice_remove_mac_filter()
922 m_list_itr->fltr_info.vsi_handle = vsi->idx; in ice_remove_mac_filter()
935 TAILQ_REMOVE(&vsi->mac_list, f, next); in ice_remove_mac_filter()
937 vsi->mac_num--; in ice_remove_mac_filter()
947 ice_find_vlan_filter(struct ice_vsi *vsi, uint16_t vlan_id) in ice_find_vlan_filter() argument
951 TAILQ_FOREACH(f, &vsi->vlan_list, next) { in ice_find_vlan_filter()
960 ice_add_vlan_filter(struct ice_vsi *vsi, uint16_t vlan_id) in ice_add_vlan_filter() argument
968 if (!vsi || vlan_id > RTE_ETHER_MAX_VLAN_ID) in ice_add_vlan_filter()
971 hw = ICE_VSI_TO_HW(vsi); in ice_add_vlan_filter()
974 f = ice_find_vlan_filter(vsi, vlan_id); in ice_add_vlan_filter()
980 if (!vsi->vlan_anti_spoof_on && !vsi->vlan_filter_on) in ice_add_vlan_filter()
996 v_list_itr->fltr_info.vsi_handle = vsi->idx; in ice_add_vlan_filter()
1016 TAILQ_INSERT_TAIL(&vsi->vlan_list, f, next); in ice_add_vlan_filter()
1017 vsi->vlan_num++; in ice_add_vlan_filter()
1027 ice_remove_vlan_filter(struct ice_vsi *vsi, uint16_t vlan_id) in ice_remove_vlan_filter() argument
1039 if (!vsi || vlan_id == 0 || vlan_id > RTE_ETHER_MAX_VLAN_ID) in ice_remove_vlan_filter()
1042 hw = ICE_VSI_TO_HW(vsi); in ice_remove_vlan_filter()
1045 f = ice_find_vlan_filter(vsi, vlan_id); in ice_remove_vlan_filter()
1063 v_list_itr->fltr_info.vsi_handle = vsi->idx; in ice_remove_vlan_filter()
1076 TAILQ_REMOVE(&vsi->vlan_list, f, next); in ice_remove_vlan_filter()
1078 vsi->vlan_num--; in ice_remove_vlan_filter()
1087 ice_remove_all_mac_vlan_filters(struct ice_vsi *vsi) in ice_remove_all_mac_vlan_filters() argument
1093 if (!vsi || !vsi->mac_num) in ice_remove_all_mac_vlan_filters()
1096 TAILQ_FOREACH(m_f, &vsi->mac_list, next) { in ice_remove_all_mac_vlan_filters()
1097 ret = ice_remove_mac_filter(vsi, &m_f->mac_info.mac_addr); in ice_remove_all_mac_vlan_filters()
1104 if (vsi->vlan_num == 0) in ice_remove_all_mac_vlan_filters()
1107 TAILQ_FOREACH(v_f, &vsi->vlan_list, next) { in ice_remove_all_mac_vlan_filters()
1108 ret = ice_remove_vlan_filter(vsi, v_f->vlan_info.vlan_id); in ice_remove_all_mac_vlan_filters()
1120 ice_vsi_config_qinq_insertion(struct ice_vsi *vsi, bool on) in ice_vsi_config_qinq_insertion() argument
1122 struct ice_hw *hw = ICE_VSI_TO_HW(vsi); in ice_vsi_config_qinq_insertion()
1128 if (vsi->info.valid_sections & in ice_vsi_config_qinq_insertion()
1131 if ((vsi->info.outer_tag_flags & in ice_vsi_config_qinq_insertion()
1136 if (!(vsi->info.outer_tag_flags & in ice_vsi_config_qinq_insertion()
1147 vsi->info.outer_tag_flags &= ~(ICE_AQ_VSI_OUTER_TAG_INSERT); in ice_vsi_config_qinq_insertion()
1148 vsi->info.outer_tag_flags &= ~(ICE_AQ_VSI_OUTER_TAG_ACCEPT_HOST); in ice_vsi_config_qinq_insertion()
1149 vsi->info.outer_tag_flags |= qinq_flags; in ice_vsi_config_qinq_insertion()
1151 vsi->info.outer_tag_flags &= ~(ICE_AQ_VSI_OUTER_TAG_TYPE_M); in ice_vsi_config_qinq_insertion()
1152 vsi->info.outer_tag_flags |= ICE_DFLT_OUTER_TAG_TYPE << in ice_vsi_config_qinq_insertion()
1154 (void)rte_memcpy(&ctxt.info, &vsi->info, sizeof(vsi->info)); in ice_vsi_config_qinq_insertion()
1157 ctxt.vsi_num = vsi->vsi_id; in ice_vsi_config_qinq_insertion()
1158 ret = ice_update_vsi(hw, vsi->idx, &ctxt, NULL); in ice_vsi_config_qinq_insertion()
1166 vsi->info.valid_sections |= in ice_vsi_config_qinq_insertion()
1173 ice_vsi_config_qinq_stripping(struct ice_vsi *vsi, bool on) in ice_vsi_config_qinq_stripping() argument
1175 struct ice_hw *hw = ICE_VSI_TO_HW(vsi); in ice_vsi_config_qinq_stripping()
1181 if (vsi->info.valid_sections & in ice_vsi_config_qinq_stripping()
1184 if ((vsi->info.outer_tag_flags & in ice_vsi_config_qinq_stripping()
1189 if ((vsi->info.outer_tag_flags & in ice_vsi_config_qinq_stripping()
1200 vsi->info.outer_tag_flags &= ~(ICE_AQ_VSI_OUTER_TAG_MODE_M); in ice_vsi_config_qinq_stripping()
1201 vsi->info.outer_tag_flags |= qinq_flags; in ice_vsi_config_qinq_stripping()
1203 vsi->info.outer_tag_flags &= ~(ICE_AQ_VSI_OUTER_TAG_TYPE_M); in ice_vsi_config_qinq_stripping()
1204 vsi->info.outer_tag_flags |= ICE_DFLT_OUTER_TAG_TYPE << in ice_vsi_config_qinq_stripping()
1206 (void)rte_memcpy(&ctxt.info, &vsi->info, sizeof(vsi->info)); in ice_vsi_config_qinq_stripping()
1209 ctxt.vsi_num = vsi->vsi_id; in ice_vsi_config_qinq_stripping()
1210 ret = ice_update_vsi(hw, vsi->idx, &ctxt, NULL); in ice_vsi_config_qinq_stripping()
1218 vsi->info.valid_sections |= in ice_vsi_config_qinq_stripping()
1225 ice_vsi_config_double_vlan(struct ice_vsi *vsi, int on) in ice_vsi_config_double_vlan() argument
1229 ret = ice_vsi_config_qinq_stripping(vsi, on); in ice_vsi_config_double_vlan()
1233 ret = ice_vsi_config_qinq_insertion(vsi, on); in ice_vsi_config_double_vlan()
1537 struct ice_vsi *vsi = NULL; in ice_setup_vsi() local
1548 vsi = rte_zmalloc(NULL, sizeof(struct ice_vsi), 0); in ice_setup_vsi()
1549 if (!vsi) in ice_setup_vsi()
1552 vsi->idx = pf->next_vsi_idx; in ice_setup_vsi()
1554 vsi->type = type; in ice_setup_vsi()
1555 vsi->adapter = ICE_PF_TO_ADAPTER(pf); in ice_setup_vsi()
1556 vsi->max_macaddrs = ICE_NUM_MACADDR_MAX; in ice_setup_vsi()
1557 vsi->vlan_anti_spoof_on = 0; in ice_setup_vsi()
1558 vsi->vlan_filter_on = 1; in ice_setup_vsi()
1559 TAILQ_INIT(&vsi->mac_list); in ice_setup_vsi()
1560 TAILQ_INIT(&vsi->vlan_list); in ice_setup_vsi()
1571 vsi->nb_qps = pf->lan_nb_qps; in ice_setup_vsi()
1572 vsi->base_queue = 1; in ice_setup_vsi()
1599 ret = ice_vsi_config_tc_queue_mapping(vsi, in ice_setup_vsi()
1612 vsi->nb_qps = pf->fdir_nb_qps; in ice_setup_vsi()
1613 vsi->base_queue = ICE_FDIR_QUEUE_ID; in ice_setup_vsi()
1623 ret = ice_vsi_config_tc_queue_mapping(vsi, in ice_setup_vsi()
1643 RTE_MIN(vsi->nb_qps, in ice_setup_vsi()
1647 vsi->vsi_id, ret); in ice_setup_vsi()
1649 vsi->msix_intr = ret; in ice_setup_vsi()
1650 vsi->nb_msix = RTE_MIN(vsi->nb_qps, RTE_MAX_RXTX_INTR_VEC_ID); in ice_setup_vsi()
1655 vsi->vsi_id, ret); in ice_setup_vsi()
1657 vsi->msix_intr = ret; in ice_setup_vsi()
1658 vsi->nb_msix = 1; in ice_setup_vsi()
1660 vsi->msix_intr = 0; in ice_setup_vsi()
1661 vsi->nb_msix = 0; in ice_setup_vsi()
1663 ret = ice_add_vsi(hw, vsi->idx, &vsi_ctx, NULL); in ice_setup_vsi()
1669 vsi->vsi_id = vsi_ctx.vsi_num; in ice_setup_vsi()
1670 vsi->info = vsi_ctx.info; in ice_setup_vsi()
1681 ret = ice_add_mac_filter(vsi, &mac_addr); in ice_setup_vsi()
1686 ret = ice_add_mac_filter(vsi, &mac_addr); in ice_setup_vsi()
1696 max_txqs[0] = vsi->nb_qps; in ice_setup_vsi()
1697 ret = ice_cfg_vsi_lan(hw->port_info, vsi->idx, in ice_setup_vsi()
1702 return vsi; in ice_setup_vsi()
1704 rte_free(vsi); in ice_setup_vsi()
1728 struct ice_vsi *vsi; in ice_pf_setup() local
1745 vsi = ice_setup_vsi(pf, ICE_VSI_PF); in ice_pf_setup()
1746 if (!vsi) { in ice_pf_setup()
1751 pf->main_vsi = vsi; in ice_pf_setup()
1971 ice_vsi_config_sw_lldp(struct ice_vsi *vsi, bool on) in ice_vsi_config_sw_lldp() argument
1973 struct ice_hw *hw = ICE_VSI_TO_HW(vsi); in ice_vsi_config_sw_lldp()
1985 s_list_itr->fltr_info.vsi_handle = vsi->idx; in ice_vsi_config_sw_lldp()
2120 struct ice_vsi *vsi; in ice_dev_init() local
2215 vsi = pf->main_vsi; in ice_dev_init()
2218 ice_vsi_config_double_vlan(vsi, false); in ice_dev_init()
2227 ret = ice_vsi_config_sw_lldp(vsi, true); in ice_dev_init()
2278 ice_release_vsi(struct ice_vsi *vsi) in ice_release_vsi() argument
2285 if (!vsi) in ice_release_vsi()
2288 hw = ICE_VSI_TO_HW(vsi); in ice_release_vsi()
2290 ice_remove_all_mac_vlan_filters(vsi); in ice_release_vsi()
2294 vsi_ctx.vsi_num = vsi->vsi_id; in ice_release_vsi()
2295 vsi_ctx.info = vsi->info; in ice_release_vsi()
2296 ret = ice_free_vsi(hw, vsi->idx, &vsi_ctx, false, NULL); in ice_release_vsi()
2298 PMD_INIT_LOG(ERR, "Failed to free vsi by aq, %u", vsi->vsi_id); in ice_release_vsi()
2302 rte_free(vsi->rss_lut); in ice_release_vsi()
2303 rte_free(vsi->rss_key); in ice_release_vsi()
2304 rte_free(vsi); in ice_release_vsi()
2309 ice_vsi_disable_queues_intr(struct ice_vsi *vsi) in ice_vsi_disable_queues_intr() argument
2311 struct rte_eth_dev *dev = vsi->adapter->eth_dev; in ice_vsi_disable_queues_intr()
2314 struct ice_hw *hw = ICE_VSI_TO_HW(vsi); in ice_vsi_disable_queues_intr()
2318 for (i = 0; i < vsi->nb_qps; i++) { in ice_vsi_disable_queues_intr()
2319 ICE_WRITE_REG(hw, QINT_TQCTL(vsi->base_queue + i), 0); in ice_vsi_disable_queues_intr()
2320 ICE_WRITE_REG(hw, QINT_RQCTL(vsi->base_queue + i), 0); in ice_vsi_disable_queues_intr()
2326 for (i = 0; i < vsi->nb_msix; i++) { in ice_vsi_disable_queues_intr()
2327 msix_intr = vsi->msix_intr + i; in ice_vsi_disable_queues_intr()
2456 struct ice_vsi *vsi = pf->main_vsi; in ice_hash_moveout() local
2461 status = ice_rem_rss_cfg(hw, vsi->idx, cfg); in ice_hash_moveout()
2465 vsi->idx, status); in ice_hash_moveout()
2477 struct ice_vsi *vsi = pf->main_vsi; in ice_hash_moveback() local
2482 status = ice_add_rss_cfg(hw, vsi->idx, cfg); in ice_hash_moveback()
2486 vsi->idx, status); in ice_hash_moveback()
2913 struct ice_vsi *vsi = pf->main_vsi; in ice_rss_hash_set() local
2927 ret = ice_rem_vsi_rss_cfg(hw, vsi->idx); in ice_rss_hash_set()
2938 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
2948 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
2959 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
2970 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
2981 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
2992 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
3003 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
3014 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
3024 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
3031 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
3038 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
3048 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
3055 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
3062 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
3072 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
3079 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
3086 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
3096 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
3103 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
3110 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
3120 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
3127 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
3134 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
3144 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
3151 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
3158 ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); in ice_rss_hash_set()
3170 struct ice_vsi *vsi = pf->main_vsi; in ice_init_rss() local
3182 vsi->rss_key_size = ICE_AQC_GET_SET_RSS_KEY_DATA_RSS_KEY_SIZE; in ice_init_rss()
3183 vsi->rss_lut_size = pf->hash_lut_size; in ice_init_rss()
3190 if (!vsi->rss_key) { in ice_init_rss()
3191 vsi->rss_key = rte_zmalloc(NULL, in ice_init_rss()
3192 vsi->rss_key_size, 0); in ice_init_rss()
3193 if (vsi->rss_key == NULL) { in ice_init_rss()
3198 if (!vsi->rss_lut) { in ice_init_rss()
3199 vsi->rss_lut = rte_zmalloc(NULL, in ice_init_rss()
3200 vsi->rss_lut_size, 0); in ice_init_rss()
3201 if (vsi->rss_lut == NULL) { in ice_init_rss()
3203 rte_free(vsi->rss_key); in ice_init_rss()
3204 vsi->rss_key = NULL; in ice_init_rss()
3211 for (i = 0; i <= vsi->rss_key_size; i++) in ice_init_rss()
3212 vsi->rss_key[i] = (uint8_t)rte_rand(); in ice_init_rss()
3214 rte_memcpy(vsi->rss_key, rss_conf->rss_key, in ice_init_rss()
3216 vsi->rss_key_size)); in ice_init_rss()
3218 rte_memcpy(key.standard_rss_key, vsi->rss_key, vsi->rss_key_size); in ice_init_rss()
3219 ret = ice_aq_set_rss_key(hw, vsi->idx, &key); in ice_init_rss()
3224 for (i = 0; i < vsi->rss_lut_size; i++) in ice_init_rss()
3225 vsi->rss_lut[i] = i % nb_q; in ice_init_rss()
3227 lut_params.vsi_handle = vsi->idx; in ice_init_rss()
3228 lut_params.lut_size = vsi->rss_lut_size; in ice_init_rss()
3230 lut_params.lut = vsi->rss_lut; in ice_init_rss()
3237 reg = ICE_READ_REG(hw, VSIQF_HASH_CTL(vsi->vsi_id)); in ice_init_rss()
3240 ICE_WRITE_REG(hw, VSIQF_HASH_CTL(vsi->vsi_id), reg); in ice_init_rss()
3247 rte_free(vsi->rss_key); in ice_init_rss()
3248 vsi->rss_key = NULL; in ice_init_rss()
3249 rte_free(vsi->rss_lut); in ice_init_rss()
3250 vsi->rss_lut = NULL; in ice_init_rss()
3281 __vsi_queues_bind_intr(struct ice_vsi *vsi, uint16_t msix_vect, in __vsi_queues_bind_intr() argument
3284 struct ice_hw *hw = ICE_VSI_TO_HW(vsi); in __vsi_queues_bind_intr()
3305 ice_vsi_queues_bind_intr(struct ice_vsi *vsi) in ice_vsi_queues_bind_intr() argument
3307 struct rte_eth_dev *dev = vsi->adapter->eth_dev; in ice_vsi_queues_bind_intr()
3310 struct ice_hw *hw = ICE_VSI_TO_HW(vsi); in ice_vsi_queues_bind_intr()
3311 uint16_t msix_vect = vsi->msix_intr; in ice_vsi_queues_bind_intr()
3312 uint16_t nb_msix = RTE_MIN(vsi->nb_msix, intr_handle->nb_efd); in ice_vsi_queues_bind_intr()
3318 for (i = 0; i < vsi->nb_used_qps; i++) { in ice_vsi_queues_bind_intr()
3319 ICE_WRITE_REG(hw, QINT_TQCTL(vsi->base_queue + i), 0); in ice_vsi_queues_bind_intr()
3320 ICE_WRITE_REG(hw, QINT_RQCTL(vsi->base_queue + i), 0); in ice_vsi_queues_bind_intr()
3329 for (i = 0; i < vsi->nb_used_qps; i++) { in ice_vsi_queues_bind_intr()
3335 __vsi_queues_bind_intr(vsi, msix_vect, in ice_vsi_queues_bind_intr()
3336 vsi->base_queue + i, in ice_vsi_queues_bind_intr()
3337 vsi->nb_used_qps - i); in ice_vsi_queues_bind_intr()
3339 for (; !!record && i < vsi->nb_used_qps; i++) in ice_vsi_queues_bind_intr()
3346 __vsi_queues_bind_intr(vsi, msix_vect, in ice_vsi_queues_bind_intr()
3347 vsi->base_queue + i, 1); in ice_vsi_queues_bind_intr()
3358 ice_vsi_enable_queues_intr(struct ice_vsi *vsi) in ice_vsi_enable_queues_intr() argument
3360 struct rte_eth_dev *dev = vsi->adapter->eth_dev; in ice_vsi_enable_queues_intr()
3363 struct ice_hw *hw = ICE_VSI_TO_HW(vsi); in ice_vsi_enable_queues_intr()
3367 for (i = 0; i < vsi->nb_used_qps; i++) { in ice_vsi_enable_queues_intr()
3368 msix_intr = vsi->msix_intr + i; in ice_vsi_enable_queues_intr()
3389 struct ice_vsi *vsi = pf->main_vsi; in ice_rxq_intr_setup() local
3421 vsi->nb_used_qps = dev->data->nb_rx_queues; in ice_rxq_intr_setup()
3422 ice_vsi_queues_bind_intr(vsi); in ice_rxq_intr_setup()
3425 ice_vsi_enable_queues_intr(vsi); in ice_rxq_intr_setup()
3459 struct ice_vsi *vsi = pf->main_vsi; in ice_dev_start() local
3499 ret = ice_set_vsi_promisc(hw, vsi->idx, in ice_dev_start()
3575 struct ice_vsi *vsi = pf->main_vsi; in ice_dev_info_get() local
3583 dev_info->max_rx_queues = vsi->nb_qps; in ice_dev_info_get()
3584 dev_info->max_tx_queues = vsi->nb_qps; in ice_dev_info_get()
3585 dev_info->max_mac_addrs = vsi->max_macaddrs; in ice_dev_info_get()
3924 struct ice_vsi *vsi = pf->main_vsi; in ice_macaddr_set() local
3934 TAILQ_FOREACH(f, &vsi->mac_list, next) { in ice_macaddr_set()
3944 ret = ice_remove_mac_filter(vsi, &f->mac_info.mac_addr); in ice_macaddr_set()
3949 ret = ice_add_mac_filter(vsi, mac_addr); in ice_macaddr_set()
3972 struct ice_vsi *vsi = pf->main_vsi; in ice_macaddr_add() local
3975 ret = ice_add_mac_filter(vsi, mac_addr); in ice_macaddr_add()
3989 struct ice_vsi *vsi = pf->main_vsi; in ice_macaddr_remove() local
3995 ret = ice_remove_mac_filter(vsi, macaddr); in ice_macaddr_remove()
4006 struct ice_vsi *vsi = pf->main_vsi; in ice_vlan_filter_set() local
4012 ret = ice_add_vlan_filter(vsi, vlan_id); in ice_vlan_filter_set()
4018 ret = ice_remove_vlan_filter(vsi, vlan_id); in ice_vlan_filter_set()
4030 ice_vsi_config_vlan_filter(struct ice_vsi *vsi, bool on) in ice_vsi_config_vlan_filter() argument
4032 struct ice_hw *hw = ICE_VSI_TO_HW(vsi); in ice_vsi_config_vlan_filter()
4042 vsi->info.sec_flags |= sec_flags; in ice_vsi_config_vlan_filter()
4043 vsi->info.sw_flags2 |= sw_flags2; in ice_vsi_config_vlan_filter()
4045 vsi->info.sec_flags &= ~sec_flags; in ice_vsi_config_vlan_filter()
4046 vsi->info.sw_flags2 &= ~sw_flags2; in ice_vsi_config_vlan_filter()
4048 vsi->info.sw_id = hw->port_info->sw_id; in ice_vsi_config_vlan_filter()
4049 (void)rte_memcpy(&ctxt.info, &vsi->info, sizeof(vsi->info)); in ice_vsi_config_vlan_filter()
4053 ctxt.vsi_num = vsi->vsi_id; in ice_vsi_config_vlan_filter()
4055 ret = ice_update_vsi(hw, vsi->idx, &ctxt, NULL); in ice_vsi_config_vlan_filter()
4061 vsi->info.valid_sections |= in ice_vsi_config_vlan_filter()
4068 ret = ice_add_vlan_filter(vsi, 0); in ice_vsi_config_vlan_filter()
4070 ret = ice_remove_vlan_filter(vsi, 0); in ice_vsi_config_vlan_filter()
4076 ice_vsi_config_vlan_stripping(struct ice_vsi *vsi, bool on) in ice_vsi_config_vlan_stripping() argument
4078 struct ice_hw *hw = ICE_VSI_TO_HW(vsi); in ice_vsi_config_vlan_stripping()
4084 if (vsi->info.valid_sections & in ice_vsi_config_vlan_stripping()
4087 if ((vsi->info.vlan_flags & in ice_vsi_config_vlan_stripping()
4092 if ((vsi->info.vlan_flags & in ice_vsi_config_vlan_stripping()
4103 vsi->info.vlan_flags &= ~(ICE_AQ_VSI_VLAN_EMOD_M); in ice_vsi_config_vlan_stripping()
4104 vsi->info.vlan_flags |= vlan_flags; in ice_vsi_config_vlan_stripping()
4105 (void)rte_memcpy(&ctxt.info, &vsi->info, sizeof(vsi->info)); in ice_vsi_config_vlan_stripping()
4108 ctxt.vsi_num = vsi->vsi_id; in ice_vsi_config_vlan_stripping()
4109 ret = ice_update_vsi(hw, vsi->idx, &ctxt, NULL); in ice_vsi_config_vlan_stripping()
4116 vsi->info.valid_sections |= in ice_vsi_config_vlan_stripping()
4126 struct ice_vsi *vsi = pf->main_vsi; in ice_vlan_offload_set() local
4132 ice_vsi_config_vlan_filter(vsi, true); in ice_vlan_offload_set()
4134 ice_vsi_config_vlan_filter(vsi, false); in ice_vlan_offload_set()
4139 ice_vsi_config_vlan_stripping(vsi, true); in ice_vlan_offload_set()
4141 ice_vsi_config_vlan_stripping(vsi, false); in ice_vlan_offload_set()
4146 ice_vsi_config_double_vlan(vsi, true); in ice_vlan_offload_set()
4148 ice_vsi_config_double_vlan(vsi, false); in ice_vlan_offload_set()
4155 ice_get_rss_lut(struct ice_vsi *vsi, uint8_t *lut, uint16_t lut_size) in ice_get_rss_lut() argument
4158 struct ice_pf *pf = ICE_VSI_TO_PF(vsi); in ice_get_rss_lut()
4159 struct ice_hw *hw = ICE_VSI_TO_HW(vsi); in ice_get_rss_lut()
4166 lut_params.vsi_handle = vsi->idx; in ice_get_rss_lut()
4188 ice_set_rss_lut(struct ice_vsi *vsi, uint8_t *lut, uint16_t lut_size) in ice_set_rss_lut() argument
4195 if (!vsi || !lut) in ice_set_rss_lut()
4198 pf = ICE_VSI_TO_PF(vsi); in ice_set_rss_lut()
4199 hw = ICE_VSI_TO_HW(vsi); in ice_set_rss_lut()
4202 lut_params.vsi_handle = vsi->idx; in ice_set_rss_lut()
4323 ice_set_rss_key(struct ice_vsi *vsi, uint8_t *key, uint8_t key_len) in ice_set_rss_key() argument
4325 struct ice_hw *hw = ICE_VSI_TO_HW(vsi); in ice_set_rss_key()
4340 ret = ice_aq_set_rss_key(hw, vsi->idx, key_dw); in ice_set_rss_key()
4350 ice_get_rss_key(struct ice_vsi *vsi, uint8_t *key, uint8_t *key_len) in ice_get_rss_key() argument
4352 struct ice_hw *hw = ICE_VSI_TO_HW(vsi); in ice_get_rss_key()
4359 (hw, vsi->idx, in ice_get_rss_key()
4376 struct ice_vsi *vsi = pf->main_vsi; in ice_rss_hash_update() local
4379 status = ice_set_rss_key(vsi, rss_conf->rss_key, rss_conf->rss_key_len); in ice_rss_hash_update()
4397 struct ice_vsi *vsi = pf->main_vsi; in ice_rss_hash_conf_get() local
4399 ice_get_rss_key(vsi, rss_conf->rss_key, in ice_rss_hash_conf_get()
4411 struct ice_vsi *vsi = pf->main_vsi; in ice_promisc_enable() local
4419 status = ice_set_vsi_promisc(hw, vsi->idx, pmask, 0); in ice_promisc_enable()
4438 struct ice_vsi *vsi = pf->main_vsi; in ice_promisc_disable() local
4446 status = ice_clear_vsi_promisc(hw, vsi->idx, pmask, 0); in ice_promisc_disable()
4460 struct ice_vsi *vsi = pf->main_vsi; in ice_allmulti_enable() local
4467 status = ice_set_vsi_promisc(hw, vsi->idx, pmask, 0); in ice_allmulti_enable()
4487 struct ice_vsi *vsi = pf->main_vsi; in ice_allmulti_disable() local
4497 status = ice_clear_vsi_promisc(hw, vsi->idx, pmask, 0); in ice_allmulti_disable()
4570 ice_vsi_vlan_pvid_set(struct ice_vsi *vsi, struct ice_vsi_vlan_pvid_info *info) in ice_vsi_vlan_pvid_set() argument
4577 if (!vsi || !info) { in ice_vsi_vlan_pvid_set()
4583 vsi->info.pvid = info->config.pvid; in ice_vsi_vlan_pvid_set()
4591 vsi->info.pvid = 0; in ice_vsi_vlan_pvid_set()
4598 vsi->info.vlan_flags &= ~(ICE_AQ_VSI_PVLAN_INSERT_PVID | in ice_vsi_vlan_pvid_set()
4600 vsi->info.vlan_flags |= vlan_flags; in ice_vsi_vlan_pvid_set()
4602 rte_memcpy(&ctxt.info, &vsi->info, sizeof(vsi->info)); in ice_vsi_vlan_pvid_set()
4605 ctxt.vsi_num = vsi->vsi_id; in ice_vsi_vlan_pvid_set()
4607 hw = ICE_VSI_TO_HW(vsi); in ice_vsi_vlan_pvid_set()
4608 ret = ice_update_vsi(hw, vsi->idx, &ctxt, NULL); in ice_vsi_vlan_pvid_set()
4616 vsi->info.valid_sections |= in ice_vsi_vlan_pvid_set()
4626 struct ice_vsi *vsi = pf->main_vsi; in ice_vlan_pvid_set() local
4642 ret = ice_vsi_vlan_pvid_set(vsi, &info); in ice_vlan_pvid_set()
4738 ice_update_vsi_stats(struct ice_vsi *vsi) in ice_update_vsi_stats() argument
4740 struct ice_eth_stats *oes = &vsi->eth_stats_offset; in ice_update_vsi_stats()
4741 struct ice_eth_stats *nes = &vsi->eth_stats; in ice_update_vsi_stats()
4742 struct ice_hw *hw = ICE_VSI_TO_HW(vsi); in ice_update_vsi_stats()
4743 int idx = rte_le_to_cpu_16(vsi->vsi_id); in ice_update_vsi_stats()
4746 vsi->offset_loaded, &oes->rx_bytes, in ice_update_vsi_stats()
4749 vsi->offset_loaded, &oes->rx_unicast, in ice_update_vsi_stats()
4752 vsi->offset_loaded, &oes->rx_multicast, in ice_update_vsi_stats()
4755 vsi->offset_loaded, &oes->rx_broadcast, in ice_update_vsi_stats()
4758 if (vsi->offset_loaded) { in ice_update_vsi_stats()
4759 if (ICE_RXTX_BYTES_LOW(vsi->old_rx_bytes) > nes->rx_bytes) in ice_update_vsi_stats()
4761 nes->rx_bytes += ICE_RXTX_BYTES_HIGH(vsi->old_rx_bytes); in ice_update_vsi_stats()
4763 vsi->old_rx_bytes = nes->rx_bytes; in ice_update_vsi_stats()
4768 ice_stat_update_32(hw, GLV_RDPC(idx), vsi->offset_loaded, in ice_update_vsi_stats()
4772 ice_stat_update_32(hw, GLSWID_RUPP(idx), vsi->offset_loaded, in ice_update_vsi_stats()
4776 vsi->offset_loaded, &oes->tx_bytes, in ice_update_vsi_stats()
4779 vsi->offset_loaded, &oes->tx_unicast, in ice_update_vsi_stats()
4782 vsi->offset_loaded, &oes->tx_multicast, in ice_update_vsi_stats()
4785 vsi->offset_loaded, &oes->tx_broadcast, in ice_update_vsi_stats()
4788 ice_stat_update_32(hw, GLV_TEPC(idx), vsi->offset_loaded, in ice_update_vsi_stats()
4791 if (vsi->offset_loaded) { in ice_update_vsi_stats()
4792 if (ICE_RXTX_BYTES_LOW(vsi->old_tx_bytes) > nes->tx_bytes) in ice_update_vsi_stats()
4794 nes->tx_bytes += ICE_RXTX_BYTES_HIGH(vsi->old_tx_bytes); in ice_update_vsi_stats()
4796 vsi->old_tx_bytes = nes->tx_bytes; in ice_update_vsi_stats()
4797 vsi->offset_loaded = true; in ice_update_vsi_stats()
4800 vsi->vsi_id); in ice_update_vsi_stats()
4815 vsi->vsi_id); in ice_update_vsi_stats()