Outline
Peripheral Bus Extension
for Device Sharing over IP NetworkBackground






Takahiro Hirofuchi
taka-hir@is.naist.jp
inet-lab
Nara Institute Science and TechnologyMotivation
Objective

Peripheral Bus Extension
DesignCriteria
DesignUSB/IP

Usage Example
 Performance Conclusion

2004.08.24

Background

Pervasive Computing

various peripheral devices of computers
 diverse computers and their OSs

Conventional Device Sharing


Scenario

controls specific remote devices with few
elaborated operations
“When I bring back my mobile PC to my desk, I use existing
devices seamlessly with my mobile PC ... “only abstracted operations on RPC
interface gap between remote and direct devices
 difficult interoperability
 only for specific devices

on-demand and seamlessfor any device from any OS anytime

COE Technical Presentation

3



COE Technical Presentation

Extend Peripheral Bus to IP Network
 Sophisticated Peripheral Busfocus
how to integrate remote device access withtoday’s OS architecture

Serialized I/O, Plug-and-Play, multiple transport mode

Reconstruction of OSs



Virtual Bus Driver

layered device drivers, dynamic device managementencapsulates device commands into IP Packet

Applications

Applications
PDD

PDD

PDD

PDD

Applications
PDD

COE Technical Presentation

5PDD

PDD

PDD
Bus Driver

2004.08.24

4

Peripheral Bus Extension(1)provide suitable device sharingarchitecture for pervasive computing

not suitable for pervasive computing world

2004.08.24

ObjectiveNFS, RFS, VNC, etc.

but ...

Device Sharing for Pervasive Computing

2004.08.24

2Motivation



COE Technical Presentation

device device
device2004.08.24

deviceCOEdevice
Technicaldevice
Presentation

Bus Driverdevice

PDD

VirtualBus Driver
Network
remote remote
6device device

1Peripheral Bus Extension(2)Design Criteriaadvantage

Full Functionality

Network Transparency







the smallest granularity of RPC (bus commands over IP)
preserve the same interface as directly-attached devices
transparent to applications and most parts of OSs

Interoperability

get maximum benefit from modern peripheral
interfaces and their support in OSs
 consistent with OS’s device management
 with little modification of OSs
 simple architecture portable between OSs
 can support multiple virtual busesinteroperable between different OSsbus commands are independent of OSsGenerality

applied to any device
IP encapsulation mechanism is common to all buscommands

2004.08.24

COE Technical Presentation

7Design(1)USB, IEEE1394 ...

2004.08.24

COE Technical Presentation

8Design(2)Name Space Management Layer• Device Discovery• Device Advertisement

Virtual Connection
Management Layer• Virtual Connect / Disconnect• Error Detection / Handling• Multicast DNS• DNS Service Discovery
Blue-Ray DVD Recoder._rdev._tcp.local
USB Camera XYZ._rdev._tcp.local
Ergonomic Keyboard._rdev._tcp.local

2004.08.24

COE Technical Presentation

9Design(3)2004.08.24

10USB/IPBus Extension Layer• dependant of OS and bus• bus-specific connection
management• remote device control• Virtual Bus• USB/IP prototype

2004.08.24

COE Technical Presentation

COE Technical Presentation

11USB over IP• a prototype of virtual bus• encapsulate USB Request
to IP Packets• VHCI Driver• Virtual HostController Interface• USB bus Driver• Stub Driver• USB PerDevice Driver

2004.08.24

COE Technical Presentation

122

Usage Example

Performance• Worked for all USB devices tested

HDD, DVD, keyboard, mouse, camera, printer, etc..

3: Fujitsu USBkeyboard: IP:PORT: 10.0.0.2:3000: local_state : CONN_DONE: remote_state : INUSE: remote_user : 10.0.0.3: remote_module: USBIP
2: Logitech M4848: IP:PORT: 10.0.0.2:3000: local_state : DISCONN_DONE: remote_state : AVAIL: remote_user : NOBODY: remote_module: USBIP
devconfig output

2004.08.24



Throughput/Media

12MB/s

10







0direct

usbview output

COE Technical Presentation

13



SCSI requests over TCP/IP
only for storage devices
 can be integrated to our system

virtually disconnect failed remote devices
expect USB driver stack to recoverNetstationa distributed system composed of processor nodes
and network-attached peripherals
 no compatibility with today’s computerscomplementary with conventional sharing
COE Technical Presentation

iSCSI

15

2004.08.24

Device Sharing withNetwork Transparency
Full Functionality
Interoperability
 Generality






Peripheral Bus Extension

COE Technical Presentation

USB/IP

one of the peripheral bus extensions
VHCI (Virtual Host Controller Interface)

all remote USB devices work !

AAA, QoS for remote devices

2004.08.24

16

Peripheral Bus Extension
Performance issue
Isochronous transfer devices
 refine command queuing UDP/IP encapsulation



COE Technical Presentation

Conclusion

14



USB/IP

1000BASE-T

Future Work
100BASE-TX

COE Technical Presentation

Related Workthe same usage via device files or drivers

2004.08.24

loopback

2004.08.24

Concurrent access to one device ?
WRITE
READ

62

Error handling

84

Network transparency


1000BASE-T / 100Base-TX without any network switch
directly-attached HDD
14DiscussionSequential I/O to virtually-attached USB HDD
Network

17

2004.08.24

Virtual Bus Driver

COE Technical Presentation

183