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 <[email protected]>
//
*** 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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html