224. Flow Filtering Tests

The Basic RTE flow filtering sample application is a simple example of a creating a RTE flow rule. It is intended as a demonstration of the basic components RTE flow rules. The Flow Filtering results are produced using ‘’flow’’ application:

./flow -l 1 -n 1

There is a flow rule defined in the sample code. You can check the detailed information of the flow rule from http://doc.dpdk.org/guides/sample_app_ug/flow_filtering.html

The matching item is dst IP address: “192.168.1.1”. The match action is entering the queue 1.

224.1. Prerequisites

The DUT must have one 10G Ethernet ports connected to one port on Tester that are controlled by packet generator:

dut_port_0 <---> tester_port_0

Assume the DUT 10G Ethernet ports’ pci device id is as the following:

dut_port_0 : "0000:05:00.0"
mac_address: "00:00:00:00:01:00"

Bind the port to dpdk igb_uio driver:

./usertools/dpdk-devbind.py -b igb_uio 05:00.0

224.2. Test Case: match rule

  1. Start the application with default settings:

    ./flow -l 1 -n 1
    
  2. Send packets which matches the defined rule from tester:

    Pkt1 = Ether(dst="00:00:00:00:01:00")/IP(src="0.0.0.0", dst="192.168.1.1") \
    /Raw("x"*20)
    Pkt2 = Ether(dst="00:00:00:00:01:00")/IP(src="0.0.0.1", dst="192.168.1.1") \
    /Raw("x"*20)
    
  3. Check the packets are received by queue 1:

    src=A4:BF:01:07:47:C8 - dst=00:00:00:00:01:00 - queue=0x1
    src=A4:BF:01:07:47:C8 - dst=00:00:00:00:01:00 - queue=0x1
    

224.3. Test Case: dismatch rule

  1. Start the application with default settings:

    ./flow -l 1 -n 1
    
  2. Send packet which dismatches the defined rule from tester:

    Pkt1 = Ether(dst="00:00:00:00:01:00")/IP(src="0.0.0.0", dst="192.168.1.2") \
    /Raw("x"*20)
    
  3. Check the packet is not received by queue 1:

    src=A4:BF:01:07:47:C8 - dst=00:00:00:00:01:00 - queue=0x0