Bug 577 - x540-AT2: Can Flow Director filter fragmented packet ?
Summary: x540-AT2: Can Flow Director filter fragmented packet ?
Status: UNCONFIRMED
Alias: None
Product: DPDK
Classification: Unclassified
Component: other (show other bugs)
Version: 17.05
Hardware: x86 Linux
: Normal normal
Target Milestone: ---
Assignee: jeffguo
URL:
Depends on:
Blocks:
 
Reported: 2020-11-13 04:21 CET by Thanhnv118
Modified: 2020-12-07 11:14 CET (History)
1 user (show)



Attachments

Description Thanhnv118 2020-11-13 04:21:28 CET
Hi all,

I'm trying to use flow-director to split data traffic to a VF in NIC X540-AT2 and I have successfully experimented this solution with packet ( MTU < 1500 ) . But with packet that bigger than MTU 1500 ( IP fragmentation breaks packets into smaller fragments ) , Flow Director doesn't work !!!!!

- As a guide:
https://doc.dpdk.org/guides-17.05/howto/flow_bifurcation.html


- Create VFs :
#echo 1 > /sys/class/net/p7p2/device/sriov_numvfs

- Config Flow Director ( for queue_id 0 of VF 1 ) :

#ethool --config-ntuple p7p2 flow-type udp4 dst-ip 192.168.1.5 dst-port 2152 action 4294967296 (action = vf_id * 2^32 + queue_id ) .

Can i ask a question :  Can Flow Director filter fragmented packet ?


Brgs,
thanhnv118
Comment 1 Ajit Khaparde 2020-11-13 22:51:01 CET
Jeff, Can you please check this? Thanks
Comment 2 Thanhnv118 2020-11-17 04:40:06 CET
Hi Jeff, can you please support me ? Thanks
Comment 3 jeffguo 2020-11-19 09:34:01 CET
hi, ajit and thanhnv

This issue should not be the flow director issue, it should be the mtu limitation of pmd. So you could first change the mtu size, then to check the flow director case again.

DPDK driver command:
testpmd> port stop all
testpmd> port config mtu 0 <size>

Kernel command:
ifconfig enp218s0f0 mtu <size>
Comment 4 Thanhnv118 2020-11-23 02:30:10 CET
(In reply to jeffguo from comment #3)
> hi, ajit and thanhnv
> 
> This issue should not be the flow director issue, it should be the mtu
> limitation of pmd. So you could first change the mtu size, then to check the
> flow director case again.
> 
> DPDK driver command:
> testpmd> port stop all
> testpmd> port config mtu 0 <size>
> 
> Kernel command:
> ifconfig enp218s0f0 mtu <size>


Hi jeff,
Thank you for your solution,

I realize i can only increase MTU maximum 9000 , but maximum UDP packet is 64KB so this packet may be fragmented
Comment 5 jeffguo 2020-12-01 08:12:58 CET
hi thanhnv

Oh, I got you now and let me clarify that the capability of fragment package is not related with flow director but is depend on pmd's rx path, So you should flow the DPDK fragment package usage to check if the driver could receive fragment packet, then you turn on the flow direct to check flow bifurcation.
Comment 6 Thanhnv118 2020-12-07 11:14:38 CET
(In reply to jeffguo from comment #5)
> hi thanhnv
> 
> Oh, I got you now and let me clarify that the capability of fragment package
> is not related with flow director but is depend on pmd's rx path, So you
> should flow the DPDK fragment package usage to check if the driver could
> receive fragment packet, then you turn on the flow direct to check flow
> bifurcation.

Hi jeff,

Thanks for your reply,

Do you mean Intel Ethernet Flow Director supports fragmented packet ? 
I tried to send packet MTU < 9000 (maximum MTU ) to port NIC ( unbind DPDK ) and I catched packets on VF (unbind DPDK ) by tcpdump  . 
But with packet MTU > 9000 (fragmented packet) , i use tcpdump on VF and don't catch any packets . Those packets return on PF.

Note You need to log in before you can comment on or make changes to this bug.