Lines Matching +full:tcam +full:- +full:based
1 // SPDX-License-Identifier: GPL-2.0
2 /* Copyright (C) 2019-2021, Intel Corporation. */
7 * ice_pkg_get_supported_vlan_mode - determine if DDP supports Double VLAN mode
26 return -ENOMEM; in ice_pkg_get_supported_vlan_mode()
29 sect->count = cpu_to_le16(1); in ice_pkg_get_supported_vlan_mode()
30 sect->offset = cpu_to_le16(ICE_META_VLAN_MODE_ENTRY); in ice_pkg_get_supported_vlan_mode()
42 arr[i] = le32_to_cpu(sect->entry.bm[i]); in ice_pkg_get_supported_vlan_mode()
56 * ice_aq_get_vlan_mode - get the VLAN mode of the device
58 * @get_params: structure FW fills in based on the current VLAN mode config
69 return -EINVAL; in ice_aq_get_vlan_mode()
79 * ice_aq_is_dvm_ena - query FW to check if double VLAN mode is enabled
105 * ice_is_dvm_ena - check if double VLAN mode is enabled
109 * this cannot be dynamically changed during runtime. Based on this there is no
115 return hw->dvm_ena; in ice_is_dvm_ena()
119 * ice_cache_vlan_mode - cache VLAN mode after DDP is downloaded
128 hw->dvm_ena = ice_aq_is_dvm_ena(hw) ? true : false; in ice_cache_vlan_mode()
132 * ice_pkg_supports_dvm - find out if DDP supports DVM
151 * ice_fw_supports_dvm - find out if FW supports DVM
173 * ice_is_dvm_supported - check if Double VLAN Mode is supported
204 /* Update recipe ICE_SW_LKUP_VLAN to filter based on the
211 .mask_valid = false, /* use pre-existing mask */
215 /* Update recipe ICE_SW_LKUP_VLAN to filter based on the VLAN
227 /* Update recipe ICE_SW_LKUP_PROMISC_VLAN to filter based on the
234 .mask_valid = false, /* use pre-existing mask */
240 * ice_dvm_update_dflt_recipes - update default switch recipes in DVM
256 params->rid, params->lkup_idx, params->fv_idx, in ice_dvm_update_dflt_recipes()
257 params->mask_valid ? "true" : "false", in ice_dvm_update_dflt_recipes()
258 params->mask); in ice_dvm_update_dflt_recipes()
267 * ice_aq_set_vlan_mode - set the VLAN mode of the device
281 return -EINVAL; in ice_aq_set_vlan_mode()
283 if (set_params->l2tag_prio_tagging > ICE_AQ_VLAN_PRIO_TAG_MAX) in ice_aq_set_vlan_mode()
284 return -EINVAL; in ice_aq_set_vlan_mode()
286 rdma_packet = set_params->rdma_packet; in ice_aq_set_vlan_mode()
289 return -EINVAL; in ice_aq_set_vlan_mode()
291 mng_vlan_prot_id = set_params->mng_vlan_prot_id; in ice_aq_set_vlan_mode()
294 return -EINVAL; in ice_aq_set_vlan_mode()
305 * ice_set_dvm - sets up software and hardware for double VLAN mode
331 status = ice_aq_set_port_params(hw->port_info, true, NULL); in ice_set_dvm()
340 ice_debug(hw, ICE_DBG_INIT, "Failed to set boost TCAM entries for double VLAN mode, status %d\n", in ice_set_dvm()
349 * ice_set_svm - set single VLAN mode
357 status = ice_aq_set_port_params(hw->port_info, false, NULL); in ice_set_svm()
366 return -ENOMEM; in ice_set_svm()
369 set_params->l2tag_prio_tagging = ICE_AQ_VLAN_PRIO_TAG_INNER_CTAG; in ice_set_svm()
370 set_params->rdma_packet = ICE_AQ_SVM_VLAN_RDMA_PKT_FLAG_SETTING; in ice_set_svm()
371 set_params->mng_vlan_prot_id = ICE_AQ_VLAN_MNG_PROTOCOL_ID_INNER; in ice_set_svm()
397 * ice_print_dvm_not_supported - print if DDP and/or FW doesn't support DVM
418 * ice_post_pkg_dwnld_vlan_mode_cfg - configure VLAN mode after DDP download