# US 11,444,833 B1 · Business policy management for self-driving network

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,444,833 B1
- Document ID: US11444833B1
- Status: Granted
- Kind: B1
- Application number: 17/385,009
- Filed: 2021-07-26
- Granted: 2022-09-13
- Earliest claimed: 2019-04-24
- Assignees: Juniper Networks, Inc.
- Applicants: Juniper Networks, Inc.
- Inventors: Chandrasekhar A; Premchandar N; Jayanthi R
- Web page: https://patentgrep.com/patent/US11444833B1

## CPC

- H04L 41/0806: for initial configuration or provisioning, e.g. plug-and-play
- H04L 41/082: the condition being updates or upgrades of network functionality
- H04L 41/145: {involving simulating, designing, planning or modelling of a network}
- H04L 41/22: comprising specially adapted graphical user interfaces [GUI]
- H04L 63/0272: {Virtual private networks}
- H04L 41/0894: Policy-based network configuration management
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A controller device manages a plurality of network devices. The controller device includes one or more processing units configured to receive an indication of a stateful intent, the data structure including a plurality of nodes and a plurality of edges, each node of the plurality of nodes being representative of a respective network device of the plurality of network devices. The one or more processing units are configured to determine, using an abstract function configured at a node of the plurality of nodes, a stateless intent for implementing the stateful intent and generate low level configuration data for the plurality of network devices based on the stateless intent. The one or more processing units are configured to interface with one or more of the plurality of network devices to configure the one or more of the plurality of network devices with the low level configuration data.

## Claims

### Claim 1

A method for providing business intent assurance for a self-driving network, the method comprising:
configuring, by a controller device, one or more network devices of a plurality of network devices using first configuration data associated with a stateless intent;
collecting, by the controller device, metric information for the plurality of network devices after configuring the one or more network devices of the plurality of network devices with the first configuration data;
determining, by the controller device, that the stateless intent is not satisfied based on the metric information;
in response to determining that the stateless intent is not satisfied, generating second configuration data for the plurality of network devices using a data structure comprising a plurality of edges and a plurality of nodes, each node of the plurality of nodes being representative of a respective network device of the plurality of network devices and the plurality of edges defining relationships between the plurality of nodes; and
configuring, by the controller device, the one or more network devices of the plurality of network devices with the second configuration data.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
generating, by the controller device, a logical packet based on stateful intent;
injecting, by the controller device, the logical packet into the data structure; and
traversing, by the controller, the logical packet from a source node of the plurality of nodes that is indicated by the stateless intent towards a destination node of the plurality of nodes that is indicated by the stateful intent to generate the first configuration data for the plurality of network devices.

### Claim 3 (depends on 2)

The method of claim 2, wherein generating the second configuration data comprises traversing the logical packet from the source node towards the destination node.

### Claim 4 (depends on 2)

The method of claim 2, comprising:
generating, by the controller device, the logical packet to indicate an action, the action comprising one or more of connect, allow, or block.

### Claim 5 (depends on 2)

The method of claim 2, comprising:
generating, by the controller device, the logical packet to indicate a quality of service.

### Claim 6 (depends on 2)

The method of claim 2, wherein the data structure comprises an abstract function and wherein traversing the logical packet comprises applying the abstract function to the logical packet to generate the stateless intent.

### Claim 7 (depends on 6)

The method of claim 6, wherein the abstract function is preprogrammed by a human user.

### Claim 8 (depends on 6)

The method of claim 6, wherein the stateless intent indicates a bandwidth between two network devices of the plurality of network devices.

### Claim 9 (depends on 6)

The method of claim 6, wherein the stateless intent indicates one or more of:
a virtual private network connection between two network devices of the plurality of network devices;
a labeled switch path between the two network devices of the plurality of network devices; or
an optical path between the two network devices of the plurality of network devices.

### Claim 10 (depends on 1)

The method of claim 1, wherein collecting the metric information comprises:
determining telemetry information at two or more of the plurality of network devices;
storing the telemetry information at a telemetry database; and
generating the metric information using the telemetry information stored at the telemetry database.

### Claim 11 (depends on 1)

The method of claim 1, wherein the data structure is a unified graph model.

### Claim 12

A controller device that manages a plurality of network devices, the controller device comprising one or more processing units implemented in circuitry and configured to:
configure one or more network devices of the plurality of network devices using first configuration data associated with a stateless intent;
collect metric information for the plurality of network devices after the configuration of the one or more network devices of the plurality of network devices with the first configuration data;
determine that the stateless intent is not satisfied based on the metric information;
in response to a determination that the stateless intent is not satisfied, generate second configuration data for the plurality of network devices using a data structure comprising a plurality of edges and a plurality of nodes, each node of the plurality of nodes being representative of a respective network device of the plurality of network devices and the plurality of edges defining relationships between the plurality of nodes; and
configure the one or more network devices of the plurality of network devices with the second configuration data.

### Claim 13 (depends on 12)

The controller device of claim 12, wherein the one or more processing units are configured to:
generate a logical packet based on stateful intent;
inject the logical packet into the data structure; and
traverse the logical packet from a source node of the plurality of nodes that is indicated by the stateless intent towards a destination node of the plurality of nodes that is indicated by the stateful intent to generate the first configuration data for the plurality of network devices.

### Claim 14 (depends on 13)

The controller device of claim 13, wherein, to generate the second configuration data, the one or more processing units are configured to traverse the logical packet from the source node towards the destination node.

### Claim 15 (depends on 13)

The controller device of claim 13, wherein the one or more processing units are configured to generate the logical packet to indicate an action, the action comprising one or more of connect, allow, or block.

### Claim 16 (depends on 13)

The controller device of claim 13, wherein the one or more processing units are configured to generate the logical packet to indicate a quality of service.

### Claim 17 (depends on 13)

The controller device of claim 13, wherein the data structure comprises an abstract function and wherein, to traverse the logical packet, the one or more processing units are configured to apply the abstract function to the logical packet to generate the stateless intent.

### Claim 18 (depends on 17)

The controller device of claim 17, wherein the abstract function is preprogrammed by a human user.

### Claim 19 (depends on 17)

The controller device of claim 17, wherein the stateless intent indicates a bandwidth between two network devices of the plurality of network devices.

### Claim 20

A non-transitory computer-readable storage medium having stored thereon instructions that, when executed, cause a processor of a controller device that manages a plurality of network devices to:
configure one or more network devices of the plurality of network devices using first configuration data associated with a stateless intent;
collect metric information for the plurality of network devices after the configuration of the one or more network devices of the plurality of network devices with the first configuration data;
determine that the stateless intent is not satisfied based on the metric information;
in response to a determination that the stateless intent is not satisfied, generate second configuration data for the plurality of network devices using a data structure comprising a plurality of edges and a plurality of nodes, each node of the plurality of nodes being representative of a respective network device of the plurality of network devices and the plurality of edges defining relationships between the plurality of nodes; and
configure the one or more network devices of the plurality of network devices with the second configuration data.
