IP Library Granted Patent US 10,404,587
Granted Patent B2
US 10,404,587 · App. 15/131,445 · Granted Sep 3, 2019

Systems and methods for packet routing

Inventor: Douglas A. Palmer (San Diego, CA)
Assignee: Friday Harbor LLC
H04L45/74H04L69/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 10,404,587
App. No.
15/131,445
Granted
Sep 3, 2019
Kind
B2
Abstract

Systems and methods to route packets of information within an integrated circuit, across one or more boards, racks, blades, and/or chassis, and/or across a connected network of packet processing engines include various modes of operation. Packets are routed to their destination, for example an individual packet processing engine. The packets of information include address-mode indicators, one or more destination port indicators, and/or (long-distance) addresses.

Claims (63)

1. A method implemented by a first packet processing engine comprising a plurality of ports, the method comprising:

receiving a packet at the first packet processing engine, the packet including a payload and a first plurality of destination port indicators, the first plurality of destination port indicators being encoded using multiple bits in a field in included in the packet and comprising a first destination port indicator and a second destination port indicator;

determining to transmit the packet to another packet processing engine using the first destination port indicator;

determining that a first port of the plurality of ports corresponds to the first destination port indicator;

modifying the first plurality of destination port indicators of the packet to remove the first destination port indicator and create a modified packet such that the modified packet comprises the second destination port indicator, wherein the modifying is accomplished by bit-shifting the field; and

transmitting the modified packet via the first port to a second packet processing engine.

2. The method of claim 1 , wherein the first packet processing engine is directly connected to the second packet processing engine via the first port of the first packet processing engine and a second port of the second packet processing engine.

3. The method of claim 1 , wherein each port of the plurality of ports is connected to a packet processing engine of a plurality of packet processing engines.

4. The method of claim 1 , wherein the first port of the first packet processing engine is configured to form a point-to-point connection with a second port of the second packet processing engine.

5. The method of claim 1 , wherein the packet includes a packet header, and the packet header includes the first plurality of destination port indicators.

6. The method of claim 1 , further comprising:

receiving, by the second packet processing engine, the modified packet, the modified packet comprising a second plurality of destination port indicators that includes the second destination port indicator, and the second packet processing engine comprising a second plurality of ports;

determining to transmit the modified packet to another packet processing engine using the second destination port indicator;

determining that a second port of the second plurality of ports corresponds to the second destination port indicator;

modifying the second plurality of destination port indicators of the modified packet to remove the second destination port indicator and create a second modified packet; and

transmitting the second modified packet via the second port to a third packet processing engine.

7. The method of claim 1 , further comprising:

receiving, by the second packet processing engine, the modified packet, the modified packet comprising the second destination port indicator;

determining that the second packet processing engine is a destination of the modified packet using the second destination port indicator; and

processing the modified packet.

8. A system comprising:

a set of packet processing engines configured to receive, transmit, and/or process packets of information, wherein individual ones of the set of packet processing engines include a plurality of ports, and the set of packet processing engines includes a first packet processing engine configured to:

receive a packet including a payload and a first plurality of destination port indicators, the first plurality of destination port indicators being encoded using multiple bits in a field included in the packet and comprising a first destination port indicator and a second destination port indicator;

determine to transmit the packet to another packet processing engine of the set of packet processing engines using the first destination port indicator;

determine that a first port of the plurality of ports corresponds to the first destination port indicator;

modify the first plurality of destination port indicators of the packet to remove the first destination port indicator and create a modified packet such that the modified packet comprises the second destination port indicator, wherein the modifying is accomplished by bit-shifting the field; and

transmit the modified packet via the first port to a second packet processing engine of the set of packet processing engines.

9. The system of claim 8 , wherein the first packet processing engine is directly connected to the second packet processing engine via the first port of the first packet processing engine and a second port of the second packet processing engine.

10. The system of claim 1 , wherein each port of the plurality of ports is connected to a packet processing engine of the set of packet processing engines.

11. The system of claim 8 , wherein the first port of the first packet processing engine is configured to form a point-to-point connection with a second port of the second packet processing engine.

12. The system of claim 8 , wherein the packet includes a packet header, and the packet header includes the first plurality of destination port indicators.

13. The system of claim 8 , wherein the second packet processing engine is further configured to:

receive the modified packet, the modified packet comprising a second plurality of destination port indicators that includes the second destination port indicator;

determine to transmit the modified packet to another packet processing engine of the set of packet processing engines using the second destination port indicator;

determine that a second port of the second plurality of destination port indicators of the second packet processing engine corresponds to the second destination port indicator;

modify the second plurality of destination port indicators of the modified packet to remove the second destination port indicator and create a second modified packet; and

transmit the second modified packet via the second port to a third packet processing engine of the set of packet processing engines.

14. The system of claim 8 , wherein the second packet processing engine is further configured to:

receive the modified packet that comprises the second destination port indicator;

determine that the second packet processing engine is a destination of the modified packet using the second destination port indicator; and

process the modified packet.

15. A method to route packets, comprising:

receiving, by a first packet processing engine of a set of packet processing engines, a first packet, the first packet having a first address-mode indicator;

determining that the first address-mode indicator indicates that the first packet includes a first destination address;

transmitting the first packet to a router for transmission based on an address table;

receiving, by the first packet processing engine, a second packet, the second packet having a second address-mode indicator;

determining that the second address-mode indicator indicates that the second packet includes a plurality of destination port indicators, the plurality of destination port indicators comprising a first destination port indicator and a second destination port indicator forming a tuple;

determining that a first port of the first packet processing engine corresponds to the first destination port indicator;

modifying the plurality of destination port indicators of the second packet to remove the first destination port indicator and create a modified packet, the modified packet including the second destination port indicator, wherein the modifying is accomplished by bit-shifting the tuple; and

transmitting the modified packet via the first port to a second packet processing engine of the set of packet processing engines.

16. A method implemented by a first packet processing engine comprising a plurality of ports, the method comprising:

receiving a packet at the first packet processing engine, the packet including a payload and a first plurality of destination port indicators, the first plurality of destination port indicators comprising a first destination port indicator and a second destination port indicator forming a tuple;

determining to transmit the packet to another packet processing engine using the first destination port indicator;

determining that a first port of the plurality of ports corresponds to the first destination port indicator;

modifying the first plurality of destination port indicators of the packet to remove the first destination port indicator and create a modified packet such that the modified packet comprises the second destination port indicator, wherein the modifying is accomplished by bit-shifting the tuple in a direction to shift off, in a first end of the tuple, the first destination port indicator, and add zeros to the tuple in a second end of the tuple; and

transmitting the modified packet via the first port to a second packet processing engine.

17. A system comprising:

a set of packet processing engines configured to receive, transmit, and/or process packets of information, wherein individual ones of the set of packet processing engines include a plurality of ports, and the set of packet processing engines includes a first packet processing engine configured to:

receive a packet including a payload and a first plurality of destination port indicators, the first plurality of destination port indicators comprising a first destination port indicator and a second destination port indicator forming a tuple;

determine to transmit the packet to another packet processing engine of the set of packet processing engines using the first destination port indicator;

determine that a first port of the plurality of ports corresponds to the first destination port indicator;

modify the first plurality of destination port indicators of the packet to remove the first destination port indicator and create a modified packet such that the modified packet comprises the second destination port indicator, wherein the modifying is accomplished by bit-shifting the tuple in a direction to shift off, in a first end of the tuple, the first destination port indicator, and add zeros to the tuple in a second end of the tuple; and

transmit the modified packet via the first port to a second packet processing engine of the set of packet processing engines.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2018
From: KNUEDGE, INC.
To: FRIDAY HARBOR LLC
Reel/Frame 047156/0582 →
SECURITY INTEREST Recorded Oct 27, 2017
From: KNUEDGE INCORPORATED
To: XL INNOVATE FUND, LP
Reel/Frame 044637/0011 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2017
From: PALMER, DOUGLAS A.
To: KNUEDGE INCORPORATED
Reel/Frame 041254/0149 →
SECURITY INTEREST Recorded Nov 11, 2016
From: KNUEDGE INCORPORATED
To: XL INNOVATE FUND, L.P.
Reel/Frame 040601/0917 →
Continuity (2)
Continuation 13749402 · Jan 24, 2013
Related Publication 20160234111A1 · Aug 11, 2016