IP Library Granted Patent US 10,389,573
Granted Patent B2
US 10,389,573 · App. 14/542,463 · Granted Aug 20, 2019

Configuring a network

Inventors: Mansour Jad Karam (San Francisco, CA); Aleksandar Luka Ratkovic (Palo Alto, CA); Andrew Samoylov (San Jose, CA)
Assignee: Apstra, Inc.
H04L41/046G06F16/13H04L41/022H04L41/0806H04L41/12
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,389,573
App. No.
14/542,463
Granted
Aug 20, 2019
Kind
B2
Abstract

Configuring a network is disclosed. A set of network requirements is received at an interaction agent. At least a portion of the set of network requirements is published to a system data store. The published network requirements are received at an application agent. The application agent has subscribed to the published network requirements published in the system data store. Device requirements for a plurality of network devices are published to the system data store. At least a portion of the published device requirements is received at a proxy agent. Native hardware instructions are generated based on the received device requirements to configure at least one of the plurality of network devices.

Claims (39)

1. A system for configuring a network, comprising:

a processor configured to:

receive at an interaction agent component a set of network requirements and publish at least a portion of the set of network requirements to a system data store prior to ever completing a configuration of any one of a plurality of network devices to be configured based on the set of network requirements; and

in response to a notification based on the publishing of at least the portion of the set of network requirements, receive at an application agent component from the system data store the published network requirements, use at the application agent component the published network requirements to determine device requirements for the plurality of network devices, and publish to the same system data store the determined device requirements for the plurality of network devices, wherein the application agent has subscribed to the published network requirements published in the system data store and the device requirements include declarative device requirements generated using the set of network requirements for the plurality of network devices; and

wherein a different instance of a proxy agent component included in each network device of the plurality of the network devices to be configured based on the published device requirements receives at least a portion of the published device requirements including a corresponding portion of the declarative device requirements, the corresponding portion of the declarative device requirements received at the corresponding proxy agent component includes a specification of a desired configuration that is independent of any specific vendor for the corresponding network device, and the different instance of the proxy agent component included in each network device of the plurality of the network devices generates at the corresponding network device where the corresponding proxy agent component is included, native hardware instructions for the corresponding network device based on the received device requirements including the corresponding portion of the declarative device requirements that is independent of any specific vendor for the corresponding network device to configure the corresponding network device; and

a memory coupled with the processor and configured to provide the processor with instructions.

2. The system of claim 1 , wherein the interaction agent component receives the set of network requirements from a user.

3. The system of claim 1 , wherein the interaction agent component receives the set of network requirements via an application programming interface.

4. The system of claim 1 , wherein the set of network requirements includes a specification of a desired configuration for the network.

5. The system of claim 1 , wherein the set of network requirements is a set of declarative network requirements.

6. The system of claim 1 , wherein the set of network requirements specify a desired mesh network topology.

7. The system of claim 1 , wherein the interaction agent component, the application agent component and the proxy agent component do not communicate directly to each other and communicate together via the system data store.

8. The system of claim 1 , wherein publishing at least the portion of the set of network requirements to the system data store includes storing at least the portion of the set of network requirements to the system data store in a manner that identifies the application agent component.

9. The system of claim 1 , wherein the application agent component determines and identifies that the plurality of devices is required to implement the received published network requirements.

10. The system of claim 1 , wherein the application agent component is one of a plurality of application agent components of the system that processes the set of network requirements.

11. The system of claim 1 , wherein the application agent component generates for each of the plurality of network devices, device specific device requirements to implement the received published network requirements.

12. The system of claim 1 , wherein the device requirements include declarative device requirements for each of the plurality of network devices.

13. The system of claim 1 , wherein the plurality of devices includes a network switch.

14. The system of claim 1 , wherein the proxy agent component of one of the network devices provides for use by a management server, a device status of the one of the network devices.

15. The system of claim 1 , wherein the proxy agent component that generated the native hardware instructions of one of the plurality of network devices publishes a status identifier of the one of the plurality of network devices to the same system data store that also stores at least the portion of the set of network requirements and the determined device requirements for the plurality of network devices.

16. The system of claim 15 , wherein the status identifier is published in response to a detection that a Ternary Content Addressable Memory (TCAM) table has overflowed.

17. The system of claim 15 , wherein the application agent component of the one of the plurality of network devices receives the status identifier from the system data store and perform an action in response to the status identifier.

18. The system of claim 15 , wherein the application agent component of the one of the plurality of network devices receives the status identifier from the system data store, determines a status of achieving the published network requirements using at least the received status identifier, and publishes to the system data store the status of achieving the published network requirements.

19. A method for configuring a network, comprising:

receiving at an interaction agent a set of network requirements;

publishing at least a portion of the set of network requirements to a system data store prior to ever completing a configuration of any one of a plurality of network devices to be configured based on the set of network requirements;

in response to a notification based on the publishing of at least the portion of the set of network requirements, receiving at an application agent from the system data store the published network requirements, wherein the application agent has subscribed to the published network requirements published in the system data store;

using at the application agent component the published network requirements to determine device requirements for the plurality of network devices;

publishing to the same system data store the determined device requirements for the plurality of network devices, wherein the device requirements include declarative device requirements generated using the set of network requirements for the plurality of network devices;

receiving at each different instance of a proxy agent component included in each network device of the plurality of the network devices to be configured based on the published device requirements at least a portion of the published device requirements including a corresponding portion of the declarative device requirements, wherein the corresponding portion of the declarative device requirements received at the corresponding proxy agent component includes a specification of a desired configuration that is independent of any specific vendor for the corresponding network device; and

generating at the corresponding network device where the corresponding proxy agent component is included, native hardware instructions for the corresponding network device based on the received device requirements including the corresponding portion of the declarative device requirements that is independent of any specific vendor for the corresponding network device to configure at least one of the plurality of network devices.

20. A computer program product for configuring a network, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving at an interaction agent a set of network requirements;

publishing at least a portion of the set of network requirements to a system data store prior to ever completing a configuration of any one of a plurality of network devices to be configured based on the set of network requirements;

in response to a notification based on the publishing of at least the portion of the set of network requirements, receiving at an application agent from the system data store the published network requirements, wherein the application agent has subscribed to the published network requirements published in the system data store;

using at the application agent component the published network requirements to determine device requirements for the plurality of network devices;

publishing to the same system data store the determined device requirements for the plurality of network devices, wherein the device requirements include declarative device requirements generated using the set of network requirements for the plurality of network devices;

receiving at each different instance of a proxy agent component included in each network device of the plurality of the network devices to be configured based on the published device requirements at least a portion of the published device requirements including a corresponding portion of the declarative device requirements, wherein the corresponding portion of the declarative device requirements received at the corresponding proxy agent component includes a specification of a desired configuration that is independent of any specific vendor for the corresponding network device; and

generating at the corresponding network device where the corresponding proxy agent component is included, native hardware instructions for the corresponding network device based on the received device requirements including the corresponding portion of the declarative device requirements that is independent of any specific vendor for the corresponding network device to configure at least one of the plurality of network devices.

Assignments (4)
NUNC PRO TUNC ASSIGNMENT Recorded May 6, 2026
From: APSTRA, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 075513/0120 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 25, 2023
From: KARAM, MANSOUR JAD; RATKOVIC, ALEKSANDAR LUKA
To: APSTRA, INC.
Reel/Frame 063761/0565 →
CHANGE OF NAME Recorded May 4, 2016
From: APSTRKTR, INC.
To: APSTRA, INC.
Reel/Frame 038609/0319 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2015
From: KARAM, MANSOUR JAD; RATKOVIC, ALEKSANDAR LUKA; SAMOYLOV, ANDREW
To: APSTRKTR, INC.
Reel/Frame 034931/0609 →
Continuity (1)
Related Publication 20160142243A1 · May 19, 2016