Here is NCM implementation I have now. Would be fine to get ideas how to make it less ugly in integration into the subsystem. The spec is http://www.usb.org/developers/devclass_docs/NCM10.zip v2 fixes issues discovered during review. v3 fixes some more issues discovered during review, fixes host side ncm_bind: net device is not registered yet, adds handling of USB_CDC_SET_NTB_INPUT_SIZE. Question: do I handle control-out correctly, as designed? Yauheni Kaliuta (8): usb: cdc: ncm constants and structures added usb: ncm: added ncm.h with auxiliary definitions usb: usbnet: introduce usbnet_probe_pvtsize() net: usb: prepare for NCM usb: cdc_ncm: initial version usb: u_ether: prepare for NCM usb: gadget: f_ncm.c added usb: gadget: g_ncm added drivers/net/usb/Kconfig | 7 + drivers/net/usb/Makefile | 1 + drivers/net/usb/cdc_ether.c | 12 + drivers/net/usb/cdc_ncm.c | 478 ++++++++++++++++ drivers/net/usb/usbnet.c | 22 +- drivers/usb/gadget/Kconfig | 11 + drivers/usb/gadget/Makefile | 2 + drivers/usb/gadget/f_ncm.c | 1233 ++++++++++++++++++++++++++++++++++++++++++ drivers/usb/gadget/ncm.c | 248 +++++++++ drivers/usb/gadget/u_ether.c | 11 +- drivers/usb/gadget/u_ether.h | 4 + include/linux/usb/cdc.h | 94 ++++ include/linux/usb/ncm.h | 114 ++++ include/linux/usb/usbnet.h | 7 +- 14 files changed, 2239 insertions(+), 5 deletions(-) create mode 100644 drivers/net/usb/cdc_ncm.c create mode 100644 drivers/usb/gadget/f_ncm.c create mode 100644 drivers/usb/gadget/ncm.c create mode 100644 include/linux/usb/ncm.h -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html