IP Library Granted Patent US 11,190,447
Granted Patent B2
US 11,190,447 · App. 16/875,886 · Granted Nov 30, 2021

Routing protocol and distributed router

Inventors: Chiang Yeh (Sierra Madre, CA); Nathan Farrington (Arcadia, CA); Cyriel Minkenberg (Neuheim, CH)
Assignee: Rockley Photonics Limited
H04L45/748H04L45/127H04L45/44H04L69/22
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 11,190,447
App. No.
16/875,886
Granted
Nov 30, 2021
Kind
B2
Abstract

A routing protocol, the routing protocol includes the steps of: receiving a packet at an ingress node of a distributed router, the ingress node having an ingress node address, and the packet having a packet header containing a global destination address; converting the global destination address into a local destination address, the local destination address identifying a location on the distributed router; and routing the packet to the local destination address. A distributed router includes a plurality of internal network nodes, the plurality of internal network nodes including an ingress node configured to receive a packet, the ingress node having an ingress node address, and the packet having a packet header containing a global destination address for that packet; means for converting the global destination address into a local destination address, the local destination address identifying a location on the distributed router; and a routing engine configured to route the packet to the local destination address.

Claims (80)

1. A routing protocol, the routing protocol including the steps of:

receiving a packet at an ingress internal node of a distributed router, the ingress internal node having an ingress node address, and the packet having a packet header containing a global destination address;

converting the global destination address into a local destination address, the local destination address identifying a location on the distributed router; and

routing the packet to the local destination address,

wherein:

the local destination address includes a destination node address corresponding to a destination network node located on the distributed router, and a destination port address corresponding to a port located on the destination network node;

the distributed router includes a local control CPU having a local control CPU address;

the routing step includes determining whether the destination node address is the local control CPU address; and

when it is determined that the destination node address is the local control CPU address, the routing step includes a step of directing the packet to the local control CPU.

2. The routing protocol according to claim 1 , wherein:

longest prefix matching is used to convert the global destination address to the local destination address.

3. The routing protocol according to claim 1 , wherein:

the routing step includes determining whether the destination node address is the ingress node address.

4. The routing protocol according to claim 3 , wherein:

when it is determined that the destination node address is the ingress node address, and that the destination node address is not the local control CPU address, the routing step includes performing a first routing lookup, wherein:

an input of the first routing lookup includes the destination port address; and

an output of the first routing lookup identifies a set of eligible ports, which are a set of physical ports on the ingress internal node which are able to serve as egress ports from which the packet may be output in order to reach a local destination node.

5. The routing protocol according to claim 4 , wherein:

the eligible ports are returned in the form of an eligible port bitmap.

6. The routing protocol according to claim 5 , wherein:

the routing step further includes a step of identifying, from the set of eligible ports, a subset of eligible physical ports which are available for use, based on a status of the set of eligible ports.

7. The routing protocol according to claim 3 , wherein:

when it is determined that the destination node address is not the ingress node address, the routing step includes determining a set of eligible ports on the ingress internal node which are able to serve as egress ports from which the packet may be output in order to reach the destination network node.

8. The routing protocol according to claim 3 , wherein:

when it is determined that the destination node address is not the same as the ingress internal node address, the routing step further includes a step of transmitting the packet to an intermediate internal node, and performing a second routing lookup, wherein:

an input of the second routing lookup is the local destination address, and

an output from the second routing lookup identifies a set of eligible ports, which are a set of physical ports on the intermediate internal node which are able to serve as egress ports from which the packet may be output in order to reach a local destination node.

9. The routing protocol according to claim 3 , wherein:

when it is determined that the destination node address is not the ingress node address, the routing step includes mapping the destination node address to a smaller index;

the routing step further includes performing a second routing lookup in a fabric lookup routing table, wherein:

an input of the second routing lookup is the smaller index; and

an output from the second routing lookup identifies a set of eligible ports, which are a set of physical ports on the ingress internal node which are able to serve as egress ports from which the packet may be output in order to reach a local destination node.

10. The routing protocol according to claim 1 , further including the steps of:

determining a first set of eligible ports on the ingress internal node which are able to serve as egress ports from which the packet may be output in order to reach the destination network node;

outputting the packet from one of the eligible ports from the first set of eligible ports to an intermediate network node of the distributed router;

receiving the packet at the intermediate network node; and

determining, based on the local destination address, a second set of eligible ports on the intermediate network node which are able to serve as egress ports from which the packet may be output in order to reach the destination network node.

11. The routing protocol according to claim 10 , wherein:

the routing protocol further includes a step of determining whether the intermediate network node is the destination network node.

12. The routing protocol according to claim 11 , wherein:

if the intermediate network node is not the destination network node, the intermediate network node is a first intermediate network node, and the routing protocol further includes a step of outputting the packet from one of the second set of eligible ports on the first intermediate network node to a second intermediate network node.

13. A distributed router including:

a plurality of internal network nodes, the plurality of internal network nodes including an ingress node configured to receive a packet, the ingress node having an ingress node address, and the packet having a packet header containing a global destination address for that packet;

means for converting the global destination address into a local destination address, the local destination address identifying a location on the distributed router; and

a routing engine configured to route the packet to the local destination address,

wherein:

the local destination address includes a destination node address corresponding to a destination network node located on the distributed router, and a destination port address corresponding to a port located on the destination network node;

the distributed router includes a local control CPU, having a local control CPU address;

the routing engine is configured to determine whether the destination node address is the local control CPU address; and

when it is determined that the destination node address is the local control CPU address, the routing engine is configured to direct the packet to the local control CPU.

14. The distributed router according to claim 13 , wherein:

the means for converting the global destination address into the local destination address is configured to use longest prefix matching to do so.

15. The distributed router according to claim 13 , wherein:

when it is determined that the destination node address is the ingress node address, and that the destination node address is not the local control CPU address, the routing engine is configured to perform a first routing lookup, wherein:

an input of the first routing lookup includes the destination port address, and

an output of the first routing lookup identifies a set of eligible ports, which are a set of physical ports on the ingress node which are able to serve as egress ports from which the packet may be output in order to reach a local destination node.

16. A distributed router including:

a plurality of internal network nodes, the plurality of internal network nodes including an ingress node configured to receive a packet, the ingress node having an ingress node address, and the packet having a packet header containing a global destination address for that packet;

means for converting the global destination address into a local destination address, the local destination address identifying a location on the distributed router; and

a routing engine configured to route the packet to the local destination address,

wherein:

the local destination address includes a destination node address corresponding to a destination network node located on the distributed router, and a destination port address corresponding to a port located on the destination network node; and

the routing engine is configured to determine whether the destination node address is the ingress node address.

17. The distributed router according to claim 16 , wherein:

when it is determined that the destination node address is not in the ingress node address, the routing engine is configured to determine a set of eligible ports on the ingress node which are able to serve as egress ports from which the packet may be output in order to reach the destination network node.

18. The distributed router according to claim 16 , wherein:

when it is determined that the destination node address is not the same as the ingress node address, the routing engine is configured to transmit the packet to an intermediate internal node, and to perform a second routing lookup, wherein:

an input of the second routing lookup is the local destination address, and

an output from the second routing lookup identifies a set of eligible ports, which are a set of physical ports on the intermediate internal node which are able to serve as egress ports from which the packet may be output in order to reach a local destination node.

19. The distributed router according to claim 16 , wherein:

when it is determined that the destination node address is not the ingress node address, the routing engine is configured to map the destination node address to a smaller index; and

the routing engine is further configured to perform a second routing lookup in a fabric lookup routing table, wherein:

an input of the second routing lookup is the smaller index, and

an output from the second routing lookup identifies a set of eligible ports, which are a set of physical ports on the ingress node which are able to serve as egress ports from which the packet may be output in order to reach a local destination node.

20. The distributed router according to claim 19 , wherein:

the eligible ports are returned in the form of an eligible physical port bitmap.

21. The distributed router according to claim 20 , wherein:

the routing engine is further configured to identify, from the set of eligible ports, a subset of eligible physical ports which are available for use, based on a status of the set of eligible ports.

22. The distributed router according to claim 16 , wherein:

the means for converting the global destination address into the local destination address is configured to use longest prefix matching to do so.

Assignments (9)
MERGER Recorded Feb 10, 2026
From: CELESTIAL AI INC.
To: SICILY MERGER SUB II, INC.
Reel/Frame 074362/0776 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2024
From: ROCKLEY PHOTONICS LTD.
To: CELESTIAL AI INC.
Reel/Frame 069252/0747 →
RELEASE OF SECURITY INTEREST Recorded Oct 1, 2024
From: WILMINGTON SAVINGS FUND SOCIETY, FSB
To: ROCKLEY PHOTONICS LIMITED
Reel/Frame 068761/0631 →
SECURITY INTEREST Recorded Mar 19, 2023
From: ROCKLEY PHOTONICS LIMITED
To: WILMINGTON SAVINGS FUND SOCIETY, FSB, AS COLLATERAL AGENT
Reel/Frame 063287/0879 →
RELEASE OF SECURITY INTEREST - REEL/FRAME 060204/0749 Recorded Mar 19, 2023
From: WILMINGTON SAVINGS FUND SOCIETY, FSB, AS COLLATERAL AGENT
To: ROCKLEY PHOTONICS LIMITED
Reel/Frame 063264/0333 →
RELEASE OF PATENT SECURITY INTEREST - SUPER SENIOR INDENTURE - REEL/FRAME 061768/0082 Recorded Mar 19, 2023
From: WILMINGTON SAVINGS FUND SOCIETY, FSB, AS COLLATERAL AGENT
To: ROCKLEY PHOTONICS LIMITED
Reel/Frame 063264/0416 →
SECURITY INTEREST - SUPER SENIOR INDENTURE Recorded Oct 25, 2022
From: ROCKLEY PHOTONICS LIMITED
To: WILMINGTON SAVINGS FUND SOCIETY, FSB, AS COLLATERAL AGENT
Reel/Frame 061768/0082 →
SECURITY INTEREST Recorded May 27, 2022
From: ROCKLEY PHOTONICS LIMITED
To: WILMINGTON SAVINGS FUND SOCIETY, FSB, AS COLLATERAL AGENT
Reel/Frame 060204/0749 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2021
From: YEH, CHIANG; FARRINGTON, NATHAN; MINKENBERG, CYRIEL JOHAN AGNES
To: ROCKLEY PHOTONICS LIMITED
Reel/Frame 057848/0215 →
Priority Claims (1)
GB 1906921 · May 16, 2019 · national
Continuity (1)
Related Publication 20210006495A1 · Jan 7, 2021