History: usbd_cd_cdc_ecm

This page describes all changes made to the usbd_cd_cdc_ecm package, USBD CDC-ECM Class Driver, since its release.


2.6 (2020-11-20, 15:46):

  • IN (device to host) Data transfers of certain length (where length is the multiple of the CDC-ECM IN data endpoint) might have failed when acting as a network driver.

2.5r2 (2018-08-29, 18:16):

  • Document HTML link added to the documentation folder.
  • History and document files renamed to the package name.

2.5 (2017-09-21, 08:38):

  • usbd_cdcecm_set_mac_addr() did not work properly as it did not change USB string of MAC address.

2.4 (2017-08-15, 13:24):

  • Packet filtering used wrong MAC address and filtered all outgoing unicast frames when usbd_cdcecm_set_mac_addr() was called.


  • Packet filter was implemented.
  • Bugs fixed (if USBD_CDCECM_ACT_AS_NWDRIVER is 0):    

          - CDC-ECM lockup could occur as network interface was not initialized before reporting connected status.

          - status of interface was not reported to USB host when it changed.

          - packet loss could occur when no OS is used.


  • Driver could not work with Linux hosts as Set Interface command was handled improperly.


  • Class driver separated into two parts, depending on the new configuration option USBD_CDCECM_ACT_AS_NWDRIVER.
  • If USBD_CDCECM_ACT_AS_NWDRIVER != 0, then the class driver acts as a network driver: it can be interfaced to a network interface, typically required if the class driver is used with HCC's TCP/IP stack.
  • If USBD_CDCECM_ACT_AS_NWDRIVER == 0, then the class driver acts as a network interface: a network driver can be interfaced to it, typically required if the class driver needs to be used standalone or with a non HCC TCP/IP stack.


  • Problems fixed when used with RTOS.


  • Initial release.