From: Helin Zhang <helin.zhang@intel.com>
To: dev@dpdk.org
Subject: [dpdk-dev] [PATCH v5 15/29] i40e/base: support operating port mirroring rules
Date: Tue, 8 Mar 2016 16:14:23 +0800 [thread overview]
Message-ID: <1457424877-26234-16-git-send-email-helin.zhang@intel.com> (raw)
In-Reply-To: <1457424877-26234-1-git-send-email-helin.zhang@intel.com>
This patch implements necessary functions related to port
mirroring features such as add/delete mirror rule, function
to set promiscuous VLAN mode for VSI if mirror rule_type is
"VLAN Mirroring".
Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
---
drivers/net/i40e/base/i40e_common.c | 162 +++++++++++++++++++++++++++++++++
drivers/net/i40e/base/i40e_prototype.h | 12 +++
2 files changed, 174 insertions(+)
v4:
- Reworded the commit logs.
diff --git a/drivers/net/i40e/base/i40e_common.c b/drivers/net/i40e/base/i40e_common.c
index 44855b3..b1d063f 100644
--- a/drivers/net/i40e/base/i40e_common.c
+++ b/drivers/net/i40e/base/i40e_common.c
@@ -2374,6 +2374,37 @@ enum i40e_status_code i40e_aq_set_vsi_broadcast(struct i40e_hw *hw,
}
/**
+ * i40e_aq_set_vsi_vlan_promisc - control the VLAN promiscuous setting
+ * @hw: pointer to the hw struct
+ * @seid: vsi number
+ * @enable: set MAC L2 layer unicast promiscuous enable/disable for a given VLAN
+ * @cmd_details: pointer to command details structure or NULL
+ **/
+enum i40e_status_code i40e_aq_set_vsi_vlan_promisc(struct i40e_hw *hw,
+ u16 seid, bool enable,
+ struct i40e_asq_cmd_details *cmd_details)
+{
+ struct i40e_aq_desc desc;
+ struct i40e_aqc_set_vsi_promiscuous_modes *cmd =
+ (struct i40e_aqc_set_vsi_promiscuous_modes *)&desc.params.raw;
+ enum i40e_status_code status;
+ u16 flags = 0;
+
+ i40e_fill_default_direct_cmd_desc(&desc,
+ i40e_aqc_opc_set_vsi_promiscuous_modes);
+ if (enable)
+ flags |= I40E_AQC_SET_VSI_PROMISC_VLAN;
+
+ cmd->promiscuous_flags = CPU_TO_LE16(flags);
+ cmd->valid_flags = CPU_TO_LE16(I40E_AQC_SET_VSI_PROMISC_VLAN);
+ cmd->seid = CPU_TO_LE16(seid);
+
+ status = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details);
+
+ return status;
+}
+
+/**
* i40e_get_vsi_params - get VSI configuration info
* @hw: pointer to the hw struct
* @vsi_ctx: pointer to a vsi context struct
@@ -2849,6 +2880,137 @@ enum i40e_status_code i40e_aq_remove_macvlan(struct i40e_hw *hw, u16 seid,
}
/**
+ * i40e_mirrorrule_op - Internal helper function to add/delete mirror rule
+ * @hw: pointer to the hw struct
+ * @opcode: AQ opcode for add or delete mirror rule
+ * @sw_seid: Switch SEID (to which rule refers)
+ * @rule_type: Rule Type (ingress/egress/VLAN)
+ * @id: Destination VSI SEID or Rule ID
+ * @count: length of the list
+ * @mr_list: list of mirrored VSI SEIDs or VLAN IDs
+ * @cmd_details: pointer to command details structure or NULL
+ * @rule_id: Rule ID returned from FW
+ * @rule_used: Number of rules used in internal switch
+ * @rule_free: Number of rules free in internal switch
+ *
+ * Add/Delete a mirror rule to a specific switch. Mirror rules are supported for
+ * VEBs/VEPA elements only
+ **/
+static enum i40e_status_code i40e_mirrorrule_op(struct i40e_hw *hw,
+ u16 opcode, u16 sw_seid, u16 rule_type, u16 id,
+ u16 count, __le16 *mr_list,
+ struct i40e_asq_cmd_details *cmd_details,
+ u16 *rule_id, u16 *rules_used, u16 *rules_free)
+{
+ struct i40e_aq_desc desc;
+ struct i40e_aqc_add_delete_mirror_rule *cmd =
+ (struct i40e_aqc_add_delete_mirror_rule *)&desc.params.raw;
+ struct i40e_aqc_add_delete_mirror_rule_completion *resp =
+ (struct i40e_aqc_add_delete_mirror_rule_completion *)&desc.params.raw;
+ enum i40e_status_code status;
+ u16 buf_size;
+
+ buf_size = count * sizeof(*mr_list);
+
+ /* prep the rest of the request */
+ i40e_fill_default_direct_cmd_desc(&desc, opcode);
+ cmd->seid = CPU_TO_LE16(sw_seid);
+ cmd->rule_type = CPU_TO_LE16(rule_type &
+ I40E_AQC_MIRROR_RULE_TYPE_MASK);
+ cmd->num_entries = CPU_TO_LE16(count);
+ /* Dest VSI for add, rule_id for delete */
+ cmd->destination = CPU_TO_LE16(id);
+ if (mr_list) {
+ desc.flags |= CPU_TO_LE16((u16)(I40E_AQ_FLAG_BUF |
+ I40E_AQ_FLAG_RD));
+ if (buf_size > I40E_AQ_LARGE_BUF)
+ desc.flags |= CPU_TO_LE16((u16)I40E_AQ_FLAG_LB);
+ }
+
+ status = i40e_asq_send_command(hw, &desc, mr_list, buf_size,
+ cmd_details);
+ if (status == I40E_SUCCESS ||
+ hw->aq.asq_last_status == I40E_AQ_RC_ENOSPC) {
+ if (rule_id)
+ *rule_id = LE16_TO_CPU(resp->rule_id);
+ if (rules_used)
+ *rules_used = LE16_TO_CPU(resp->mirror_rules_used);
+ if (rules_free)
+ *rules_free = LE16_TO_CPU(resp->mirror_rules_free);
+ }
+ return status;
+}
+
+/**
+ * i40e_aq_add_mirrorrule - add a mirror rule
+ * @hw: pointer to the hw struct
+ * @sw_seid: Switch SEID (to which rule refers)
+ * @rule_type: Rule Type (ingress/egress/VLAN)
+ * @dest_vsi: SEID of VSI to which packets will be mirrored
+ * @count: length of the list
+ * @mr_list: list of mirrored VSI SEIDs or VLAN IDs
+ * @cmd_details: pointer to command details structure or NULL
+ * @rule_id: Rule ID returned from FW
+ * @rule_used: Number of rules used in internal switch
+ * @rule_free: Number of rules free in internal switch
+ *
+ * Add mirror rule. Mirror rules are supported for VEBs or VEPA elements only
+ **/
+enum i40e_status_code i40e_aq_add_mirrorrule(struct i40e_hw *hw, u16 sw_seid,
+ u16 rule_type, u16 dest_vsi, u16 count, __le16 *mr_list,
+ struct i40e_asq_cmd_details *cmd_details,
+ u16 *rule_id, u16 *rules_used, u16 *rules_free)
+{
+ if (!(rule_type == I40E_AQC_MIRROR_RULE_TYPE_ALL_INGRESS ||
+ rule_type == I40E_AQC_MIRROR_RULE_TYPE_ALL_EGRESS)) {
+ if (count == 0 || !mr_list)
+ return I40E_ERR_PARAM;
+ }
+
+ return i40e_mirrorrule_op(hw, i40e_aqc_opc_add_mirror_rule, sw_seid,
+ rule_type, dest_vsi, count, mr_list,
+ cmd_details, rule_id, rules_used, rules_free);
+}
+
+/**
+ * i40e_aq_delete_mirrorrule - delete a mirror rule
+ * @hw: pointer to the hw struct
+ * @sw_seid: Switch SEID (to which rule refers)
+ * @rule_type: Rule Type (ingress/egress/VLAN)
+ * @count: length of the list
+ * @rule_id: Rule ID that is returned in the receive desc as part of
+ * add_mirrorrule.
+ * @mr_list: list of mirrored VLAN IDs to be removed
+ * @cmd_details: pointer to command details structure or NULL
+ * @rule_used: Number of rules used in internal switch
+ * @rule_free: Number of rules free in internal switch
+ *
+ * Delete a mirror rule. Mirror rules are supported for VEBs/VEPA elements only
+ **/
+enum i40e_status_code i40e_aq_delete_mirrorrule(struct i40e_hw *hw, u16 sw_seid,
+ u16 rule_type, u16 rule_id, u16 count, __le16 *mr_list,
+ struct i40e_asq_cmd_details *cmd_details,
+ u16 *rules_used, u16 *rules_free)
+{
+ /* Rule ID has to be valid except rule_type: INGRESS VLAN mirroring */
+ if (rule_type != I40E_AQC_MIRROR_RULE_TYPE_VLAN) {
+ if (!rule_id)
+ return I40E_ERR_PARAM;
+ } else {
+ /* count and mr_list shall be valid for rule_type INGRESS VLAN
+ * mirroring. For other rule_type, count and rule_type should
+ * not matter.
+ */
+ if (count == 0 || !mr_list)
+ return I40E_ERR_PARAM;
+ }
+
+ return i40e_mirrorrule_op(hw, i40e_aqc_opc_delete_mirror_rule, sw_seid,
+ rule_type, rule_id, count, mr_list,
+ cmd_details, NULL, rules_used, rules_free);
+}
+
+/**
* i40e_aq_add_vlan - Add VLAN ids to the HW filtering
* @hw: pointer to the hw struct
* @seid: VSI for the vlan filters
diff --git a/drivers/net/i40e/base/i40e_prototype.h b/drivers/net/i40e/base/i40e_prototype.h
index 93fddf1..b5b8935 100644
--- a/drivers/net/i40e/base/i40e_prototype.h
+++ b/drivers/net/i40e/base/i40e_prototype.h
@@ -168,6 +168,9 @@ enum i40e_status_code i40e_aq_set_vsi_mc_promisc_on_vlan(struct i40e_hw *hw,
enum i40e_status_code i40e_aq_set_vsi_uc_promisc_on_vlan(struct i40e_hw *hw,
u16 seid, bool enable, u16 vid,
struct i40e_asq_cmd_details *cmd_details);
+enum i40e_status_code i40e_aq_set_vsi_vlan_promisc(struct i40e_hw *hw,
+ u16 seid, bool enable,
+ struct i40e_asq_cmd_details *cmd_details);
enum i40e_status_code i40e_aq_get_vsi_params(struct i40e_hw *hw,
struct i40e_vsi_context *vsi_ctx,
struct i40e_asq_cmd_details *cmd_details);
@@ -190,6 +193,15 @@ enum i40e_status_code i40e_aq_add_macvlan(struct i40e_hw *hw, u16 vsi_id,
enum i40e_status_code i40e_aq_remove_macvlan(struct i40e_hw *hw, u16 vsi_id,
struct i40e_aqc_remove_macvlan_element_data *mv_list,
u16 count, struct i40e_asq_cmd_details *cmd_details);
+enum i40e_status_code i40e_aq_add_mirrorrule(struct i40e_hw *hw, u16 sw_seid,
+ u16 rule_type, u16 dest_vsi, u16 count, __le16 *mr_list,
+ struct i40e_asq_cmd_details *cmd_details,
+ u16 *rule_id, u16 *rules_used, u16 *rules_free);
+enum i40e_status_code i40e_aq_delete_mirrorrule(struct i40e_hw *hw, u16 sw_seid,
+ u16 rule_type, u16 rule_id, u16 count, __le16 *mr_list,
+ struct i40e_asq_cmd_details *cmd_details,
+ u16 *rules_used, u16 *rules_free);
+
enum i40e_status_code i40e_aq_add_vlan(struct i40e_hw *hw, u16 vsi_id,
struct i40e_aqc_add_remove_vlan_element_data *v_list,
u8 count, struct i40e_asq_cmd_details *cmd_details);
--
2.5.0
next prev parent reply other threads:[~2016-03-08 8:15 UTC|newest]
Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1455776683-11790-1-git-send-email-helin.zhang@intel.com>
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 00/30] i40e base driver update Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 01/30] i40e/base: use explicit cast from u16 to u8 Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 02/30] i40e/base: acquire NVM, before issuing an AQ read nvm command Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 03/30] i40e/base: add hw flag for SRCTL access using AQ for X722 Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 04/30] i40e/base: add changes in nvm read to support X722 Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 05/30] i40e/base: limit DCB FW version checks to XL710/X710 devices Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 06/30] i40e/base: check for stopped admin queue Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 07/30] i40e/base: set aq count after memory allocation Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 08/30] i40e/base: clean event descriptor before use Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 09/30] i40e/base: add new device IDs and delete deprecated one Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 10/30] i40e/base: fix up recent proxy and wol bits for X722_SUPPORT Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 11/30] i40e/base: define function capabilities in only one place Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 12/30] i40e/base: fix for PHY NVM interaction problem Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 13/30] i40e/base: set shared bit for multicast filters Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 14/30] i40e/base: add APIs to Add/remove port mirroring rules Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 15/30] i40e/base: add VEB stat control and remove L2 cloud filter Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 16/30] i40e/base: implement the API function for aq_set_switch_config Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 17/30] i40e/base: add functions to blink led on Coppervale PHY Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 18/30] i40e/base: apply promisc mode to Tx Traffic Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 19/30] i40e/base: increase timeout when checking GLGEN_RSTAT_DEVSTATE bit Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 20/30] i40e/base: save off VSI resource count when updating VSI Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 21/30] i40e/base: coding style fixes Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 22/30] i40e/base: use FW to read/write rx control registers Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 23/30] i40e/base: expose some registers to program parser, FD and RSS logic Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 24/30] i40e/base: add a Virtchnl offload for RSS PCTYPE V2 Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 25/30] i40e/base: add AQ thermal sensor control struct Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 26/30] i40e/base: add/update structure and macro definitions Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 27/30] i40e: add base driver release info Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 28/30] i40e: add/remove new device IDs Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 29/30] i40e: use rx control function for rx control registers Helin Zhang
2016-02-18 14:34 ` [dpdk-dev] [PATCH v3 30/30] i40evf: use base driver defined interface Helin Zhang
2016-02-19 5:14 ` [dpdk-dev] [PATCH v3 00/30] i40e base driver update Wu, Jingjing
2016-03-03 20:36 ` Bruce Richardson
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 00/29] " Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 01/29] i40e/base: fix compilation warnings Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 02/29] i40e/base: acquire NVM ownership before reading it Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 03/29] i40e/base: add hw flag for X722 register access Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 04/29] i40e/base: add X722 support on nvm read Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 05/29] i40e/base: limit version check of DCB Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 06/29] i40e/base: fix missing check for stopped admin queue Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 07/29] i40e/base: set aq count after memory allocation Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 08/29] i40e/base: fix uncertain event descriptor issue Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 09/29] i40e: update device id Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 10/29] i40e/base: fix up recent wol bits for X722_SUPPORT Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 11/29] i40e/base: fix up recent proxy " Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 12/29] i40e/base: unify the capability function Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 13/29] i40e/base: fix for PHY NVM interaction problem Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 14/29] i40e/base: set shared bit for multicast filters Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 15/29] i40e/base: support operating port mirroring rules Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 16/29] i40e: add VEB stat control Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 17/29] i40e/base: implement new API function Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 18/29] i40e/base: add functions to blink led Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 19/29] i40e/base: apply promisc mode to Tx Traffic Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 20/29] i40e/base: fix driver load failure Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 21/29] i40e/base: save off VSI resource count Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 22/29] i40e/base: coding style fixes Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 23/29] i40e: use AQ rx control register read/write Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 24/29] i40e: expose some registers Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 25/29] i40e/base: add a new Virtchnl offload Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 26/29] i40e/base: add AQ thermal sensor control struct Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 27/29] i40e: update structure and macro definitions Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 28/29] i40e: add base driver release info Helin Zhang
2016-03-06 15:41 ` [dpdk-dev] [PATCH v4 29/29] i40evf: use base driver defined interface Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 00/29] i40e base driver update Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 01/29] i40e/base: fix compilation warnings Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 02/29] i40e/base: acquire NVM ownership before reading it Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 03/29] i40e/base: add hw flag for X722 register access Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 04/29] i40e/base: add X722 support on nvm read Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 05/29] i40e/base: limit version check of DCB Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 06/29] i40e/base: fix missing check for stopped admin queue Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 07/29] i40e/base: set aq count after memory allocation Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 08/29] i40e/base: fix uncertain event descriptor issue Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 09/29] i40e: update device id Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 10/29] i40e/base: fix up recent wol bits for X722_SUPPORT Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 11/29] i40e/base: fix up recent proxy " Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 12/29] i40e/base: unify the capability function Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 13/29] i40e/base: fix for PHY NVM interaction problem Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 14/29] i40e/base: set shared bit for multicast filters Helin Zhang
2016-03-08 8:14 ` Helin Zhang [this message]
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 16/29] i40e: add VEB stat control Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 17/29] i40e/base: implement new API function Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 18/29] i40e/base: add functions to blink led Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 19/29] i40e/base: apply promisc mode to Tx Traffic Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 20/29] i40e/base: fix driver load failure Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 21/29] i40e/base: save off VSI resource count Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 22/29] i40e/base: coding style fixes Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 23/29] i40e: use AQ rx control register read/write Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 24/29] i40e: expose some registers Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 25/29] i40e/base: add a new Virtchnl offload Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 26/29] i40e/base: add AQ thermal sensor control struct Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 27/29] i40e: update structure and macro definitions Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 28/29] i40e: add base driver release info Helin Zhang
2016-03-08 8:14 ` [dpdk-dev] [PATCH v5 29/29] i40evf: use base driver defined interface Helin Zhang
2016-03-08 9:55 ` [dpdk-dev] [PATCH v5 00/29] i40e base driver update Remy Horton
2016-03-08 12:52 ` Bruce Richardson
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=1457424877-26234-16-git-send-email-helin.zhang@intel.com \
--to=helin.zhang@intel.com \
--cc=dev@dpdk.org \
/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).