From: Sruthi Yellamraju <ysruthi@gmail.com>
To: Cliff Burdick <shaklee3@gmail.com>
Cc: Ye Xiaolong <xiaolong.ye@intel.com>, users <users@dpdk.org>,
"Zhang, Xiao" <xiao.zhang@intel.com>,
"Xing, Beilei" <beilei.xing@intel.com>,
"Wang, Haiyue" <haiyue.wang@intel.com>,
"Zhang, Qi Z" <qi.z.zhang@intel.com>,
"Zhang, Helin" <helin.zhang@intel.com>
Subject: Re: [dpdk-users] FW: i40e + rte_flow: Drop filter not working
Date: Fri, 21 Jun 2019 06:46:35 -0400 [thread overview]
Message-ID: <CAFxVZ5KWvYNWm2BEF+QXqTSb_oargxjReMSSyv_8rOSzoA28jQ@mail.gmail.com> (raw)
In-Reply-To: <CA+Gp1nYp7EbNMfximxfevSJRPkwXF9OahPb_4SkpujsBjk-YfA@mail.gmail.com>
Thank you for your responses Xiaolong. It's very helpful. It confirms our
findings from tests.
Thank you Cliff for your response. Having such a matrix would be *extremely
useful* to the application developer. More so, since rte_flow seems like an
extensive, generic API, while the underlying H/w capabilities could be
severely limited, and vary. We would very much appreciate such info.
Also, how does RSS relate to rte_flow APIs itself? Since RSS distributes
packets based on hashes to queues, and using rte_flow you could distribute
packets too to various queues based on other criteria. Does RSS have to be
disabled for rte_flow to work? Does RSS take precedence over rte_flow? Is
that H/w dependent as well?
Thanks,
Sruthi
On Wed, Jun 19, 2019 at 12:28 PM Cliff Burdick <shaklee3@gmail.com> wrote:
> Xiaolong, maybe it would be useful for every vendor to maintain a matrix
> of every flow action/match that's supported and not for each PMD? I know
> we've had this problem with Mellanox as well. It's likely only a handful of
> vendors right now that support any form of rte_flow, so starting it soon
> would be nice. Also, I believe in Mellanox's case there are some rules that
> are done in hardware and some that aren't, so it would also be nice to
> distinguish between those. Someone from Mellanox can correct me if I'm
> wrong on that.
>
> On Tue, Jun 18, 2019 at 10:00 PM Ye Xiaolong <xiaolong.ye@intel.com>
> wrote:
>
>> >-----Original Message-----
>> >From: users [mailto:users-bounces@dpdk.org] On Behalf Of Sruthi
>> Yellamraju
>> >Sent: Monday, June 17, 2019 3:19 AM
>> >To: users@dpdk.org
>> >Subject: [dpdk-users] i40e + rte_flow: Drop filter not working
>> >
>> >Hello,
>> >
>> >I am trying to test the rte_flow API using the testpmd application.
>> >Mainly I start traffic forwarding, then set a rte_flow rule to drop all
>> ethernet traffic, then check stats to see if traffic is dropped.
>> >Tried many different combinations but traffic is not being dropped.
>> >
>> >- Any thoughts on how I can get a drop rule to work using testpmd?
>>
>> The rte_flow rule "flow create 0 ingress pattern eth / end actions drop /
>> end"
>> you used in below test is not supported, it should return an explicit
>> error
>> when you tried to create it, it's an software bug and we'll fix it.
>>
>> As for how to drop an available rule in testpmd, you can refer to
>>
>> https://doc.dpdk.org/guides/howto/rte_flow.html
>>
>> The flow rule example in it is: flow create 0 ingress pattern eth / vlan
>> / ipv4 dst is 192.168.3.2 / end actions drop / end
>>
>> Also, the statistic you get from `show port stats 0` is obtained by
>> reading vsi
>> registers, it will record all packets hardware received even if the
>> packet will
>> be filtered out by the rte flow. Instead, you can try to `set verbose 1`
>> in testpmd,
>> then you can observe whether the rte_flow rule takes effect or not.
>>
>> >- Also, is there a list of Intel NICs that support rte_flow with
>> descriptions of what rte_flow features they support?
>> >
>>
>> Unfortunately, there is no such list info available currently, but we'll
>> try to
>> improve our doc in dpdk repo.
>>
>> @beilei, @qi, correct me if I am wrong.
>>
>> Thanks,
>> Xiaolong
>>
>> >My NIC is an Intel X710. Using DPDK 19.02.
>> >My steps:
>> >*(1) Start testpmd:*
>> >$ sudo ./build/app/testpmd –l 12,13,14 –n 4 -- -i
>> >EAL: Detected 56 lcore(s)
>> >EAL: Detected 2 NUMA nodes
>> >EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
>> >EAL: No free hugepages reported in hugepages-1048576kB
>> >EAL: Probing VFIO support...
>> >EAL: VFIO support initialized
>> >EAL: PCI device 0000:08:00.0 on NUMA socket 0
>> >EAL: probe driver: 8086:1572 net_i40e
>> >EAL: using IOMMU type 1 (Type 1)
>> >EAL: PCI device 0000:08:00.1 on NUMA socket 0
>> >EAL: probe driver: 8086:1572 net_i40e
>> >EAL: PCI device 0000:82:00.0 on NUMA socket 1
>> >EAL: probe driver: 8086:1572 net_i40e
>> >EAL: PCI device 0000:82:00.1 on NUMA socket 1
>> >EAL: probe driver: 8086:1572 net_i40e
>> >Interactive-mode selected
>> >testpmd: create a new mbuf pool <mbuf_pool_socket_0>: n=587456,
>> size=2176,
>> >socket=0
>> >testpmd: preferred mempool ops selected: ring_mp_mc
>> >testpmd: create a new mbuf pool <mbuf_pool_socket_1>: n=587456,
>> size=2176,
>> >socket=1
>> >testpmd: preferred mempool ops selected: ring_mp_mc Configuring Port 0
>> (socket 0) Port 0: 3C:FD:FE:CE:EC:54 Configuring Port 1 (socket 1) Port 1:
>> 3C:FD:FE:CE:EE:08 Checking link statuses...
>> >Done
>> >testpmd> sta
>> >Port 1: link state change event
>> >Port 0: link state change event
>> >
>> >(*2) Start forwarding traffic between two ports*
>> >testpmd> start
>> >io packet forwarding - ports=2 - cores=1 - streams=2 - NUMA support
>> enabled, MP allocation mode: native Logical Core 1 (socket 0) forwards
>> packets on 2 streams:
>> > RX P=0/Q=0 (socket 0) -> TX P=1/Q=0 (socket 1) peer=02:00:00:00:00:01
>> > RX P=1/Q=0 (socket 1) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00
>> > io packet forwarding packets/burst=32
>> > nb forwarding cores=1 - nb forwarding ports=2
>> > port 0: RX queue number: 1 Tx queue number: 1
>> > Rx offloads=0x0 Tx offloads=0x10000
>> > RX queue: 0
>> > RX desc=256 - RX free threshold=32
>> > RX threshold registers: pthresh=8 hthresh=8 wthresh=0
>> > RX Offloads=0x0
>> > TX queue: 0
>> > TX desc=256 - TX free threshold=32
>> > TX threshold registers: pthresh=32 hthresh=0 wthresh=0
>> > TX offloads=0x0 - TX RS bit threshold=32
>> > port 1: RX queue number: 1 Tx queue number: 1
>> > Rx offloads=0x0 Tx offloads=0x10000
>> > RX queue: 0
>> > RX desc=256 - RX free threshold=32
>> > RX threshold registers: pthresh=8 hthresh=8 wthresh=0
>> > RX Offloads=0x0
>> > TX queue: 0
>> > TX desc=256 - TX free threshold=32
>> > TX threshold registers: pthresh=32 hthresh=0 wthresh=0
>> > TX offloads=0x0 - TX RS bit threshold=32
>> >
>> >*(3) Check that traffic is flowing: OK*
>> >
>> >testpmd> show port stats all
>> > ######################## NIC statistics for port 0
>> ########################
>> > RX-packets: 2565456 RX-missed: 5780962 RX-bytes: 4512982511
>> > RX-errors: 2
>> > RX-nombuf: 0
>> > TX-packets: 2562340 TX-errors: 0 TX-bytes: 1383470795
>> > Throughput (since last show)
>> > Rx-pps: 0
>> > Tx-pps: 0
>> >
>>
>> >####################################################################################################
>> >NIC statistics for port 1
>> >########################
>> > RX-packets: 2563321 RX-missed: 5470250 RX-bytes: 4360388448
>> > RX-errors: 2
>> > RX-nombuf: 0
>> > TX-packets: 2565053 TX-errors: 0 TX-bytes: 1384794806
>> > Throughput (since last show)
>> > Rx-pps: 0
>> > Tx-pps: 0
>> >
>>
>> >############################################################################
>> >
>> >testpmd> show port stats all
>> > ######################## NIC statistics for port 0
>> ########################
>> > RX-packets: 3738196 RX-missed: 5781554 RX-bytes: 5226453840
>> > RX-errors: 2
>> > RX-nombuf: 0
>> > TX-packets: 3733847 TX-errors: 0 TX-bytes: 2095944031
>> > Throughput (since last show)
>> > Rx-pps: 1146794
>> > Tx-pps: 1145588
>> >
>>
>> >####################################################################################################
>> >NIC statistics for port 1
>> >########################
>> > RX-packets: 3734584 RX-missed: 5470836 RX-bytes: 5073167767
>> > RX-errors: 2
>> > RX-nombuf: 0
>> > TX-packets: 3737663 TX-errors: 0 TX-bytes: 2097873710
>> > Throughput (since last show)
>> > Rx-pps: 1145356
>> > Tx-pps: 1146673
>> >
>>
>> >############################################################################
>> >
>> >
>> >*(4) Set filters to drop all eth traffic from both ports*
>> >
>> >
>> >testpmd> flow create 0 ingress pattern eth / end actions drop / end
>> >
>> >Flow rule #0 created
>> >
>> >testpmd> flow create 1 ingress pattern eth / end actions drop / end
>> >
>> >Flow rule #0 created
>> >
>> >
>> >*(5) Check whether traffic is dropped. Traffic is actually not being
>> dropped, so the filter does not seem to work.*
>> >
>> >
>> >testpmd> show port stats all
>> > ######################## NIC statistics for port 0
>> ########################
>> > RX-packets: 22396701 RX-missed: 5807012 RX-bytes: 15827722523
>> > RX-errors: 2
>> > RX-nombuf: 0
>> > TX-packets: 22345743 TX-errors: 0 TX-bytes: 12669400435
>> > Throughput (since last show)
>> > Rx-pps: 1149437
>> > Tx-pps: 1146447
>> >
>>
>> >####################################################################################################
>> >NIC statistics for port 1
>> >########################
>> > RX-packets: 22369666 RX-missed: 5496215 RX-bytes: 15660935280
>> > RX-errors: 2
>> > RX-nombuf: 0
>> > TX-packets: 22333043 TX-errors: 0 TX-bytes: 12682032499
>> > Throughput (since last show)
>> > Rx-pps: 1147969
>> > Tx-pps: 1145246
>> >
>> >
>>
>> >############################################################################
>> >testpmd> show port stats all
>> > ######################## NIC statistics for port 0
>> ########################
>> > RX-packets: 25054000 RX-missed: 5810727 RX-bytes: 16926854689
>> > RX-errors: 2
>> > RX-nombuf: 0
>> > TX-packets: 24977043 TX-errors: 0 TX-bytes: 13764321537
>> > Throughput (since last show)
>> > Rx-pps: 1405948
>> > Tx-pps: 1392192
>> >
>> >
>>
>> >####################################################################################################
>> >NIC statistics for port 1
>> >########################
>> > RX-packets: 25024585 RX-missed: 5499881 RX-bytes: 16758760036
>> > RX-errors: 2
>> > RX-nombuf: 0
>> > TX-packets: 24966843 TX-errors: 0 TX-bytes: 13778185984
>> > Throughput (since last show)
>> > Rx-pps: 1404664
>> > Tx-pps: 1393490
>> >
>>
>> >############################################################################
>> >
>> >Thanks,
>> >
>> >Sruthi
>>
>
prev parent reply other threads:[~2019-06-21 10:46 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-17 2:19 [dpdk-users] " Sruthi Yellamraju
[not found] ` <6DF84BC835AA424FAE2B23EA6A94E5EB669EFD@IRSMSX104.ger.corp.intel.com>
[not found] ` <F35DEAC7BCE34641BA9FAC6BCA4A12E71B38A91B@SHSMSX103.ccr.corp.intel.com>
2019-06-19 11:42 ` [dpdk-users] FW: " Ye Xiaolong
2019-06-19 16:27 ` Cliff Burdick
2019-06-21 10:46 ` Sruthi Yellamraju [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=CAFxVZ5KWvYNWm2BEF+QXqTSb_oargxjReMSSyv_8rOSzoA28jQ@mail.gmail.com \
--to=ysruthi@gmail.com \
--cc=beilei.xing@intel.com \
--cc=haiyue.wang@intel.com \
--cc=helin.zhang@intel.com \
--cc=qi.z.zhang@intel.com \
--cc=shaklee3@gmail.com \
--cc=users@dpdk.org \
--cc=xiao.zhang@intel.com \
--cc=xiaolong.ye@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).