From: Helin Zhang <helin.zhang@intel.com>
To: dev@dpdk.org
Subject: [dpdk-dev] [PATCH v3 10/30] i40e/base: fix up recent proxy and wol bits for X722_SUPPORT
Date: Thu, 18 Feb 2016 22:34:16 +0800 [thread overview]
Message-ID: <1455806076-18497-11-git-send-email-helin.zhang@intel.com> (raw)
In-Reply-To: <1455806076-18497-1-git-send-email-helin.zhang@intel.com>
The recently added opcodes should be available only with X722
SUPPORT, so move them into the #ifdef, and reorder these to be
in numerical order with the rest of the opcodes. Several structs
that were added are unnecessary, so they are removed here.
Signed-off-by: Helin Zhang <helin.zhang@intel.com>
---
drivers/net/i40e/base/i40e_adminq_cmd.h | 138 ++++++++++++--------------------
drivers/net/i40e/base/i40e_common.c | 14 ++--
2 files changed, 56 insertions(+), 96 deletions(-)
diff --git a/drivers/net/i40e/base/i40e_adminq_cmd.h b/drivers/net/i40e/base/i40e_adminq_cmd.h
index 1874653..ff6449c 100644
--- a/drivers/net/i40e/base/i40e_adminq_cmd.h
+++ b/drivers/net/i40e/base/i40e_adminq_cmd.h
@@ -139,6 +139,12 @@ enum i40e_admin_queue_opc {
i40e_aqc_opc_list_func_capabilities = 0x000A,
i40e_aqc_opc_list_dev_capabilities = 0x000B,
+#ifdef X722_SUPPORT
+ /* Proxy commands */
+ i40e_aqc_opc_set_proxy_config = 0x0104,
+ i40e_aqc_opc_set_ns_proxy_table_entry = 0x0105,
+
+#endif
/* LAA */
i40e_aqc_opc_mac_address_read = 0x0107,
i40e_aqc_opc_mac_address_write = 0x0108,
@@ -146,6 +152,12 @@ enum i40e_admin_queue_opc {
/* PXE */
i40e_aqc_opc_clear_pxe_mode = 0x0110,
+#ifdef X722_SUPPORT
+ /* WoL commands */
+ i40e_aqc_opc_set_wol_filter = 0x0120,
+ i40e_aqc_opc_get_wake_reason = 0x0121,
+
+#endif
/* internal switch commands */
i40e_aqc_opc_get_switch_config = 0x0200,
i40e_aqc_opc_add_statistics = 0x0201,
@@ -270,16 +282,8 @@ enum i40e_admin_queue_opc {
i40e_aqc_opc_set_rss_lut = 0x0B03,
i40e_aqc_opc_get_rss_key = 0x0B04,
i40e_aqc_opc_get_rss_lut = 0x0B05,
-
- /* WoL commands */
- i40e_aqc_opc_set_wol_filter = 0x0120,
- i40e_aqc_opc_get_wake_reason = 0x0121,
#endif
- /* Proxy commands */
- i40e_aqc_opc_set_proxy_config = 0x0104,
- i40e_aqc_opc_set_ns_proxy_table_entry = 0x0105,
-
/* Async Events */
i40e_aqc_opc_event_lan_overflow = 0x1001,
@@ -419,6 +423,7 @@ struct i40e_aqc_list_capabilities_element_resp {
#define I40E_AQ_CAP_ID_OS2BMC_CAP 0x0004
#define I40E_AQ_CAP_ID_FUNCTIONS_VALID 0x0005
#define I40E_AQ_CAP_ID_ALTERNATE_RAM 0x0006
+#define I40E_AQ_CAP_ID_WOL_AND_PROXY 0x0008
#define I40E_AQ_CAP_ID_SRIOV 0x0012
#define I40E_AQ_CAP_ID_VF 0x0013
#define I40E_AQ_CAP_ID_VMDQ 0x0014
@@ -567,6 +572,43 @@ struct i40e_aqc_clear_pxe {
I40E_CHECK_CMD_LENGTH(i40e_aqc_clear_pxe);
+#ifdef X722_SUPPORT
+/* Set WoL Filter (0x0120) */
+
+struct i40e_aqc_set_wol_filter {
+ __le16 filter_index;
+#define I40E_AQC_MAX_NUM_WOL_FILTERS 8
+ __le16 cmd_flags;
+#define I40E_AQC_SET_WOL_FILTER 0x8000
+#define I40E_AQC_SET_WOL_FILTER_NO_TCO_WOL 0x4000
+ __le16 valid_flags;
+#define I40E_AQC_SET_WOL_FILTER_ACTION_VALID 0x8000
+#define I40E_AQC_SET_WOL_FILTER_NO_TCO_ACTION_VALID 0x4000
+ u8 reserved[2];
+ __le32 address_high;
+ __le32 address_low;
+};
+
+I40E_CHECK_CMD_LENGTH(i40e_aqc_set_wol_filter);
+
+/* Get Wake Reason (0x0121) */
+
+struct i40e_aqc_get_wake_reason_completion {
+ u8 reserved_1[2];
+ __le16 wake_reason;
+ u8 reserved_2[12];
+};
+
+I40E_CHECK_CMD_LENGTH(i40e_aqc_get_wake_reason_completion);
+
+struct i40e_aqc_set_wol_filter_data {
+ u8 filter[128];
+ u8 mask[16];
+};
+
+I40E_CHECK_STRUCT_LEN(0x90, i40e_aqc_set_wol_filter_data);
+
+#endif /* X722_SUPPORT */
/* Switch configuration commands (0x02xx) */
/* Used by many indirect commands that only pass an seid and a buffer in the
@@ -2426,84 +2468,4 @@ struct i40e_aqc_debug_modify_internals {
I40E_CHECK_CMD_LENGTH(i40e_aqc_debug_modify_internals);
-#ifdef X722_SUPPORT
-struct i40e_aqc_set_proxy_config {
- u8 reserved_1[4];
- u8 reserved_2[4];
- __le32 address_high;
- __le32 address_low;
-};
-
-I40E_CHECK_CMD_LENGTH(i40e_aqc_set_proxy_config);
-
-struct i40e_aqc_set_proxy_config_resp {
- u8 reserved[8];
- __le32 address_high;
- __le32 address_low;
-};
-
-I40E_CHECK_CMD_LENGTH(i40e_aqc_set_proxy_config_resp);
-
-struct i40e_aqc_set_ns_proxy_table_entry {
- u8 reserved_1[4];
- u8 reserved_2[4];
- __le32 address_high;
- __le32 address_low;
-};
-
-I40E_CHECK_CMD_LENGTH(i40e_aqc_set_ns_proxy_table_entry);
-
-struct i40e_aqc_set_ns_proxy_table_entry_resp {
- u8 reserved_1[4];
- u8 reserved_2[4];
- __le32 address_high;
- __le32 address_low;
-};
-
-I40E_CHECK_CMD_LENGTH(i40e_aqc_set_ns_proxy_table_entry_resp);
-
-struct i40e_aqc_set_wol_filter {
- __le16 filter_index;
-#define I40E_AQC_MAX_NUM_WOL_FILTERS 8
- __le16 cmd_flags;
-#define I40E_AQC_SET_WOL_FILTER 0x8000
-#define I40E_AQC_SET_WOL_FILTER_NO_TCO_WOL 0x4000
- __le16 valid_flags;
-#define I40E_AQC_SET_WOL_FILTER_ACTION_VALID 0x8000
-#define I40E_AQC_SET_WOL_FILTER_NO_TCO_ACTION_VALID 0x4000
- u8 reserved[2];
- __le32 address_high;
- __le32 address_low;
-};
-
-I40E_CHECK_CMD_LENGTH(i40e_aqc_set_wol_filter);
-
-struct i40e_aqc_set_wol_filter_resp {
- u8 reserved[8];
- __le32 address_high;
- __le32 address_low;
-};
-
-I40E_CHECK_CMD_LENGTH(i40e_aqc_set_wol_filter_resp);
-
-struct i40e_aqc_get_wol_wake_reason {
- u8 reserved[16];
-};
-
-I40E_CHECK_CMD_LENGTH(i40e_aqc_get_wol_wake_reason);
-
-struct i40e_aqc_get_wake_reason_completion {
- u8 reserved_1[2];
- __le16 wake_reason;
- u8 reserved_2[12];
-};
-
-I40E_CHECK_CMD_LENGTH(i40e_aqc_get_wake_reason_completion);
-
-struct i40e_aqc_set_wol_filter_data {
- u8 filter[128];
- u8 mask[16];
-};
-
-#endif
#endif /* _I40E_ADMINQ_CMD_H_ */
diff --git a/drivers/net/i40e/base/i40e_common.c b/drivers/net/i40e/base/i40e_common.c
index 67a5e21..cfe071b 100644
--- a/drivers/net/i40e/base/i40e_common.c
+++ b/drivers/net/i40e/base/i40e_common.c
@@ -5818,8 +5818,6 @@ enum i40e_status_code i40e_aq_set_arp_proxy_config(struct i40e_hw *hw,
struct i40e_asq_cmd_details *cmd_details)
{
struct i40e_aq_desc desc;
- struct i40e_aqc_set_proxy_config *cmd =
- (struct i40e_aqc_set_proxy_config *) &desc.params.raw;
enum i40e_status_code status;
if (!proxy_config)
@@ -5827,8 +5825,10 @@ enum i40e_status_code i40e_aq_set_arp_proxy_config(struct i40e_hw *hw,
i40e_fill_default_direct_cmd_desc(&desc, i40e_aqc_opc_set_proxy_config);
- cmd->address_high = CPU_TO_LE32(I40E_HI_DWORD((u64)proxy_config));
- cmd->address_low = CPU_TO_LE32(I40E_LO_DWORD((u64)proxy_config));
+ desc.params.external.addr_high =
+ CPU_TO_LE32(I40E_HI_DWORD((u64)proxy_config));
+ desc.params.external.addr_low =
+ CPU_TO_LE32(I40E_LO_DWORD((u64)proxy_config));
status = i40e_asq_send_command(hw, &desc, proxy_config,
sizeof(struct i40e_aqc_arp_proxy_data),
@@ -5851,8 +5851,6 @@ enum i40e_status_code i40e_aq_set_ns_proxy_table_entry(struct i40e_hw *hw,
struct i40e_asq_cmd_details *cmd_details)
{
struct i40e_aq_desc desc;
- struct i40e_aqc_set_ns_proxy_table_entry *cmd =
- (struct i40e_aqc_set_ns_proxy_table_entry *) &desc.params.raw;
enum i40e_status_code status;
if (!ns_proxy_table_entry)
@@ -5861,9 +5859,9 @@ enum i40e_status_code i40e_aq_set_ns_proxy_table_entry(struct i40e_hw *hw,
i40e_fill_default_direct_cmd_desc(&desc,
i40e_aqc_opc_set_ns_proxy_table_entry);
- cmd->address_high =
+ desc.params.external.addr_high =
CPU_TO_LE32(I40E_HI_DWORD((u64)ns_proxy_table_entry));
- cmd->address_low =
+ desc.params.external.addr_low =
CPU_TO_LE32(I40E_LO_DWORD((u64)ns_proxy_table_entry));
status = i40e_asq_send_command(hw, &desc, ns_proxy_table_entry,
--
2.5.0
next prev parent reply other threads:[~2016-02-18 14:35 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 ` Helin Zhang [this message]
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 ` [dpdk-dev] [PATCH v5 15/29] i40e/base: support operating port mirroring rules Helin Zhang
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=1455806076-18497-11-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).