IP Library Granted Patent US 10,700,959
Granted Patent B2
US 10,700,959 · App. 15/948,946 · Granted Jun 30, 2020

Source routing design with simplified forwarding elements

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,700,959
App. No.
15/948,946
Granted
Jun 30, 2020
Kind
B2
Abstract

Some embodiments provide a network that includes (i) multiple forwarding elements, (ii) a set of one or more global control plane (GCP) servers, and (iii) multiple end-node machines. The GCP servers maintain topological information about connections between the forwarding elements. Each of the end-node machines receives the topological information, identifies a source-routing path for a message sent by the machine, and embeds the source-routing path in a source-routing message header that includes an egress port for each forwarding element along the path.

Claims (29)

1. A network comprising:

a plurality of forwarding elements;

a set of one or more global control plane (GCP) servers to maintain topological information about connections between the forwarding elements; and

a plurality of end-node machines, wherein a particular end-node machine is (i) to receive the topological information, (ii) to identify a source-routing path for a message to be sent by the particular end-node machine, and (iii) to embed the source-routing path in a source-routing message header that includes an egress port for each forwarding element along a path of the message.

2. The network of claim 1 , wherein the source-routing message header further includes a hop count that is incremented by each forwarding element along the message's path and that is used by each forwarding element along the message's path to identify the egress port associated with the forwarding element.

3. The network of claim 2 , wherein:

the source-routing message header further includes a forwarding element (FE) identifier for each egress port; and

when a forwarding element receives a message, the forwarding element (i) is to determine whether an FE identifier identified by the hop count in the message header corresponds to an identifier of the forwarding element and (ii) if so, increment the hop count in the message header and transmit the message via the egress port included in the message header for the forwarding element.

4. The network of claim 2 , wherein:

the source-routing message header further includes a forwarding element (FE) identifier for each egress port; and

when a forwarding element receives a message, the forwarding element (i) is to determine whether the FE identifier of a port pair identified by the incremented hop count in the message header corresponds to an ingress port of the forwarding element and (ii) if so, fill in the ingress port at which the forwarding element received the message and transmit the message via the egress port included in the message header for the forwarding element.

5. The network of claim 2 , wherein:

the message header further includes a message type that specifies one of a plurality of message types including a forwarding type; and

when a forwarding element receives the message, the forwarding element is to determine whether the message header specifies a forwarding type, and if so, the forwarding element is to transmit the message along its egress port identified by the hop count associated with the forwarding element so long as the message header specified an ingress port of the forwarding element for this hop count.

6. The network of claim 1 , wherein the forwarding elements are control-plane less (CPL) forwarding elements that do not include control plane circuits.

7. The network of claim 6 , wherein the CPL forwarding elements also do not include forwarding tables to store flow-forwarding rules, wherein a forwarding table comprises (i) a set of flow-identifiers to compare with a received message's set of flow attributes, and (ii) a set of action parameters that specify a forwarding operation to perform on a received message that has a set of flow attributes matching the flow-identifier of the rule.

8. The network of claim 7 , wherein the source-routing messages that the forwarding elements process do not have layer 2-layer 4 header values in the source-routing message headers.

9. The network of claim 6 , wherein the CPL forwarding elements include programmable data plane circuits to program components of the data plane circuits through messages processed by the data plane circuits.

10. The network of claim 9 , wherein programmability of the data plane is to permit the data plane of the forwarding elements to be configured remotely to implement bootstrapping and failover operations.

11. The network of claim 1 , wherein the forwarding elements comprise (i) one or more network forwarding integrated circuits to perform data plane operations and (ii) a central processing unit (CPU) to initialize the data plane of the network forwarding integrated circuits.

12. The network of claim 11 , wherein the CPU does not modify the data plane during runtime of the forwarding element.

13. The network of claim 1 , wherein when a forwarding element that receives the message determines that the egress port included in the source-routing message header for the forwarding element is failed, the forwarding element is to send the message back to the end-node machine that sent the message.

14. The network of claim 13 , wherein the forwarding element is to update a protocol of the message to be a failover message before sending the message back to the end-node machine that sent the message.

15. The network of claim 14 , wherein the forwarding element is to use the source-routing message header to specify a path for the failover message back to the end-node machine that sent the message.

16. The network of claim 14 , wherein the end-node machine is to store the received topological information, wherein the end-node machine that sent the message is to update the stored topological information based on the failover message.

17. The network of claim 16 , wherein the end-node machine that sent the message is to provide the update to the GCP server set in order for the GCP server set to update the topological information.

18. The network of claim 1 , wherein based on a new end-node machine being added to the network, the new end-node machine is to send an initial heartbeat message to the GCP server set.

19. The network of claim 18 , wherein the GCP server set is to respond to the initial heartbeat message by providing the topological information to the new end-node machine.

20. The network of claim 18 , wherein based on the GCP server set does not respond to the new end-node machine within a predetermined time, the new end-node machine is to flood the network with a flooding packet and the forwarding elements are to propagate the flooding packet.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Sep 20, 2019
From: SILICON VALLEY BANK
To: BAREFOOT NETWORKS, INC.
Reel/Frame 050455/0455 →
RELEASE OF SECURITY INTEREST Recorded Sep 20, 2019
From: SILICON VALLEY BANK
To: BAREFOOT NETWORKS, INC.
Reel/Frame 050455/0497 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jun 25, 2019
From: BAREFOOT NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 049588/0001 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jun 25, 2019
From: BAREFOOT NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 049588/0112 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2019
From: KIM, CHANGHOON; LEE, JEONGKEUN; SHARIF, MILAD; SOULE, ROBERT
To: BAREFOOT NETWORKS, INC.
Reel/Frame 048077/0640 →