Dear all, This series of patches introduces exporting devices. This series is divided from "USB/IP over WebSocket" patch set. Rest of the set will be sent as another series. 0. Version info v7) # Removed userspace transmission and WebSocket command/daemon. # Fixed checkpatch errors and warnings. v6) # Added __rcu annotation to a RCU pointer to clear sparse warnings. # Corrected a copy to RCU pointer with rcu_rcu_assign_pointer(). # Added __user annotations to arguments of read/write method. # Added static to some functions which are not called from other files. # Removed unnecessary EXPORT_SYMBOLs. v5) # Added vendor/pruduct name conversion to port command. # Put initial value to pool_head in name.c. # Fixed list command exception when host option is omitted. # Fixed exception in case gai_strerror() returns NULL. # Fixed WebSocket connection close via proxy. # Fixed to stop WebSocket ping-pong on connection close. # Removed redundant usbipd daemon option. # Removed redundant SSL code had not been deleted. # Removed an unused local variable in WebSocket code. # Modified C++ reserved word in names.c as same as headers. v4) # Fixed regression of usbip list --remote v3) # Coding style for goto err labels are fixed. # Defined magic numbers for open_hc_device() argument. # Corrected include .../uapi/linux/usbip_ux.h as <linux/usbip_ux.h>. # Modified parameter notation in manuals not to use '='. # Fixed inappropriate version definition in tools/.../websocket/configure.ac. # Remved unnecessary COPYING and AUTHORS fil from tools/.../websocket/. # Added -version-info to libraries in tools/.../src. v2) # Formatted patches from linux-next. # Fixed change log word wrapping. # Removed SSL patches. # Fixed a bug that vendor and product names are not shown by 'usbws list -l' because usbip_names_init() was not called in libusbip.la. 1. Feature Export request and response PDU had been defined in a header but not been impelmented. Now it works! Also, it supports scenarios, for example, connect ubiquetous devices to a Linux based cloud service using WebSocket proxy. 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. Home/SOHO/Intranet Internet +--------+ +--------+ +------+ +----------+ |Router, | |Internet| +|device|---|Linux |---------|proxy, |--------------|service | |+------+ |controller| |firewall| |on Linux| +------+ +----------+ +--------+ +--------+ USB/IP + WS proxy WS proxy + USB/IP ex) Device Service sensors ......................................... environment analysis cameras ......................................... monitoring, recording ID/biometric readers ............................ authentication 2. Why exporting devices? Connection from outside firewall is usually blocked. So existing import request sent with attach command doesn't work. # usbipd (blocked)|| <--------- # usbip attach Firewall opens some ports, usually HTTP(80) and HTTPS(443), from inside. Then export request sent with new connect command works. # usbip connect -----------------------------> # usbipa (passed) Thank you, Nobuo Iwata <nobuo.iwata@xxxxxxxxxxxxxxx> // *** BLURB HERE *** Nobuo Iwata (3): usbip: exporting devices usbip: readme and manuals about exporting devices usbip: safe completion against usb_kill_urb() drivers/usb/usbip/stub_tx.c | 4 +- tools/usb/usbip/Makefile.am | 2 +- tools/usb/usbip/README | 70 ++++-- tools/usb/usbip/doc/usbip.8 | 82 +++++-- tools/usb/usbip/doc/usbipa.8 | 77 +++++++ tools/usb/usbip/doc/usbipd.8 | 29 ++- tools/usb/usbip/libsrc/names.c | 2 + tools/usb/usbip/libsrc/usbip_host_driver.c | 15 ++ tools/usb/usbip/libsrc/usbip_host_driver.h | 1 + tools/usb/usbip/libsrc/vhci_driver.c | 127 +++++++++-- tools/usb/usbip/libsrc/vhci_driver.h | 8 +- tools/usb/usbip/src/Makefile.am | 9 +- tools/usb/usbip/src/usbip.c | 17 +- tools/usb/usbip/src/usbip.h | 11 +- tools/usb/usbip/src/usbip_attach.c | 49 +--- tools/usb/usbip/src/usbip_bind.c | 7 +- tools/usb/usbip/src/usbip_connect.c | 214 ++++++++++++++++++ tools/usb/usbip/src/usbip_detach.c | 13 +- tools/usb/usbip/src/usbip_disconnect.c | 202 +++++++++++++++++ tools/usb/usbip/src/usbip_list.c | 22 +- tools/usb/usbip/src/usbip_network.h | 5 +- tools/usb/usbip/src/usbip_port.c | 21 +- tools/usb/usbip/src/usbip_unbind.c | 7 +- tools/usb/usbip/src/usbipd.c | 227 ++----------------- tools/usb/usbip/src/usbipd.h | 36 +++ tools/usb/usbip/src/usbipd_app.c | 239 ++++++++++++++++++++ tools/usb/usbip/src/usbipd_dev.c | 247 +++++++++++++++++++++ 27 files changed, 1383 insertions(+), 360 deletions(-) create mode 100644 tools/usb/usbip/doc/usbipa.8 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/usbipd.h create mode 100644 tools/usb/usbip/src/usbipd_app.c create mode 100644 tools/usb/usbip/src/usbipd_dev.c -- 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