[Bug 1097] i40e: TSO breaks when MSS spans more than 8 data fragments

bugzilla at dpdk.org bugzilla at dpdk.org
Tue Oct 11 11:41:02 CEST 2022


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

            Bug ID: 1097
           Summary: i40e: TSO breaks when MSS spans more than 8 data
                    fragments
           Product: DPDK
           Version: unspecified
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: ethdev
          Assignee: dev at dpdk.org
          Reporter: ivan.malov at oktetlabs.ru
  Target Milestone: ---

We've been running opensource ethdev tests [1] lately and we've come across a
bug in TSO:
https://ts-factory.io/bublik/v2/log/100333?focusId=102700&mode=treeAndinfoAndlog
.

In the above example, a TSO transaction with MSS=4000 is requested for a packet
bearing 6000 bytes of payload, with the first 4000 bytes spanning data located
in 13 mbuf segments. As a result, no packets are seen on the opposite end of
the wire, and the following log is produced:

i40e_dev_alarm_handler(): ICR0: malicious programming detected
i40e_handle_mdd_event(): Malicious Driver Detection event 0x02 on TX queue 1 PF
number 0x00 VF number 0x00 device 0000:01:00.0

i40e_handle_mdd_event(): TX driver issue detected on PF

According to
https://github.com/torvalds/linux/blob/master/drivers/net/ethernet/intel/i40e/i40e_txrx.c#L3416
, the "HW can't DMA more than 8 buffers to build a packet on the wire". By the
looks of it, Tx prepare method in the PMD turns a blind eye to crossing this
boundary. Hence the error.

Apparrently, Tx prepare in i40e shall either turn such transactions down or
linearise the superframe data to some extent.

[1] http://mails.dpdk.org/archives/dev/2022-October/251663.html

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the dev mailing list