IP Library › Granted Patent US 11,221,893
Granted Patent B2
US 11,221,893 · App. 16/549,215 · Granted Jan 11, 2022

Asynchronous object manager in a network routing environment

Inventors: Nalinaksh Pai (San Ramon, CA); Kalyani Rajaraman (San Jose, CA); Vikram Ragukumar (Pleasanton, CA)
Assignee: ARRCUS INC.
G06F9/542G06F9/45558G06F9/4881G06F9/54G06F16/2272G06F16/2379G06F16/27G06F16/278H04L12/2881H04L12/44H04L12/462H04L12/4633H04L12/4641H04L12/66H04L45/02H04L45/22H04L45/24H04L45/26H04L45/28H04L45/48H04L45/50H04L45/586H04L45/66H04L45/745H04L47/125H04L63/0272H04L67/1097H04L67/26G06F2009/45595H04L49/25H04L2012/4629
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,221,893
App. No.
16/549,215
Filed
Aug 23, 2019
Granted
Jan 11, 2022
Kind
B2
Art Unit
2196
USPC
718/102
Abstract

Systems, methods, and devices for offloading network data to a datastore. A system includes routing chip hardware and an asynchronous object manager in communication with the routing chip hardware. The asynchronous object manager is configurable to execute instructions stored in non-transitory computer readable storage media. The instructions include asynchronously receiving a plurality of objects from one or more producers. The instructions include identifying one or more dependencies between two or more of the plurality of objects. The instructions include reordering the plurality of objects according to the one or more dependencies. The instructions include determining whether the one or more dependencies is resolve. The instructions include, in response to determining the one or more dependencies is resolved, calling back an application and providing one or more of the plurality of objects to the application.

Claims (64)

1. A system comprising:

routing chip hardware; and

an asynchronous object manager in communication with the routing chip hardware, wherein the asynchronous object manager is the bottom-most layer of a software stack for managing operations of a networking device, and wherein the asynchronous object manager is configurable to execute instructions stored in non-transitory computer readable storage media, the instructions comprising:

asynchronously receiving a plurality of objects from one or more producers by way of an Application Program Interface (API) integrated in the asynchronous object manager;

identifying one or more dependencies between two or more of the plurality of objects, wherein the one or more dependencies are defined according to a unique key associated with a parent object that is adopted by a dependent object;

reordering the plurality of objects according to the one or more dependencies;

determining whether the one or more dependencies is resolved;

in response to determining the one or more dependencies is not resolved, postponing one or more of: updates on the dependent object until the parent object is created; or deletion of the parent object until the dependent object has been deleted; and

in response to determining the one or more dependencies is resolved, calling back an application and providing one or more of the plurality of objects to the application.

2. The system of claim 1 , wherein the asynchronous object manager comprises a state machine.

3. The system of claim 1 , wherein the networking device managed by the asynchronous object manager is a switch or a router.

4. The system of claim 1 , wherein the one or more producers comprise one or more of an application, a process, a thread, or a function.

5. The system of claim 1 , wherein the instructions further comprise providing a message to the routing chip hardware indicating that a first route needs to be processed through a first interphase link.

6. The system of claim 1 , further comprising a Data Plan Adaptation Layer (DPAL) in communication with the asynchronous object manager and the routing chip hardware, and wherein the instructions for the asynchronous object manager further comprise:

receiving a message from the DPAL to create a route for a message to be transmitted from a first location to a final destination;

creating the route for the message; and

providing the route to the DPAL.

7. The system of claim 1 , wherein the instructions further comprise:

storing a state for a plurality of routes known to the asynchronous object manager;

receiving an indication that a first route is offline;

identifying a first interphase link associated with the first route;

identifying a replacement interphase link to be associated with the first route; and

providing an indication to the routing chip hardware that the first route should be processed with the replacement interphase link rather than the first interphase link.

8. The system of claim 1 , wherein the asynchronous object manager provides a means for a first producer to provide a message to the asynchronous object manager in lieu of providing a message directly to a second producer of a next hop.

9. The system of claim 1 , wherein the asynchronous object manager is compatible for operating on a switch or a router.

10. The system of claim 1 , wherein the instructions further comprise:

receiving a deletion sequence for the plurality of objects from the one or more producers; and

reordering the deletion sequence according to the one or more dependencies.

11. One or more processors configurable to execute instructions stored in non-transitory computer readable storage media, the instructions comprising:

asynchronously receiving a plurality of objects from one or more producers by way of an Application Program Interface (API) integrated in an asynchronous object manager, wherein the asynchronous object manager is the bottom-most layer of a software stack for managing operations of a networking device comprising a switch or a router;

identifying one or more dependencies between two or more of the plurality of objects, wherein the one or more dependencies are defined according to a unique key associated with a parent object that is adopted by a dependent object;

reordering the plurality of objects according to the one or more dependencies;

determining whether the one or more dependencies is resolved;

in response to determining the one or more dependencies is not resolved, postponing one or more of: updates on the dependent object until the parent object is created; or deletion of the parent object until the dependent object has been deleted; and

in response to determining the one or more dependencies is resolved, calling back an application and providing one or more of the plurality of objects to the application;

wherein the instructions comprise the bottom-most layer of the software stack.

12. The one or more processors of claim 11 , wherein the instructions further comprise providing a message to the routing chip hardware indicating that a first route needs to be processed through a first interphase link.

13. The one or more processors of claim 11 , wherein the instructions further comprise:

storing a state for a plurality of routes known to the asynchronous object manager;

receiving an indication that a first route is offline;

identifying a first interphase link associated with the first route;

identifying a replacement interphase link to be associated with the first route; and

providing an indication to the routing chip hardware that the first route should be processed with the replacement interphase link rather than the first interphase link.

14. The one or more processors of claim 11 , wherein the instructions further comprise providing a means for a first producer to provide a message to the asynchronous object manager in lieu of providing a message directly to a second producer of a next hop.

15. The one or more processors of claim 11 , wherein the instructions for the one or more processors are compatible for operating locally on the switch or the router.

16. A method for offloading data storage in a network environment, the method comprising:

asynchronously receiving a plurality of objects from one or more producers by way of an Application Program Interface (API) integrated in an asynchronous object manager;

identifying one or more dependencies between two or more of the plurality of objects, wherein the one or more dependencies are defined according to a unique key associated with a parent object that is adopted by a dependent object;

reordering the plurality of objects according to the one or more dependencies;

determining whether the one or more dependencies is resolved;

in response to determining the one or more dependencies is not resolved, postponing one or more of: updated on the dependent object until the parent object is created; or deletion of the parent object until the dependent object has been deleted; and

in response to determining the one or more dependencies is resolved, calling back an application and providing one or more of the plurality of objects to the application;

wherein the method is performed by the asynchronous object manager, and wherein the asynchronous object manager is the bottom-most layer of a software stack configured to manage operations of a networking device comprising a switch or a router.

17. The method of claim 16 , further comprising providing a message to routing chip hardware indicating that a first route needs to be processed through a first interphase link.

18. The method of claim 16 , wherein the asynchronous object manager comprises a state machine located at the bottom most layer of the software stack for managing operations of the networking device.

19. The method of claim 16 , further comprising:

storing a state for a plurality of routes known to the asynchronous object manager;

receiving an indication that a first route is offline;

identifying a first interphase link associated with the first route;

identifying a replacement interphase link to be associated with the first route; and

providing an indication to the routing chip hardware that the first route should be processed with the replacement interphase link rather than the first interphase link.

20. The method of claim 16 , further comprising:

receiving a deletion sequence for the plurality of objects from the one or more producers; and

reordering the deletion sequence according to the one or more dependencies.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2019
From: PAI, NALINAKSH; RAJARAMAN, KALYANI; RAGUKUMAR, VIKRAM
To: ARRCUS INC.
Reel/Frame 050147/0246 →
Continuity (2)
Provisional Application 62722003 · Aug 23, 2018
Related Publication 20200065141A1 · Feb 27, 2020