[dpdk-dev] [PATCH v3 0/6] new ntuple filter replaces 2tuple and 5tuple filters

Xu, HuilongX huilongx.xu at intel.com
Fri Feb 13 03:59:30 CET 2015


Tested-by:huilong xu <huilongx.xu at intel.com>

- Tested Commit: 2250cc5a191906c914221ff4f0da7b5d699b4175
 - OS: Fedora20  3.11.10-301.fc20.x86_64
 - GCC: gcc version 4.8.3 20140911 (Red Hat 4.8.3-7) (GCC)
 - CPU: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
 - NIC: Intel Corporation 82599EB 10-Gigabit Network Connection [8086:10fb]
        Intel Corporation I350 Gigabit Network Connection [8086:1521]
        Intel Corporation 82580 Gigabit Network Connection [8086:150e]

 - Default x86_64-native-linuxapp-gcc configuration
 - Total 2 cases, 2 passed, 0 failed
 
 - Case: five_tuple_filter
   Description: Check specified tcp package receive by specified queue. Test NIC 82599EB
   Command / instruction:
 	Start testpmd 
 		testpmd -c ffff -n 4 -- -i --disable-rss --rxq=4 --txq=4 --portmask=0x3 --nb-cores=8 --nb-ports=2
		 
 	set queue map:
 		set stat_qmap rx 0 0 0
 		set stat_qmap rx 1 0 0
		set stat_qmap rx 0 1 1
 		set stat_qmap rx 1 1 1
		set stat_qmap rx 0 2 2
 		set stat_qmap rx 1 2 2
		set stat_qmap rx 0 3 3
 		set stat_qmap rx 1 3 3
       set vlan offload:
             vlan set strip off 0
             vlan set strip off 1
             vlan set filter off 0
             vlan set filter off 1
       set flush rx on:
             set flush_rx on
        start testpmd:
             start
 	 add five tuple filter:
             5tuple_filter 0 add dst_ip 2.2.2.5 src_ip 2.2.2.4 dst_port 1 src_port 1 protocol 0x06 mask 0x1f tcp_flags 0x0 priority 3 queue 3 
 	Send packets with tcp inner L4 data,dstip 2.2.2.5, scrip 2.2.2.4,dstport 1, srcport 1, protocol 0x06
       test result:
 		testpmd can receive the package by port 0 queue 3
       remove five tuple filter:
              5tuple _filter 0 del dst_ip 2.2.2.5 src_ip 2.2.2.4 dst_port 1 src_port 1 protocol 0x06 mask 0x1f tcp_flags 0x0 priority 3 queue 3 

      Send packets with tcp inner L4 data,dstip 2.2.2.5, scrip 2.2.2.4,dstport 1, srcport 1, protocol 0x06
       test result:
 		testpmd can receive the package by port 0 queue 0 

- Case: twotuple_filter
   Description: Check specified udp package receive by specified queue. Test NIC i350 and 82580
   Command / instruction:
 	Start testpmd 
 		testpmd -c ffff -n 4 -- -i --disable-rss --rxq=4 --txq=4 --portmask=0x3 --nb-cores=8 --nb-ports=2
		 
 	set queue map:
 		set stat_qmap rx 0 0 0
 		set stat_qmap rx 1 0 0
		set stat_qmap rx 0 1 1
 		set stat_qmap rx 1 1 1
		set stat_qmap rx 0 2 2
 		set stat_qmap rx 1 2 2
		set stat_qmap rx 0 3 3
 		set stat_qmap rx 1 3 3
       set vlan offload:
             vlan set strip off 0
             vlan set strip off 1
             vlan set filter off 0
             vlan set filter off 1
       set flush rx on:
             set flush_rx on
        start testpmd:
             start
 	 add two tuple filter:
             2tuple_filter 0 add dst_port 64 protocol 0x11 mask 1 tcp_flags 0 priority 3 queue 1 
 	Send packets with udp inner L4 data,dstport 64,  protocol 0x11
       test result:
 		testpmd can receive the package by port 0 queue 1
       remove five tuple filter:
              5tuple 2tuple_filter 0 del dst_port 64 protocol 0x11 mask 1 tcp_flags 0 priority 3 queue 1  

      Send packets with tcp inner L4 data, dstport 64 ,protocol 0x11
       test result:
 		testpmd can receive the package by port 0 queue 0

-----Original Message-----
From: Wu, Jingjing 
Sent: Tuesday, February 10, 2015 12:48 PM
To: dev at dpdk.org
Cc: Wu, Jingjing; De Lara Guarch, Pablo; Cao, Min; Xu, HuilongX
Subject: [PATCH v3 0/6] new ntuple filter replaces 2tuple and 5tuple filters

v2 changes:
  - remove the code which is already applied in patch "Integrate ethertype
    filter in igb/ixgbe driver to new API".
  - modify commands' description in doc testpmd_funcs.rst.

v3 change:
  - remove the UINT32_BIT definition in ixgbe driver

The patch set uses new filter_ctrl API to replace old 2tuple and 5tuple filter APIs.
It defines ntuple filter to combine 2tuple and 5tuple types. 
It uses new functions and structure to replace old ones in igb/ixgbe driver,
new commands to replace old ones in testpmd, and removes the old APIs.
It removes the filter's index parameters from user interface, only the
filter's key and assigned queue are visible to user.

Jingjing Wu (6):
  ethdev: define ntuple filter type and its structure
  ixgbe: ntuple filter functions replace old ones for 5tuple filter
  e1000: ntuple filter functions replace old ones for 2tuple and 5tuple
    filter
  testpmd: new commands for ntuple filter
  ethdev: remove old APIs and structures of 5tuple and 2tuple filters
  doc: commands changed in testpmd_funcs for 2tuple amd 5tuple filter

 app/test-pmd/cmdline.c                      | 406 ++++++-------
 app/test-pmd/config.c                       |  65 ---
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |  99 +---
 lib/librte_ether/rte_eth_ctrl.h             |  57 ++
 lib/librte_ether/rte_ethdev.c               | 116 ----
 lib/librte_ether/rte_ethdev.h               | 192 ------
 lib/librte_pmd_e1000/e1000_ethdev.h         |  69 ++-
 lib/librte_pmd_e1000/igb_ethdev.c           | 869 +++++++++++++++++++---------
 lib/librte_pmd_ixgbe/ixgbe_ethdev.c         | 468 +++++++++++----
 lib/librte_pmd_ixgbe/ixgbe_ethdev.h         |  52 +-
 10 files changed, 1300 insertions(+), 1093 deletions(-)

-- 
1.9.3



More information about the dev mailing list