Hi From: Lu, Wenzhuo Sent: Monday, April 17, 2017 10:57 AM To: Tetsuro Nakamura <[email protected]>; [email protected] Cc: Adrien Mazarguil <[email protected]>; Zhao1, Wei <[email protected]> Subject: RE: [dpdk-users] using rte_flow via tespmd with Intel X552
Hi Nakamura, From: Tetsuro Nakamura [mailto:[email protected]] Sent: Monday, April 17, 2017 10:36 AM To: [email protected]<mailto:[email protected]> Cc: Adrien Mazarguil; Zhao1, Wei; Lu, Wenzhuo Subject: Re: [dpdk-users] using rte_flow via tespmd with Intel X552 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<http://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<http://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? [Wenzhuo] Yes. It’s dst-mac. It’s the benefit of generic flow API. Using generic API users do know what fields the input are. But the original one, users have to check the comments and docs ☺ 2017-04-17 9:55 GMT+09:00 Lu, Wenzhuo <[email protected]<mailto:[email protected]>>: Hi, > -----Original Message----- > From: Adrien Mazarguil > [mailto:[email protected]<mailto:[email protected]>] > Sent: Friday, April 14, 2017 5:22 PM > To: Tetsuro Nakamura > Cc: [email protected]<mailto:[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 We have a document about command format when creating flow, but has not been publicly upload to community. I will add a new chapter for this in doc\guides\nics\ixgbe.rst later, which is about command format when creating flow. A specific patch will be send to community later.
