[dpdk-dev] flow director on X550

Nishant Verma vnish11 at gmail.com
Wed May 25 22:08:11 CEST 2016


Hi All,

My system configuration is
==>#. SuperMicro 1U
   - BIOS: 1.0a
   - Processor: Intel(R) Xeon(R) CPU D-1540 @ 2.00GHz
   - Onboard NIC: Intel(R) X552/X557-AT (2x10G)
     - Firmware-version: 0x800001cf
     - Device ID (PF/VF): 8086:15ad /8086:15a8
   - kernel driver version: 4.2.5 (ixgbe)

I am working on DPDK 16.04 & pktgen 3.0.0 version.


My intention is to test flow director based on just destination IP. It
means, i will use test-pmd and configure flow director and fdir mask, from
pktgen i will send packet and check if packets are going to right queue or
not.

Here is the procedure, that i follow.

1. I run testpmd
* ./testpmd -c 0xffff -n 4 -- -i  --portmask=0x3 --nb-cores=5
--disable-link-check  --rxq=5 --txq=5  --pkt-filter-mode=perfect*

2. executed command "*port stop all*"

3. After that added fdir mask
*flow_director_mask 0 mode IP vlan 0 src_mask 0.0.0.0 0:0:0:0:0:0:0:0 0x00
dst_mask 255.255.255.255 0:0:0:0:0:0:0:0 0x00*

4. Again executed command "*port start all*"

5. Now i added flow director filter.
*flow_director_filter 0 mode IP add flow ipv4-udp  src 0.0.0.0 0000 dst
66.66.66.66 0000 tos 0x00 ttl 0x00 vlan 0 flexbytes (0x00,0x00) fwd pf
queue 4 fd_id 4*

6. after that "*start*"

---
7. On Pktgen side.... i just change destination Address  to *66.66.66.66*,
protocol to *UDP* and issue command start 0.
---
Result
8.  But instead of packet to queue 4, packets are going to queue 0.
"
testpmd> *start*
  io packet forwarding - CRC stripping disabled - packets/burst=32
  nb forwarding cores=5 - nb forwarding ports=2
  RX queues=5 - RX desc=128 - RX free threshold=32
  RX threshold registers: pthresh=8 hthresh=8 wthresh=0
  TX queues=5 - TX desc=512 - TX free threshold=32
  TX threshold registers: pthresh=32 hthresh=0 wthresh=0
  TX RS bit threshold=32 - TXQ flags=0xf01
testpmd> stop
Telling cores to stop...
Waiting for lcores to finish...

  ------- Forward Stats for *RX Port= 0/Queue= 0 *-> TX Port= 1/Queue= 0
-------
  RX-packets: 14094137       TX-packets: 14094137       TX-dropped: 0
  ---------------------- Forward statistics for port 0
----------------------
  RX-packets: 14094137       RX-dropped: 258361        RX-total: 14352498
  TX-packets: 0              TX-dropped: 0             TX-total: 0

----------------------------------------------------------------------------

  ---------------------- Forward statistics for port 1
----------------------
  RX-packets: 127            RX-dropped: 6162236       RX-total: 6162363
  TX-packets: 14094137       TX-dropped: 0             TX-total: 14094137

----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all
ports+++++++++++++++
  RX-packets: 14094264       RX-dropped: 6420597       RX-total: 20514861
  TX-packets: 14094137       TX-dropped: 0             TX-total: 14094137

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.
testpmd>
"

I am sharing my port and flow dir info also....

"
testpmd> *show port info 0*

********************* Infos for port 0  *********************
MAC address: 0C:C4:7A:73:EF:14
Connect to socket: 0
memory allocation on the socket: 0
Link status: up
Link speed: 10000 Mbps
Link duplex: full-duplex
Promiscuous mode: enabled
Allmulticast mode: disabled
Maximum number of MAC addresses: 128
Maximum number of MAC addresses of hash filtering: 4096
VLAN offload:
  strip on
  filter on
  qinq(extend) off
Hash key size in bytes: 40
Redirection table size: 512
Supported flow types:
  ipv4
  ipv4-tcp
  ipv4-udp
  ipv6
  ipv6-tcp
  ipv6-udp
  unknown
  unknown
  unknown
Max possible RX queues: 128
Max possible number of RXDs per queue: 4096
Min possible number of RXDs per queue: 32
RXDs number alignment: 8
Max possible TX queues: 64
Max possible number of TXDs per queue: 4096
Min possible number of TXDs per queue: 32
TXDs number alignment: 8
testpmd>
testpmd> *show port fdir 0*

  ######################## FDIR infos for port 0
########################
  MODE:   PERFECT
  SUPPORTED FLOW TYPE:  ipv4-tcp ipv4-udp ipv4-sctp ipv4-other ipv6-tcp
ipv6-udp ipv6-sctp ipv6-other
  FLEX PAYLOAD INFO:
  max_len:       2           payload_limit: 62
  payload_unit:  2           payload_seg:   1
  bitmask_unit:  0           bitmask_num:   0
  MASK:
    vlan_tci: 0x0000, src_ipv4: 0x00000000, dst_ipv4: 0xffffffff, src_port:
0x0000, dst_port: 0x0000
    src_ipv6: 0x00000000,0x00000000,0x00000000,0x00000000, dst_ipv6:
0x00000000,0x00000000,0x00000000,0x00000000
  FLEX PAYLOAD SRC OFFSET:
    RAW:    12     13
  FLEX MASK CFG:
    unknown:     00 00
  guarant_count: 1           best_count:    0
  guarant_space: 2048        best_space:    0
  collision:     0           free:          2047
  maxhash:       0           maxlen:        0
  add:           1           remove:        0
  f_add:         0           f_remove:      0

############################################################################
testpmd>
"

Please suggest. Do i am missed something?

Thanks.

-- 
Rgds,
​NV


More information about the dev mailing list