mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-09-02 00:02:48 +00:00
This fixes a bug in the cdc_ecm Ethernet over USB driver. The ECM spec (section 3.3.1) says that the end of an Ethernet frame is marked using the USB short packet mechanisim, where the last packet is less than the maximum packet size. If the Ethernet frame is a multiple of the USB maximum packet size then a final zero length packet must be sent. Linux however sends a one byte packet (usbnet.c:1393) to work around hardware issues with zero length packets. The current Zephyr driver works most of the time except when you send an Ethernet frame of the right length where the last byte is zero, such as: $ ping 192.0.2.1 -s 23 -p 0 Zephyr then drops the last byte, creating a short frame which gets dropped higher up in the stack. Signed-off-by: Michael Hope <mlhx@google.com> |
||
---|---|---|
.. | ||
class | ||
CMakeLists.txt | ||
composite.c | ||
composite.h | ||
Kconfig | ||
usb_descriptor.c | ||
usb_descriptor.h | ||
usb_device.c |