DPDK patches and discussions
 help / color / mirror / Atom feed
From: Qi Zhang <qi.z.zhang@intel.com>
To: wenzhuo.lu@intel.com, qiming.yang@intel.com
Cc: dev@dpdk.org, xiaolong.ye@intel.com,
	Qi Zhang <qi.z.zhang@intel.com>,
	Dan Nowlin <dan.nowlin@intel.com>,
	Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Subject: [dpdk-dev] [PATCH v2 37/63] net/ice/base: associate recipes by profile type
Date: Thu, 29 Aug 2019 10:36:30 +0800	[thread overview]
Message-ID: <20190829023656.8220-38-qi.z.zhang@intel.com> (raw)
In-Reply-To: <20190829023656.8220-1-qi.z.zhang@intel.com>

Change recipe to profile association logic to determine the profile type
to determine if a profile is compatible with the rule being added.

Signed-off-by: Dan Nowlin <dan.nowlin@intel.com>
Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/base/ice_flex_pipe.c     | 87 ++++++++++++++++++++++++++++++--
 drivers/net/ice/base/ice_flex_pipe.h     |  5 +-
 drivers/net/ice/base/ice_flex_type.h     |  8 +++
 drivers/net/ice/base/ice_protocol_type.h |  5 +-
 drivers/net/ice/base/ice_switch.c        | 54 ++++++++++++++++++--
 5 files changed, 151 insertions(+), 8 deletions(-)

diff --git a/drivers/net/ice/base/ice_flex_pipe.c b/drivers/net/ice/base/ice_flex_pipe.c
index f8dd1c4d1..3beb4d961 100644
--- a/drivers/net/ice/base/ice_flex_pipe.c
+++ b/drivers/net/ice/base/ice_flex_pipe.c
@@ -1506,10 +1506,83 @@ ice_sw_fv_handler(u32 sect_type, void *section, u32 index, u32 *offset)
 }
 
 /**
+ * ice_get_sw_prof_type - determine switch profile type
+ * @hw: pointer to the HW structure
+ * @fv: pointer to the switch field vector
+ */
+static enum ice_prof_type
+ice_get_sw_prof_type(struct ice_hw *hw, struct ice_fv *fv)
+{
+	u16 i;
+
+	for (i = 0; i < hw->blk[ICE_BLK_SW].es.fvw; i++) {
+		/* UDP tunnel will have UDP_OF protocol ID and VNI offset */
+		if (fv->ew[i].prot_id == (u8)ICE_PROT_UDP_OF &&
+		    fv->ew[i].off == ICE_VNI_OFFSET)
+			return ICE_PROF_TUN_UDP;
+
+		/* GRE tunnel will have GRE protocol */
+		if (fv->ew[i].prot_id == (u8)ICE_PROT_GRE_OF)
+			return ICE_PROF_TUN_GRE;
+
+		/* PPPOE tunnel will have PPPOE protocol */
+		if (fv->ew[i].prot_id == (u8)ICE_PROT_PPPOE)
+			return ICE_PROF_TUN_PPPOE;
+	}
+
+	return ICE_PROF_NON_TUN;
+}
+
+/**
+ * ice_get_sw_fv_bitmap - Get switch field vector bitmap based on profile type
+ * @hw: pointer to hardware structure
+ * @type: type of profiles requested
+ * @bm: pointer to memory for returning the bitmap of field vectors
+ */
+void
+ice_get_sw_fv_bitmap(struct ice_hw *hw, enum ice_prof_type type,
+		     ice_bitmap_t *bm)
+{
+	struct ice_pkg_enum state;
+	struct ice_seg *ice_seg;
+	struct ice_fv *fv;
+
+	if (type == ICE_PROF_ALL) {
+		u16 i;
+
+		for (i = 0; i < ICE_MAX_NUM_PROFILES; i++)
+			ice_set_bit(i, bm);
+		return;
+	}
+
+	ice_zero_bitmap(bm, ICE_MAX_NUM_PROFILES);
+
+	ice_seg = hw->seg;
+	do {
+		enum ice_prof_type prof_type;
+		u32 offset;
+
+		fv = (struct ice_fv *)
+			ice_pkg_enum_entry(ice_seg, &state, ICE_SID_FLD_VEC_SW,
+					   &offset, ice_sw_fv_handler);
+		ice_seg = NULL;
+
+		if (fv) {
+			/* Determine field vector type */
+			prof_type = ice_get_sw_prof_type(hw, fv);
+
+			if (type & prof_type)
+				ice_set_bit((u16)offset, bm);
+		}
+	} while (fv);
+}
+
+/**
  * ice_get_sw_fv_list
  * @hw: pointer to the HW structure
  * @prot_ids: field vector to search for with a given protocol ID
  * @ids_cnt: lookup/protocol count
+ * @bm: bitmap of field vectors to consider
  * @fv_list: Head of a list
  *
  * Finds all the field vector entries from switch block that contain
@@ -1521,7 +1594,7 @@ ice_sw_fv_handler(u32 sect_type, void *section, u32 index, u32 *offset)
  */
 enum ice_status
 ice_get_sw_fv_list(struct ice_hw *hw, u16 *prot_ids, u8 ids_cnt,
-		   struct LIST_HEAD_TYPE *fv_list)
+		   ice_bitmap_t *bm, struct LIST_HEAD_TYPE *fv_list)
 {
 	struct ice_sw_fv_list_entry *fvl;
 	struct ice_sw_fv_list_entry *tmp;
@@ -1540,8 +1613,17 @@ ice_get_sw_fv_list(struct ice_hw *hw, u16 *prot_ids, u8 ids_cnt,
 		fv = (struct ice_fv *)
 			ice_pkg_enum_entry(ice_seg, &state, ICE_SID_FLD_VEC_SW,
 					   &offset, ice_sw_fv_handler);
+		if (!fv)
+			break;
+		ice_seg = NULL;
 
-		for (i = 0; i < ids_cnt && fv; i++) {
+		/* If field vector is not in the bitmap list, then skip this
+		 * profile.
+		 */
+		if (!ice_is_bit_set(bm, (u16)offset))
+			continue;
+
+		for (i = 0; i < ids_cnt; i++) {
 			int j;
 
 			/* This code assumes that if a switch field vector line
@@ -1565,7 +1647,6 @@ ice_get_sw_fv_list(struct ice_hw *hw, u16 *prot_ids, u8 ids_cnt,
 				break;
 			}
 		}
-		ice_seg = NULL;
 	} while (fv);
 	if (LIST_EMPTY(fv_list))
 		return ICE_ERR_CFG;
diff --git a/drivers/net/ice/base/ice_flex_pipe.h b/drivers/net/ice/base/ice_flex_pipe.h
index 6af24653b..17285efe0 100644
--- a/drivers/net/ice/base/ice_flex_pipe.h
+++ b/drivers/net/ice/base/ice_flex_pipe.h
@@ -30,9 +30,12 @@ ice_find_prot_off(struct ice_hw *hw, enum ice_block blk, u8 prof, u8 fv_idx,
 enum ice_status
 ice_find_label_value(struct ice_seg *ice_seg, char const *name, u32 type,
 		     u16 *value);
+void
+ice_get_sw_fv_bitmap(struct ice_hw *hw, enum ice_prof_type type,
+		     ice_bitmap_t *bm);
 enum ice_status
 ice_get_sw_fv_list(struct ice_hw *hw, u16 *prot_ids, u8 ids_cnt,
-		   struct LIST_HEAD_TYPE *fv_list);
+		   ice_bitmap_t *bm, struct LIST_HEAD_TYPE *fv_list);
 enum ice_status
 ice_create_tunnel(struct ice_hw *hw, enum ice_tunnel_type type, u16 port);
 enum ice_status ice_destroy_tunnel(struct ice_hw *hw, u16 port, bool all);
diff --git a/drivers/net/ice/base/ice_flex_type.h b/drivers/net/ice/base/ice_flex_type.h
index 634897a28..3a70668d9 100644
--- a/drivers/net/ice/base/ice_flex_type.h
+++ b/drivers/net/ice/base/ice_flex_type.h
@@ -710,4 +710,12 @@ struct ice_chs_chg {
 
 #define ICE_FLOW_PTYPE_MAX		ICE_XLT1_CNT
 
+enum ice_prof_type {
+	ICE_PROF_NON_TUN = 0x1,
+	ICE_PROF_TUN_UDP = 0x2,
+	ICE_PROF_TUN_GRE = 0x4,
+	ICE_PROF_TUN_PPPOE = 0x8,
+	ICE_PROF_TUN_ALL = 0xE,
+	ICE_PROF_ALL = 0xFF,
+};
 #endif /* _ICE_FLEX_TYPE_H_ */
diff --git a/drivers/net/ice/base/ice_protocol_type.h b/drivers/net/ice/base/ice_protocol_type.h
index 29375d3ae..ee40bdc30 100644
--- a/drivers/net/ice/base/ice_protocol_type.h
+++ b/drivers/net/ice/base/ice_protocol_type.h
@@ -49,7 +49,8 @@ enum ice_protocol_type {
 };
 
 enum ice_sw_tunnel_type {
-	ICE_NON_TUN,
+	ICE_NON_TUN = 0,
+	ICE_SW_TUN_AND_NON_TUN,
 	ICE_SW_TUN_VXLAN_GPE,
 	ICE_SW_TUN_GENEVE,
 	ICE_SW_TUN_VXLAN,
@@ -111,6 +112,8 @@ enum ice_prot_id {
 	ICE_PROT_INVALID	= 255  /* when offset == 0xFF */
 };
 
+#define ICE_VNI_OFFSET		12 /* offset of VNI from ICE_PROT_UDP_OF */
+
 
 #define ICE_MAC_OFOS_HW		1
 #define ICE_MAC_IL_HW		4
diff --git a/drivers/net/ice/base/ice_switch.c b/drivers/net/ice/base/ice_switch.c
index 2b0c7c7a3..2a7ffc7aa 100644
--- a/drivers/net/ice/base/ice_switch.c
+++ b/drivers/net/ice/base/ice_switch.c
@@ -5463,11 +5463,12 @@ ice_create_recipe_group(struct ice_hw *hw, struct ice_sw_recipe *rm,
  * @lkups: lookup elements or match criteria for the advanced recipe, one
  *	   structure per protocol header
  * @lkups_cnt: number of protocols
+ * @bm: bitmap of field vectors to consider
  * @fv_list: pointer to a list that holds the returned field vectors
  */
 static enum ice_status
 ice_get_fv(struct ice_hw *hw, struct ice_adv_lkup_elem *lkups, u16 lkups_cnt,
-	   struct LIST_HEAD_TYPE *fv_list)
+	   ice_bitmap_t *bm, struct LIST_HEAD_TYPE *fv_list)
 {
 	enum ice_status status;
 	u16 *prot_ids;
@@ -5484,13 +5485,53 @@ ice_get_fv(struct ice_hw *hw, struct ice_adv_lkup_elem *lkups, u16 lkups_cnt,
 		}
 
 	/* Find field vectors that include all specified protocol types */
-	status = ice_get_sw_fv_list(hw, prot_ids, lkups_cnt, fv_list);
+	status = ice_get_sw_fv_list(hw, prot_ids, lkups_cnt, bm, fv_list);
 
 free_mem:
 	ice_free(hw, prot_ids);
 	return status;
 }
 
+/* ice_get_compat_fv_bitmap - Get compatible field vector bitmap for rule
+ * @hw: pointer to hardware structure
+ * @rinfo: other information regarding the rule e.g. priority and action info
+ * @bm: pointer to memory for returning the bitmap of field vectors
+ */
+static void
+ice_get_compat_fv_bitmap(struct ice_hw *hw, struct ice_adv_rule_info *rinfo,
+			 ice_bitmap_t *bm)
+{
+	enum ice_prof_type type;
+
+	switch (rinfo->tun_type) {
+	case ICE_NON_TUN:
+		type = ICE_PROF_NON_TUN;
+		break;
+	case ICE_ALL_TUNNELS:
+		type = ICE_PROF_TUN_ALL;
+		break;
+	case ICE_SW_TUN_VXLAN_GPE:
+	case ICE_SW_TUN_GENEVE:
+	case ICE_SW_TUN_VXLAN:
+	case ICE_SW_TUN_UDP:
+	case ICE_SW_TUN_GTP:
+		type = ICE_PROF_TUN_UDP;
+		break;
+	case ICE_SW_TUN_NVGRE:
+		type = ICE_PROF_TUN_GRE;
+		break;
+	case ICE_SW_TUN_PPPOE:
+		type = ICE_PROF_TUN_PPPOE;
+		break;
+	case ICE_SW_TUN_AND_NON_TUN:
+	default:
+		type = ICE_PROF_ALL;
+		break;
+	}
+
+	ice_get_sw_fv_bitmap(hw, type, bm);
+}
+
 /**
  * ice_add_adv_recipe - Add an advanced recipe that is not part of the default
  * @hw: pointer to hardware structure
@@ -5504,6 +5545,7 @@ static enum ice_status
 ice_add_adv_recipe(struct ice_hw *hw, struct ice_adv_lkup_elem *lkups,
 		   u16 lkups_cnt, struct ice_adv_rule_info *rinfo, u16 *rid)
 {
+	ice_declare_bitmap(fv_bitmap, ICE_MAX_NUM_PROFILES);
 	ice_declare_bitmap(profiles, ICE_MAX_NUM_PROFILES);
 	struct ice_prot_lkup_ext *lkup_exts;
 	struct ice_recp_grp_entry *r_entry;
@@ -5553,7 +5595,13 @@ ice_add_adv_recipe(struct ice_hw *hw, struct ice_adv_lkup_elem *lkups,
 	INIT_LIST_HEAD(&rm->fv_list);
 	INIT_LIST_HEAD(&rm->rg_list);
 
-	status = ice_get_fv(hw, lkups, lkups_cnt, &rm->fv_list);
+	/* Get bitmap of field vectors (profiles) that are compatible with the
+	 * rule request; only these will be searched in the subsequent call to
+	 * ice_get_fv.
+	 */
+	ice_get_compat_fv_bitmap(hw, rinfo, fv_bitmap);
+
+	status = ice_get_fv(hw, lkups, lkups_cnt, fv_bitmap, &rm->fv_list);
 	if (status)
 		goto err_unroll;
 
-- 
2.13.6


  parent reply	other threads:[~2019-08-29  2:40 UTC|newest]

Thread overview: 130+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-26 10:50 [dpdk-dev] [PATCH 00/63] net/ice/base: update base code Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 01/63] net/ice/base: enhance NVM read Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 02/63] net/ice/base: add function to get FW mode Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 03/63] net/ice/base: add support for NVM rollback detection Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 04/63] net/ice/base: add support to init RXDID descs fields Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 05/63] net/ice/base: store number of functions for the device Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 06/63] net/ice/base: add read PBA module function Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 07/63] net/ice/base: correct argument port info Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 08/63] net/ice/base: remove debug code Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 09/63] net/ice/base: add SFF EEPROM AQ Command Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 10/63] net/ice/base: improve debug print message Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 11/63] net/ice/base: add capabilities when in safe mode Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 12/63] net/ice/base: add helper functions for PHY caching Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 13/63] net/ice/base: add support for reading REPC statistics Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 14/63] net/ice/base: adjust DCB INIT for SW mode Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 15/63] net/ice/base: add NVM pkg flag Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 16/63] net/ice/base: move VSI to VSI group Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 17/63] net/ice/base: enable masking for RSS and FD field vectors Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 18/63] net/ice/base: resolve static analysis issues Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 19/63] net/ice/base: fix memory leak issue Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 20/63] net/ice/base: check root pointer for validity Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 21/63] net/ice/base: fix type-mismatch Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 22/63] net/ice/base: correct overrun Coverty hit Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 23/63] net/ice/base: update Boot Configuration Section read of NVM Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 24/63] net/ice/base: add support for NVM access commands Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 25/63] net/ice/base: add support for GTP and PPPoE protocols Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 26/63] net/ice/base: add locks for flow functions Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 27/63] net/ice/base: improve switch advanced rule Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 28/63] net/ice/base: move function declaration Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 29/63] net/ice/base: add 16-byte Flex Rx Descriptor Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 30/63] net/ice/base: add 32-byte Flex Rx Desc for Comms package Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 31/63] net/ice/base: update flag bits to current specification Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 32/63] net/ice/base: add more opcode and macros Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 33/63] net/ice/base: set status when global cfg lock is unavailable Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 34/63] net/ice/base: initialize driver NVM data earlier Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 35/63] net/ice/base: add function to configure Tx AQ command Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 36/63] net/ice/base: add support for not locking sideband queue Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 37/63] net/ice/base: associate recipes by profile type Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 38/63] net/ice/base: return switch error on invalid match criteria Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 39/63] net/ice/base: update UDP tunnel switch training packets Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 40/63] net/ice/base: improve switch chained recipe Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 41/63] net/ice/base: move and add some help function and macros Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 42/63] net/ice/base: add routine for tunnel port query Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 43/63] net/ice/base: ptype group consolidation Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 44/63] net/ice/base: fix for RSS hash on inner UDP port Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 45/63] net/ice/base: packet encapsulation for RSS Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 46/63] net/ice/base: add RSS support for PPPoE and GTPU Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 47/63] net/ice/base: remove unnecessary conditional check Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 48/63] net/ice/base: fix flag settings in AQ call Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 49/63] net/ice/base: refactor removal of VLAN promiscuous rules Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 50/63] net/ice/base: maximize switch recipe words per line Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 51/63] net/ice/base: update switch training packets with open ports Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 52/63] net/ice/base: remove unnecessary dummy packet finding Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 53/63] net/ice/base: remove unnecessary if branch Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 54/63] net/ice/base: correct abbreviations Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 55/63] net/ice/base: update to register definition file Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 56/63] net/ice/base: replace open-code duplication Qi Zhang
2019-08-26 10:50 ` [dpdk-dev] [PATCH 57/63] net/ice/base: delay less Qi Zhang
2019-08-26 10:51 ` [dpdk-dev] [PATCH 58/63] net/ice/base: add AQC get link topology handle support Qi Zhang
2019-08-26 10:51 ` [dpdk-dev] [PATCH 59/63] net/ice/base: remove Rx flex descriptor programming Qi Zhang
2019-08-26 10:51 ` [dpdk-dev] [PATCH 60/63] net/ice/base: enable RSS with ether layer for PPPoE Qi Zhang
2019-08-26 10:51 ` [dpdk-dev] [PATCH 61/63] net/ice/base: add GENEVE offset Qi Zhang
2019-08-26 17:53   ` Dziggel, Douglas A
2019-08-26 10:51 ` [dpdk-dev] [PATCH 62/63] net/ice/base: update profile to recipe bitmap array Qi Zhang
2019-08-26 10:51 ` [dpdk-dev] [PATCH 63/63] net/ice/base: ignore inverse switch recipes Qi Zhang
2019-08-29  2:35 ` [dpdk-dev] [PATCH 00/63 v2] net/ice/base: update base code Qi Zhang
2019-08-29  2:35   ` [dpdk-dev] [PATCH v2 01/63] net/ice/base: enhance NVM read Qi Zhang
2019-08-29  2:35   ` [dpdk-dev] [PATCH v2 02/63] net/ice/base: add function to get FW mode Qi Zhang
2019-08-29  2:35   ` [dpdk-dev] [PATCH v2 03/63] net/ice/base: add support for NVM rollback detection Qi Zhang
2019-08-29  2:35   ` [dpdk-dev] [PATCH v2 04/63] net/ice/base: add support to init RXDID descs fields Qi Zhang
2019-08-29  2:35   ` [dpdk-dev] [PATCH v2 05/63] net/ice/base: store number of functions for the device Qi Zhang
2019-08-29  2:35   ` [dpdk-dev] [PATCH v2 06/63] net/ice/base: add read PBA module function Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 07/63] net/ice/base: correct argument port info Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 08/63] net/ice/base: remove debug code Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 09/63] net/ice/base: add SFF EEPROM AQ Command Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 10/63] net/ice/base: improve debug print message Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 11/63] net/ice/base: add capabilities when in safe mode Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 12/63] net/ice/base: add helper functions for PHY caching Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 13/63] net/ice/base: add support for reading REPC statistics Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 14/63] net/ice/base: adjust DCB INIT for SW mode Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 15/63] net/ice/base: add NVM pkg flag Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 16/63] net/ice/base: move VSI to VSI group Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 17/63] net/ice/base: enable masking for RSS and FD field vectors Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 18/63] net/ice/base: resolve static analysis issues Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 19/63] net/ice/base: fix memory leak issue Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 20/63] net/ice/base: check root pointer for validity Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 21/63] net/ice/base: fix type-mismatch Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 22/63] net/ice/base: correct overrun Coverty hit Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 23/63] net/ice/base: update Boot Configuration Section read of NVM Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 24/63] net/ice/base: add support for NVM access commands Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 25/63] net/ice/base: add support for GTP and PPPoE protocols Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 26/63] net/ice/base: add locks for flow functions Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 27/63] net/ice/base: improve switch advanced rule Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 28/63] net/ice/base: move function declaration Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 29/63] net/ice/base: add 16-byte Flex Rx Descriptor Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 30/63] net/ice/base: add 32-byte Flex Rx Desc Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 31/63] net/ice/base: update flag bits Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 32/63] net/ice/base: add more opcode and macros Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 33/63] net/ice/base: set status when global cfg lock is unavailable Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 34/63] net/ice/base: initialize driver NVM data earlier Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 35/63] net/ice/base: add function to configure Tx AQ command Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 36/63] net/ice/base: add support for not locking sideband queue Qi Zhang
2019-08-29  2:36   ` Qi Zhang [this message]
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 38/63] net/ice/base: return switch error on invalid match criteria Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 39/63] net/ice/base: update UDP tunnel switch training packets Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 40/63] net/ice/base: improve switch chained recipe Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 41/63] net/ice/base: move and add some help function and macros Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 42/63] net/ice/base: add routine for tunnel port query Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 43/63] net/ice/base: ptype group consolidation Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 44/63] net/ice/base: fix for RSS hash on inner UDP port Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 45/63] net/ice/base: packet encapsulation for RSS Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 46/63] net/ice/base: add RSS support for PPPoE and GTPU Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 47/63] net/ice/base: remove unnecessary conditional check Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 48/63] net/ice/base: fix flag settings in AQ call Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 49/63] net/ice/base: refactor removal of VLAN promiscuous rules Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 50/63] net/ice/base: maximize switch recipe words per line Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 51/63] net/ice/base: update switch training packets with open ports Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 52/63] net/ice/base: remove unnecessary dummy packet finding Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 53/63] net/ice/base: remove unnecessary if branch Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 54/63] net/ice/base: correct abbreviations Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 55/63] net/ice/base: update to register definition file Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 56/63] net/ice/base: replace open-code duplication Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 57/63] net/ice/base: delay less Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 58/63] net/ice/base: add AQC get link topology handle support Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 59/63] net/ice/base: remove Rx flex descriptor programming Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 60/63] net/ice/base: enable RSS with ether layer for PPPoE Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 61/63] net/ice/base: add GENEVE offset Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 62/63] net/ice/base: update profile to recipe bitmap array Qi Zhang
2019-08-29  2:36   ` [dpdk-dev] [PATCH v2 63/63] net/ice/base: ignore inverse switch recipes Qi Zhang
2019-08-30  9:44   ` [dpdk-dev] [PATCH 00/63 v2] net/ice/base: update base code Ye Xiaolong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190829023656.8220-38-qi.z.zhang@intel.com \
    --to=qi.z.zhang@intel.com \
    --cc=dan.nowlin@intel.com \
    --cc=dev@dpdk.org \
    --cc=paul.m.stillwell.jr@intel.com \
    --cc=qiming.yang@intel.com \
    --cc=wenzhuo.lu@intel.com \
    --cc=xiaolong.ye@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).