Skip to contentSkip to conversation

max_rx_pkt_len issues with i40e dpdk SRIOV driver net_i40e_vf.

dpdk-dev [email protected] 1 participant 1 message Jun 27, 2019

lore
Share & tools
lore
#0 lore raw

https://bugs.dpdk.org/show_bug.cgi?id=297

            Bug ID: 297
           Summary: max_rx_pkt_len issues with i40e dpdk SRIOV driver
                    net_i40e_vf.
           Product: DPDK
           Version: 18.02
          Hardware: x86
                OS: All
            Status: CONFIRMED
          Severity: major
          Priority: Normal
         Component: ethdev
          Assignee: [email protected]
          Reporter: [email protected]

Target Milestone: ---

Created attachment 41
--> https://bugs.dpdk.org/attachment.cgi?id=41&action=edit
patch file for the workaround solution

When deployed an SRIOV setup with Intel 40GB NIC, we noticed the traffic with default mtu (1500) is not working.
The maximum MSS which was worked is 1456 ( instead of the default value 1460).

On debugging, it is found that the driver is actually setting the dev_data->dev_conf.rxmode.max_rx_pkt_len to 1518(ETHER_MAX_LEN) which is wrong.

The max len is not including the vlan tag len( also not including QinQ). The ETH Overhead is defined as below

#define I40E_ETH_OVERHEAD \
        (ETHER_HDR_LEN + ETHER_CRC_LEN + I40E_VLAN_TAG_SIZE * 2)    

which is equal to 26

So for supporting an MTU size of 1500, the max_rx_pkt_len should be 1526 instead of 1518.

The i40evf_dev_mtu_set API also wrongly checking the framesize against ETHER_MAX_LEN(1518) to set the jumbo_frame mode.

The attached patch resolved the issue for our testing. Please verify and fix the issue.

Thanks and Regards,
Lava

Signature · 2 lines
You are receiving this mail because:
You are the assignee for the bug.