# US 11,115,278 B2 · Learning by inference from brownfield deployments

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

- Number: US 11,115,278 B2
- Document ID: US11115278B2
- Status: Granted
- Kind: B2
- Application number: 16/283,958
- Filed: 2019-02-25
- Published: 2020-08-27
- Granted: 2021-09-07
- Earliest claimed: 2019-02-25
- Assignees: Cisco Technology, Inc.
- Applicants: Cisco Technology, Inc.
- Inventors: Jason David Notari; Manish Chandra Agrawal; Liqin Dong; Lukas Krattiger; Patnala Debashis Rao
- Web page: https://patentgrep.com/patent/US11115278B2

## CPC

- H04L 41/0813: characterised by the conditions triggering a change of settings
- H04L 41/0661: {by reconfiguring faulty entities}
- H04L 41/0816: the condition being an adaptation, e.g. in response to network events
- H04L 41/0843: {based on generic templates}
- H04L 41/0873: Checking configuration conflicts between network elements
- H04L 41/0886: {Fully automatic configuration}
- 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

The present technology provides a system, method and computer-readable medium for configuration pattern recognition and inference, directed to a device with an existing configuration, through an extensible policy framework. The policy framework uses a mixture of python template logic and CLI micro-templates as a mask to infer the intent behind an existing device configuration in a bottom-up learning inference process. Unique values for device/network identifiers and addresses as well as other resources are extracted and accounted for. The consistency of devices within the fabric is checked based on the specific policies built into the extensible framework definition. Any inconsistencies found are flagged for user correction or automatically remedied by a network controller. This dynamic configuration pattern recognition ability allows a fabric to grow without being destroyed and re-created, thus new devices with existing configurations may be added and automatically configured to grow a Brownfield fabric.

## Claims

### Claim 1

A method for deployment of a Greenfield device, the method comprising:
generating configuration expressions from at least one configuration template of a plurality of configuration templates based on known fabric policies, the configuration expressions includes a plurality of variables and corresponding values;
receiving an existing configuration file of a Brownfield device that was previously deployed;
matching one or more variables of the existing configuration file of the Brownfield device with one or more variables of the plurality of variables of at least one of the configuration expressions from the at least one configuration template of the plurality of configuration templates;
instantiating the one or more variables of the plurality of variables of at least one of the configuration expressions from the at least one configuration template of the plurality of configuration templates with corresponding values retrieved from a matched portion of the existing configuration of the Brownfield device, to thereby create one to more template instances;
validating each of the one or more template instances against the known fabric policies to generate one or more Policy Template Instances;
storing the one or more Policy Template Instances associated with a device existing configuration as a representation of an expected device configuration; and
provisioning the expected device configuration on the Greenfield device.

### Claim 2 (depends on 1)

The method of claim 1, wherein the plurality of configuration templates for matching the one or more variables of the existing configuration of the Brownfield device are generated by a network management service.

### Claim 3 (depends on 2)

The method of claim 2, wherein the network management service is implemented as a part of a Data Center Network Manager (DCNM).

### Claim 4 (depends on 1)

The method of claim 1, wherein the plurality of configuration templates comprise one or more Command Line Interface (CLI) configuration templates.

### Claim 5 (depends on 1)

The method of claim 1, wherein the plurality of configuration templates comprise one or more Python templates for inferring higher order aspects of the Brownfield device intended operation.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
generating an alert in an event of a conflict between the one or more template instances and the known fabric policies.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
adding one or more configuration statements to the expected device configuration in accordance with one or more fabric best practice policy and completeness requirements.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
receiving one or more user inputs for updating and confirming the representation of the device expected configuration.

### Claim 9

A system comprising:
one or more processors; and
at least one computer-readable storage medium having stored therein instructions which, when executed by the one or more processors, cause the one or more processors to:
generate configuration expressions from at least one configuration template of a plurality of configuration templates based on known fabric policies, the configuration expressions includes a plurality of variables and corresponding values;
retrieve configuration files of one or more Brownfield devices designated for deployment onto a fabric;
match one or more variables of the configuration files with one or more variables of the plurality of variables of at least one of the configuration expressions from the at least one configuration template of the plurality of configuration templates;
instantiate the one or more variables of the plurality of variables of at least one of the configuration expressions from the at least one configuration template of the plurality of configuration templates with one or more corresponding values retrieved from a matched portion of the configuration files of the one or more Brownfield devices thereby create one to more template instances;
validate each of the one or more template instances against the known fabric policies;
store one or more validated template instances associated with a device configuration as a representation of an intent associated with the device configuration; and
provision the device configuration on a Greenfield device.

### Claim 10 (depends on 9)

The system of claim 9, wherein the one or more corresponding values retrieved from a matched portion of a Brownfield device configuration comprises at least one of: a Device host identifier, an interface identifier, an IP address, and a tag value.

### Claim 11 (depends on 9)

The system of claim 9, wherein the plurality of templates for matching the one or more variables of the configuration files of the one or more Brownfield devices are generated by a network management service.

### Claim 12 (depends on 11)

The system of claim 11, wherein the network management service is implemented as a part of a Data Center Network Manager.

### Claim 13 (depends on 9)

The system of claim 9, wherein the plurality of templates for matching one or more aspects of the configuration files of the one or more Brownfield devices comprise one or more Command Line Interface (CLI) micro-templates.

### Claim 14 (depends on 9)

The system of claim 9, wherein the plurality of templates for matching one or more aspects of the configuration files of the one or more Brownfield devices comprise one or more Python templates for inferring higher-order aspects of a device intended operation.

### Claim 15 (depends on 9)

The system of claim 9, further comprising instructions which, when executed by the one or more processors, cause the one or more processors to:
generate an alert in an event of a conflict between the one or more template instances and the known fabric policies.

### Claim 16 (depends on 9)

The system of claim 9, further comprising instructions which, when executed by the one or more processors, cause the one or more processors to:
add one or more configuration statements to a device configuration in accordance with one or more best practice policy and completeness requirements of the fabric.

### Claim 17 (depends on 9)

The system of claim 9, further comprising instructions which, when executed by the one or more processors, cause the one or more processors to:
receive one or more user inputs for validating the representation of an intent associated with the device configuration.

### Claim 18

At least one non-transitory computer-readable storage medium having stored therein instructions which, when executed by one or more processors, cause the one or more processors to:
generate configuration expressions from at least one configuration template of a plurality of configuration templates based on known fabric policies, the configuration expressions includes a plurality of variables and corresponding values;
retrieve configuration files of one or more Brownfield devices designated for deployment onto a fabric;
match one or more variables of the configuration files with one or more variables of the plurality of variables of at least one of the configuration expressions from the at least one configuration template of the plurality of configuration template;
in response to a match, instantiate the one or more variables of the variables of the configuration expressions from the at least one configuration template of the plurality of configuration templates with corresponding values retrieved from a matched portion of the configuration files for one or more Brownfield devices thereby create one to more template instances;
validate each of the one or more template instances against the known fabric policies;
store one or more validated template instances associated with a device running configuration as a representation of an intent associated with the device running configuration; and
provision the device running configuration on a Greenfield device.

### Claim 19 (depends on 18)

The non-transitory computer-readable storage medium of claim 18, wherein the plurality of templates for matching the one or more variables of the device running configuration comprise one or more Command Line Interface (CLI) micro-templates for inferring one or more resource values from the device running configuration as well as one or more Python templates for inferring higher-order aspects of a device intended operation.

### Claim 20 (depends on 18)

The non-transitory computer-readable storage medium of claim 18, further comprising: adding one or more configuration statements to the device running configuration in accordance with one or more best practice policies and completeness requirements of the fabric.
