IP Library › Granted Patent US 12,308,997
Granted Patent B2
US 12,308,997 · App. 18/516,173 · Granted May 20, 2025

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.
H04L12/44G06F9/45558G06F9/4881G06F9/54G06F9/542G06F16/2272G06F16/2379G06F16/27G06F16/278H04L12/2881H04L12/462H04L12/4633H04L12/4641H04L12/66H04L45/02H04L45/08H04L45/22H04L45/24H04L45/26H04L45/28H04L45/48H04L45/50H04L45/586H04L45/66H04L45/745H04L47/125H04L63/0272H04L67/1097H04L67/55G06F2009/45595H04L2012/4629H04L49/25
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 12,308,997
App. No.
18/516,173
Granted
May 20, 2025
Kind
B2
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 (40)

1. A method comprising:

identifying a dependency between two or more objects of a plurality of objects, wherein the dependency identifies a parent object and a dependent object;

determining whether the dependency is resolved; and

in response to determining the dependency is not resolved, postponing one or more of:

an update on the dependent object until creation of the parent object; or

deletion of the parent object until deletion of the dependent object.

2. The method of claim 1 , wherein identifying the dependency comprises identifying a unique key associated with the parent object that is adopted by the dependent object.

3. The method of claim 1 , further comprising reordering at least a portion of the plurality of objects based on the unique key such that the dependent object depends upon the parent object.

4. The method of claim 1 , further comprising asynchronously receiving the plurality of objects by way of an application program interface (API) integrated with an asynchronous object manager;

wherein the asynchronous object manager is a layer of a software stack configured to manage operations of a networking device comprising a switch or a router.

5. The method of claim 4 , wherein the asynchronous object manager is a state machine.

6. The method of claim 4 , 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.

7. The method of claim 4 , wherein the networking device further comprises a routing information base, wherein the routing information base is a data table stored on the networking device that comprises a listing of routes to networking destinations.

8. The method of claim 4 , wherein the asynchronous object manager comprises a multiple threaded architecture.

9. The method of claim 8 , wherein the asynchronous object manager manages work distribution by causing each thread within the multiple threaded architecture to manage care of data plane programming for one or more data plane services.

10. The method of claim 8 , wherein each thread within the multiple threaded architecture comprises an instance of the asynchronous object manager to store information from producers and to program assigned devices.

11. The method of claim 4 , wherein the networking device comprises:

hardware;

the asynchronous object manager installed as a bottom-most layer of the software stack for managing the hardware;

a data plan adaptation layer (DPAL);

a forwarding information base;

a routing information base; and

a configuration agent.

12. The method of claim 4 , wherein the networking device further comprises a forwarding information base configured to identify proper output network interface to which an input interface should forward an object, and wherein the forwarding information base is a dynamic table that maps media access control addresses to ports.

13. The method of claim 4 , wherein identifying the dependency comprises identifying a unique key associated with the parent object that is adopted by the dependent object;

wherein the unique key is associated with a next hop object; and

wherein a router object added to the asynchronous object manager.

14. The method of claim 1 , further comprising, in response to determining the dependency is resolved, calling back an application and providing the two or more of the plurality of objects to the application.

15. The method of claim 1 , further comprising receiving the plurality of objects from one or more producers, and wherein the one or more produces comprises one or more of an application, a process, a thread, or a function.

16. The method of claim 1 , further comprising, in response to determining the dependency is resolved, providing the two or more of the plurality of objects to a data plane adaptation layer (DPAL) of a networking device, wherein the networking device is a switch or a router.

17. The method of claim 16 , further comprising providing the DPAL a route for transferring messages from a first location to a final destination.

18. The method of claim 16 , further comprising receiving a query from the DPAL, wherein the query requests a route for transmitting a message from a first location to a final destination.

19. The method of claim 18 , further comprising:

calculating the route requested by the DPAL;

recording the route; and

providing the route to the DPAL;

wherein providing the route comprises providing only in response to determining the dependency is resolved.

20. The method of claim 1 , further comprising:

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

reordering the deletion sequence based on the dependency.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2023
From: PAI, NALINAKSH; RAJARAMAN, KALYANI; RAGUKUMAR, VIKRAM
To: ARRCUS INC.
Reel/Frame 065636/0809 →
Continuity (4)
Continuation 17539893 · Dec 1, 2021
Continuation 16549215 · Aug 23, 2019
Provisional Application 62722003 · Aug 23, 2018
Related Publication 20240086263A1 · Mar 14, 2024
References Cited (65)
US 6879594B1 · Lee · 2005 [cited by applicant]
US 8537840B1 · Raszuk · 2013 [cited by applicant]
US 9330154B2 · Di Vincenzo · 2016 [cited by applicant]
US 9507856B1 · Camplejohn · 2016 [cited by applicant]
US 9652483B1 · Cao et al. · 2017 [cited by applicant]
US 10785296B1 · Allison · 2020 [cited by applicant]
US 10931530B1 · Rzehak · 2021 [cited by applicant]
US 20030012193A1 · Novaes · 2003 [cited by applicant]
US 20070091796A1 · Filsfils · 2007 [cited by applicant]
US 20070214280A1 · Patel · 2007 [cited by applicant]
US 20090257439A1 · Xu · 2009 [cited by applicant]
US 20090296579A1 · Dharwadkar · 2009 [cited by applicant]
US 20100046531A1 · Louati · 2010 [cited by applicant]
US 20100125574A1 · Navas · 2010 [cited by applicant]
US 20100189115A1 · Kitada · 2010 [cited by applicant]
US 20110320550A1 · Lawson · 2011 [cited by applicant]
US 20130054763A1 · Van der Merwe · 2013 [cited by applicant]
US 20130286846A1 · Atlas et al. · 2013 [cited by applicant]
US 20130301522A1 · Krishna · 2013 [cited by applicant]
US 20140258485A1 · Yang · 2014 [cited by applicant]
US 20140372748A1 · Dixon · 2014 [cited by applicant]
US 20150188808A1 · Ghanwani · 2015 [cited by applicant]
US 20150195136A1 · Mermoud · 2015 [cited by applicant]
US 20150195368A1 · Bandyopadhyay · 2015 [cited by applicant]
US 20150263899A1 · Tubaltsev · 2015 [cited by applicant]
US 20150304206A1 · Filsfils et al. · 2015 [cited by applicant]
US 20160028613A1 · Haramaty · 2016 [cited by applicant]
US 20160065498A1 · Harper · 2016 [cited by applicant]
US 20160134116A1 · Carlson · 2016 [cited by applicant]
US 20160142313A1 · Devireddy et al. · 2016 [cited by applicant]
US 20160218917A1 · Zhang · 2016 [cited by applicant]
US 20160234326A1 · Camplejohn · 2016 [cited by applicant]
US 20160248658A1 · Patel et al. · 2016 [cited by applicant]
US 20160248663A1 · Patel · 2016 [cited by applicant]
US 20160277210A1 · Lin et al. · 2016 [cited by applicant]
US 20160321341A1 · Ramamurthi · 2016 [cited by applicant]
US 20160337464A1 · Eriksson · 2016 [cited by applicant]
US 20170126486A1 · Prieto · 2017 [cited by applicant]
US 20170244657A1 · Baldwin · 2017 [cited by applicant]
US 20180167475A1 · Agarwal et al. · 2018 [cited by applicant]
US 20180183706A1 · Przygienda et al. · 2018 [cited by applicant]
US 20180205634A1 · Avci et al. · 2018 [cited by applicant]
US 20190028465A1 · Allen · 2019 [cited by applicant]
US 20190079948A1 · Ye · 2019 [cited by applicant]
US 20190149896A1 · Gramm · 2019 [cited by applicant]
US 20190297000A1 · Dutta · 2019 [cited by applicant]
US 20190373073A1 · John · 2019 [cited by applicant]
US 20210149752A1 · Burroughes · 2021 [cited by applicant]
CA 2279845A1 · 1998 [cited by applicant]
CN 101848236A · 2010 [cited by applicant]
CN 101960426A · 2011 [cited by applicant]
CN 103984694A · 2014 [cited by applicant]
CN 104486124 · 2015 [cited by applicant]
CN 105556502A · 2016 [cited by applicant]
CN 105991432 · 2016 [cited by applicant]
CN 106878065 · 2017 [cited by applicant]
CN 107547402 · 2018 [cited by applicant]
CN 108075969A · 2018 [cited by applicant]
EP 3070877 · 2016 [cited by applicant]
JP 2003204332 · 2003 [cited by applicant]
JP 2016536690 · 2016 [cited by applicant]
Cisco Documentation: “Internet Engineering Task Force (IETF) Network Working Group draft-ietf-idr-bgp4-24.txt document.”, Apr. 28, 2011 (Apr. 28, 2011), pp. 1-166, XP093187495, Retrieved from the Internet: URL:https://w… [cited by applicant]
Husseman. “A Beginner's Guide to Understanding the Leaf-Spine Network Topology.” In: West Monroe Partners. Mar. 23, 2015 (Mar. 23, 2015) Retrieved on Oct. 13, 2019 (Oct. 13, 2019) from <https://blog.westmonroepartners.c… [cited by applicant]
VXLAN Tutorial, Ohira Shinichi, Cisco Systems G.K., Jan. 20, 2016, p. 1 to 49 https://www.janog.gr.jp/meeting/janog37/download_file/vxlan.pdf. [cited by applicant]
Internet Engineering Task Force (IETF) Request for Comments: 7432 Category: Standards Track ISSN: 2070-1721, BGP MPLS-Based Ethernet VPN, A. Sajassi, Ed., Feb. 2015. [cited by applicant]