IP Library Granted Patent US 11,502,950
Granted Patent B2
US 11,502,950 · App. 17/150,718 · Granted Nov 15, 2022

Universal customer premise equipment

Inventor: Robert Bays (San Francisco, CA)
Assignee: CIENA CORPORATION
H04L45/586G06F2009/45595
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,502,950
App. No.
17/150,718
Granted
Nov 15, 2022
Kind
B2
Abstract

Systems, methods, apparatus and computer-readable medium are described for improving efficiency and robustness for processing network packets at a network device, such as a customer premises equipment (CPE). The network device may include a plurality of physical network interfaces for receiving and transmitting network packets, and one or more processing entities. The one or more processing entities may provide a first router for providing routing functionality, wherein the first router is not virtualized, enable a virtual machine to execute a second router for providing routing functionality and forward a network packet using the first router or the second router from the device. The one or more processors may be configured to execute instructions associated with the first router from user space.

Claims (41)

1. A method, comprising:

receiving, at a network port of a device, a first network packet and a second network packet, wherein the device includes a memory providing a user space, wherein a first router is implemented in a host software stack in the user space, wherein a virtual machine is instantiated in the device and implements a second router, and wherein the user space includes a processing pipeline configured to perform packet switching processing;

copying, by a driver of a kernel of the device, the first network packet and the second network packet to the processing pipeline, resulting in a first copied network packet and a second copied network packet;

forwarding, by the first router, the first copied network packet using the processing pipeline by transmitting the first copied network packet to the virtual machine;

accessing, by the second router, the second copied network packet from the processing pipeline; and

forwarding, by the second router, the second copied network packet responsive to the accessing the second copied network packet.

2. The method of claim 1 , wherein the driver of the kernel comprises an Ethernet driver.

3. The method of claim 2 , wherein the Ethernet driver is executing in the kernel.

4. The method of claim 1 , wherein the forwarding, by the second router, the second copied network packet comprises transmitting the second copied network packet through another network port to a network.

5. The method of claim 1 , wherein the processing pipeline is further configured to perform packet routing processing.

6. The method of claim 1 , wherein the processing pipeline is configured to perform Layer 2 (L2) packet processing.

7. The method of claim 1 , wherein the processing pipeline is configured to perform Layer 3 (L3) packet processing.

8. The method of claim 1 , wherein the forwarding, by the second router, the second copied network packet comprises performing routing or switching of the second copied network packet.

9. The method of claim 1 , further comprising:

receiving an operational mode command from a remote device;

updating parameters of a data model based on the operational mode command, wherein the data model comprises an interface for exposing updatable parameters associated with the virtual machine; and

updating a state associated with a software routing functionality of another router based on the parameters of the data model.

10. A non-transitory computer-readable storage medium, comprising executable instructions that, when executed by a processing system of a device including a processor, facilitate performance of operations comprising:

obtaining, at a network port of the device, a first network packet and a second network packet, wherein the device includes a memory providing a user space, wherein a first router is implemented in a host software stack in the user space, wherein a virtual machine is instantiated in the device and implements a second router, and wherein the user space includes a plurality of processing pipelines configured to perform packet switching processing or packeting routing processing;

copying, by a driver of a kernel of the device, the first network packet to a first processing pipeline of the plurality of processing pipelines, resulting in a first copied network packet, and copying, by the driver, the second network packet to a second processing pipeline of the plurality of processing pipelines, resulting in a second copied network packet;

forwarding, by the first router, the first copied network packet using the first processing pipeline;

accessing, by the second router, the second copied network packet from the second processing pipeline; and

forwarding, by the second router, the second copied network packet responsive to the accessing the second copied network packet.

11. The non-transitory computer-readable storage medium of claim 10 , wherein the driver of the kernel comprises an Ethernet driver.

12. The non-transitory computer-readable storage medium of claim 11 , wherein the Ethernet driver is executing in the kernel.

13. The non-transitory computer-readable storage medium of claim 10 , wherein the first processing pipeline or the second processing pipeline is configured to perform Layer 2 (L2) packet processing.

14. The non-transitory computer-readable storage medium of claim 10 , wherein the first processing pipeline or the second processing pipeline is configured to perform Layer 3 (L3) packet processing.

15. The non-transitory computer-readable storage medium of claim 10 , wherein the forwarding, by the second router, the second copied network packet comprises transmitting the second copied network packet through another network port to a network.

16. A device comprising:

a memory configured for storing instructions, wherein the memory provides a user space, wherein a first router is implemented in a host software stack in the user space, wherein a first virtual machine is instantiated in the device and implements a second router, wherein a second virtual machine is instantiated in the device an implements a third router, and wherein the user space includes a processing pipeline configured to perform packet routing processing;

a network port for receiving and transmitting network packets; and

a processor configured to facilitate performance of operations, comprising:

receiving, at the network port, a first network packet and a second network packet;

copying, by an Ethernet driver of a kernel of the device, the first network packet and the second network packet to the processing pipeline, resulting in a first copied network packet and a second copied network packet;

forwarding, by the first router, the first copied network packet using the processing pipeline;

accessing, by the second router, the second copied network packet from the processing pipeline; and

forwarding, by the second router and to the third router, the second copied network packet responsive to the accessing the second copied network packet.

17. The device of claim 16 , wherein the forwarding, by the first router, the first copied network packet comprises transmitting the first copied network packet to the first virtual machine or the second virtual machine.

18. The device of claim 16 , wherein the processing pipeline is further configured to perform packet switching processing.

19. The device of claim 16 , wherein the device is a customer premises equipment (CPE) device located at a subscriber's premises and connected to a network of a network operator or a telecommunication carrier.

20. The device of claim 16 , wherein the first processing pipeline or the second processing pipeline is configured to perform Layer 2 (L2) packet processing.

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 Feb 5, 2021
From: BROCADE COMMUNICATIONS SYSTEMS, INC.
To: AT&T INTELLECTUAL PROPERTY I, L.P.
Reel/Frame 055169/0006 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2021
From: BAYS, ROBERT
To: BROCADE COMMUNICATIONS SYSTEMS, INC.
Reel/Frame 055169/0014 →
Continuity (6)
Continuation 16393665 · Apr 24, 2019
Continuation 14925809 · Oct 28, 2015
Provisional Application 62241059 · Oct 13, 2015
Provisional Application 62075175 · Nov 4, 2014
Provisional Application 62072971 · Oct 30, 2014
Related Publication 20210168072A1 · Jun 3, 2021
Cited By (9)
US 12,278,758 US 12,284,113 US 12,289,284 US 12,328,257 US 12,341,689 US 12,341,690 US 12,562,984 US 12,706,840 US 12,719,786