Ethernet Products
Determine ramifications of Intel® Ethernet products and technologies
4855 Discussions

linux ice-1.11.14; uninitialized struct xdp_buff, massive packet loss with XDP + fix

Wolfgang-Beck
Beginner
673 Views

I am using ubuntu 22.04.2 with the intel ice driver v 1.11.14 downloaded from intel.com 
When using an XDP redirect based bpf program, I noticed random packet loss, even at low packet rates.

After some tracing, I found that the struct xdp_buff often had an invalid flags field value, which caused xdp to assume that the message stretched multiple buffers and could not handled by xdp, leading to the drop.

Initializing the xdp_buff struct in ice_txrx.c / clean_rx_irq() fixed the issue.

Please include this fix in the next driver update.


int ice_clean_rx_irq(struct ice_ring *rx_ring, int budget)
{
unsigned int total_rx_bytes = 0, total_rx_pkts = 0;
u16 cleaned_count = ICE_DESC_UNUSED(rx_ring);
#ifdef HAVE_XDP_SUPPORT
struct bpf_prog *xdp_prog = NULL;
unsigned int xdp_xmit = 0;
#endif /* HAVE_XDP_SUPPORT */
#ifndef CONFIG_ICE_USE_SKB
struct xdp_buff xdp = { 0 };  // <====   this is the missing initialization
#endif

0 Kudos
5 Replies
B_Y
Employee
633 Views

Hi Wolfgang-Beck,


Thank you for posting in Intel Ethernet Communities.

Please let us know which Ethernet product these ice driver and configurations apply to.

May I know if this inquiry related to Software Development?

If Yes, May I suggest you to consider reaching out Software Development Communities.

Here is the link so you can post your question there:

https://community.intel.com/t5/Developer-Software-Forums/ct-p/developer-software-forums


Best regards,

BY_Intel

Intel Customer Support


0 Kudos
B_Y
Employee
606 Views

Hi Wolfgang-Beck,


I hope this message finds you well. I am just sending a follow up if you have any questions from the previous post. If so, please let us know.

For further troubleshooting of your Ethernet card (NIC) I recommend to use lspci command. lspci is a utility for displaying information about all PCI buses in the system and all devices connected to them. The command is:

lspci | grep Ethernet


Example out:

0000:01:05.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)


I'm looking forward to hear from you. Thank you.


Best regards,

BY_Intel

Intel Customer Support


0 Kudos
Wolfgang-Beck
Beginner
590 Views

As I wrote in the original post, I have fixed the problem with the patch I gave there. Please give me a mailing list, issue tracker where bugs in the linux Intel ice driver can be reported. 

Is https://sourceforge.net/p/e1000/mailman/e1000-devel/ the right place for such reports?

 

0 Kudos
B_Y
Employee
579 Views

Hi Wolfgang-Beck,


That is correct mailing list.

Please let me know if I can be of any assistance.


Best regards,

BY_Intel

Intel Customer Support


0 Kudos
B_Y
Employee
528 Views

Hi Wolfgang-Beck,

 

Please be informed that we will now close this request since you have found the correct path for your inquiry.

Just feel free to post a new question if you may have any other inquiry in the future as this thread will no longer be monitored.

 

Best regards,

BY_Intel

Intel Customer Support

 

0 Kudos
Reply