mbox series

[v8,0/3] add RSS configuration for iavf

Message ID 20200422010255.76137-1-jia.guo@intel.com (mailing list archive)
Headers
Series add RSS configuration for iavf |

Message

Guo, Jia April 22, 2020, 1:02 a.m. UTC
  Because the VF must be capable of configuring RSS, so add RSS configuration
for iavf, VFs could add or delete a RSS rule base on the PF's capability.
The supported protocol rss input set as below.

l2-src-only/
l2-dst-only/
svlan/
cvlan/
ipv4/
ipv6/
l3_src_only/
l3_dst_only/
l2tpv3/
esp/
ah/
pfcp/
gtpu down/
gtpu up/
udp/
tcp/
sctp/

use tespmd for example:
testpmd> flow create 0 ingress pattern eth / ipv4 / end actions rss types l3-src-only  end key_len 0 queues end / end

use scapy for example:
> sendp(Ether(dst="00:01:23:45:67:01")/IP(src=RandIP())/Raw('x'*20),iface="ens785f1",loop=1,inter=0.3)

the expect result:
the rss hash works and the packets will go to difference queue for load balance.

This patchset depends on below patch sets.
(1)http://patches.dpdk.org/project/dpdk/list/?series=8950
        add generic filter support for iavf
(2)http://patches.dpdk.org/project/dpdk/list/?series=9280
        iavf share code update
(3)http://patches.dpdk.org/project/dpdk/list/?series=9244
        framework for advanced iAVF PMD

v8:
1.rebase patch and refine guide doc

v7:
1.rebase and add ETH_RSS_VLAN to cover ETH_RSS_S_VLAN and ETH_RSS_C_VLAN
2.add misssing type and add change in doc for port rss configure.

v6:
1.rename some struct and type
2.use pattern hint to distingush different layer for hash
3.add some missing part and refine commit log

v5:
1.rename ETH_XXX to L2_XXX.
2.NULL checking and commit log refine.

v4:
1.refine the rss type checking
2.delete unnecessary pdu type item.

v3:
1.refince rss offload types.
2.add doc in release note
3.refine some naming base on virtchnl definition.
4.move gtp pdu index from normal to special.

v2:
1.refine some rte eth rss offload types.
2.add NAT T ESP and refine gtpu down/up
3.reference some fixing patch from pf side.

Jeff Guo (3):
  ethdev: add new RSS offload types
  net/iavf: add RSS configuration for VFs
  app/testpmd: add new types to RSS hash commands

 app/test-pmd/cmdline.c                      |   34 +-
 app/test-pmd/config.c                       |   14 +-
 doc/guides/rel_notes/release_20_05.rst      |    1 +
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |    6 +-
 drivers/net/iavf/Makefile                   |    1 +
 drivers/net/iavf/iavf.h                     |    2 +
 drivers/net/iavf/iavf_hash.c                | 1053 +++++++++++++++++++
 drivers/net/iavf/iavf_vchnl.c               |   33 +-
 drivers/net/iavf/meson.build                |    1 +
 lib/librte_ethdev/rte_ethdev.h              |   17 +-
 10 files changed, 1143 insertions(+), 19 deletions(-)
 create mode 100644 drivers/net/iavf/iavf_hash.c
  

Comments

Ferruh Yigit April 21, 2020, 5:15 p.m. UTC | #1
On 4/22/2020 2:02 AM, Jeff Guo wrote:
> Because the VF must be capable of configuring RSS, so add RSS configuration
> for iavf, VFs could add or delete a RSS rule base on the PF's capability.
> The supported protocol rss input set as below.
> 
> l2-src-only/
> l2-dst-only/
> svlan/
> cvlan/
> ipv4/
> ipv6/
> l3_src_only/
> l3_dst_only/
> l2tpv3/
> esp/
> ah/
> pfcp/
> gtpu down/
> gtpu up/
> udp/
> tcp/
> sctp/
> 
> use tespmd for example:
> testpmd> flow create 0 ingress pattern eth / ipv4 / end actions rss types l3-src-only  end key_len 0 queues end / end
> 
> use scapy for example:
>> sendp(Ether(dst="00:01:23:45:67:01")/IP(src=RandIP())/Raw('x'*20),iface="ens785f1",loop=1,inter=0.3)
> 
> the expect result:
> the rss hash works and the packets will go to difference queue for load balance.
> 
> This patchset depends on below patch sets.
> (1)http://patches.dpdk.org/project/dpdk/list/?series=8950
>         add generic filter support for iavf
> (2)http://patches.dpdk.org/project/dpdk/list/?series=9280
>         iavf share code update
> (3)http://patches.dpdk.org/project/dpdk/list/?series=9244
>         framework for advanced iAVF PMD
> 
> v8:
> 1.rebase patch and refine guide doc
> 
> v7:
> 1.rebase and add ETH_RSS_VLAN to cover ETH_RSS_S_VLAN and ETH_RSS_C_VLAN
> 2.add misssing type and add change in doc for port rss configure.
> 
> v6:
> 1.rename some struct and type
> 2.use pattern hint to distingush different layer for hash
> 3.add some missing part and refine commit log
> 
> v5:
> 1.rename ETH_XXX to L2_XXX.
> 2.NULL checking and commit log refine.
> 
> v4:
> 1.refine the rss type checking
> 2.delete unnecessary pdu type item.
> 
> v3:
> 1.refince rss offload types.
> 2.add doc in release note
> 3.refine some naming base on virtchnl definition.
> 4.move gtp pdu index from normal to special.
> 
> v2:
> 1.refine some rte eth rss offload types.
> 2.add NAT T ESP and refine gtpu down/up
> 3.reference some fixing patch from pf side.
> 
> Jeff Guo (3):
>   ethdev: add new RSS offload types
>   net/iavf: add RSS configuration for VFs
>   app/testpmd: add new types to RSS hash commands
> 

Series applied to dpdk-next-net/master, thanks.