IP Library Granted Patent US 10,158,557
Granted Patent B2
US 10,158,557 · App. 15/596,375 · Granted Dec 18, 2018

Stream creation with limited topology information

Inventors: Taliaferro Smith (San Jose, CA); Sergey Yarygin (San Jose, CA)
Assignee: Lattice Semiconductor Corporation
H04L45/122H04L12/6418H04L41/0883H04L41/12H04L45/125H04L61/2514
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,158,557
App. No.
15/596,375
Granted
Dec 18, 2018
Kind
B2
Abstract

The discovery of a topology of a network with an unknown topology can enable the selection of a data path within the network, and the establishment of a data stream over the selected data path. Routing tables mapping originating nodes to input ports can be created based on the receipt of discovery messages generated by the originating nodes. A source node can select a data path between the source node and a sink node in order to establish a data stream using the routing tables. Data paths can be selected based on, for instance, routing table bandwidth information, latency information, and/or distance information. Data streams can be established over the selected data path, and each node can release any reserved output bandwidth determined to be unnecessary for the data stream.

Claims (54)

1. A method comprising:

receiving, at a first node via an input port of the first node, a request to establish a data stream between a source node and a sink node;

querying a routing table with an identity of the sink node to select an output port of the first node, the routing table mapping each output port of the first node to potential sink nodes and identifying a number of nodes between each output port of the first node and each potential sink node, wherein selecting an output port of the first node comprises selecting the output port of the first node associated with the fewest number of nodes between the output port and the sink node;

creating an entry in a forwarding table of the first node, the entry mapping the input port and the selected output port to a global identity of the data stream;

receiving, at the first node via the input port, data associated with the data stream;

querying the forwarding table with the global identity of the data stream to identify the selected output port mapped to the global identity of the data stream; and

outputting, by the first node via the selected output port, the received data associated with the data stream.

2. The method of claim 1 , wherein the request identifies a required bandwidth, and wherein the first node reserves an amount of output bandwidth on the selecting output port based on the required bandwidth.

3. The method of claim 2 , wherein the forwarding table entry additionally maps a representation of the reserved bandwidth to the identity of the data stream.

4. The method of claim 1 , wherein the request includes the global identity of the data stream.

5. The method of claim 1 , wherein the received data includes the global identity of the data stream.

6. The method of claim 1 , further comprising:

generating, by the first node, a local identity of the data stream;

wherein the forwarding table entry additionally maps the local identity of the data stream to the global identity of the data stream.

7. The method of claim 1 , comprising:

receiving, at the first node via an input port of the first node, a second request to establish a second data stream between a second source node and a second sink node;

querying the routing table with an identity of the second sink node to select a second output port of the first node;

creating a second entry in the forwarding table of the first node, the second entry mapping the input port and the selected second output port to a second global identity of the second data stream;

receiving, at the first node via the input port, second data associated with the second data stream;

querying the forwarding table with the second global identity of the second data stream to identify the selected second output port mapped to the second global identity of the second data stream; and

outputting, by the first node via the selected second output port, the received second data associated with the second data stream.

8. A system comprising:

a first node communicatively coupled to one or more other nodes, the first node comprising a processor specially configured to enable communication by the first node with the one or more other nodes and to enable the first node to perform steps comprising:

receiving, via an input port of the first node, a request to establish a data stream between a source node and a sink node;

querying a routing table with an identity of the sink node to select an output port of the first node, the routing table mapping each output port of the first node to potential sink nodes and identifying a number of nodes between each output port of the first node and each potential sink node, wherein selecting an output port of the first node comprises selecting the output port of the first node associated with the fewest number of nodes between the output port and the sink node;

creating an entry in a forwarding table of the first node, the entry mapping the input port and the selected output port to a global identity of the data stream;

receiving, via the input port, data associated with the data stream;

querying the forwarding table with the global identity of the data stream to identify the selected output port mapped to the global identity of the data stream; and

outputting, via the selected output port, the received data associated with the data stream.

9. The system of claim 8 , wherein the request identifies a required bandwidth, and wherein the first node reserves an amount of output bandwidth on the selecting output port based on the required bandwidth.

10. The system of claim 9 , wherein the forwarding table entry additionally maps a representation of the reserved bandwidth to the identity of the data stream.

11. The system of claim 8 , wherein the request includes the global identity of the data stream.

12. The system of claim 8 , wherein the received data includes the global identity of the data stream.

13. The system of claim 8 , wherein the processor further enables the first node to perform steps comprising:

generating a local identity of the data stream;

wherein the forwarding table entry additionally maps the local identity of the data stream to the global identity of the data stream.

14. The system of claim 8 , wherein the processor further enables the first node to perform steps comprising:

receiving, via an input port of the first node, a second request to establish a second data stream between a second source node and a second sink node;

querying the routing table with an identity of the second sink node to select a second output port of the first node;

creating a second entry in the forwarding table of the first node, the second entry mapping the input port and the selected second output port to a second global identity of the second data stream;

receiving, via the input port, second data associated with the second data stream;

querying the forwarding table with the second global identity of the second data stream to identify the selected second output port mapped to the second global identity of the second data stream; and

outputting, via the selected second output port, the received second data associated with the second data stream.

15. A method comprising:

receiving, at a first node via an input port of the first node, a request to establish a data stream between a source node and a sink node;

querying a routing table with an identity of the sink node to select an output port of the first node, the routing table mapping each output port of the first node to potential sink nodes and identifying a number of nodes between each output port of the first node and each potential sink node, wherein selecting an output port of the first node comprises selecting the output port of the first node associated with the fewest number of nodes between the output port and the sink node; and

generating a forwarding table for the first node, the forwarding table including an entry mapping the input port and the selected output port to a global identity of the data stream, the first node configured to use the forwarding table to route received data to an output port identified by the forwarding table.

16. The method of claim 15 , wherein the request identifies a required bandwidth, and wherein the first node reserves an amount of output bandwidth on the selecting output port based on the required bandwidth.

17. The method of claim 16 , wherein the forwarding table entry additionally maps a representation of the reserved bandwidth to the identity of the data stream.

18. The method of claim 15 , wherein the request includes the global identity of the data stream.

19. The method of claim 15 , wherein the forwarding table includes entries corresponding to a plurality of data streams, each entry mapping an input port to an output port for the corresponding data stream.

20. The method of claim 15 , further comprising:

generating, by the first node, a local identity of the data stream;

wherein the forwarding table entry additionally maps the local identity of the data stream to the global identity of the data stream.

Assignments (3)
SECURITY INTEREST Recorded May 21, 2019
From: LATTICE SEMICONDUCTOR CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 049980/0786 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2017
From: SMITH, TALIAFERRO; YARYGIN, SERGEY
To: SILICON IMAGE, INC.
Reel/Frame 042426/0078 →
MERGER Recorded May 18, 2017
From: SILICON IMAGE, INC.
To: LATTICE SEMICONDUCTOR CORPORATION
Reel/Frame 042426/0094 →
Continuity (3)
Continuation 14597186 · Jan 14, 2015
Provisional Application 61991126 · May 9, 2014
Related Publication 20170250897A1 · Aug 31, 2017