Dear all, This series of patches introduces WebSocket to USB/IP. It also includes some independent features effective in themselves. 1) Exporting devices Export request and response PDU had been defined in a header but not been used. Now it works! Also, it supports senarios, for example, connect ubiquetous devices to a Linux based cloud service. In this senario, it's needed to establish connection from a device inside of firewall to a service outside. Exporting is suit for the senario. 2) User space transmission USB/IP transfer URBs in kernel space. It's better for performance but difficult to introduce application protocols. Like fuse for file systems, it allows to transfer URBs in user space. When usbip_ux.ko is loaded, it replaces kernel_sendmsg() and kernel_recvmsg() with user spcace interface. When USB/IP utilities find usbip_ux.ko, they start threads to read/write PDUs from/to usbip_ux.ko and send/recv them. 3) Replaceable protocols Both transmission(send/receive) and connection establishment are replaceable. 4) SSL OpenSSL is applied when configured --with-ssl=yes and --ssl option is specified. 5) a WebSocket implementation It's made with Poco C++. --- I published scripts I used for the development. http://linux-usbip-additions.blogspot.jp/2015/03/scripts-to-patch-and-make-locally.html http://linux-usbip-additions.blogspot.jp/2015/03/test-scripts.html Thank you, Nobuo Iwata <nobuo.iwata@xxxxxxxxxxxxxxx> // *** BLURB HERE *** Nobuo Iwata (13): USB/IP: exporting devices USB/IP: readme and manuals about exporting devices USB/IP: safe completion against usb_kill_urb() USB/IP: kernel module for userspace URBs transmission USB/IP: tools for userspace URBs transmission USB/IP: readme about user space URBs transmission USB/IP: letting send and receive replaceable USB/IP: USB/IP with SSL USB/IP: readme and manuals about USB/IP with SSL USB/IP: letting connection establishment replaceable USB/IP: deriving functions as libraries USB/IP: added const qualifier to arguments of some functions USB/IP: USB over WebSocket drivers/usb/usbip/Kconfig | 10 + drivers/usb/usbip/Makefile | 3 + drivers/usb/usbip/stub_dev.c | 16 +- drivers/usb/usbip/stub_rx.c | 3 +- drivers/usb/usbip/stub_tx.c | 9 +- drivers/usb/usbip/usbip_common.c | 79 ++- drivers/usb/usbip/usbip_common.h | 29 +- drivers/usb/usbip/usbip_ux.c | 602 +++++++++++++++++++++ drivers/usb/usbip/usbip_ux.h | 82 +++ drivers/usb/usbip/vhci_hcd.c | 9 +- drivers/usb/usbip/vhci_rx.c | 3 +- drivers/usb/usbip/vhci_sysfs.c | 40 +- drivers/usb/usbip/vhci_tx.c | 6 +- include/uapi/linux/usbip_ux.h | 39 ++ tools/usb/usbip/Makefile.am | 2 +- tools/usb/usbip/README | 105 +++- tools/usb/usbip/configure.ac | 34 ++ tools/usb/usbip/doc/usbip.8 | 112 +++- tools/usb/usbip/doc/usbipa.8 | 103 ++++ tools/usb/usbip/doc/usbipd.8 | 63 ++- tools/usb/usbip/libsrc/Makefile.am | 11 +- tools/usb/usbip/libsrc/list.h | 24 +- tools/usb/usbip/libsrc/usbip_common.c | 38 +- tools/usb/usbip/libsrc/usbip_common.h | 27 +- tools/usb/usbip/libsrc/usbip_host_driver.c | 24 +- tools/usb/usbip/libsrc/usbip_host_driver.h | 1 + tools/usb/usbip/libsrc/usbip_ux.c | 256 +++++++++ tools/usb/usbip/libsrc/usbip_ux.h | 30 + tools/usb/usbip/libsrc/vhci_driver.c | 141 ++++- tools/usb/usbip/libsrc/vhci_driver.h | 10 +- tools/usb/usbip/src/Makefile.am | 37 +- tools/usb/usbip/src/usbip.c | 73 ++- tools/usb/usbip/src/usbip.h | 20 +- tools/usb/usbip/src/usbip_attach.c | 111 ++-- tools/usb/usbip/src/usbip_bind.c | 17 +- tools/usb/usbip/src/usbip_connect.c | 236 ++++++++ tools/usb/usbip/src/usbip_detach.c | 26 +- tools/usb/usbip/src/usbip_disconnect.c | 212 ++++++++ tools/usb/usbip/src/usbip_list.c | 64 ++- tools/usb/usbip/src/usbip_netconn.c | 133 +++++ tools/usb/usbip/src/usbip_network.c | 112 ++-- tools/usb/usbip/src/usbip_network.h | 18 +- tools/usb/usbip/src/usbip_port.c | 17 +- tools/usb/usbip/src/usbip_ssl.c | 232 ++++++++ tools/usb/usbip/src/usbip_ssl.h | 35 ++ tools/usb/usbip/src/usbip_unbind.c | 13 +- tools/usb/usbip/src/usbipd.c | 340 +++++------- tools/usb/usbip/src/usbipd.h | 38 ++ tools/usb/usbip/src/usbipd_app.c | 256 +++++++++ tools/usb/usbip/src/usbipd_dev.c | 266 +++++++++ tools/usb/usbip/src/utils.c | 2 +- tools/usb/usbip/src/utils.h | 2 +- tools/usb/usbip/websocket/AUTHORS | 1 + tools/usb/usbip/websocket/COPYING | 340 ++++++++++++ tools/usb/usbip/websocket/INSTALL | 237 ++++++++ tools/usb/usbip/websocket/Makefile.am | 3 + tools/usb/usbip/websocket/README | 184 +++++++ tools/usb/usbip/websocket/autogen.sh | 9 + tools/usb/usbip/websocket/cleanup.sh | 12 + tools/usb/usbip/websocket/configure.ac | 61 +++ tools/usb/usbip/websocket/doc/usbws.8 | 192 +++++++ tools/usb/usbip/websocket/doc/usbwsa.8 | 101 ++++ tools/usb/usbip/websocket/doc/usbwsd.8 | 109 ++++ tools/usb/usbip/websocket/poco/Makefile.am | 18 + tools/usb/usbip/websocket/poco/USBWSCommand.cpp | 410 ++++++++++++++ tools/usb/usbip/websocket/poco/USBWSCommand.h | 99 ++++ tools/usb/usbip/websocket/poco/USBWSDaemon.cpp | 228 ++++++++ tools/usb/usbip/websocket/poco/USBWSDaemon.h | 80 +++ .../usbip/websocket/poco/USBWSRequestHandler.cpp | 90 +++ .../usb/usbip/websocket/poco/USBWSRequestHandler.h | 49 ++ .../websocket/poco/USBWSRequestHandlerFactory.cpp | 47 ++ .../websocket/poco/USBWSRequestHandlerFactory.h | 48 ++ tools/usb/usbip/websocket/poco/USBWSUtil.h | 52 ++ tools/usb/usbip/websocket/poco/USBWSWebSocket.cpp | 201 +++++++ tools/usb/usbip/websocket/poco/USBWSWebSocket.h | 69 +++ 75 files changed, 6235 insertions(+), 576 deletions(-) create mode 100644 drivers/usb/usbip/usbip_ux.c create mode 100644 drivers/usb/usbip/usbip_ux.h create mode 100644 include/uapi/linux/usbip_ux.h create mode 100644 tools/usb/usbip/doc/usbipa.8 create mode 100644 tools/usb/usbip/libsrc/usbip_ux.c create mode 100644 tools/usb/usbip/libsrc/usbip_ux.h create mode 100644 tools/usb/usbip/src/usbip_connect.c create mode 100644 tools/usb/usbip/src/usbip_disconnect.c create mode 100644 tools/usb/usbip/src/usbip_netconn.c create mode 100644 tools/usb/usbip/src/usbip_ssl.c create mode 100644 tools/usb/usbip/src/usbip_ssl.h create mode 100644 tools/usb/usbip/src/usbipd.h create mode 100644 tools/usb/usbip/src/usbipd_app.c create mode 100644 tools/usb/usbip/src/usbipd_dev.c create mode 100644 tools/usb/usbip/websocket/AUTHORS create mode 100644 tools/usb/usbip/websocket/COPYING create mode 100644 tools/usb/usbip/websocket/INSTALL create mode 100644 tools/usb/usbip/websocket/Makefile.am create mode 100644 tools/usb/usbip/websocket/README create mode 100755 tools/usb/usbip/websocket/autogen.sh create mode 100755 tools/usb/usbip/websocket/cleanup.sh create mode 100644 tools/usb/usbip/websocket/configure.ac create mode 100644 tools/usb/usbip/websocket/doc/usbws.8 create mode 100644 tools/usb/usbip/websocket/doc/usbwsa.8 create mode 100644 tools/usb/usbip/websocket/doc/usbwsd.8 create mode 100644 tools/usb/usbip/websocket/poco/Makefile.am create mode 100644 tools/usb/usbip/websocket/poco/USBWSCommand.cpp create mode 100644 tools/usb/usbip/websocket/poco/USBWSCommand.h create mode 100644 tools/usb/usbip/websocket/poco/USBWSDaemon.cpp create mode 100644 tools/usb/usbip/websocket/poco/USBWSDaemon.h create mode 100644 tools/usb/usbip/websocket/poco/USBWSRequestHandler.cpp create mode 100644 tools/usb/usbip/websocket/poco/USBWSRequestHandler.h create mode 100644 tools/usb/usbip/websocket/poco/USBWSRequestHandlerFactory.cpp create mode 100644 tools/usb/usbip/websocket/poco/USBWSRequestHandlerFactory.h create mode 100644 tools/usb/usbip/websocket/poco/USBWSUtil.h create mode 100644 tools/usb/usbip/websocket/poco/USBWSWebSocket.cpp create mode 100644 tools/usb/usbip/websocket/poco/USBWSWebSocket.h -- 2.1.0 -- 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