From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 57404454B9; Wed, 26 Jun 2024 19:32:02 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 47C76402F2; Wed, 26 Jun 2024 19:32:02 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) by mails.dpdk.org (Postfix) with ESMTP id 434E140611 for ; Wed, 26 Jun 2024 19:32:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1719423121; x=1750959121; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=0M/+EnPusUyYLQawFzVFTH8qlPOo7CjErPkEGMbDK4s=; b=Ywz9hcQW7DFMOrkPBL4EaWqaF460x7qmHwQw4hNq9rNH90atCC+5tqGb WJjbwPTNe934rcS0Rbz1/ha9XalH4TP9lQUnxEZquUgcrLzsAYZb0nsfV yB6fGTCtDZRd4LgGPbqWX54m/DbpWVmHK01p1FNIiDKr1cRSYglHaD/OS Wf5m3puWQrhl9akOERRshTQMbQYl97r8B+aOC7/IRMO/jNJHhFx0igI94 1g8D+EO39cQxzjGCQIOW8Ql8k3Z40K1qKppr5b+MREQ7HDAI25CKSkdC7 dUZ2+moj7vO5MiQUtaPcrWAhHrJ+1h3u7f9tkB8Y02nuBzKp8Ok0LhsvO w==; X-CSE-ConnectionGUID: bXWgyEYATpWQs2m8TM37lA== X-CSE-MsgGUID: 0vARjZBiSS+Bt+1EdRD3Bw== X-IronPort-AV: E=McAfee;i="6700,10204,11115"; a="27913240" X-IronPort-AV: E=Sophos;i="6.08,267,1712646000"; d="scan'208";a="27913240" Received: from fmviesa009.fm.intel.com ([10.60.135.149]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Jun 2024 10:32:00 -0700 X-CSE-ConnectionGUID: cYad5hwjRNCp9ZcAaQ84Zw== X-CSE-MsgGUID: 6ND8Hy08Q42JcDZx78s/Xw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,267,1712646000"; d="scan'208";a="44143976" Received: from unknown (HELO silpixa00401176.ir.intel.com) ([10.243.22.170]) by fmviesa009.fm.intel.com with ESMTP; 26 Jun 2024 10:31:59 -0700 From: Vladimir Medvedkin To: dev@dpdk.org Cc: bruce.richardson@intel.com Subject: [PATCH] net/ice: use a different method to filter LLDP packets Date: Wed, 26 Jun 2024 17:31:55 +0000 Message-Id: <20240626173155.2177002-1-vladimir.medvedkin@intel.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Currently, ice_dev_init() calls ice_vsi_config_sw_lldp(), which uses switch filters to match packets ethertype to redirect LLDP packets to the default VSI. However, some NVMs have an issue creating such a rule. This patch changes the method from using LLDP ethertyple switch filter to utilizing a special AQ command (LLDP filter control). Signed-off-by: Vladimir Medvedkin --- drivers/net/ice/ice_ethdev.c | 34 +--------------------------------- 1 file changed, 1 insertion(+), 33 deletions(-) diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index 194109b0f6..8c924aa010 100644 --- a/drivers/net/ice/ice_ethdev.c +++ b/drivers/net/ice/ice_ethdev.c @@ -2206,38 +2206,6 @@ static int ice_parse_devargs(struct rte_eth_dev *dev) return ret; } -/* Forward LLDP packets to default VSI by set switch rules */ -static int -ice_vsi_config_sw_lldp(struct ice_vsi *vsi, bool on) -{ - struct ice_hw *hw = ICE_VSI_TO_HW(vsi); - struct ice_fltr_list_entry *s_list_itr = NULL; - struct LIST_HEAD_TYPE list_head; - int ret = 0; - - INIT_LIST_HEAD(&list_head); - - s_list_itr = (struct ice_fltr_list_entry *) - ice_malloc(hw, sizeof(*s_list_itr)); - if (!s_list_itr) - return -ENOMEM; - s_list_itr->fltr_info.lkup_type = ICE_SW_LKUP_ETHERTYPE; - s_list_itr->fltr_info.vsi_handle = vsi->idx; - s_list_itr->fltr_info.l_data.ethertype_mac.ethertype = - RTE_ETHER_TYPE_LLDP; - s_list_itr->fltr_info.fltr_act = ICE_FWD_TO_VSI; - s_list_itr->fltr_info.flag = ICE_FLTR_RX; - s_list_itr->fltr_info.src_id = ICE_SRC_ID_LPORT; - LIST_ADD(&s_list_itr->list_entry, &list_head); - if (on) - ret = ice_add_eth_mac(hw, &list_head); - else - ret = ice_remove_eth_mac(hw, &list_head); - - rte_free(s_list_itr); - return ret; -} - static enum ice_status ice_get_hw_res(struct ice_hw *hw, uint16_t res_type, uint16_t num, uint16_t desc_id, @@ -2491,7 +2459,7 @@ ice_dev_init(struct rte_eth_dev *dev) if (ret != ICE_SUCCESS) PMD_INIT_LOG(DEBUG, "Failed to init DCB\n"); /* Forward LLDP packets to default VSI */ - ret = ice_vsi_config_sw_lldp(vsi, true); + ret = ice_lldp_fltr_add_remove(hw, vsi->vsi_id, true); if (ret != ICE_SUCCESS) PMD_INIT_LOG(DEBUG, "Failed to cfg lldp\n"); /* register callback func to eal lib */ -- 2.34.1