DPDK patches and discussions
 help / color / mirror / Atom feed
From: Jingjing Wu <jingjing.wu@intel.com>
To: bruce.richardson@intel.com
Cc: dev@dpdk.org, jingjing.wu@intel.com, helin.zhang@intel.com
Subject: [dpdk-dev] [PATCH v6 6/9] testpmd: extend input set related commands
Date: Wed, 23 Mar 2016 21:07:09 +0800	[thread overview]
Message-ID: <1458738432-3184-7-git-send-email-jingjing.wu@intel.com> (raw)
In-Reply-To: <1458738432-3184-1-git-send-email-jingjing.wu@intel.com>

This patch extends commands for changing a flow director filter's input
set. It adds tos, protocol and ttl as filter's input fields, and removes
the words selection from flex payloads.

Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
---
 app/test-pmd/cmdline.c                      | 100 ++++++++++++++++++++++------
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |  42 +++++++-----
 2 files changed, 104 insertions(+), 38 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index c34d4c1..95350de 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -669,6 +669,7 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"flow_director_filter (port_id) mode IP (add|del|update)"
 			" flow (ipv4-other|ipv4-frag|ipv6-other|ipv6-frag)"
 			" src (src_ip_address) dst (dst_ip_address)"
+			" tos (tos_value) proto (proto_value) ttl (ttl_value)"
 			" vlan (vlan_value) flexbytes (flexbytes_value)"
 			" (drop|fwd) pf|vf(vf_id) queue (queue_id)"
 			" fd_id (fd_id_value)\n"
@@ -678,6 +679,7 @@ static void cmd_help_long_parsed(void *parsed_result,
 			" flow (ipv4-tcp|ipv4-udp|ipv6-tcp|ipv6-udp)"
 			" src (src_ip_address) (src_port)"
 			" dst (dst_ip_address) (dst_port)"
+			" tos (tos_value) ttl (ttl_value)"
 			" vlan (vlan_value) flexbytes (flexbytes_value)"
 			" (drop|fwd) pf|vf(vf_id) queue (queue_id)"
 			" fd_id (fd_id_value)\n"
@@ -687,7 +689,9 @@ static void cmd_help_long_parsed(void *parsed_result,
 			" flow (ipv4-sctp|ipv6-sctp)"
 			" src (src_ip_address) (src_port)"
 			" dst (dst_ip_address) (dst_port)"
-			" tag (verification_tag) vlan (vlan_value)"
+			" tag (verification_tag) "
+			" tos (tos_value) ttl (ttl_value)"
+			" vlan (vlan_value)"
 			" flexbytes (flexbytes_value) (drop|fwd)"
 			" pf|vf(vf_id) queue (queue_id) fd_id (fd_id_value)\n"
 			"    Add/Del a SCTP type flow director filter.\n\n"
@@ -767,14 +771,15 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"fld-8th|none) (select|add)\n"
 			"    Set the input set for hash.\n\n"
 
-			"set_fdir_input_set (port_id) (ipv4|ipv4-frag|"
-			"ipv4-tcp|ipv4-udp|ipv4-sctp|ipv4-other|ipv6|"
+			"set_fdir_input_set (port_id) "
+			"(ipv4-frag|ipv4-tcp|ipv4-udp|ipv4-sctp|ipv4-other|"
 			"ipv6-frag|ipv6-tcp|ipv6-udp|ipv6-sctp|ipv6-other|"
-			"l2_payload) (src-ipv4|dst-ipv4|src-ipv6|dst-ipv6|"
-			"udp-src-port|udp-dst-port|tcp-src-port|tcp-dst-port|"
-			"sctp-src-port|sctp-dst-port|sctp-veri-tag|fld-1st|"
-			"fld-2nd|fld-3rd|fld-4th|fld-5th|fld-6th|fld-7th|"
-			"fld-8th|none) (select|add)\n"
+			"l2_payload) (ethertype|src-ipv4|dst-ipv4|src-ipv6|"
+			"dst-ipv6|ipv4-tos|ipv4-proto|ipv4-ttl|ipv6-tc|"
+			"ipv6-next-header|ipv6-hop-limits|udp-src-port|"
+			"udp-dst-port|tcp-src-port|tcp-dst-port|"
+			"sctp-src-port|sctp-dst-port|sctp-veri-tag|none)"
+			" (select|add)\n"
 			"    Set the input set for FDir.\n\n"
 		);
 	}
@@ -8027,6 +8032,12 @@ struct cmd_flow_director_result {
 	uint16_t port_dst;
 	cmdline_fixed_string_t verify_tag;
 	uint32_t verify_tag_value;
+	cmdline_ipaddr_t tos;
+	uint8_t tos_value;
+	cmdline_ipaddr_t proto;
+	uint8_t proto_value;
+	cmdline_ipaddr_t ttl;
+	uint8_t ttl_value;
 	cmdline_fixed_string_t vlan;
 	uint16_t vlan_value;
 	cmdline_fixed_string_t flexbytes;
@@ -8206,12 +8217,15 @@ cmd_flow_director_filter_parsed(void *parsed_result,
 	switch (entry.input.flow_type) {
 	case RTE_ETH_FLOW_FRAG_IPV4:
 	case RTE_ETH_FLOW_NONFRAG_IPV4_OTHER:
+		entry.input.flow.ip4_flow.proto = res->proto_value;
 	case RTE_ETH_FLOW_NONFRAG_IPV4_UDP:
 	case RTE_ETH_FLOW_NONFRAG_IPV4_TCP:
 		IPV4_ADDR_TO_UINT(res->ip_dst,
 			entry.input.flow.ip4_flow.dst_ip);
 		IPV4_ADDR_TO_UINT(res->ip_src,
 			entry.input.flow.ip4_flow.src_ip);
+		entry.input.flow.ip4_flow.tos = res->tos_value;
+		entry.input.flow.ip4_flow.ttl = res->ttl_value;
 		/* need convert to big endian. */
 		entry.input.flow.udp4_flow.dst_port =
 				rte_cpu_to_be_16(res->port_dst);
@@ -8223,6 +8237,8 @@ cmd_flow_director_filter_parsed(void *parsed_result,
 			entry.input.flow.sctp4_flow.ip.dst_ip);
 		IPV4_ADDR_TO_UINT(res->ip_src,
 			entry.input.flow.sctp4_flow.ip.src_ip);
+		entry.input.flow.ip4_flow.tos = res->tos_value;
+		entry.input.flow.ip4_flow.ttl = res->ttl_value;
 		/* need convert to big endian. */
 		entry.input.flow.sctp4_flow.dst_port =
 				rte_cpu_to_be_16(res->port_dst);
@@ -8233,12 +8249,15 @@ cmd_flow_director_filter_parsed(void *parsed_result,
 		break;
 	case RTE_ETH_FLOW_FRAG_IPV6:
 	case RTE_ETH_FLOW_NONFRAG_IPV6_OTHER:
+		entry.input.flow.ipv6_flow.proto = res->proto_value;
 	case RTE_ETH_FLOW_NONFRAG_IPV6_UDP:
 	case RTE_ETH_FLOW_NONFRAG_IPV6_TCP:
 		IPV6_ADDR_TO_ARRAY(res->ip_dst,
 			entry.input.flow.ipv6_flow.dst_ip);
 		IPV6_ADDR_TO_ARRAY(res->ip_src,
 			entry.input.flow.ipv6_flow.src_ip);
+		entry.input.flow.ipv6_flow.tc = res->tos_value;
+		entry.input.flow.ipv6_flow.hop_limits = res->ttl_value;
 		/* need convert to big endian. */
 		entry.input.flow.udp6_flow.dst_port =
 				rte_cpu_to_be_16(res->port_dst);
@@ -8250,6 +8269,8 @@ cmd_flow_director_filter_parsed(void *parsed_result,
 			entry.input.flow.sctp6_flow.ip.dst_ip);
 		IPV6_ADDR_TO_ARRAY(res->ip_src,
 			entry.input.flow.sctp6_flow.ip.src_ip);
+		entry.input.flow.ipv6_flow.tc = res->tos_value;
+		entry.input.flow.ipv6_flow.hop_limits = res->ttl_value;
 		/* need convert to big endian. */
 		entry.input.flow.sctp6_flow.dst_port =
 				rte_cpu_to_be_16(res->port_dst);
@@ -8377,6 +8398,24 @@ cmdline_parse_token_string_t cmd_flow_director_verify_tag =
 cmdline_parse_token_num_t cmd_flow_director_verify_tag_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
 			      verify_tag_value, UINT32);
+cmdline_parse_token_string_t cmd_flow_director_tos =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 tos, "tos");
+cmdline_parse_token_num_t cmd_flow_director_tos_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
+			      tos_value, UINT8);
+cmdline_parse_token_string_t cmd_flow_director_proto =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 proto, "proto");
+cmdline_parse_token_num_t cmd_flow_director_proto_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
+			      proto_value, UINT8);
+cmdline_parse_token_string_t cmd_flow_director_ttl =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 ttl, "ttl");
+cmdline_parse_token_num_t cmd_flow_director_ttl_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
+			      ttl_value, UINT8);
 cmdline_parse_token_string_t cmd_flow_director_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 vlan, "vlan");
@@ -8455,6 +8494,12 @@ cmdline_parse_inst_t cmd_add_del_ip_flow_director = {
 		(void *)&cmd_flow_director_ip_src,
 		(void *)&cmd_flow_director_dst,
 		(void *)&cmd_flow_director_ip_dst,
+		(void *)&cmd_flow_director_tos,
+		(void *)&cmd_flow_director_tos_value,
+		(void *)&cmd_flow_director_proto,
+		(void *)&cmd_flow_director_proto_value,
+		(void *)&cmd_flow_director_ttl,
+		(void *)&cmd_flow_director_ttl_value,
 		(void *)&cmd_flow_director_vlan,
 		(void *)&cmd_flow_director_vlan_value,
 		(void *)&cmd_flow_director_flexbytes,
@@ -8487,6 +8532,10 @@ cmdline_parse_inst_t cmd_add_del_udp_flow_director = {
 		(void *)&cmd_flow_director_dst,
 		(void *)&cmd_flow_director_ip_dst,
 		(void *)&cmd_flow_director_port_dst,
+		(void *)&cmd_flow_director_tos,
+		(void *)&cmd_flow_director_tos_value,
+		(void *)&cmd_flow_director_ttl,
+		(void *)&cmd_flow_director_ttl_value,
 		(void *)&cmd_flow_director_vlan,
 		(void *)&cmd_flow_director_vlan_value,
 		(void *)&cmd_flow_director_flexbytes,
@@ -8521,6 +8570,10 @@ cmdline_parse_inst_t cmd_add_del_sctp_flow_director = {
 		(void *)&cmd_flow_director_port_dst,
 		(void *)&cmd_flow_director_verify_tag,
 		(void *)&cmd_flow_director_verify_tag_value,
+		(void *)&cmd_flow_director_tos,
+		(void *)&cmd_flow_director_tos_value,
+		(void *)&cmd_flow_director_ttl,
+		(void *)&cmd_flow_director_ttl_value,
 		(void *)&cmd_flow_director_vlan,
 		(void *)&cmd_flow_director_vlan_value,
 		(void *)&cmd_flow_director_flexbytes,
@@ -9447,16 +9500,19 @@ str2inset(char *string)
 		char str[32];
 		enum rte_eth_input_set_field inset;
 	} inset_table[] = {
+		{"ethertype", RTE_ETH_INPUT_SET_L2_ETHERTYPE},
 		{"ovlan", RTE_ETH_INPUT_SET_L2_OUTER_VLAN},
 		{"ivlan", RTE_ETH_INPUT_SET_L2_INNER_VLAN},
 		{"src-ipv4", RTE_ETH_INPUT_SET_L3_SRC_IP4},
 		{"dst-ipv4", RTE_ETH_INPUT_SET_L3_DST_IP4},
 		{"ipv4-tos", RTE_ETH_INPUT_SET_L3_IP4_TOS},
 		{"ipv4-proto", RTE_ETH_INPUT_SET_L3_IP4_PROTO},
+		{"ipv4-ttl", RTE_ETH_INPUT_SET_L3_IP4_TTL},
 		{"src-ipv6", RTE_ETH_INPUT_SET_L3_SRC_IP6},
 		{"dst-ipv6", RTE_ETH_INPUT_SET_L3_DST_IP6},
 		{"ipv6-tc", RTE_ETH_INPUT_SET_L3_IP6_TC},
 		{"ipv6-next-header", RTE_ETH_INPUT_SET_L3_IP6_NEXT_HEADER},
+		{"ipv6-hop-limits", RTE_ETH_INPUT_SET_L3_IP6_HOP_LIMITS},
 		{"udp-src-port", RTE_ETH_INPUT_SET_L4_UDP_SRC_PORT},
 		{"udp-dst-port", RTE_ETH_INPUT_SET_L4_UDP_DST_PORT},
 		{"tcp-src-port", RTE_ETH_INPUT_SET_L4_TCP_SRC_PORT},
@@ -9515,7 +9571,7 @@ cmdline_parse_token_num_t cmd_set_hash_input_set_port_id =
 cmdline_parse_token_string_t cmd_set_hash_input_set_flow_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_hash_input_set_result,
 		flow_type,
-		"ipv4#ipv4-frag#ipv4-tcp#ipv4-udp#ipv4-sctp#ipv4-other#ipv6#"
+		"ipv4-frag#ipv4-tcp#ipv4-udp#ipv4-sctp#ipv4-other#"
 		"ipv6-frag#ipv6-tcp#ipv6-udp#ipv6-sctp#ipv6-other#l2_payload");
 cmdline_parse_token_string_t cmd_set_hash_input_set_field =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_hash_input_set_result,
@@ -9534,8 +9590,8 @@ cmdline_parse_inst_t cmd_set_hash_input_set = {
 	.f = cmd_set_hash_input_set_parsed,
 	.data = NULL,
 	.help_str = "set_hash_input_set <port_id> "
-	"ipv4|ipv4-frag|ipv4-tcp|ipv4-udp|ipv4-sctp|ipv4-other|ipv6|ipv6-frag|"
-	"ipv6-tcp|ipv6-udp|ipv6-sctp|ipv6-other|l2_payload "
+	"ipv4-frag|ipv4-tcp|ipv4-udp|ipv4-sctp|ipv4-other|"
+	"ipv6-frag|ipv6-tcp|ipv6-udp|ipv6-sctp|ipv6-other|l2_payload "
 	"ovlan|ivlan|src-ipv4|dst-ipv4|src-ipv6|dst-ipv6|ipv4-tos|ipv4-proto|"
 	"ipv6-tc|ipv6-next-header|udp-src-port|udp-dst-port|tcp-src-port|"
 	"tcp-dst-port|sctp-src-port|sctp-dst-port|sctp-veri-tag|udp-key|"
@@ -9590,15 +9646,16 @@ cmdline_parse_token_num_t cmd_set_fdir_input_set_port_id =
 cmdline_parse_token_string_t cmd_set_fdir_input_set_flow_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fdir_input_set_result,
 	flow_type,
-	"ipv4#ipv4-frag#ipv4-tcp#ipv4-udp#ipv4-sctp#ipv4-other#ipv6#"
+	"ipv4-frag#ipv4-tcp#ipv4-udp#ipv4-sctp#ipv4-other#"
 	"ipv6-frag#ipv6-tcp#ipv6-udp#ipv6-sctp#ipv6-other#l2_payload");
 cmdline_parse_token_string_t cmd_set_fdir_input_set_field =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fdir_input_set_result,
 	inset_field,
-	"src-ipv4#dst-ipv4#src-ipv6#dst-ipv6#udp-src-port#udp-dst-port#"
+	"ethertype#src-ipv4#dst-ipv4#src-ipv6#dst-ipv6#"
+	"ipv4-tos#ipv4-proto#ipv4-ttl#ipv6-tc#ipv6-next-header#"
+	"ipv6-hop-limits#udp-src-port#udp-dst-port#"
 	"tcp-src-port#tcp-dst-port#sctp-src-port#sctp-dst-port#"
-	"sctp-veri-tag#fld-1st#fld-2nd#fld-3rd#fld-4th#fld-5th#fld-6th#"
-	"fld-7th#fld-8th#none");
+	"sctp-veri-tag#none");
 cmdline_parse_token_string_t cmd_set_fdir_input_set_select =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fdir_input_set_result,
 	select, "select#add");
@@ -9607,12 +9664,13 @@ cmdline_parse_inst_t cmd_set_fdir_input_set = {
 	.f = cmd_set_fdir_input_set_parsed,
 	.data = NULL,
 	.help_str = "set_fdir_input_set <port_id> "
-	"ipv4|ipv4-frag|ipv4-tcp|ipv4-udp|ipv4-sctp|ipv4-other|ipv6|ipv6-frag|"
-	"ipv6-tcp|ipv6-udp|ipv6-sctp|ipv6-other|l2_payload "
-	"src-ipv4|dst-ipv4|src-ipv6|dst-ipv6|udp-src-port|udp-dst-port|"
-	"tcp-src-port|tcp-dst-port|sctp-src-port|sctp-dst-port|sctp-veri-tag|"
-	"fld-1st|fld-2nd|fld-3rd|fld-4th|fld-5th|fld-6th|"
-	"fld-7th|fld-8th|none select|add",
+	"ipv4-frag|ipv4-tcp|ipv4-udp|ipv4-sctp|ipv4-other|"
+	"ipv6-frag|ipv6-tcp|ipv6-udp|ipv6-sctp|ipv6-other|l2_payload "
+	"ethertype|src-ipv4|dst-ipv4|src-ipv6|dst-ipv6|"
+	"ipv4-tos|ipv4-proto|ipv4-ttl|ipv6-tc|ipv6-next-header|"
+	"ipv6-hop-limits|udp-src-port|udp-dst-port|"
+	"tcp-src-port|tcp-dst-port|sctp-src-port|sctp-dst-port|"
+	"sctp-veri-tag|none select|add",
 	.tokens = {
 		(void *)&cmd_set_fdir_input_set_cmd,
 		(void *)&cmd_set_fdir_input_set_port_id,
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index efaf2b5..52a4f11 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -1739,8 +1739,9 @@ Different NICs may have different capabilities, command show port fdir (port_id)
 # Commands to add flow director filters of different flow types::
 
    flow_director_filter (port_id) mode IP (add|del|update) \
-                        flow (ipv4-other|ipv4-frag|ipv6-other|ipv6-frag)
+                        flow (ipv4-other|ipv4-frag|ipv6-other|ipv6-frag) \
                         src (src_ip_address) dst (dst_ip_address) \
+                        tos (tos_value) proto (proto_value) ttl (ttl_value) \
                         vlan (vlan_value) flexbytes (flexbytes_value) \
                         (drop|fwd) pf|vf(vf_id) queue (queue_id) \
                         fd_id (fd_id_value)
@@ -1749,6 +1750,7 @@ Different NICs may have different capabilities, command show port fdir (port_id)
                         flow (ipv4-tcp|ipv4-udp|ipv6-tcp|ipv6-udp) \
                         src (src_ip_address) (src_port) \
                         dst (dst_ip_address) (dst_port) \
+                        tos (tos_value) ttl (ttl_value) \
                         vlan (vlan_value) flexbytes (flexbytes_value) \
                         (drop|fwd) queue pf|vf(vf_id) (queue_id) \
                         fd_id (fd_id_value)
@@ -1756,7 +1758,8 @@ Different NICs may have different capabilities, command show port fdir (port_id)
    flow_director_filter (port_id) mode IP (add|del|update) \
                         flow (ipv4-sctp|ipv6-sctp) \
                         src (src_ip_address) (src_port) \
-                        dst (dst_ip_address) (dst_port)
+                        dst (dst_ip_address) (dst_port) \
+                        tos (tos_value) ttl (ttl_value) \
                         tag (verification_tag) vlan (vlan_value) \
                         flexbytes (flexbytes_value) (drop|fwd) \
                         pf|vf(vf_id) queue (queue_id) fd_id (fd_id_value)
@@ -1780,12 +1783,14 @@ Different NICs may have different capabilities, command show port fdir (port_id)
 For example, to add an ipv4-udp flow type filter::
 
    testpmd> flow_director_filter 0 add flow ipv4-udp src 2.2.2.3 32 \
-            dst 2.2.2.5 33 vlan 0x1 flexbytes (0x88,0x48) fwd pf queue 1 fd_id 1
+            dst 2.2.2.5 33 tos 2 ttl 40 vlan 0x1 flexbytes (0x88,0x48) \
+            fwd pf queue 1 fd_id 1
 
 For example, add an ipv4-other flow type filter::
 
    testpmd> flow_director_filter 0 add flow ipv4-other src 2.2.2.3 \
-             dst 2.2.2.5 vlan 0x1 flexbytes (0x88,0x48) fwd pf queue 1 fd_id 1
+             dst 2.2.2.5 tos 2 proto 20 ttl 40 vlan 0x1 \
+             flexbytes (0x88,0x48) fwd pf queue 1 fd_id 1
 
 flush_flow_director
 ~~~~~~~~~~~~~~~~~~~
@@ -1902,33 +1907,36 @@ set_hash_input_set
 
 Set the input set for hash::
 
-   set_hash_input_set (port_id) (ipv4|ipv4-frag|ipv4-tcp|ipv4-udp|ipv4-sctp| \
-   ipv4-other|ipv6|ipv6-frag|ipv6-tcp|ipv6-udp|ipv6-sctp|ipv6-other| \
+   set_hash_input_set (port_id) (ipv4-frag|ipv4-tcp|ipv4-udp|ipv4-sctp| \
+   ipv4-other|ipv6-frag|ipv6-tcp|ipv6-udp|ipv6-sctp|ipv6-other| \
    l2_payload) (ovlan|ivlan|src-ipv4|dst-ipv4|src-ipv6|dst-ipv6|ipv4-tos| \
    ipv4-proto|ipv6-tc|ipv6-next-header|udp-src-port|udp-dst-port| \
    tcp-src-port|tcp-dst-port|sctp-src-port|sctp-dst-port|sctp-veri-tag| \
    udp-key|gre-key|fld-1st|fld-2nd|fld-3rd|fld-4th|fld-5th|fld-6th|fld-7th| \
    fld-8th|none) (select|add)
 
-For example, to add source IP to hash input set for flow type of ipv4 on port 0::
+For example, to add source IP to hash input set for flow type of ipv4-udp on port 0::
 
-   testpmd> set_hash_input_set 0 ipv4 src-ipv4 add
+   testpmd> set_hash_input_set 0 ipv4-udp src-ipv4 add
 
 set_fdir_input_set
 ~~~~~~~~~~~~~~~~~~
 
-Set the input set for Fdir::
+The Flow Director filters can match the different fields for different type of packet, i.e. specific input set
+on per flow type and the flexible payload. This command can be used to change input set for each flow type.
 
-   set_fdir_input_set (port_id) (ipv4|ipv4-frag|ipv4-tcp|ipv4-udp|ipv4-sctp| \
-   ipv4-other|ipv6|ipv6-frag|ipv6-tcp|ipv6-udp|ipv6-sctp|ipv6-other|l2_payload)
-   (src-ipv4|dst-ipv4|src-ipv6|dst-ipv6|udp-src-port|udp-dst-port| \
-   tcp-src-port|tcp-dst-port|sctp-src-port|sctp-dst-port|sctp-veri-tag| \
-   fld-1st|fld-2nd|fld-3rd|fld-4th|fld-5th|fld-6th|fld-7th|fld-8th|none) \
-   (select|add)
+Set the input set for flow director::
+
+   set_fdir_input_set (port_id) (ipv4-frag|ipv4-tcp|ipv4-udp|ipv4-sctp| \
+   ipv4-other|ipv6|ipv6-frag|ipv6-tcp|ipv6-udp|ipv6-sctp|ipv6-other| \
+   l2_payload) (ethertype|src-ipv4|dst-ipv4|src-ipv6|dst-ipv6|ipv4-tos| \
+   ipv4-proto|ipv4-ttl|ipv6-tc|ipv6-next-header|ipv6-hop-limits| \
+   tudp-src-port|udp-dst-port|cp-src-port|tcp-dst-port|sctp-src-port| \
+   sctp-dst-port|sctp-veri-tag|none) (select|add)
 
-For example to add source IP to FD input set for flow type of ipv4 on port 0::
+For example to add source IP to FD input set for flow type of ipv4-udp on port 0::
 
-   testpmd> set_fdir_input_set 0 ipv4 src-ipv4 add
+   testpmd> set_fdir_input_set 0 ipv4-udp src-ipv4 add
 
 global_config
 ~~~~~~~~~~~~~
-- 
2.4.0

  parent reply	other threads:[~2016-03-23 13:09 UTC|newest]

Thread overview: 105+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-25  8:29 [dpdk-dev] [PATCH 0/4] extend flow director's IP fields in i40e driver Jingjing Wu
2015-12-25  8:29 ` [dpdk-dev] [PATCH 1/4] ethdev: extend flow director to support input set selection Jingjing Wu
2015-12-25  8:29 ` [dpdk-dev] [PATCH 2/4] i40e: split function for input set change of hash and fdir Jingjing Wu
2016-01-20 20:04   ` Chilikin, Andrey
2016-01-21  1:28     ` Wu, Jingjing
2016-01-21 20:06       ` Chilikin, Andrey
2016-01-26  1:12         ` Wu, Jingjing
2015-12-25  8:29 ` [dpdk-dev] [PATCH 3/4] i40e: extend flow director to filter by more IP Header fields Jingjing Wu
2015-12-25  8:30 ` [dpdk-dev] [PATCH 4/4] testpmd: extend commands for filter's input set changing Jingjing Wu
2016-01-26  6:26 ` [dpdk-dev] [PATCH 00/12] extend flow director's fields in i40e driver Jingjing Wu
2016-01-26  6:26   ` [dpdk-dev] [PATCH 01/12] ethdev: extend flow director to support input set selection Jingjing Wu
2016-01-26  6:26   ` [dpdk-dev] [PATCH 02/12] i40e: split function for input set change of hash and fdir Jingjing Wu
2016-02-25  8:51     ` Zhang, Helin
2016-02-26  0:32       ` Wu, Jingjing
2016-01-26  6:26   ` [dpdk-dev] [PATCH 03/12] i40e: remove flex payload from INPUT_SET_SELECT operation Jingjing Wu
2016-01-26  6:26   ` [dpdk-dev] [PATCH 04/12] i40e: restore default setting on input set of filters Jingjing Wu
2016-01-26  6:26   ` [dpdk-dev] [PATCH 05/12] i40e: extend flow director to filter by more IP Header fields Jingjing Wu
2016-01-26  6:26   ` [dpdk-dev] [PATCH 06/12] testpmd: extend commands for filter's input set changing Jingjing Wu
2016-01-26  6:26   ` [dpdk-dev] [PATCH 07/12] librte_ether: extend rte_eth_fdir_flow to support tunnel format Jingjing Wu
2016-01-26  6:26   ` [dpdk-dev] [PATCH 08/12] i40e: extend flow director to filter by tunnel ID Jingjing Wu
2016-01-26  6:26   ` [dpdk-dev] [PATCH 09/12] testpmd: extend commands for fdir's tunnel id input set Jingjing Wu
2016-01-26  6:26   ` [dpdk-dev] [PATCH 10/12] i40e: fix VLAN bitmasks for hash/fdir input sets for tunnels Jingjing Wu
2016-01-26  6:26   ` [dpdk-dev] [PATCH 11/12] i40e: extend flow director to filter by vlan id Jingjing Wu
2016-01-26  6:26   ` [dpdk-dev] [PATCH 12/12] testpmd: extend commands for fdir's vlan input set Jingjing Wu
2016-02-24 11:44   ` [dpdk-dev] [PATCH 00/12] extend flow director's fields in i40e driver Bruce Richardson
2016-02-25  7:42     ` Zhang, Helin
2016-03-02 11:29   ` [dpdk-dev] [PATCH v2 " Jingjing Wu
2016-03-02 11:29     ` [dpdk-dev] [PATCH v2 01/12] ethdev: extend flow director to support input set selection Jingjing Wu
2016-03-02 11:29     ` [dpdk-dev] [PATCH v2 02/12] i40e: split function for input set change of hash and fdir Jingjing Wu
2016-03-02 11:29     ` [dpdk-dev] [PATCH v2 03/12] i40e: remove flex payload from INPUT_SET_SELECT operation Jingjing Wu
2016-03-02 11:29     ` [dpdk-dev] [PATCH v2 04/12] i40e: restore default setting on input set of filters Jingjing Wu
2016-03-02 11:30     ` [dpdk-dev] [PATCH v2 05/12] i40e: extend flow director to filter by more IP Header fields Jingjing Wu
2016-03-02 11:30     ` [dpdk-dev] [PATCH v2 06/12] testpmd: extend commands for filter's input set changing Jingjing Wu
2016-03-02 11:30     ` [dpdk-dev] [PATCH v2 07/12] librte_ether: extend rte_eth_fdir_flow to support tunnel format Jingjing Wu
2016-03-02 11:30     ` [dpdk-dev] [PATCH v2 08/12] i40e: extend flow director to filter by tunnel ID Jingjing Wu
2016-03-02 11:30     ` [dpdk-dev] [PATCH v2 09/12] testpmd: extend commands for fdir's tunnel id input set Jingjing Wu
2016-03-02 11:30     ` [dpdk-dev] [PATCH v2 10/12] i40e: fix VLAN bitmasks for hash/fdir input sets for tunnels Jingjing Wu
2016-03-02 11:30     ` [dpdk-dev] [PATCH v2 11/12] i40e: extend flow director to filter by vlan id Jingjing Wu
2016-03-02 11:30     ` [dpdk-dev] [PATCH v2 12/12] testpmd: extend commands for fdir's vlan input set Jingjing Wu
2016-03-09  5:42     ` [dpdk-dev] [PATCH v3 00/12] extend flow director fields in i40e driver Jingjing Wu
2016-03-09  5:42       ` [dpdk-dev] [PATCH v3 01/12] ethdev: extend flow director for input selection Jingjing Wu
2016-03-09  9:52         ` Thomas Monjalon
2016-03-09  9:56           ` Thomas Monjalon
2016-03-09  9:54         ` Thomas Monjalon
2016-03-09 10:26           ` Wu, Jingjing
2016-03-09 10:36             ` Thomas Monjalon
2016-03-09 11:22               ` Wu, Jingjing
2016-03-09  5:42       ` [dpdk-dev] [PATCH v3 02/12] i40e: split function for hash and fdir input Jingjing Wu
2016-03-09  5:42       ` [dpdk-dev] [PATCH v3 03/12] i40e: remove flex payload from input selection Jingjing Wu
2016-03-09  5:42       ` [dpdk-dev] [PATCH v3 04/12] i40e: restore default setting on input set Jingjing Wu
2016-03-09  5:42       ` [dpdk-dev] [PATCH v3 05/12] i40e: extend flow director to filter by IP Header Jingjing Wu
2016-03-09  5:42       ` [dpdk-dev] [PATCH v3 06/12] testpmd: extend input set related commands Jingjing Wu
2016-03-09  5:42       ` [dpdk-dev] [PATCH v3 07/12] librte_ether: extend flow director struct Jingjing Wu
2016-03-09  5:42       ` [dpdk-dev] [PATCH v3 08/12] i40e: extend flow director to filter by tunnel ID Jingjing Wu
2016-03-09  5:42       ` [dpdk-dev] [PATCH v3 09/12] testpmd: extend flow director commands Jingjing Wu
2016-03-09  5:42       ` [dpdk-dev] [PATCH v3 10/12] i40e: fix VLAN bitmasks for input set Jingjing Wu
2016-03-09  5:42       ` [dpdk-dev] [PATCH v3 11/12] i40e: extend flow director to filter by vlan id Jingjing Wu
2016-03-09  5:43       ` [dpdk-dev] [PATCH v3 12/12] testpmd: extend flow director commands Jingjing Wu
2016-03-09  6:18       ` [dpdk-dev] [PATCH v3 00/12] extend flow director fields in i40e driver Zhang, Helin
2016-03-10  3:25       ` [dpdk-dev] [PATCH v4 " Jingjing Wu
2016-03-10  3:25         ` [dpdk-dev] [PATCH v4 01/12] ethdev: extend flow director for input selection Jingjing Wu
2016-03-10  3:25         ` [dpdk-dev] [PATCH v4 02/12] i40e: split function for hash and fdir input Jingjing Wu
2016-03-10  3:25         ` [dpdk-dev] [PATCH v4 03/12] i40e: remove flex payload from input selection Jingjing Wu
2016-03-10  3:25         ` [dpdk-dev] [PATCH v4 04/12] i40e: restore default setting on input set Jingjing Wu
2016-03-10  3:25         ` [dpdk-dev] [PATCH v4 05/12] i40e: extend flow director to filter by IP Header Jingjing Wu
2016-03-10  3:25         ` [dpdk-dev] [PATCH v4 06/12] testpmd: extend input set related commands Jingjing Wu
2016-03-10  3:25         ` [dpdk-dev] [PATCH v4 07/12] librte_ether: extend flow director struct Jingjing Wu
2016-03-18 11:44           ` Thomas Monjalon
2016-03-20  8:56             ` Wu, Jingjing
2016-03-20  9:02             ` Wu, Jingjing
2016-03-20 10:38               ` Thomas Monjalon
2016-03-10  3:25         ` [dpdk-dev] [PATCH v4 08/12] i40e: extend flow director to filter by tunnel ID Jingjing Wu
2016-03-10  3:25         ` [dpdk-dev] [PATCH v4 09/12] testpmd: extend flow director commands Jingjing Wu
2016-03-10  3:25         ` [dpdk-dev] [PATCH v4 10/12] i40e: fix VLAN bitmasks for input set Jingjing Wu
2016-03-10  3:25         ` [dpdk-dev] [PATCH v4 11/12] i40e: extend flow director to filter by vlan id Jingjing Wu
2016-03-10  3:25         ` [dpdk-dev] [PATCH v4 12/12] testpmd: extend flow director commands Jingjing Wu
2016-03-21  6:18         ` [dpdk-dev] [PATCH v5 0/9] extend flow director fields in i40e driver Jingjing Wu
2016-03-21  6:18           ` [dpdk-dev] [PATCH v5 1/9] ethdev: extend flow director for input selection Jingjing Wu
2016-03-22 22:05             ` Thomas Monjalon
2016-03-23  0:42               ` Wu, Jingjing
2016-03-23  8:45                 ` Thomas Monjalon
2016-03-21  6:18           ` [dpdk-dev] [PATCH v5 2/9] i40e: split function for hash and fdir input Jingjing Wu
2016-03-21  6:18           ` [dpdk-dev] [PATCH v5 3/9] i40e: remove flex payload from input selection Jingjing Wu
2016-03-21  6:18           ` [dpdk-dev] [PATCH v5 4/9] i40e: restore default setting on input set Jingjing Wu
2016-03-21  6:18           ` [dpdk-dev] [PATCH v5 5/9] i40e: extend flow director to filter by IP Header Jingjing Wu
2016-03-21  6:18           ` [dpdk-dev] [PATCH v5 6/9] testpmd: extend input set related commands Jingjing Wu
2016-03-21  6:18           ` [dpdk-dev] [PATCH v5 7/9] i40e: fix VLAN bitmasks for input set Jingjing Wu
2016-03-21  6:18           ` [dpdk-dev] [PATCH v5 8/9] i40e: extend flow director to filter by vlan id Jingjing Wu
2016-03-21  6:48             ` Zhang, Helin
2016-03-21  6:18           ` [dpdk-dev] [PATCH v5 9/9] testpmd: extend flow director commands Jingjing Wu
2016-03-21  6:48             ` Zhang, Helin
2016-03-22 21:51           ` [dpdk-dev] [PATCH v5 0/9] extend flow director fields in i40e driver Bruce Richardson
2016-03-22 21:56             ` Thomas Monjalon
2016-03-23 13:07           ` [dpdk-dev] [PATCH v6 " Jingjing Wu
2016-03-23 13:07             ` [dpdk-dev] [PATCH v6 1/9] ethdev: extend flow director for input selection Jingjing Wu
2016-03-23 14:02               ` Thomas Monjalon
2016-03-23 13:07             ` [dpdk-dev] [PATCH v6 2/9] i40e: split function for hash and fdir input Jingjing Wu
2016-03-23 13:07             ` [dpdk-dev] [PATCH v6 3/9] i40e: remove flex payload from input selection Jingjing Wu
2016-03-23 13:07             ` [dpdk-dev] [PATCH v6 4/9] i40e: use default filter input set on init Jingjing Wu
2016-03-23 13:07             ` [dpdk-dev] [PATCH v6 5/9] i40e: allow filtering on more IP Header fields Jingjing Wu
2016-03-23 13:07             ` Jingjing Wu [this message]
2016-03-23 13:07             ` [dpdk-dev] [PATCH v6 7/9] i40e: fix VLAN bitmasks for input set Jingjing Wu
2016-03-23 13:07             ` [dpdk-dev] [PATCH v6 8/9] i40e: extend flow director to filter by vlan id Jingjing Wu
2016-03-23 13:07             ` [dpdk-dev] [PATCH v6 9/9] testpmd: allow vlan as part of fdir input set Jingjing Wu
2016-03-23 14:46             ` [dpdk-dev] [PATCH v6 0/9] extend flow director fields in i40e driver 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=1458738432-3184-7-git-send-email-jingjing.wu@intel.com \
    --to=jingjing.wu@intel.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=helin.zhang@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).