If the USB peripheral involves running the eCos TCP/IP stack and that stack needs to use USB-ethernet as a transport layer (or as one of the transports), then the USB-ethernet package can provide a suitable network device driver. It is still necessary for higher-level code to perform appropriate initialization by calling usbs_eth_init , but after that it will be the TCP/IP stack rather than application code that transmits or receives ethernet frames.
Not all peripherals involving the USB-ethernet package will require a TCP/IP stack. Hence the provision of the network device is controlled by a configuration option CYGPKG_USBS_ETHDRV . By default this will be enabled if the TCP/IP package CYGPKG_NET is loaded, and disabled otherwise.
There are a number of other configuration options related to the network device. CYGFUN_USBS_ETHDRV_STATISTICS determines whether or not the package will maintain statistics, mainly intended for SNMP: by default this will be enabled if the SNMP support package CYGPKG_SNMPAGENT is loaded, and disabled otherwise. The name of the ethernet device is controlled by CYGDATA_USBS_ETHDRV_NAME , and has a default value of eth0 . If there are other network device drivers present in the configuration then it is the responsibility of the application developer to give each device a unique name.