Bug 1343

Summary: net/i40e does not drop packet with too many segments
Product: DPDK Reporter: Andrew Rybchenko (andrew.rybchenko)
Component: ethdevAssignee: dev
Status: UNCONFIRMED ---    
Severity: normal    
Priority: Normal    
Version: 23.11   
Target Milestone: ---   
Hardware: All   
OS: All   

Description Andrew Rybchenko 2024-01-05 14:44:32 CET
net/i40e does not drop packet with too many segments

The test case is a bit artificial, but still makes sense. If application sent packet with too many segments which do not fit in Tx ring (or free space in Tx ring) the packet is reported as sent anyway.

The packet is not counted as sent in stats or output errors.

The following errors appear in logs:
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

Should be repeatable with testpmd which allows to sent packet with many segments. E.g. setup Tx queue with 64 descriptors and try to send packet with 65 segments.

IMHO right behaviour in this case is to report the packet as transmitted in Tx burst return value, but drop and count it in oerrors. (Otherwise Tx could stuck).

Test logs (run at UHN IOL):
https://ts-factory.io/bublik/v2/log/362398?focusId=368819&mode=treeAndinfoAndlog&experimental=true&lineNumber=1_60

Mentioned error appear in logs with delay (in the next test):
https://ts-factory.io/bublik/v2/log/362398?focusId=368820&mode=treeAndinfoAndlog&experimental=true&lineNumber=1_32