From: "Liu, Yong" <yong.liu@intel.com>
To: "Xu, HuilongX" <huilongx.xu@intel.com>, "dts@dpdk.org" <dts@dpdk.org>
Cc: "Xu, HuilongX" <huilongx.xu@intel.com>
Subject: Re: [dts] [patch V1 1/2] add fdir test case
Date: Thu, 19 Jan 2017 06:04:23 +0000 [thread overview]
Message-ID: <86228AFD5BCD8E4EBFD2B90117B5E81E62D4D740@SHSMSX103.ccr.corp.intel.com> (raw)
In-Reply-To: <1484643736-48250-1-git-send-email-huilongx.xu@intel.com>
Huilong,
Some overall comments.
1. Fdir command is very complicated and has lots of parameters. We need some basic description for these commands. It will help user known what will happened after input fdir commands.
2. To make the plan more clear, do not combine two or three testpmd commands in one line.
Thanks,
Marvin
> -----Original Message-----
> From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of xu,huilong
> Sent: Tuesday, January 17, 2017 5:02 PM
> To: dts@dpdk.org
> Cc: Xu, HuilongX <huilongx.xu@intel.com>
> Subject: [dts] [patch V1 1/2] add fdir test case
>
> Expand Flow Director for fortville to support ipv4 TOS, ipv4 PROTO, ipv4 TTL and
> ipv6 tc, ipv6 next-header, ipv6 hop-limits and ivlan
>
> Signed-off-by: xu,huilong <huilongx.xu@intel.com>
> ---
> test_plans/fdir_test_plan.rst | 364
> ++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 364 insertions(+)
>
> diff --git a/test_plans/fdir_test_plan.rst b/test_plans/fdir_test_plan.rst index
> 95a2926..5913a52 100644
> --- a/test_plans/fdir_test_plan.rst
> +++ b/test_plans/fdir_test_plan.rst
> @@ -684,3 +684,367 @@ and then to 0x0017. The packets should still match
> the filter:::
> PKT_RX_PKT_RX_FDIR
> PKT_RX_IP_CKSUM
> PKT_RX_IPV4_HDR
> +
> +
> +Test Case : test with ipv4 TOS, PROTO, TTL
> +===========================================
> +
> +1) start testpmd and initialize flow director flex payload configuration::
> +
> + ./testpmd -c fffff -n 4 -- -i --disable-rss --pkt-filter-mode=perfect
> + --rxq=8 --txq=8 --nb-cores=8 testpmd> port stop 0 testpmd>
Please separate into different lines, it's hard to read when combined several commands to one line.
> + flow_director_flex_payload 0 l2
> + (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
> + testpmd> flow_director_flex_payload 0 l3
> + (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
> + testpmd> flow_director_flex_payload 0 l4
> + (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
Please add some basic description for these commands, like what's the meaning of internal bytes.
As I known, "raw" layer also supported by flow director flex bytes. Should cover this layer too?
> + testpmd> flow_director_flex_mask 0 flow all
> + (0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
> + ,0xff,0xff)
> + testpmd> port start 0
> + testpmd> set verbose 1
> + testpmd> set fwd rxonly
> + testpmd> start
> +
> +Note::
> + assume FLEXBYTES =
> "0x11,0x11,0x22,0x22,0x33,0x33,0x44,0x44,0x55,0x55,0x66,0x66,0x77,0x77,0x
> 88,0x88"
> + assume payload =
> "\x11\x11\x22\x22\x33\x33\x44\x44\x55\x55\x66\x66\x77\x77\x88\x88"
> +
> +2) setup the fdir input set of IPv4::
> +
> + testpmd> set_fdir_input_set 0 ipv4-other none select testpmd>
Please align the output, prefix "testpmd>" should start on second line.
> + set_fdir_input_set 0 ipv4-other src-ipv4 add testpmd>
> + set_fdir_input_set 0 ipv4-other dst-ipv4 add
> +
> +3) add ipv4-tos to fdir input set, set tos to 16 and 8::
> +
> + testpmd> set_fdir_input_set 0 ipv4-other ipv4-tos add setup flow
> + director filter rules,
> +
> +rule_1::
> + flow_director_filter 0 mode IP add flow ipv4-other src 192.168.1.1
> +dst 192.168.1.2 tos 16 proto 255 ttl 255 vlan 0 \
> + flexbytes (FLEXBYTES) fwd pf queue 1 fd_id 1
> +
Please give a basic describe about what will be happened after input this command.
> +rule_2::
> + flow_director_filter 0 mode IP add flow ipv4-other src 192.168.1.1
> +dst 192.168.1.2 tos 8 proto 255 ttl 255 vlan 0 \
> + flexbytes (FLEXBYTES) fwd pf queue 2 fd_id 2
> +
> +send packet to DUT,
> +
> +packet_1::
> + 'sendp([Ether(dst="%s")/IP(src="192.168.0.1", dst="192.168.0.2", tos=16,
> proto=255, ttl=255)/Raw(%s)], iface="%s")'\
> + %(dst_mac, payload, itf)
> +
> +packet_1 should be received by queue 1.
> +
> +packet_2::
> + 'sendp([Ether(dst="%s")/IP(src="192.168.0.1", dst="192.168.0.2", tos=8,
> proto=255, ttl=255)/Raw(%s)], iface="%s")'\
> + %(dst_mac, payload, itf)
> +
> +packet_2 should be received by queue 2.
> +
> +delete rule_1, send packet_1 again, packet_1 should be received by queue 0.
> +delete rule_2, send packet_2 again, packet_2 should be received by queue 0.
> +
> +4) add ipv4-proto to fdir input set, set proto to 253 and 254::
> +
> + testpmd> set_fdir_input_set 0 ipv4-other ipv4-proto add
> +
> +setup flow director filter rules
> +rule_3::
> + flow_director_filter 0 mode IP add flow ipv4-other src 192.168.1.1
> +dst 192.168.1.2 tos 16 proto 253 ttl 255 vlan 0 \
> + flexbytes (FLEXBYTES) fwd pf queue 3 fd_id 3
Please give a basic describe about what will be happened after input this command.
> +
> +rule_4::
> + flow_director_filter 0 mode IP add flow ipv4-other src 192.168.1.1
> +dst 192.168.1.2 tos 8 proto 254 ttl 255 vlan 0 \
> + flexbytes (FLEXBYTES) fwd pf queue 4 fd_id 4
Please give a basic describe about what will be happened after input this command.
> +
> +send packet to DUT,
> +
> +packet_3::
> + 'sendp([Ether(dst="%s")/IP(src="192.168.0.1", dst="192.168.0.2",
> +tos=16, proto=253, ttl=255)/Raw(%s)], iface="%s")'\
> + %(dst_mac, payload, itf)
> +
> +packet_3 should be received by queue 3.
> +
> +packet_4::
> + 'sendp([Ether(dst="%s")/IP(src="192.168.0.1", dst="192.168.0.2",
> +tos=8, proto=254, ttl=255)/Raw(%s)], iface="%s")'\
> + %(dst_mac, payload, itf)
> +
> +packet_4 should be received by queue 4.
> +
> +delete rule_3, send packet_3 again, packet_3 should be received by queue 0.
> +delete rule_4, send packet_4 again, packet_4 should be received by queue 0.
> +
> +5) test ipv4-ttl, set ttl to 32 and 64::
> +
> + testpmd> set_fdir_input_set 0 ipv4-other ipv4-ttl add
> +
> +setup flow director filter rules,
> +rule_5::
> + flow_director_filter 0 mode IP add flow ipv4-other src 192.168.1.1
> +dst 192.168.1.2 tos 16 proto 253 ttl 32 vlan 0 \
> + flexbytes (FLEXBYTES) fwd pf queue 5 fd_id 5
> +
Please give a basic describe about what will be happened after input this command.
> +rule_6::
> + flow_director_filter 0 mode IP add flow ipv4-other src 192.168.1.1
> +dst 192.168.1.2 tos 8 proto 254 ttl 64 vlan 0 \
> + flexbytes (FLEXBYTES) fwd pf queue 6 fd_id 6
> +
Please give a basic describe about what will be happened after input this command.
> +send packet to DUT,
> +
> +packet_5::
> + 'sendp([Ether(dst="%s")/IP(src="192.168.0.1", dst="192.168.0.2",
> +tos=16, proto=253, ttl=32)/Raw(%s)], iface="%s")'\
> + %(dst_mac, payload, itf)
> +
> +packet_5 should be received by queue 5.
> +
> +packet_6::
> + 'sendp([Ether(dst="%s")/IP(src="192.168.0.1", dst="192.168.0.2",
> +tos=8, proto=254, ttl=64)/Raw(%s)], iface="%s")'\
> + %(dst_mac, payload, itf)
> +
> +packet_6 should be received by queue 6.
> +
> +delete rule_5, send packet_5 again, packet_5 should be received by queue 0.
> +delete rule_6, send packet_6 again, packet_6 should be received by queue 0.
> +
> +6) removed all entry of fdir::
> +
> + testpmd>flush_flow_director 0
> + testpmd>show port fdir 0
> +
> +example::
> +
> + flow_director_filter 0 mode IP add flow ipv4-other src 192.168.1.1
> + dst 192.168.1.2 tos 16 proto 255 ttl 255 vlan 0 flexbytes
> + (0x11,0x11,0x22,0x22,0x33,0x33,0x44,0x44,0x55,0x55,0x66,0x66,0x77,0x77
> + ,0x88,0x88) fwd pf queue 1 fd_id 1
> +
> + flow_director_filter 0 mode IP add flow ipv4-other src 192.168.1.1
> + dst 192.168.1.2 tos 8 proto 255 ttl 255 vlan 0 flexbytes
> + (0x11,0x11,0x22,0x22,0x33,0x33,0x44,0x44,0x55,0x55,0x66,0x66,0x77,0x77
> + ,0x88,0x88) fwd pf queue 2 fd_id 2
> +
> + sendp([Ether(src="00:00:00:00:00:01",
> + dst="00:00:00:00:01:00")/IP(src="192.168.1.1", dst="192.168.1.2",
> + tos=16, proto=255,
> + ttl=255)/Raw(load="\x11\x11\x22\x22\x33\x33\x44\x44\x55\x55\x66\x66\x7
> + 7\x77\x88\x88")], iface="ens260f0")
> +
> + sendp([Ether(src="00:00:00:00:00:01",
> + dst="00:00:00:00:01:00")/IP(src="192.168.1.1", dst="192.168.1.2",
> + tos=8, proto=255,
> + ttl=255)/Raw(load="\x11\x11\x22\x22\x33\x33\x44\x44\x55\x55\x66\x66\x7
> + 7\x77\x88\x88")], iface="ens260f0")
> +
> +Test Case: test with ipv6 tc, next-header, hop-limits
> +=======================================================
> +1) start testpmd and initialize flow director flex payload configuration::
> +
> + ./testpmd -c fffff -n 4 -- -i --disable-rss --pkt-filter-mode=perfect
> + --rxq=8 --txq=8 --nb-cores=8 testpmd> port stop 0 testpmd>
> + flow_director_flex_payload 0 l2
> + (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
> + testpmd> flow_director_flex_payload 0 l3
> + (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
> + testpmd> flow_director_flex_payload 0 l4
> + (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
> + testpmd> flow_director_flex_mask 0 flow all
> + (0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
> + ,0xff,0xff)
> + testpmd> port start 0
> + testpmd> set verbose 1
> + testpmd> set fwd rxonly
> + testpmd> start
> +
> +Note::
> + assume FLEXBYTES =
> "0x11,0x11,0x22,0x22,0x33,0x33,0x44,0x44,0x55,0x55,0x66,0x66,0x77,0x77,0x
> 88,0x88"
> + assume payload =
> "\x11\x11\x22\x22\x33\x33\x44\x44\x55\x55\x66\x66\x77\x77\x88\x88"
> +
> +2) setup the fdir input set of IPv6::
> +
> + testpmd> set_fdir_input_set 0 ipv6-other none select testpmd>
> + set_fdir_input_set 0 ipv6-other src-ipv6 add testpmd>
> + set_fdir_input_set 0 ipv6-other dst-ipv6 add
> +
> +3) add ipv6-tc to fdir input set, set tc to 16 and 8::
> +
> + testpmd> set_fdir_input_set 0 ipv6-other ipv6-tc add
> +
> +setup flow director filter rules,
> +
> +rule_1::
> + flow_director_filter 0 mode IP add flow ipv6-other src 2000::1 dst
> +2000::2 tos 16 proto 255 ttl 64 vlan 0 \
> + flexbytes (FLEXBYTES) fwd pf queue 1 fd_id 1
> +
> +rule_2::
> + flow_director_filter 0 mode IP add flow ipv6-other src 2000::1 dst
> +2000::2 tos 8 proto 255 ttl 64 vlan 0 \
> + flexbytes (FLEXBYTES) fwd pf queue 2 fd_id 2
> +
> +send packet to DUT,
> +
> +packet_1::
> + 'sendp([Ether(dst="%s")/IPv6(src="2000::1", dst="2000::2", tc=16,
> +nh=255, hlim=64)/Raw(%s)], iface="%s")' \
> + %(dst_mac, payload, itf)
> +
> +packet_1 should be received by queue 1.
> +
> +packet_2::
> + 'sendp([Ether(dst="%s")/IPv6(src="2000::1", dst="2000::2", tc=8,
> +nh=255, hlim=64)/Raw(%s)], iface="%s")' \
> + %(dst_mac, payload, itf)
> +
> +packet_2 should be received by queue 2.
> +
> +delete rule_1, send packet_1 again, packet_1 should be received by queue 0.
> +delete rule_2, send packet_2 again, packet_2 should be received by queue 0.
> +
> +4) add ipv6-next-header to fdir input set, set nh to 253 and 254::
> +
> + testpmd> set_fdir_input_set 0 ipv6-other ipv6-next-header add
> +
> +setup flow director filter rules,
> +rule_3::
> + flow_director_filter 0 mode IP add flow ipv6-other src 2000::1 dst
> +2000::2 tos 16 proto 253 ttl 255 vlan 0 \
> + flexbytes (FLEXBYTES) fwd pf queue 3 fd_id 3
> +
> +rule_4::
> + flow_director_filter 0 mode IP add flow ipv6-other src 2000::1 dst
> +2000::2 tos 8 proto 254 ttl 255 vlan 0 \
> + flexbytes (FLEXBYTES) fwd pf queue 4 fd_id 4
> +
> +send packet to DUT,
> +
> +packet_3::
> + 'sendp([Ether(dst="%s")/IPv6(src="2000::1", dst="2000::2", tc=16,
> +nh=253, hlim=64)/Raw(%s)], iface="%s")'\
> + %(dst_mac, payload, itf)
> +
> +packet_3 should be received by queue 3.
> +
> +packet_4::
> + 'sendp([Ether(dst="%s")/IPv6(src="2000::1", dst="2000::2", tc=8,
> +nh=254, hlim=64)/Raw(%s)], iface="%s")'\
> + %(dst_mac, payload, itf)
> +
> +packet_4 should be received by queue 4.
> +
> +delete rule_3, send packet_3 again, packet_3 should be received by queue 0.
> +delete rule_4, send packet_4 again, packet_4 should be received by queue 0.
> +
> +5) add ipv6-hop-limits to fdir input set, set hlim to 32 and 64::
> +
> + testpmd> set_fdir_input_set 0 ipv6-other ipv6-hop-limits add
> +
> +setup flow director filter rules,
> +rule_5::
> + flow_director_filter 0 mode IP add flow ipv6-other src 2000::1 dst
> +2000::2 tos 16 proto 253 ttl 32 vlan 0 \
> + flexbytes (FLEXBYTES) fwd pf queue 5 fd_id 5
> +
> +rule_6::
> + flow_director_filter 0 mode IP add flow ipv6-other src 2000::1 dst
> +2000::2 tos 8 proto 254 ttl 64 vlan 0 \
> + flexbytes (FLEXBYTES) fwd pf queue 6 fd_id 6
> +
> +send packet to DUT,
> +
> +packet_5::
> + 'sendp([Ether(dst="%s")/IPv6(src="2000::1", dst="2000::2", tc=16,
> +nh=253, hlim=32)/Raw(%s)], iface="%s")'\
> + %(dst_mac, payload, itf)
> +
> +packet_5 should be received by queue 5.
> +
> +packet_6::
> + 'sendp([Ether(dst="%s")/IPv6(src="2000::1", dst="2000::2", tc=8,
> +nh=254, hlim=64)/Raw(%s)], iface="%s")'\
> + %(dst_mac, payload, itf)
> +
> +packet_6 should be received by queue 6.
> +
> +delete rule_5, send packet_5 again, packet_5 should be received by queue 0.
> +delete rule_6, send packet_6 again, packet_6 should be received by queue 0.
> +
> +6) removed all entry of fdir::
> +
> + testpmd>flush_flow_director 0
> + testpmd>show port fdir 0
> +
> +example::
> +
> + flow_director_filter 0 mode IP add flow ipv6-other src 2000::1 dst
> + 2000::2 tos 16 proto 255 ttl 64 vlan 0 flexbytes
> + (0x11,0x11,0x22,0x22,0x33,0x33,0x44,0x44,0x55,0x55,0x66,0x66,0x77,0x77
> + ,0x88,0x88) fwd pf queue 1 fd_id 1
> +
> + flow_director_filter 0 mode IP add flow ipv6-other src 2000::1 dst
> + 2000::2 tos 8 proto 255 ttl 64 vlan 0 flexbytes
> + (0x11,0x11,0x22,0x22,0x33,0x33,0x44,0x44,0x55,0x55,0x66,0x66,0x77,0x77
> + ,0x88,0x88) fwd pf queue 2 fd_id 2
> +
> + flow_director_filter 0 mode IP add flow ipv6-other src 2000::1 dst
> + 2000::2 tos 16 proto 253 ttl 64 vlan 0 flexbytes
> + (0x11,0x11,0x22,0x22,0x33,0x33,0x44,0x44,0x55,0x55,0x66,0x66,0x77,0x77
> + ,0x88,0x88) fwd pf queue 3 fd_id 3
> +
> + flow_director_filter 0 mode IP add flow ipv6-other src 2000::1 dst
> + 2000::2 tos 8 proto 254 ttl 64 vlan 0 flexbytes
> + (0x11,0x11,0x22,0x22,0x33,0x33,0x44,0x44,0x55,0x55,0x66,0x66,0x77,0x77
> + ,0x88,0x88) fwd pf queue 4 fd_id 4
> +
> + flow_director_filter 0 mode IP add flow ipv6-other src 2000::1 dst
> + 2000::2 tos 16 proto 253 ttl 32 vlan 0 flexbytes
> + (0x11,0x11,0x22,0x22,0x33,0x33,0x44,0x44,0x55,0x55,0x66,0x66,0x77,0x77
> + ,0x88,0x88) fwd pf queue 5 fd_id 5
> +
> + flow_director_filter 0 mode IP add flow ipv6-other src 2000::1 dst
> + 2000::2 tos 8 proto 254 ttl 48 vlan 0 flexbytes
> + (0x11,0x11,0x22,0x22,0x33,0x33,0x44,0x44,0x55,0x55,0x66,0x66,0x77,0x77
> + ,0x88,0x88) fwd pf queue 6 fd_id 6
> +
> + sendp([Ether(src="00:00:00:00:00:01",
> + dst="00:00:00:00:01:00")/IPv6(src="2000::1", dst="2000::2", tc=16,
> + nh=255,
> + hlim=64)/Raw(load="\x11\x11\x22\x22\x33\x33\x44\x44\x55\x55\x66\x66\x7
> + 7\x77\x88\x88")], iface="ens260f0")
> +
> + sendp([Ether(src="00:00:00:00:00:01",
> + dst="00:00:00:00:01:00")/IPv6(src="2000::1", dst="2000::2", tc=8,
> + nh=255,
> + hlim=64)/Raw(load="\x11\x11\x22\x22\x33\x33\x44\x44\x55\x55\x66\x66\x7
> + 7\x77\x88\x88")], iface="ens260f0")
> +
> + sendp([Ether(src="00:00:00:00:00:01",
> + dst="00:00:00:00:01:00")/IPv6(src="2000::1", dst="2000::2", tc=16,
> + nh=253,
> + hlim=64)/Raw(load="\x11\x11\x22\x22\x33\x33\x44\x44\x55\x55\x66\x66\x7
> + 7\x77\x88\x88")], iface="ens260f0")
> +
> + sendp([Ether(src="00:00:00:00:00:01",
> + dst="00:00:00:00:01:00")/IPv6(src="2000::1", dst="2000::2", tc=8,
> + nh=254,
> + hlim=64)/Raw(load="\x11\x11\x22\x22\x33\x33\x44\x44\x55\x55\x66\x66\x7
> + 7\x77\x88\x88")], iface="ens260f0")
> +
> + sendp([Ether(src="00:00:00:00:00:01",
> + dst="00:00:00:00:01:00")/IPv6(src="2000::1", dst="2000::2", tc=16,
> + nh=253,
> + hlim=32)/Raw(load="\x11\x11\x22\x22\x33\x33\x44\x44\x55\x55\x66\x66\x7
> + 7\x77\x88\x88")], iface="ens260f0")
> +
> + sendp([Ether(src="00:00:00:00:00:01",
> + dst="00:00:00:00:01:00")/IPv6(src="2000::1", dst="2000::2", tc=8,
> + nh=254,
> + hlim=48)/Raw(load="\x11\x11\x22\x22\x33\x33\x44\x44\x55\x55\x66\x66\x7
> + 7\x77\x88\x88")], iface="ens260f0")
> +
> +
> +Test Case: test with ivlan (qinq not work)
> +============================
> +1) start testpmd and initialize flow director flex payload configuration::
> +
> + ./testpmd -c fffff -n 4 -- -i --disable-rss --pkt-filter-mode=perfect
> + --rxq=8 --txq=8 --nb-cores=8 testpmd> port stop 0 testpmd>
> + flow_director_flex_payload 0 l2
> + (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
> + testpmd> flow_director_flex_payload 0 l3
> + (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
> + testpmd> flow_director_flex_payload 0 l4
> + (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
> + testpmd> flow_director_flex_mask 0 flow all
> + (0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
> + ,0xff,0xff)
> + testpmd> port start 0
> +
> + testpmd> vlan set qinq on 0
> +
> + testpmd> set verbose 1
> + testpmd> set fwd rxonly
> + testpmd> start
> +
> +Note::
> + assume FLEXBYTES =
> "0x11,0x11,0x22,0x22,0x33,0x33,0x44,0x44,0x55,0x55,0x66,0x66,0x77,0x77,0x
> 88,0x88"
> + assume payload =
> "\x11\x11\x22\x22\x33\x33\x44\x44\x55\x55\x66\x66\x77\x77\x88\x88"
> +
> +2) setup the fdir input set::
> +
> + testpmd> set_fdir_input_set 0 ipv4-udp none select testpmd>
> + set_fdir_input_set 0 ipv4-udp ivlan add
> +
> +
> +3) setup flow director filter rules,
> +
> +rule_1::
> + flow_director_filter 0 mode IP add flow ipv4-udp src 192.168.1.1 1021
> +dst 192.168.1.2 1022 tos 16 ttl 255 \
> + vlan 1 flexbytes (FLEXBYTES) fwd pf queue 1 fd_id 1
> +
> +rule_2::
> + flow_director_filter 0 mode IP add flow ipv4-udp src 192.168.1.1 1021
> +dst 192.168.1.2 1022 tos 16 ttl 255 \
> + vlan 15 flexbytes (FLEXBYTES) fwd pf queue 2 fd_id 2
> +
> +rule_3::
> + flow_director_filter 0 mode IP add flow ipv4-udp src 192.168.1.1 1021
> +dst 192.168.1.2 1022 tos 16 ttl 255 \
> + vlan 255 flexbytes (FLEXBYTES) fwd pf queue 3 fd_id 3
> +
> +rule_4::
> + flow_director_filter 0 mode IP add flow ipv4-udp src 192.168.1.1 1021
> +dst 192.168.1.2 1022 tos 16 ttl 255 \
> + vlan 4095 flexbytes (FLEXBYTES) fwd pf queue 4 fd_id 4
> +
> +4) send packet to DUT,
> +
> +packet_1::
> +
> +
> + 'sendp([Ether(dst="%s")/Dot1Q(id=0x8100,vlan=16)/Dot1Q(id=0x8100,vlan=
> + 1)/IP(src="192.168.0.1",dst="192.168.0.2", \ tos=16,
> + ttl=255)/UDP(sport="1021",dport="1022")/Raw(%s)], iface="%s")' %
> + (dst_mac, payload, itf)
> +
> +packet_1 should be received by queue 1.
> +
> +packet_2::
> +
> +'sendp([Ether(dst="%s")/Dot1Q(id=0x8100,vlan=16)/Dot1Q(id=0x8100,vlan=1
> +5)/IP(src="192.168.0.1",dst="192.168.0.2", \
> + tos=16, ttl=255)/UDP(sport="1021",dport="1022")/Raw(%s)],
> +iface="%s")' % (dst_mac, payload, itf)
> +
> +packet_2 should be received by queue 2.
> +
> +packet_3::
> +
> +'sendp([Ether(dst="%s")/Dot1Q(id=0x8100,vlan=16)/Dot1Q(id=0x8100,vlan=2
> +55)/IP(src="192.168.0.1",dst="192.168.0.2", \
> + tos=16, ttl=255)/UDP(sport="1021",dport="1022")/Raw(%s)],
> +iface="%s")' % (dst_mac, payload, itf)
> +
> +packet_3 should be received by queue 3.
> +
> +packet_4::
> +
> +'sendp([Ether(dst="%s")/Dot1Q(id=0x8100,vlan=16)/Dot1Q(id=0x8100,vlan=4
> +095)/IP(src="192.168.0.1",dst="192.168.0.2", \
> + tos=16, ttl=255)/UDP(sport="1021",dport="1022")/Raw(%s)],
> +iface="%s")' % (dst_mac, payload, itf)
> +
> +packet_4 should be received by queue 4.
> +
> +delete rule_1, send packet_1 again, packet_1 should be received by queue 0.
> +delete rule_2, send packet_2 again, packet_2 should be received by queue 0.
> +delete rule_3, send packet_3 again, packet_3 should be received by queue 0.
> +delete rule_4, send packet_4 again, packet_4 should be received by queue 0.
> +
> +5) removed all entry of fdir::
> +
> + testpmd>flush_flow_director 0
> + testpmd>show port fdir 0
> +
> --
> 1.9.3
prev parent reply other threads:[~2017-01-19 6:04 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-17 9:02 xu,huilong
2017-01-17 9:02 ` [dts] [patch V1 2/2] add fdir test case code xu,huilong
2017-01-19 6:08 ` Liu, Yong
2017-01-19 6:04 ` Liu, Yong [this message]
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=86228AFD5BCD8E4EBFD2B90117B5E81E62D4D740@SHSMSX103.ccr.corp.intel.com \
--to=yong.liu@intel.com \
--cc=dts@dpdk.org \
--cc=huilongx.xu@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).