# US 11,442,717 B2 · System and method for updating state information

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

- Number: US 11,442,717 B2
- Document ID: US11442717B2
- Status: Granted
- Kind: B2
- Application number: 16/835,751
- Filed: 2020-03-31
- Published: 2021-09-30
- Granted: 2022-09-13
- Earliest claimed: 2020-03-31
- Assignees: Arista Networks, Inc.
- Applicants: Arista Networks, Inc.
- Inventors: Roman Olegovich Chertov; Adam James Sweeney; Hugh W. Holbrook; Karthik Shyam Krishnan Subraveti
- Web page: https://patentgrep.com/patent/US11442717B2

## CPC

- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 8/658: Incremental updates; Differential updates
- H04L 12/18: for broadcast or conference {, e.g. multicast}
- H04L 12/1859: {adapted to provide push services, e.g. data channels}
- H04L 12/1895: {for short real-time information, e.g. alarms, notifications, alerts, updates}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A network device includes a first agent programmed to provide a functionality of the network device. The network device also includes a message bus, distinct from the first agent, that identifies an update associated with the first agent, the update includes differential state information based, at least in part, on a state of the first agent, the state of the first agent is stored in a data structure exclusively managed by the first agent; in response to identifying the update: identifies a second agent that is subscribed to the first agent; and performs an action set to provide the second agent with access to the update.

## Claims

### Claim 1

A network device, comprising:
a processor;
a first process executing on the processor that provides a functionality of the network device; and
a second process executing on the processor, the second process being distinct from the first process, that:
identifies an update associated with the first process, wherein the update comprises differential state information based, at least in part, on a state of the first process, wherein the state of the first process is stored in a data structure exclusively managed by the first process;
in response to identifying the update:
identifies a third process executing on the processor that is subscribed to the first process; and performs an action set to provide the third process with access to the update,
wherein the second process executing on the processor further:
obtains a state reconstruction request for the first process;
in response to obtaining the state reconstruction request:
identifies at least two updates associated with the first process;
identifies an ordering of the at least two updates; and
provides the at least two updates in an order specified by the ordering to at least a requesting entity.

### Claim 2 (depends on 1)

The network device of claim 1, wherein the differential state information is further based, at least in part, on a second update that was generated before the update is generated.

### Claim 3 (depends on 1)

The network device of claim 1, wherein performing the action set comprises:
multicasting the update to the third process and a fourth process executing on the processor.

### Claim 4 (depends on 1)

The network device of claim 1, wherein the update is based on a state information chunk exclusively associated with the first process.

### Claim 5 (depends on 4)

The network device of claim 4, wherein only the first process is authorized to modify the state information chunk.

### Claim 6 (depends on 4)

The network device of claim 4, wherein identifying the update comprises:
obtaining a message from the first process indicating that the state information chunk has been updated;
in response to obtaining the message:
identifying an ordering of the state information chunk to discriminate the update from previous updates.

### Claim 7

A method, comprising:
identifying, by a second process executing on a processor, an update associated with a first process executing on the processor, wherein the first process provides a functionality of a network device and the second process is distinct from the first process, wherein the update comprises differential state information based, at least in part, on a state of the first process, wherein the state of the first process is stored in a data structure exclusively managed by the first process;
in response to identifying the update, by the second process:
identifying a third process executing on the processor that is subscribed to the first process; and
performing an action set to provide the third process with access to the update, wherein the method further comprises, by the second process:
obtaining a state reconstruction request for the first process;
in response to obtaining the state reconstruction request:
identifying at least two updates associated with the first process;
identifying an ordering of the at least two updates; and
providing the at least two updates in an order specified by the ordering to at least a requesting entity.

### Claim 8 (depends on 7)

The method of claim 7, wherein the differential state information is further based, at least in part, on a second update that was generated before the update is generated.

### Claim 9 (depends on 7)

The method of claim 7, wherein performing the action set comprises:
multicasting the update to the third process and a fourth process executing on the processor.

### Claim 10 (depends on 7)

The method of claim 7, wherein the update is based on a state information chunk exclusively associated with the first process.

### Claim 11 (depends on 10)

The method of claim 10, wherein only the first process is authorized to modify the state information chunk.

### Claim 12 (depends on 10)

The method of claim 10, wherein identifying the update comprises:
obtaining a message from the first process indicating that the state information chunk has been updated;
in response to obtaining the message:
identifying an ordering of the state information chunk to discriminate the update from previous updates.

### Claim 13

A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to perform a method, the method comprising:
identifying, by a second process executing on a processor, an update associated with a first process executing on the processor, wherein the first process provides a functionality of a network device and the second process is distinct from the first process, wherein the update comprises differential state information based, at least in part, on a state of the first-process, wherein the state of the first process is stored in a data structure exclusively managed by the first process;
in response to identifying the update, by the second process:
identifying a third process executing on the processor that is subscribed to the first process; and
performing an action set to provide the third process with access to the update, wherein the method further comprises, by the second process:
obtaining a state reconstruction request for the first process;
in response to obtaining the state reconstruction request:
identifying at least two updates associated with the first process;
identifying an ordering of the at least two updates; and
providing the at least two updates in an order specified by the ordering to at least a requesting entity.

### Claim 14 (depends on 13)

The non-transitory computer readable medium of claim 13, wherein the differential state information is further based, at least in part, on a second update that was generated before the update is generated.

### Claim 15 (depends on 13)

The non-transitory computer readable medium of claim 13, wherein performing the action set comprises:
multicasting the update to the second agent third process and a third agent fourth process executing on the processor.

### Claim 16 (depends on 13)

The non-transitory computer readable medium of claim 13, wherein the update is based on a state information chunk exclusively managed by the first agent process.

### Claim 17 (depends on 16)

The non-transitory computer readable medium of claim 16, wherein only the first process is authorized to modify the state information chunk.
