Abstract: A method for remote processing of files present on a peripheral USB device, which is connected to a primary host to one of its peer nodes on any network, comprising the steps of: - broad casting by a primary host the presence of data on a USB function on a network neighborhood; - network neighborhood nodes responding with their capabilities; - primary host selecting the appropriate network device; and - transferring the data stream on USB function to said selected node for remote processing.
FIELD OF APPLICATION
The present invention relates to a method for remote processing of files by transferring control from a universal serial bus (USB) device to network devices.
The file may be available on a particular node, for example, on a television, which does not have the capability to process the file. The invention relates, in particular to use the processing capability available on another node in the available network.
The main object of the present invention is to provide a method to transfer control of files present on a peripheral USB device, which is connected to a primary host to one of its peer nodes on any network.
Primary host may not have capability to execute or process the file but devices in its network neighborhood may have capabilities/better capabilities to process the file. If the user wants to play an audio file present on the peripheral USB device, on the primary host, which in turn, does not have capability that supports that particular file format, the primary host can broadcast the presence of its USB function on the network neighborhood.
Thus, in a preferred embodiment the present invention provides a method for remote processing of files present on a peripheral USB device, which is connected to a primary host to one of its peer nodes on any network, comprising the steps of: broad casting by a primary host the presence of data on a USB function on a network neighborhood; network neighborhood nodes responding with their capabilities; primary host selecting the appropriate network device; and transferring the data stream on USB function to said selected node for remote processing.
BRIEF DESCRIPTION OF THE ACCOMPANYING DRAWINGS
The invention can now be described with the help of the accompanying drawings where:
Fig. 1 shows USB host controller driver with hardware.
Fig. 2 shows Remote-USB Transmission of URB request.
Fig. 3 shows Remote-USB Transmission of URB response.
DETAILED DESCRIPTION OF THE INVENTION
The method of providing access and transferring execution of a data on a USB function to an appropriately capable device (authenticated) on primary host's network can be achieved in various steps and to a varying degree of access permissions. The following descriptions contain a discussion of all such cases.
The description also provides details of the apparatus needed for such device-sharing capabilities.
Apparatus
Each node on USB-function-sharing-network must be equipped with a USB and a network stack, which is suitably adapted for the purpose.
The USB stack should have the following features:
1) USB Host Stack should allow the auto-discovery mechanism to be launched using a pseudo-interrupt.
The general procedure of USB function discovery is triggered by an electrical signal, which is generated when a function's physical connection acts like an electrical sink for the 'D+' line on the host, which is maintained at +5V level. This high-to-low edge transition generates an interrupt on the host CPU which is handled by 'Host-Controller Driver' in the USB stack, which further notifies the 'USB Core' layer of the stack.
The 'USB Core' then responds to this signal by
a. Sending a RESET signal to the function
b. Starting the 'USB enumeration' process which ends with
activation of an appropriate 'USB Class driver' above 'USB
Core' layer and creation of a data + command pipe
between host HCI and function device driver.
The network stack on the host can be modified without using any additional device or hardware, like an adapter.
The above mentioned features enable the host-controller driver to trigger the enumeration process on a software interrupt. This modification shall be used to simulate the function-discovery on a remote network node.
USB host stack should allow tee-ing the upstream/downstream URB to the network stack.
This requirement is important in the operation of the method. The HC driver should be able to copy the upstream or downstream USB-request-blocks and route to another network stack (OSI stack is used as an example, here and in further description). This capability of the host-controller driver is needed for both exchange of command-response between the node acting as the remote-host to the USB function and for transfer of data between the remote host and function pair.
This requirement also includes the need for generation of appropriate protocol encapsulation (e.g. network-data-representation headers) for URBs, so that they impersonate normal packets on the piggyback network.
Figs. 2 and 3 illustrate the details of the scenario:
The target network-stack should allow insertion of transmission data from multiple sources.
The software stack for the network, which shall carry the encapsulated URBs, should allow its data-flow mechanism to serve multiple data-producers. This is needed to enable data-flow over protocol boundaries. The protocol syntax is, however, not violated because the URB data is appropriately encapsulated, to make it look like normal target-network-data.
The case of reception of URB data on a node is handled in a different manner. The data-packet containing a URB packet is received by the target-stack on the server and shall be treated like a normal data packet till it reaches session layer. Here an application-server (depicted as'R-USB entity' in the diagram) receives the URB data, records it, performs any user-defined/operation-defined tasks and then routes the URB data to the Host-Controller driver, with the pre-configured software interrupt.
Each remote-USB-enabled node must have the capability to broadcast its remote-USB-network-ID when it comes alive
The method relies on the broadcast capability of each remote-USB-enabled network node to its peers. This is necessary to obviate the necessity of making any peer-to-peer connections during the peer-node-discovery time, thus ensuring that the method described in this patent is scalable.
Following is a break-up of operation of a network which can share the USB functions on one of its nodes with any other node on network
1. Network Setup
a. Network Node Discovery
b. Exchange of Media Description
2. Providing access to local-USB-function data to a remote node
a. Hand-off by the primary host
b. Take-over by a network node
3. Disconnection of a USB Function
4. Disconnection of a network node
Network Setup
The 'network setup', in perspective of this method, pertains to the initialization of communication channel(s) among the remote-USB-enabled peers on the network. This procedure shall need some extra steps, which shall reduce the negotiation time during the actual transfer of control.
Network Node Discovery
Each remote-USB-enabled node broadcasts it presence to other nodes using the native methods of the network protocol. Further, it must announce its presence, with a unique remote-USB-network signature. This unique signature shall be used as the network identity for all remote-USB-network communication.
Exchange of Media Capability Description
The remote-USB-aware network uses a system of pre-cached media capability to efficiently decide the nodes that may take over the control of data on the passive USB function, once connected. The media-capability-description is an extendable set of {capability-feature, level of capability, and a short user-readable description}. The media description can be maintained by each network node in a mesh-connected network. However, star-connected networks offer themselves to a scenario where media descriptions for all nodes are maintained on a central media-server, which is accessed for deciding upon the set of appropriate nodes to be used for a control-transfer. In both star-connected and mesh-connected networks, the nodes have the option of storing a set of personal-preferences for each available node. Further, both the data-bases (media description data-base and per-node preference database) may be edited by the user using any node on
the network, which has the appropriate capability to do so; e.g. a BD player may not be able to provide a user-friendly means of editing a preference file, hence, this editing may then be performed on a PC or a smart-phone. This may be done on-the-fly if such a device is available on the network or on an offline-basis if no such device is available.
Providing access to local-USB-function data to a remote node
There exists many ways in which data on the primary host may made available to the remote nodes. This subsection describes both the generic steps involved and the specific use-cases for the access-provisions.
The following steps provide an overview of steps involved in transfer of control:
Announcement of newly connected USB function
A primary host shall broadcast the presence of a USB function on the network, as and when it is ready to enable access to remote node. This may happen on user-control or on a pre-configured basis (??? How do you save pre-configurations of this sort ??? )
For allowing the access of USB function's data, the Host-Controller driver on primary host shall generate a Device-Description URB, and shall tee-off this URB into the network stack, after appropriately encapsulating the URB data in network-specific frame. This frame is intended for a single remote-host that is selected using a user-input and/or media-capability description shared during the network setup stage. Alternatively, this frame shall be multi-cast on the network (using its native capabilities or by a repeat transmission, using the network-stack modification). All the available remote hosts shall respond to this broadcast, and their enumeration-procedure URBs shall be filtered by the primary host, taking a cue from user input and/or the media-capability description from the database-server. Although this mechanism leads to higher network-data traffic, but this approach may find use-cases in scenario where the primary host uses the speed to reply transmission to gauge the speed of connectivity with a remote node
Remote node's enumeration process
On reception of Device-Description encapsulated URB, the 'R-USB entity' generates a pseudo-interrupt for the USB stack, which fires up the
enumeration process on the remote host. The remote host then continues to enumerate the USB device, as if connected to it physically. On the remote host's USB stack, the host-controller driver routes all the packets to its network stack, adhering to the protocol-frame requirements of the network. All the encapsulated enumeration-URBs are marked for the primary host, where these are routed back from the network stack to the USB stack via 'R-USB entity'.
This mechanism of transfer of URBs between the primary host and remote host nodes can continue as many times as needed for the remote USB connection to be set up. It is important to note that all the URB flow takes place through the R-USB entity, which allows the developer to put in place a mechanism to filter and control the incoming requests and outflowing data.
Data transfer between Remote node and USB function
As the flow of URBs is maintained as it would be in a physical connection, the bulk transfer requests and isochronous requests pose no problem in the current situation in theory. However, this area can pose a problem during implementation. For solving this, the 'R-USB entity' shall expose an interface for speed-control based on transfer-speed profiles provided in
USB specification. This interface shall also contain suggestions regarding the most appropriate transfer-speed profile, depending on network connectivity. This shall then be enforced during the Remote node's enumeration process and hence, the rate of data-transfer can be adjusted as per network conditions and media requirements.
The process of accessing data on USB-Function can be initiated by either by primary host or by remote node. There also exists a case in which the user might want to maintain a supervisor-level permission on all such connections being made in the network under concern.
Hand-off bv the primary host
In this connection mode, the primary host initiates the process of handing-off the access of USB Function data to an appropriate remote node. As explained, the primary shall announce the presence of USB Function to a remote node, which is selected using user input and/or capability description.
This method caters to the use-cases where
1. The user wishes to move to a different location, and still wants to continue accessing some data from USB Function connected to his current local network node.
2. User's current local network node is incapably/poorly-equipped to handle the data on USB and another local network node possesses the capability (or a better degree of capability) but is incapable to hosting a USB function.
2. Take-over by a network node
In this connection mode, a remote node initiates the process of initiating access of USB Function data. This method caters to the use-case where the user i
3. Supervisor mode of connections
3. Disconnection of a USB Function
4. Disconnection of a network node
The present invention provides a method to transfer control of files present on a peripheral USB device, which is connected to a primary host to one of its peer nodes on any network.
The present invention presents a method to transfer the file, which is available on one of the nodes (e.g. TV), and this node doesn't have the capability to process this file, and the idea is to use the processing capability available on another node in the available network.
The present invention claims at modifying the network stack on the host, and without using any additional device/ hardware like an adapter.
The suggested modification pertains to enabling the Host-Controller driver to trigger the enumeration process on a software interrupt. This modification shall be used to simulate the function-discovery on a remote network node.
The present invention incorporates tee-ing of the upstream or downstream USB-Request-Blocks and route to another network stack. This capability of the Host-Controller driver is needed for exchange of command-response between the node acting as the remote-host to the USB function. Also, the same is used for transfer of data between the remote host and function pair.
WE CLAIM
1. A method for remote processing of files present on a peripheral USB device,
which is connected to a primary host to one of its peer nodes on any
network, comprising the steps of:
- broad casting by a primary host the presence of data on a USB function on a network neighborhood;
- network neighborhood nodes responding with their capabilities;
- primary host selecting the appropriate network device; and
- transferring the data stream on USB function to said selected node for remote processing.
2. The method as claimed in claim 1, wherein said broadcasting step is
performed when primary host does not have capability to execute or
process the file, but devices in its network neighborhood may have such
capabilities.
3. The method as claimed in claim 1, wherein each node on the USB-function
sharing network should be equipped with a USB and a network stack on the host that can be modified independent of any additional device or hardware, like an adapter.
4. The method as claimed in claim 3, wherein the modification of the network stack on the host comprises enabling the host-controller driver to trigger the enumeration process on a software interrupt.
5. The method as claimed in claims 3 or 4, wherein said modification of the network stack on the host is employed to simulate the function-discovery on a remote network node.
6. The method as claimed in claim 3, wherein said USB host stack incorporates teeing of upstream or downstream USB request blocks and routing to another network stack for exchanging command-response between the node acting as the remote-host to the USB function and for transfer of data between the remote host and function pair.
7. A method for remote processing of files present on a peripheral USB device, which is connected to a primary host to one of its peer nodes on any network, substantially as herein described and illustrated in the figures of the accompanying drawings.
A method for remote processing of files present on a peripheral USB device, which is connected to a primary host to one of its peer nodes on any network, comprising the steps of:
- broad casting by a primary host the presence of data on a USB function on a network neighborhood;
- network neighborhood nodes responding with their capabilities;
- primary host selecting the appropriate network device; and
- transferring the data stream on USB function to said selected node for remote processing.
| # | Name | Date |
|---|---|---|
| 1 | 948-KOL-2009_EXAMREPORT.pdf | 2016-06-30 |
| 1 | abstract-948-kol-2009.jpg | 2011-10-07 |
| 2 | Amended Form 1.pdf | 2015-07-17 |
| 2 | 948-kol-2009-specification.pdf | 2011-10-07 |
| 3 | Form 13_Address for service.pdf | 2015-07-17 |
| 3 | 948-kol-2009-gpa.pdf | 2011-10-07 |
| 4 | 948-kol-2009-form 3.pdf | 2011-10-07 |
| 4 | 948-KOL-2009-(27-08-2013)-CORRESPONDENCE.pdf | 2013-08-27 |
| 5 | 948-kol-2009-form 1.pdf | 2011-10-07 |
| 5 | 948-kol-2009-abstract.pdf | 2011-10-07 |
| 6 | 948-kol-2009-drawings.pdf | 2011-10-07 |
| 6 | 948-kol-2009-claims.pdf | 2011-10-07 |
| 7 | 948-kol-2009-description (complete).pdf | 2011-10-07 |
| 7 | 948-KOL-2009-CORRESPONDENCE-1.1.pdf | 2011-10-07 |
| 8 | 948-kol-2009-correspondence.pdf | 2011-10-07 |
| 9 | 948-kol-2009-description (complete).pdf | 2011-10-07 |
| 9 | 948-KOL-2009-CORRESPONDENCE-1.1.pdf | 2011-10-07 |
| 10 | 948-kol-2009-claims.pdf | 2011-10-07 |
| 10 | 948-kol-2009-drawings.pdf | 2011-10-07 |
| 11 | 948-kol-2009-form 1.pdf | 2011-10-07 |
| 11 | 948-kol-2009-abstract.pdf | 2011-10-07 |
| 12 | 948-kol-2009-form 3.pdf | 2011-10-07 |
| 12 | 948-KOL-2009-(27-08-2013)-CORRESPONDENCE.pdf | 2013-08-27 |
| 13 | Form 13_Address for service.pdf | 2015-07-17 |
| 13 | 948-kol-2009-gpa.pdf | 2011-10-07 |
| 14 | Amended Form 1.pdf | 2015-07-17 |
| 14 | 948-kol-2009-specification.pdf | 2011-10-07 |
| 15 | abstract-948-kol-2009.jpg | 2011-10-07 |
| 15 | 948-KOL-2009_EXAMREPORT.pdf | 2016-06-30 |