MC7430/7455 GobiNet driver bug may result in packet drop

We found an issue with the MC7430 modem & GobiNet driver on Linux which caused IP packets of size 512 or 1024 bytes being discarded by some LTE core network implementations.

Basically the modem is sending an extra byte of data in case the IP packet is exactly 512 or 1024 bytes, this will lead into inconsistency between the IP header and GTP header added by the network. It is notable that most LTE networks are not affected by this issue and they silently ignore the inconsistency.

The problem is caused by a workaround needed for some USB devices in the Linux kernel usbnet driver which will add one byte of dummy data into USB URB transfer in case the device is not advertising support for ‘Zero Length Packet’.

Apparently to fix this issue with the Sierra MC730 and MC7455 (can not test others) it is enough to modify the driver to tell Linux USB code that the ZLP is supported by following small change in the driver code (patch made for driver version S2.29N2.47)

GobiUSBNet.c.org 2017-10-18 15:51:56.076734572 +0300
+++ GobiUSBNet.c 2017-10-18 15:54:03.990968341 +0300
@@ -2318,7 +2318,7 @@

static const struct driver_info GobiNetInfo_9x15 = {
.description = “GobiNet Ethernet Device”,

  • .flags = FLAG_ETHER,
  • .flags = FLAG_ETHER | FLAG_SEND_ZLP,
    .bind = GobiNetDriverBind,
    .unbind = GobiNetDriverUnbind,
    .rx_fixup = GobiNetDriverLteRxFixup,

The correction has been tested with MC7430 and MC7455.

Best regards, Kari Hautio / Nokia

Hi,

This problem needs a detailed technical analysis. Please contact your Technical support in SWI to provide you the solution.

Thanks & Regards,
Moderator