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.iw...@fujixerox.co.jp>
//

*** 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to