fix(usb) compile tinyusb_net.c when RNDIS is enabled (IEC-96)
Checklist
- [x] Component contains License
- [x] Component contains README.md
- [x] Component contains idf_component.yml file with
urlfield defined - [x] Component was added to upload job
- [x] Component was added to build job
- [x] Optional: Component contains unit tests
- [x] CI passing
Change description
RNDIS and ECM were not working when selected in menuconfig
@voedipus Thank you for the PR! Does the RNDIS configuration work with your device?
we did not test RNDIS, only NCM. That is why why enabled NCM only
@tore-espressif Actually, it is not working with this MR, but I was able to get RNDIS working with couple of other fixes. I will add changes soon
@tore-espressif It works now, checked on Linux with esp idf 5.1.3 and Windows 10 (RNDIS)
@voedipus Thank you for the PR! Does the RNDIS configuration work with your device?
we did not test RNDIS, only NCM. That is why why enabled NCM only
Please do include RNDIS support. The upstream is rewriting the NCM driver and some unstablility will be expected. Also, the current NCM driver is buggy and slower than the RNDIS. If we would like to enable the USB network feature at this moment I think RNDIS is still the way to go
The current RNDIS driver in TinyUSB does not support FIFO buffering and lacks an effective API to notify the application layer when the previous transmission is complete. Using the more efficient tinyusb_net_send_async function often results in cases where the previous RNDIS transmission hasn't finished. On the other hand, the new NCM driver supports software buffering. I believe the RNDIS driver should also support this feature.
Furthermore, supporting RNDIS is necessary because, in network card applications, Windows 10 does not support the NCM driver.
Furthermore, supporting RNDIS is necessary because, in network card applications, Windows 10 does not support the NCM driver.
Here's a step-by-step manual how to install NCM driver on Windows 10 , if anyone is interested
UPDATE: We will update TinyUSB in esp-idf to v0.17 soon. This release brings refactored NCM class and DMA support. If the NCM performs well, we plan to support NCM only, due to our limited resources to maintain 2 USB networking solutions