Dear Adrien and Wenzhuo, Thank you very much for your kind reply. I tried flow_director_filter API directly using testpmd with the same environment. So let me add more information.
- Using pktgen-3.0.13, I prepared 2 flows whose dst-Macs are 0c:c4:7a:cf:66:11 and 0c:c4:7a:cf:66:12 respectively. ``` Pktgen> set 0 seqCnt 2 Pktgen> seq 0 0 0c:c4:7a:cf:66:11 0c:c4:7a:cf:66:01 192.168.1.1 192.168.0.1/24 1234 5678 ipv4 udp 1 64 Pktgen> seq 0 0 0c:c4:7a:cf:66:12 0c:c4:7a:cf:66:02 192.168.1.1 192.168.0.1/24 1234 5678 ipv4 udp 1 64 Pktgen> start 0 ``` - Then I started testpmd with options of "--rxq=2 --txq=2" and "--pkt-filter-mode=perfect-mac-vlan". - No error had occurred when configuring flow_director_filter. - When started, all packets were received in Pktgen. ``` $sudo ./dpdk-17.04/x86_64-native-linuxapp-gcc/app/testpmd -l 0-4 -n 4 -- -i --portmask=0x3 --nb-cores=4 --rxq=2 --txq=2 --pkt-filter-mode=perfect-mac-vlan testpmd> flow_director_filter 0 mode MAC-VLAN add mac 0c:c4:7a:cf:66:11 vlan 1 flexbytes (0x80,0x00) fwd queue 0 fd_id 1 testpmd> flow_director_filter 0 mode MAC-VLAN add mac 0c:c4:7a:cf:66:12 vlan 1 flexbytes (0x80,0x00) fwd queue 1 fd_id 2 testpmd> start ``` - When queue 0 was stopped, no packet was received in Pktgen. ``` testpmd> stop testpmd> port 0 rxq 0 stop testpmd> start ``` - When queue 1 was stopped, all packets were received in Pktgen. ``` testpmd> stop testpmd> port 0 rxq 0 start testpmd> port 0 rxq 1 stop testpmd> start ``` - which (I guess) mean the flow is not supported as you said. - The mac argument in flow_director_filter is dst-Mac, right? 2017-04-17 9:55 GMT+09:00 Lu, Wenzhuo <[email protected]>: > Hi, > > > -----Original Message----- > > From: Adrien Mazarguil [mailto:[email protected]] > > Sent: Friday, April 14, 2017 5:22 PM > > To: Tetsuro Nakamura > > Cc: [email protected]; Lu, Wenzhuo > > Subject: Re: [dpdk-users] using rte_flow via tespmd with Intel X552 > > > > Hi Tetsuro, > > > > On Thu, Apr 13, 2017 at 10:18:28AM +0900, Tetsuro Nakamura wrote: > > > Hi All, > > > > > > I'm now trying to use simple L2 function with "Generic Flow API > (rte_flow)" > > > using testpmd in dpdk-17.02, > > > but it doesn't work with the error below. > > > > > > ----------- > > > $sudo ./dpdk-17.02/x86_64-native-linuxapp-gcc/app/testpmd -l 0-3 -n 4 > > > -- -i > > > --portmask=0x3 --nb-cores=2 > > > > > > testpmd> flow validate 0 ingress pattern eth / eth dst is > > > testpmd> a0:36:9f:78:30:26 > > > / end actions drop / end > > > Caught error type 9 (specific pattern item): cause: 0x7ffd225adc88, > > > Not supported by L2 tunnel filter > > > testpmd> flow validate 0 ingress pattern eth / eth dst is > > > testpmd> a0:36:9f:78:30:26 > > > / end actions queue index 0 / end > > > Caught error type 9 (specific pattern item): cause: 0x7ffd225adc88, > > > Not supported by L2 tunnel filter > > > ----------- > > > > > > I tried several other flows and got the same error. > > > I'm using Intel X552 NIC. The firmware-version is 0x800003e7. > > > > > > ----------- > > > $ sudo ethtool -i rename6 > > > driver: ixgbe > > > version: 5.0.4 > > > firmware-version: 0x800003e7 > > > expansion-rom-version: > > > bus-info: 0000:03:00.0 > > > supports-statistics: yes > > > supports-test: yes > > > supports-eeprom-access: yes > > > supports-register-dump: yes > > > supports-priv-flags: no > > > ----------- > > > > > > My question is, > > > am I missing some additional settings to do ? > > > Should I use another firmware version ? > > > # DPDK 17.02 official release note says the tested firmware version > > > was 0x800001cf. > > > # My version, 0x800003e7 is newer, isn't it? > > > > > > I don't think the NIC does't support such simple L2 functions. > > > But if it doesn't, are there any documents that tell us which NIC > > > supports which flow rules in rte_flow? > > > Could you tell me what flows I can try with Intel X552 NIC? > > > > > > Thank you and best regards, > > > > > > Tetsuro Nakamura, NTT > > > > I'm not familiar with ixgbe but this issue reminds me of this thread [1], > > particularly the following comment: > > > > "the rte_flow_error returned was not very useful for it does return the > > error of the last tried filter-type (L2 tunnel in ixgbe), and not the > error of the > > filter-type that my setup should use (flow director)" > > > > CC'ing Wenzhuo, I think this issue is present in 17.02, has it been > fixed since? > > > > [1] http://dpdk.org/ml/archives/dev/2017-March/059928.html > +Wei > About the previous discussion, Wei has sent the patch to remove the tpid > in ixgbe. But no improvement of error message yet as I know. > > I think this flow is not supported. Generic flow API is flexible enough, > but not every flow can be supported. The flow is supported or not has > nothing to do with if it's simple. It's limited to HW capability. Wei, do > you have some doc to shared or even has uploaded to the community? Thanks. > > > > > -- > > Adrien Mazarguil > > 6WIND >
