IP Library Granted Patent US 10,931,574
Granted Patent B2
US 10,931,574 · App. 16/393,665 · Granted Feb 23, 2021

Universal customer premise equipment

Inventor: Robert Bays (San Francisco, CA)
Assignee: AT&T Intellectual Property I, L.P.
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 10,931,574
App. No.
16/393,665
Granted
Feb 23, 2021
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 (56)

1. A method for forwarding network packets at a device, comprising:

implementing a first router in a host software stack of the device, the first router providing a first routing functionality, the first routing functionality including functionality provided by executing one or more real-time threads;

providing a second router that provides a second routing functionality by instantiating a virtual machine that implements the second routing functionality;

providing, in a user space of a memory of the device, a plurality of processing pipelines for enabling communications between the first router and the second router, the plurality of processing pipelines including a first processing pipeline for performing Layer 2 (L2) packet processing and a second processing pipeline for performing Layer 3 (L3) packet processing;

receiving, at a network port of the device, a network packet;

forwarding the network packet using the first routing functionality by processing the network packet using the first processing pipeline or the second processing pipeline;

accessing, via the virtual machine, the network packet;

processing, via the second routing functionality of the virtual machine, the network packet;

receiving a second network packet at the network port;

copying the second network packet to a particular processing pipeline from the plurality of processing pipelines; and

forwarding, by the second router, the second network packet by accessing the second network packet from the particular processing pipeline.

2. The method of claim 1 , wherein processing the network packet via the second routing functionality of the virtual machine comprises transmitting the network packet through another network port.

3. The method of claim 1 , wherein processing the network packet using the first processing pipeline or the second processing pipeline comprises sending the network packet to the virtual machine.

4. 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.

5. The method of claim 1 , wherein the device is a customer premises equipment.

6. The method of claim 1 , wherein the device is a network device.

7. The method of claim 1 , wherein processing the network packet via the second routing functionality of the virtual machine comprises performing routing or switching of the network packet.

8. The method of claim 1 , further comprising:

enabling the device to provide a third routing functionality corresponding to a third router by instantiating an additional virtual machine that implements the third router,

wherein forwarding the second network packet comprises routing the second network packet from the second router to the third router using one or more processing pipelines from the plurality of processing pipelines.

9. The method of claim 1 , 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.

10. A non-transitory computer-readable storage medium, wherein the non-transitory computer-readable storage medium comprises instructions executable by a processing entity of a device for:

implementing a first router in a host software stack of the device, the first router providing a first routing functionality, the first routing functionality including functionality provided by executing one or more real-time threads;

providing a second router that provides a second routing functionality by instantiating a virtual machine that implements the second routing functionality;

providing, in a user space of a memory of the device, a plurality of processing pipelines for enabling communications between the first router and the second router, the plurality of processing pipelines including a first processing pipeline for performing Layer 2 (L2) packet processing and a second processing pipeline for performing Layer 3 (L3) packet processing;

receiving a network packet at a network port;

forwarding the network packet using the first routing functionality by processing the network packet using the first processing pipeline or the second processing pipeline;

accessing, via the virtual machine, the network packet;

processing, via the second routing functionality of the virtual machine, the network packet to an external device;

providing a third router that provides a third routing functionality by instantiating a second virtual machine that implements the third router;

receiving a second network packet at the network port; and

forwarding, using the second router, the second network packet by routing the second network packet to the third router using one or more processing pipelines from the plurality of processing pipelines.

11. The non-transitory computer-readable storage medium of claim 10 , wherein processing the network packet using the first processing pipeline or the second processing pipeline comprises sending the network packet to the virtual machine.

12. The non-transitory computer-readable storage medium of claim 10 , wherein the device is a customer premises equipment.

13. A device comprising:

a memory configured for storing instructions;

a network port for receiving and transmitting network packets; and

one or more processors configured to:

implement a first router in a host software stack of the device, the first router providing a first routing functionality, the first routing functionality including functionality provided by executing one or more real-time threads;

providing a second router that provides a second routing functionality by instantiating a virtual machine that implements the second routing functionality;

provide, in a user space of a memory of the device, a plurality of processing pipelines for enabling communications between the first router and the second router, the plurality of processing pipelines including a first processing pipeline for performing Layer 2 (L2) packet processing and a second processing pipeline for performing Layer 3 (L3) packet processing;

receive a network packet from the network port;

forward the network packet using the first routing functionality by processing the network packet using the one or more real-time threads using the first processing pipeline or the second processing pipeline;

access, via the virtual machine, the network packet; and

process, via the second routing functionality of the virtual machine, the network packet to an external device;

enable the device to provide third routing functionality corresponding to a third router by instantiating an additional virtual machine that implements the third router;

receive a second network packet at the network port; and

forward the second network packet by routing the second network packet from the second router to the third router using one or more processing pipelines from the plurality of processing pipelines.

14. The device of claim 13 , wherein forwarding the network packet comprises sending the network packet the virtual machine.

15. The device of claim 13 , wherein the device is a customer premises equipment.

16. The device of claim 13 , wherein the one or more processors are further configured to:

move the second network packet to a particular processing pipeline from the plurality of processing pipelines, wherein forwarding the second network packet using the second router comprises accessing, by the second router, the second network packet from the particular processing pipeline.

17. The device of claim 13 , 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.

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 Jun 13, 2019
From: BROCADE COMMUNICATIONS SYSTEMS, INC.
To: AT&T INTELLECTUAL PROPERTY I, L.P.
Reel/Frame 049464/0429 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2019
From: BAYS, ROBERT
To: BROCADE COMMUNICATIONS SYSTEMS, INC.
Reel/Frame 049187/0684 →
Continuity (5)
Continuation 14925809 · Oct 28, 2015
Provisional Application 62072971 · Oct 30, 2014
Provisional Application 62075175 · Nov 4, 2014
Provisional Application 62241059 · Oct 13, 2015
Related Publication 20190253347A1 · Aug 15, 2019