fetisov / lrndis

stm32 ethernet over usb (rndis + lwip)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RNDIS: Does not work correctly when ported to stm32cubemx libraries.

Hello1024 opened this issue · comments

After very carefully migrating usbd_rndis_core.c to use the new API's (eg. mapping DCD_EP_PrepareRx to USBD_LL_PrepareReceive), I can report that the resulting code does not work.

For reference, see my changes here:
Hello1024@15b3818

The device enumerates fine, and control messages seem to be sent fine (the mac address is discovered by the host for example).

Actual data messages seem to fail though. A USB trace shows that after every SOF, a BULK IN packet is created on RNDIS_NOTIFICATION_IN_EP, but never followed up with an actual data packet, which is a usb protocol error in both linux and windows. Both retry thousands of times per second, but never get anywhere.

I haven't managed to successfully debug it yet. The device isn't locking up or anything, because it still responds to other message types.

Correction...

It works fine if you don't change the endpoint numbering!