IP Library Granted Patent US 10,484,275
Granted Patent B2
US 10,484,275 · App. 15/916,376 · Granted Nov 19, 2019

Multilayered distributed router architecture

Inventor: Robert Bays (San Francisco, CA)
Assignee: AT&T Intellectual Property I, L. P.
H04L45/60H04L45/42H04L49/602
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,484,275
App. No.
15/916,376
Granted
Nov 19, 2019
Kind
B2
Abstract

A distributed multilayered network routing architecture comprises multiple layers including a controller layer comprising a controller, a control plane layer comprising one or more control plane subsystems, and a data plane layer comprising one or more data plane subsystems. A controller may be coupled to one or more control plane subsystems. A control plane subsystem may in turn be coupled to one or more data plane subsystems, which may include one or more software data plane subsystems and/or hardware data plane subsystems. In certain embodiments, the locations of the various subsystems of a distributed router can be distributed among various devices in the network.

Claims (46)

1. A system comprising:

a control plane subsystem; and

a plurality of data plane subsystems configured to forward data packets, the plurality of data plane subsystems including a first data plane subsystem and a second data plane subsystem;

wherein the control plane subsystem comprises a processor and a memory storing instructions that, when executed by the processor, cause the processor to perform operations comprising:

receiving an instruction;

determining an action based upon the instruction;

communicating, using a control channel, the action to be performed to the first data plane subsystem and the second data plane subsystem;

wherein the first data plane subsystem is a software data plane subsystem that comprises a processor and a memory storing instructions that, when executed by the processor, cause the processor to perform processing corresponding to the action; and

wherein the second data plane subsystem is a hardware data plane subsystem comprising forwarding hardware and is configured to perform processing corresponding to the action.

2. The system of claim 1 , where the control plane subsystem is on a first device and the first data plane subsystem is on a device other than the first device.

3. The system of claim 1 , where the control plane subsystem is on a first device and the second data plane subsystem is on a device other than the first device.

4. The system of claim 1 , wherein the forwarding hardware is a merchant silicon chip, a network interface card or a field programmable gate array.

5. The system of claim 1 , wherein:

the action is communicated using a message that is translated to a set of one or more application programming interfaces corresponding to the forwarding hardware using a hardware abstraction layer; and

the forwarding hardware is configured to execute the set of one or more application programming interfaces.

6. The system of claim 1 , further comprising:

a controller comprising a processor and a memory storing instructions that, when executed by the processor, cause the processor to perform operations to communicate with a plurality of control plane subsystems, the plurality of control plane subsystems including the control plane subsystem;

wherein the control plane subsystem is configured to receive the instruction from the controller.

7. The system of claim 1 , wherein the control plane subsystem is configured by a controller using representational state transfer application programming interfaces over a communication protocol.

8. The system of claim 7 , wherein the communication protocol is one or more of NETCONF or OpenFlow.

9. The system of claim 1 , wherein the instructions executing on the processor for the first data plane subsystem, further cause the processor to perform operations comprising:

receiving a data packet via an input port;

determining an output port for forwarding the data packet; and

forwarding the data packet to a next hop using the output port.

10. The system of claim 1 , wherein the control plane subsystem communicates over the control channel with the first data plane subsystem and the second data plane subsystem using ZeroMQ transport mechanism with javascript open notation encapsulation.

11. The system of claim 1 , wherein the control plane subsystem determines the action based on the instruction using one or more of a data model representation, routing information or topology information.

12. The system of claim 11 , wherein the routing information or the topology information is at least partially received from a controller or another control plane subsystem.

13. A method comprising:

receiving, by a control plane subsystem, an instruction;

determining, by the control plane subsystem, an action based upon the instruction;

communicating, by the control plane subsystem, using a control channel, the action to a first data plane subsystem that is a software data plane subsystem, wherein communicating the action to the first data plane subsystem causes the first data plane subsystem to perform processing corresponding to the action; and

communicating, by the control plane subsystem, using the control channel, the action to a second data plane subsystem that is a hardware data plane subsystem comprising forwarding hardware, the second data plane subsystem configured to forward data packets causing the second data plane subsystem to perform processing corresponding to the action.

14. The method of claim 13 , wherein the action is communicated to the second data plane subsystem using a message causing the second data plane subsystem to translate the message to a set of one or more application programming interfaces corresponding to the forwarding hardware and executing the set of one or more application programming interfaces by the forwarding hardware.

15. The method of claim 13 , further comprising causing the first data plane subsystem to route a data packet from an input port to an output port at least partially based on performing the action associated with a network policy by the first data plane subsystem.

16. The method of claim 13 , wherein the control plane subsystem communicates over the control channel with the first data plane subsystem and the second data plane subsystem using ZeroMQ transport mechanism with javascript open notation encapsulation.

17. The method of claim 13 , wherein the control plane subsystem determines the action based on the instruction using one or more of a data model representation of a network, routing information or topology information.

18. The method of claim 13 , wherein the control plane subsystem is configured by a controller using representational state transfer application programming interfaces over a communication protocol.

19. A method, comprising:

receiving, by a control plane subsystem, an instruction related to a network policy;

determining, by the control plane subsystem, an action based upon the instruction; and

communicating, by the control plane subsystem, using a control channel, a message corresponding to the action to a first data plane subsystem, wherein communicating the message corresponding to the action to the first data plane subsystem causes the first data plane subsystem to perform operations comprising:

forwarding a data packet received on an input port of the first data plane subsystem to a second data plane subsystem for performing a first service,

receiving the data packet from the second data plane subsystem after the second data plane subsystem has performed the first service,

determining an output port for forwarding the data packet, and

forwarding the data packet using the output port.

20. The method of claim 19 , wherein the control plane subsystem is configured by a controller using representational state transfer application protocol interfaces over a communication protocol.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2021
From: AT&T INTELLECTUAL PROPERTY I, LP
To: CIENA CORPORATION
Reel/Frame 058088/0833 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2019
From: BROCADE COMMUNICATIONS SYSTEMS, INC.
To: AT&T INTELLECTUAL PROPERTY I, L. P.
Reel/Frame 049821/0255 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2019
From: BAYS, ROBERT
To: BROCADE COMMUNICATIONS SYSTEMS, INC.
Reel/Frame 049807/0881 →
Continuity (3)
Continuation 14966557 · Dec 11, 2015
Provisional Application 62090627 · Dec 11, 2014
Related Publication 20180205645A1 · Jul 19, 2018