All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wenzhuo Lu <wenzhuo.lu@intel.com>
To: dev@dpdk.org
Subject: [PATCH 5/6] app/testpmd: modify and add fdir filter and mask CLIs for new modes
Date: Fri, 25 Sep 2015 14:05:24 +0800	[thread overview]
Message-ID: <1443161125-1035-6-git-send-email-wenzhuo.lu@intel.com> (raw)
In-Reply-To: <1443161125-1035-1-git-send-email-wenzhuo.lu@intel.com>

The different fdir mode needs different parameters, so, the parameter *mode*
is introduced to the CLI flow_director_filter and flow_director_mask. This
parameter can pormpt the user to input the appropriate parameters for different
mode.
Please be aware, as we should set the fdir mode, the value of the parameter
pkt-filter-mode, when we start testpmd, we cannot set a different mode when
setting mask or filter.
The new CLIs are added for the mac vlan and cloud modes, like this,
flow_director_mask X mode MAC-VLAN vlan XXXX mac XX,
flow_director_mask X mode Cloud vlan XXXX mac XX tunnel-type X TNI/VNI XXXX,
flow_director_filter X mode MAC-VLAN add/del/update mac XX:XX:XX:XX:XX:XX
vlan XXXX flexbytes (X,X) fwd/drop queue X fd_id X,
flow_director_filter X mode Cloud add/del/update mac XX:XX:XX:XX:XX:XX
vlan XXXX tunnel NVGRE/VxLAN TNI/VNI XXXX flexbytes (X,X) fwd/drop queue X
fd_id X.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
---
 app/test-pmd/cmdline.c | 293 ++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 278 insertions(+), 15 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 0f8f48f..7fbd83b 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -7725,6 +7725,8 @@ cmdline_parse_inst_t cmd_ethertype_filter = {
 struct cmd_flow_director_result {
 	cmdline_fixed_string_t flow_director_filter;
 	uint8_t port_id;
+	cmdline_fixed_string_t mode;
+	cmdline_fixed_string_t mode_value;
 	cmdline_fixed_string_t ops;
 	cmdline_fixed_string_t flow;
 	cmdline_fixed_string_t flow_type;
@@ -7747,6 +7749,12 @@ struct cmd_flow_director_result {
 	uint16_t  queue_id;
 	cmdline_fixed_string_t fd_id;
 	uint32_t  fd_id_value;
+	cmdline_fixed_string_t mac;
+	struct ether_addr mac_addr;
+	cmdline_fixed_string_t tunnel;
+	cmdline_fixed_string_t tunnel_type;
+	cmdline_fixed_string_t tni_vni;
+	uint32_t tni_vni_value;
 };
 
 static inline int
@@ -7818,6 +7826,25 @@ str2flowtype(char *string)
 	return RTE_ETH_FLOW_UNKNOWN;
 }
 
+static uint8_t
+str2fdir_tunneltype(char *string)
+{
+	uint8_t i = 0;
+	static const struct {
+		char str[32];
+		uint8_t type;
+	} tunneltype_str[] = {
+		{"NVGRE", RTE_FDIR_TUNNEL_TYPE_NVGRE},
+		{"VxLAN", RTE_FDIR_TUNNEL_TYPE_VXLAN},
+	};
+
+	for (i = 0; i < RTE_DIM(tunneltype_str); i++) {
+		if (!strcmp(tunneltype_str[i].str, string))
+			return tunneltype_str[i].type;
+	}
+	return RTE_FDIR_TUNNEL_TYPE_UNKNOWN;
+}
+
 #define IPV4_ADDR_TO_UINT(ip_addr, ip) \
 do { \
 	if ((ip_addr).family == AF_INET) \
@@ -7858,6 +7885,25 @@ cmd_flow_director_filter_parsed(void *parsed_result,
 	}
 	memset(flexbytes, 0, sizeof(flexbytes));
 	memset(&entry, 0, sizeof(struct rte_eth_fdir_filter));
+
+	if (fdir_conf.mode ==  RTE_FDIR_MODE_PERFECT_MAC_VLAN) {
+		if (strcmp(res->mode_value, "MAC-VLAN")) {
+			printf("Please set mode to MAC-VLAN.\n");
+			return;
+		}
+	} else if (fdir_conf.mode ==  RTE_FDIR_MODE_PERFECT_CLOUD) {
+		if (strcmp(res->mode_value, "Cloud")) {
+			printf("Please set mode to Cloud.\n");
+			return;
+		}
+	} else {
+		if (strcmp(res->mode_value, "IP")) {
+			printf("Please set mode to IP.\n");
+			return;
+		}
+		entry.input.flow_type = str2flowtype(res->flow_type);
+	}
+
 	ret = parse_flexbytes(res->flexbytes_value,
 					flexbytes,
 					RTE_ETH_FDIR_MAX_FLEXLEN);
@@ -7866,7 +7912,6 @@ cmd_flow_director_filter_parsed(void *parsed_result,
 		return;
 	}
 
-	entry.input.flow_type = str2flowtype(res->flow_type);
 	switch (entry.input.flow_type) {
 	case RTE_ETH_FLOW_FRAG_IPV4:
 	case RTE_ETH_FLOW_NONFRAG_IPV4_OTHER:
@@ -7927,9 +7972,24 @@ cmd_flow_director_filter_parsed(void *parsed_result,
 			rte_cpu_to_be_16(res->ether_type);
 		break;
 	default:
-		printf("invalid parameter.\n");
-		return;
+		break;
+	}
+
+	if (fdir_conf.mode ==  RTE_FDIR_MODE_PERFECT_MAC_VLAN)
+		(void)rte_memcpy(&entry.input.flow.mac_vlan_flow.mac_addr,
+				 &res->mac_addr,
+				 sizeof(struct ether_addr));
+
+	if (fdir_conf.mode ==  RTE_FDIR_MODE_PERFECT_CLOUD) {
+		(void)rte_memcpy(&entry.input.flow.cloud_flow.mac_addr,
+				 &res->mac_addr,
+				 sizeof(struct ether_addr));
+		entry.input.flow.cloud_flow.tunnel_type =
+			str2fdir_tunneltype(res->tunnel_type);
+		entry.input.flow.cloud_flow.tni_vni =
+			rte_cpu_to_be_32(res->tni_vni_value);
 	}
+
 	(void)rte_memcpy(entry.input.flow_ext.flexbytes,
 		   flexbytes,
 		   RTE_ETH_FDIR_MAX_FLEXLEN);
@@ -8033,6 +8093,37 @@ cmdline_parse_token_num_t cmd_flow_director_fd_id_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
 			      fd_id_value, UINT32);
 
+cmdline_parse_token_string_t cmd_flow_director_mode =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 mode, "mode");
+cmdline_parse_token_string_t cmd_flow_director_mode_ip =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 mode_value, "IP");
+cmdline_parse_token_string_t cmd_flow_director_mode_mac_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 mode_value, "MAC-VLAN");
+cmdline_parse_token_string_t cmd_flow_director_mode_cloud =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 mode_value, "Cloud");
+cmdline_parse_token_string_t cmd_flow_director_mac =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 mac, "mac");
+cmdline_parse_token_etheraddr_t cmd_flow_director_mac_addr =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_flow_director_result,
+				    mac_addr);
+cmdline_parse_token_string_t cmd_flow_director_tunnel =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 tunnel, "tunnel");
+cmdline_parse_token_string_t cmd_flow_director_tunnel_type =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 tunnel_type, "NVGRE#VxLAN");
+cmdline_parse_token_string_t cmd_flow_director_tni_vni =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 tni_vni, "TNI/VNI");
+cmdline_parse_token_num_t cmd_flow_director_tni_vni_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
+			      tni_vni_value, UINT32);
+
 cmdline_parse_inst_t cmd_add_del_ip_flow_director = {
 	.f = cmd_flow_director_filter_parsed,
 	.data = NULL,
@@ -8040,6 +8131,8 @@ cmdline_parse_inst_t cmd_add_del_ip_flow_director = {
 	.tokens = {
 		(void *)&cmd_flow_director_filter,
 		(void *)&cmd_flow_director_port_id,
+		(void *)&cmd_flow_director_mode,
+		(void *)&cmd_flow_director_mode_ip,
 		(void *)&cmd_flow_director_ops,
 		(void *)&cmd_flow_director_flow,
 		(void *)&cmd_flow_director_flow_type,
@@ -8067,6 +8160,8 @@ cmdline_parse_inst_t cmd_add_del_udp_flow_director = {
 	.tokens = {
 		(void *)&cmd_flow_director_filter,
 		(void *)&cmd_flow_director_port_id,
+		(void *)&cmd_flow_director_mode,
+		(void *)&cmd_flow_director_mode_ip,
 		(void *)&cmd_flow_director_ops,
 		(void *)&cmd_flow_director_flow,
 		(void *)&cmd_flow_director_flow_type,
@@ -8096,6 +8191,8 @@ cmdline_parse_inst_t cmd_add_del_sctp_flow_director = {
 	.tokens = {
 		(void *)&cmd_flow_director_filter,
 		(void *)&cmd_flow_director_port_id,
+		(void *)&cmd_flow_director_mode,
+		(void *)&cmd_flow_director_mode_ip,
 		(void *)&cmd_flow_director_ops,
 		(void *)&cmd_flow_director_flow,
 		(void *)&cmd_flow_director_flow_type,
@@ -8127,6 +8224,8 @@ cmdline_parse_inst_t cmd_add_del_l2_flow_director = {
 	.tokens = {
 		(void *)&cmd_flow_director_filter,
 		(void *)&cmd_flow_director_port_id,
+		(void *)&cmd_flow_director_mode,
+		(void *)&cmd_flow_director_mode_ip,
 		(void *)&cmd_flow_director_ops,
 		(void *)&cmd_flow_director_flow,
 		(void *)&cmd_flow_director_flow_type,
@@ -8143,6 +8242,60 @@ cmdline_parse_inst_t cmd_add_del_l2_flow_director = {
 	},
 };
 
+cmdline_parse_inst_t cmd_add_del_mac_vlan_flow_director = {
+	.f = cmd_flow_director_filter_parsed,
+	.data = NULL,
+	.help_str = "add or delete a MAC VLAN flow director entry on NIC",
+	.tokens = {
+		(void *)&cmd_flow_director_filter,
+		(void *)&cmd_flow_director_port_id,
+		(void *)&cmd_flow_director_mode,
+		(void *)&cmd_flow_director_mode_mac_vlan,
+		(void *)&cmd_flow_director_ops,
+		(void *)&cmd_flow_director_mac,
+		(void *)&cmd_flow_director_mac_addr,
+		(void *)&cmd_flow_director_vlan,
+		(void *)&cmd_flow_director_vlan_value,
+		(void *)&cmd_flow_director_flexbytes,
+		(void *)&cmd_flow_director_flexbytes_value,
+		(void *)&cmd_flow_director_drop,
+		(void *)&cmd_flow_director_queue,
+		(void *)&cmd_flow_director_queue_id,
+		(void *)&cmd_flow_director_fd_id,
+		(void *)&cmd_flow_director_fd_id_value,
+		NULL,
+	},
+};
+
+cmdline_parse_inst_t cmd_add_del_cloud_flow_director = {
+	.f = cmd_flow_director_filter_parsed,
+	.data = NULL,
+	.help_str = "add or delete a NVGRE/VxLAN flow director entry on NIC",
+	.tokens = {
+		(void *)&cmd_flow_director_filter,
+		(void *)&cmd_flow_director_port_id,
+		(void *)&cmd_flow_director_mode,
+		(void *)&cmd_flow_director_mode_cloud,
+		(void *)&cmd_flow_director_ops,
+		(void *)&cmd_flow_director_mac,
+		(void *)&cmd_flow_director_mac_addr,
+		(void *)&cmd_flow_director_vlan,
+		(void *)&cmd_flow_director_vlan_value,
+		(void *)&cmd_flow_director_tunnel,
+		(void *)&cmd_flow_director_tunnel_type,
+		(void *)&cmd_flow_director_tni_vni,
+		(void *)&cmd_flow_director_tni_vni_value,
+		(void *)&cmd_flow_director_flexbytes,
+		(void *)&cmd_flow_director_flexbytes_value,
+		(void *)&cmd_flow_director_drop,
+		(void *)&cmd_flow_director_queue,
+		(void *)&cmd_flow_director_queue_id,
+		(void *)&cmd_flow_director_fd_id,
+		(void *)&cmd_flow_director_fd_id_value,
+		NULL,
+	},
+};
+
 struct cmd_flush_flow_director_result {
 	cmdline_fixed_string_t flush_flow_director;
 	uint8_t port_id;
@@ -8192,8 +8345,10 @@ cmdline_parse_inst_t cmd_flush_flow_director = {
 struct cmd_flow_director_mask_result {
 	cmdline_fixed_string_t flow_director_mask;
 	uint8_t port_id;
+	cmdline_fixed_string_t mode;
+	cmdline_fixed_string_t mode_value;
 	cmdline_fixed_string_t vlan;
-	uint16_t vlan_value;
+	uint16_t vlan_mask;
 	cmdline_fixed_string_t src_mask;
 	cmdline_ipaddr_t ipv4_src;
 	cmdline_ipaddr_t ipv6_src;
@@ -8202,6 +8357,12 @@ struct cmd_flow_director_mask_result {
 	cmdline_ipaddr_t ipv4_dst;
 	cmdline_ipaddr_t ipv6_dst;
 	uint16_t port_dst;
+	cmdline_fixed_string_t mac;
+	uint8_t mac_addr_mask;
+	cmdline_fixed_string_t tni_vni;
+	uint32_t tni_vni_mask;
+	cmdline_fixed_string_t tunnel_type;
+	uint8_t tunnel_type_mask;
 };
 
 static void
@@ -8224,15 +8385,41 @@ cmd_flow_director_mask_parsed(void *parsed_result,
 		printf("Please stop port %d first\n", res->port_id);
 		return;
 	}
+
 	mask = &port->dev_conf.fdir_conf.mask;
 
-	mask->vlan_tci_mask = res->vlan_value;
-	IPV4_ADDR_TO_UINT(res->ipv4_src, mask->ipv4_mask.src_ip);
-	IPV4_ADDR_TO_UINT(res->ipv4_dst, mask->ipv4_mask.dst_ip);
-	IPV6_ADDR_TO_ARRAY(res->ipv6_src, mask->ipv6_mask.src_ip);
-	IPV6_ADDR_TO_ARRAY(res->ipv6_dst, mask->ipv6_mask.dst_ip);
-	mask->src_port_mask = res->port_src;
-	mask->dst_port_mask = res->port_dst;
+	if (fdir_conf.mode ==  RTE_FDIR_MODE_PERFECT_MAC_VLAN) {
+		if (strcmp(res->mode_value, "MAC-VLAN")) {
+			printf("Please set mode to MAC-VLAN.\n");
+			return;
+		}
+
+		mask->vlan_tci_mask = res->vlan_mask;
+		mask->mac_addr_mask = res->mac_addr_mask;
+	} else if (fdir_conf.mode ==  RTE_FDIR_MODE_PERFECT_CLOUD) {
+		if (strcmp(res->mode_value, "Cloud")) {
+			printf("Please set mode to Cloud.\n");
+			return;
+		}
+
+		mask->vlan_tci_mask = res->vlan_mask;
+		mask->mac_addr_mask = res->mac_addr_mask;
+		mask->tni_vni_mask = res->tni_vni_mask;
+		mask->tunnel_type_mask = res->tunnel_type_mask;
+	} else {
+		if (strcmp(res->mode_value, "IP")) {
+			printf("Please set mode to IP.\n");
+			return;
+		}
+
+		mask->vlan_tci_mask = res->vlan_mask;
+		IPV4_ADDR_TO_UINT(res->ipv4_src, mask->ipv4_mask.src_ip);
+		IPV4_ADDR_TO_UINT(res->ipv4_dst, mask->ipv4_mask.dst_ip);
+		IPV6_ADDR_TO_ARRAY(res->ipv6_src, mask->ipv6_mask.src_ip);
+		IPV6_ADDR_TO_ARRAY(res->ipv6_dst, mask->ipv6_mask.dst_ip);
+		mask->src_port_mask = res->port_src;
+		mask->dst_port_mask = res->port_dst;
+	}
 
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
@@ -8248,7 +8435,7 @@ cmdline_parse_token_string_t cmd_flow_director_mask_vlan =
 				 vlan, "vlan");
 cmdline_parse_token_num_t cmd_flow_director_mask_vlan_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
-			      vlan_value, UINT16);
+			      vlan_mask, UINT16);
 cmdline_parse_token_string_t cmd_flow_director_mask_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 src_mask, "src_mask");
@@ -8273,13 +8460,47 @@ cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv6_dst =
 cmdline_parse_token_num_t cmd_flow_director_mask_port_dst =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
 			      port_dst, UINT16);
-cmdline_parse_inst_t cmd_set_flow_director_mask = {
+
+cmdline_parse_token_string_t cmd_flow_director_mask_mode =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
+				 mode, "mode");
+cmdline_parse_token_string_t cmd_flow_director_mask_mode_ip =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
+				 mode_value, "IP");
+cmdline_parse_token_string_t cmd_flow_director_mask_mode_mac_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
+				 mode_value, "MAC-VLAN");
+cmdline_parse_token_string_t cmd_flow_director_mask_mode_cloud =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
+				 mode_value, "Cloud");
+cmdline_parse_token_string_t cmd_flow_director_mask_mac =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
+				 mac, "mac");
+cmdline_parse_token_string_t cmd_flow_director_mask_tunnel_type =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
+				 tunnel_type, "tunnel-type");
+cmdline_parse_token_num_t cmd_flow_director_mask_tunnel_type_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
+			      tunnel_type_mask, UINT8);
+cmdline_parse_token_num_t cmd_flow_director_mask_mac_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
+			      mac_addr_mask, UINT8);
+cmdline_parse_token_string_t cmd_flow_director_mask_tni_vni =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
+				 tni_vni, "TNI/VNI");
+cmdline_parse_token_num_t cmd_flow_director_mask_tni_vni_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
+			      tni_vni_mask, UINT32);
+
+cmdline_parse_inst_t cmd_set_flow_director_ip_mask = {
 	.f = cmd_flow_director_mask_parsed,
 	.data = NULL,
-	.help_str = "set flow director's mask on NIC",
+	.help_str = "set IP mode flow director's mask on NIC",
 	.tokens = {
 		(void *)&cmd_flow_director_mask,
 		(void *)&cmd_flow_director_mask_port_id,
+		(void *)&cmd_flow_director_mask_mode,
+		(void *)&cmd_flow_director_mask_mode_ip,
 		(void *)&cmd_flow_director_mask_vlan,
 		(void *)&cmd_flow_director_mask_vlan_value,
 		(void *)&cmd_flow_director_mask_src,
@@ -8294,6 +8515,44 @@ cmdline_parse_inst_t cmd_set_flow_director_mask = {
 	},
 };
 
+cmdline_parse_inst_t cmd_set_flow_director_mac_vlan_mask = {
+	.f = cmd_flow_director_mask_parsed,
+	.data = NULL,
+	.help_str = "set MAC VLAN mode flow director's mask on NIC",
+	.tokens = {
+		(void *)&cmd_flow_director_mask,
+		(void *)&cmd_flow_director_mask_port_id,
+		(void *)&cmd_flow_director_mask_mode,
+		(void *)&cmd_flow_director_mask_mode_mac_vlan,
+		(void *)&cmd_flow_director_mask_vlan,
+		(void *)&cmd_flow_director_mask_vlan_value,
+		(void *)&cmd_flow_director_mask_mac,
+		(void *)&cmd_flow_director_mask_mac_value,
+		NULL,
+	},
+};
+
+cmdline_parse_inst_t cmd_set_flow_director_cloud_mask = {
+	.f = cmd_flow_director_mask_parsed,
+	.data = NULL,
+	.help_str = "set cloud mode flow director's mask on NIC",
+	.tokens = {
+		(void *)&cmd_flow_director_mask,
+		(void *)&cmd_flow_director_mask_port_id,
+		(void *)&cmd_flow_director_mask_mode,
+		(void *)&cmd_flow_director_mask_mode_cloud,
+		(void *)&cmd_flow_director_mask_vlan,
+		(void *)&cmd_flow_director_mask_vlan_value,
+		(void *)&cmd_flow_director_mask_mac,
+		(void *)&cmd_flow_director_mask_mac_value,
+		(void *)&cmd_flow_director_mask_tunnel_type,
+		(void *)&cmd_flow_director_mask_tunnel_type_value,
+		(void *)&cmd_flow_director_mask_tni_vni,
+		(void *)&cmd_flow_director_mask_tni_vni_value,
+		NULL,
+	},
+};
+
 /* *** deal with flow director mask on flexible payload *** */
 struct cmd_flow_director_flex_mask_result {
 	cmdline_fixed_string_t flow_director_flexmask;
@@ -9025,8 +9284,12 @@ cmdline_parse_ctx_t main_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_add_del_udp_flow_director,
 	(cmdline_parse_inst_t *)&cmd_add_del_sctp_flow_director,
 	(cmdline_parse_inst_t *)&cmd_add_del_l2_flow_director,
+	(cmdline_parse_inst_t *)&cmd_add_del_mac_vlan_flow_director,
+	(cmdline_parse_inst_t *)&cmd_add_del_cloud_flow_director,
 	(cmdline_parse_inst_t *)&cmd_flush_flow_director,
-	(cmdline_parse_inst_t *)&cmd_set_flow_director_mask,
+	(cmdline_parse_inst_t *)&cmd_set_flow_director_ip_mask,
+	(cmdline_parse_inst_t *)&cmd_set_flow_director_mac_vlan_mask,
+	(cmdline_parse_inst_t *)&cmd_set_flow_director_cloud_mask,
 	(cmdline_parse_inst_t *)&cmd_set_flow_director_flex_mask,
 	(cmdline_parse_inst_t *)&cmd_set_flow_director_flex_payload,
 	(cmdline_parse_inst_t *)&cmd_get_sym_hash_ena_per_port,
-- 
1.9.3

  parent reply	other threads:[~2015-09-25  6:05 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-25  6:05 [PATCH 0/6] Support new flow director modes on Intel x550 NIC Wenzhuo Lu
2015-09-25  6:05 ` [PATCH 1/6] lib/librte_ether: modify the structures for fdir new modes Wenzhuo Lu
2015-09-25  7:00   ` Thomas Monjalon
2015-09-25  8:14     ` Lu, Wenzhuo
2015-09-25  8:29       ` Thomas Monjalon
2015-09-28  1:00         ` Lu, Wenzhuo
2015-09-25  6:05 ` [PATCH 2/6] app/testpmd: initialize the new fields for fdir mask Wenzhuo Lu
2015-09-25  6:05 ` [PATCH 3/6] app/testpmd: new fdir modes for testpmd parameter Wenzhuo Lu
2015-09-25  6:05 ` [PATCH 4/6] app/testpmd: modify the output of CLI, show port fdir Wenzhuo Lu
2015-09-25  6:05 ` Wenzhuo Lu [this message]
2015-09-25  6:05 ` [PATCH 6/6] ixgbe: implementation for fdir new modes' config Wenzhuo Lu
2015-09-29  5:31 ` [PATCH v2 0/6] Support new flow director modes on Intel x550 NIC Wenzhuo Lu
2015-09-29  5:31   ` [PATCH v2 1/6] lib/librte_ether: modify the structures for fdir new modes Wenzhuo Lu
2015-09-29  5:31   ` [PATCH v2 2/6] app/testpmd: initialize the new fields for fdir mask Wenzhuo Lu
2015-09-29  5:31   ` [PATCH v2 3/6] app/testpmd: new fdir modes for testpmd parameter Wenzhuo Lu
2015-09-29  5:31   ` [PATCH v2 4/6] app/testpmd: modify the output of the CLI show port fdir Wenzhuo Lu
2015-09-29  5:31   ` [PATCH v2 5/6] app/testpmd: modify and add fdir filter and mask CLIs for new modes Wenzhuo Lu
2015-09-29  5:31   ` [PATCH v2 6/6] ixgbe: implementation for fdir new modes' config Wenzhuo Lu
2015-10-20 13:55     ` Ananyev, Konstantin
2015-10-21  1:48       ` Lu, Wenzhuo
2015-10-21 10:19         ` Ananyev, Konstantin
2015-10-22  1:23           ` Lu, Wenzhuo
2015-10-22  7:11 ` [PATCH v3 0/7] Support new flow director modes on Intel x550 NIC Wenzhuo Lu
2015-10-22  7:11   ` [PATCH v3 1/7] lib/librte_ether: modify the structures for fdir new modes Wenzhuo Lu
2015-10-22 12:57     ` Bruce Richardson
2015-10-23  1:22       ` Lu, Wenzhuo
2015-10-23  7:29         ` Thomas Monjalon
2015-10-23  8:08           ` Lu, Wenzhuo
2015-10-23  9:58         ` Bruce Richardson
2015-10-23 13:06           ` Lu, Wenzhuo
2015-10-22  7:11   ` [PATCH v3 2/7] app/testpmd: initialize the new fields for fdir mask Wenzhuo Lu
2015-10-22  7:11   ` [PATCH v3 3/7] app/testpmd: new fdir modes for testpmd parameter Wenzhuo Lu
2015-10-22  7:11   ` [PATCH v3 4/7] app/testpmd: modify the output of the CLI show port fdir Wenzhuo Lu
2015-10-22  7:11   ` [PATCH v3 5/7] app/testpmd: modify and add fdir filter and mask CLIs for new modes Wenzhuo Lu
2015-10-22  7:11   ` [PATCH v3 6/7] ixgbe: implementation for fdir new modes' config Wenzhuo Lu
2015-10-22  7:11   ` [PATCH v3 7/7] doc: release notes update for flow director enhancement Wenzhuo Lu
2015-10-22  8:36   ` [PATCH v3 0/7] Support new flow director modes on Intel x550 NIC Ananyev, Konstantin
2015-10-23  2:18 ` [PATCH v4 " Wenzhuo Lu
2015-10-23  2:18   ` [PATCH v4 1/7] lib/librte_ether: modify the structures for fdir new modes Wenzhuo Lu
2015-10-23 10:39     ` Chilikin, Andrey
2015-10-23 10:53       ` Ananyev, Konstantin
2015-10-23 12:55       ` Lu, Wenzhuo
2015-10-23  2:18   ` [PATCH v4 2/7] app/testpmd: initialize the new fields for fdir mask Wenzhuo Lu
2015-10-23  2:18   ` [PATCH v4 3/7] app/testpmd: new fdir modes for testpmd parameter Wenzhuo Lu
2015-10-23  2:18   ` [PATCH v4 4/7] app/testpmd: modify the output of the CLI show port fdir Wenzhuo Lu
2015-10-23  2:18   ` [PATCH v4 5/7] app/testpmd: modify and add fdir filter and mask CLIs for new modes Wenzhuo Lu
2015-10-23  2:18   ` [PATCH v4 6/7] ixgbe: implementation for fdir new modes' config Wenzhuo Lu
2015-10-23  2:18   ` [PATCH v4 7/7] doc: release notes update for flow director enhancement Wenzhuo Lu
2015-10-26  5:27 ` [PATCH v5 0/7] Support new flow director modes on Intel x550 NIC Wenzhuo Lu
2015-10-26  5:27   ` [PATCH v5 1/7] lib/librte_ether: modify the structures for fdir new modes Wenzhuo Lu
2015-10-26  5:27   ` [PATCH v5 2/7] app/testpmd: initialize the new fields for fdir mask Wenzhuo Lu
2015-10-26  5:27   ` [PATCH v5 3/7] app/testpmd: new fdir modes for testpmd parameter Wenzhuo Lu
2015-10-26  5:27   ` [PATCH v5 4/7] app/testpmd: modify the output of the CLI show port fdir Wenzhuo Lu
2015-10-26  5:27   ` [PATCH v5 5/7] app/testpmd: modify and add fdir filter and mask CLIs for new modes Wenzhuo Lu
2015-10-26  5:27   ` [PATCH v5 6/7] ixgbe: implementation for fdir new modes' config Wenzhuo Lu
2015-10-26  5:27   ` [PATCH v5 7/7] doc: release notes update for flow director enhancement Wenzhuo Lu
2015-10-27 11:24   ` [PATCH v5 0/7] Support new flow director modes on Intel x550 NIC Ananyev, Konstantin
2015-10-28 23:08     ` Thomas Monjalon

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=1443161125-1035-6-git-send-email-wenzhuo.lu@intel.com \
    --to=wenzhuo.lu@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.