# US 2022/0045941 A1 · Resilience to single event upsets in software defined networks

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

- Number: US 2022/0045941 A1
- Document ID: US20220045941A1
- Status: Published application
- Kind: A1
- Application number: 16/988,201
- Filed: 2020-08-07
- Published: 2022-02-10
- Earliest claimed: 2020-08-07
- Assignees: Schweitzer Engineering Laboratories, Inc.
- Applicants: Schweitzer Engineering Laboratories, Inc.
- Inventors: David J. Powers; Kylan T. Robinson
- Web page: https://patentgrep.com/patent/US20220045941A1

## CPC

- H04L 45/38: {Flow based routing}
- H04L 45/28: using route fault recovery
- H04L 45/306: {Route determination based on the nature of the carried application}
- H04L 45/64: using an overlay routing layer
- H04L 49/557: {Error correction, e.g. fault recovery or fault tolerance}
- H04L 49/70: {Virtual switches}
- H04L 45/66: {Layer 2 routing, e.g. in Ethernet based MAN's}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The present disclosure pertains to improving resilience to single event upsets (“SEUs”) in a software-defined network (“SDN”). In one embodiment, a system may include a communications interface to receive and transmit a data packet. A primary data flow repository may store a plurality of communication flows to be used to route the data packet. A secondary data flow repository may store a subset of communication flows to be used to route a data packet. A system may search the plurality of communication flows in the primary data flow repository based on a criteria associated with the data packet. If no communication flow satisfies the criteria, a secondary data flow repository may be searched. The data packet may be routed according to a communication flow in the secondary data flow repository. The communication flow from the secondary data flow repository may be duplicated in the primary data flow repository.

## Claims

### Claim 1

A network device to route data packets in a software-defined network (SDN), the network device comprising:
a communications interface to receive and transmit a data packet;
a primary data flow repository to store a plurality of communication flows to be used to route the data packet;
a redundant data flow repository to store at least a subset of communication flows also stored in the primary data flow repository;
a traffic routing subsystem to:
search the plurality of communication flows in the primary data flow repository based on a criteria associated with the data packet;
determine that none of the plurality of communication flows satisfy the criteria;
search the redundant data flow repository based on the criteria associated with the data packet;
identify at least one of the subset of communication flows in the redundant data flow repository that satisfies the criteria; and
route the data packet via the communications interface and based on the at least one of the subset of communication flows that satisfies the criteria; and
a redundancy subsystem to:
duplicate the at least one of the subset of communication flows that satisfies the criteria from the redundant data flow repository to the primary data flow repository.

### Claim 2 (depends on 1)

The network device of claim 1, further comprising a first non-transitory computer-readable storage medium to store the primary data flow repository.

### Claim 3 (depends on 2)

The network device of claim 2, further comprising a second non-transitory computer-readable storage medium to store the redundant data flow repository.

### Claim 4 (depends on 2)

The network device of claim 2, wherein the primary data flow repository and the redundant data flow repository each comprise a logical differentiator within a unified data structure.

### Claim 5 (depends on 1)

The network device of claim 1, wherein a field-programmable gate array comprises at least one of the primary data flow repository or the redundant data flow repository.

### Claim 6 (depends on 1)

The network device of claim 1, wherein the redundancy subsystem is further to skip, mark as corrupted, repair in place, or deactivate from the primary data flow repository a changed version of the at least one of the subset of communication flows that satisfies the criteria.

### Claim 7 (depends on 6)

The network device of claim 6, wherein the changed version resulted from a single event upset.

### Claim 8 (depends on 1)

The network device of claim 1, wherein the network device comprises a switch in the SDN.

### Claim 9 (depends on 1)

The network device of claim 1, further comprising an interface to allow a user to select the subset of communication flows stored in the redundant data flow repository.

### Claim 10 (depends on 1)

The network device of claim 1, wherein a user is to identify a service type and the redundancy subsystem is to select the subset of communication flows stored in the redundant data flow repository based on the service type.

### Claim 11

A method for routing data packets in a software-defined network (SDN), the method comprising:
receiving a data packet;
searching a plurality of communication flows in a primary data flow repository based on a criteria associated with the data packet;
determining that none of the plurality of communication flows satisfy the criteria;
searching a subset of the plurality of communication flows in a redundant data flow repository, the subset of the plurality of communication flows also being stored in the primary data flow repository, based on the criteria associated with the data packet;
identifying at least one of the subset of the communication flows that satisfies the criteria;
routing the data packet based on the at least one of the subset of communication flows that satisfies the criteria; and
duplicating the at least one of the subset of communication flows that satisfies the criteria from the redundant data flow repository to the primary data flow repository.

### Claim 12 (depends on 11)

The method of claim 11, further comprising storing the primary data flow repository in a first non-transitory computer-readable storage medium.

### Claim 13 (depends on 12)

The method of claim 12, further comprising storing the redundant data flow repository in a second non-transitory computer-readable storage medium.

### Claim 14 (depends on 12)

The method of claim 12, wherein the primary data flow repository and the redundant data flow repository each comprise a logical differentiator within a unified data structure.

### Claim 15 (depends on 11)

The method of claim 11, wherein a field-programmable gate array comprises at least one of the primary data flow repository or the redundant data flow repository.

### Claim 16 (depends on 11)

The method of claim 11, further comprising one of skipping, marking as corrupted, repairing in place, or deactivating from the primary data flow repository a changed version of the at least one of the subset of communication flows that satisfies the criteria.

### Claim 17 (depends on 16)

The method of claim 16, wherein the changed version resulted from a single event upset.

### Claim 18 (depends on 11)

The method of claim 11, further comprising using a switch in the SDN to implement the method.

### Claim 19 (depends on 11)

The method of claim 11, further comprising selecting the subset of communication flows stored in the redundant data flow repository using an interface.

### Claim 20 (depends on 11)

The method of claim 11, further comprising selecting the subset of communication flows stored in the redundant data flow repository based on a service type specified by a user.

### Claim 21

A software-defined network (SDN) switch resilient to single event upsets, the switch comprising:
a communications interface to receive and transmit a plurality of data packets;
a primary data flow repository to store a plurality of communication flows to be used to route a plurality of received data packets;
a redundant data flow repository to store at least a subset of communication flows also stored in the primary data flow repository; and
a redundancy subsystem to:
detect a changed communication flow stored in the primary data flow repository;
identify a communication flow stored in the redundant data flow repository corresponding to the changed communication flow stored in the primary data flow repository; and
replace the changed communication flow in the primary data flow repository with the corresponding communication flow stored in the redundant data flow repository.

### Claim 22 (depends on 21)

The SDN switch of claim 21, wherein the redundancy subsystem detects the changed communication flow stored in the primary data flow repository based on an error correction coding scheme.

### Claim 23 (depends on 21)

The SDN switch of claim 21, wherein the subset of communication flows stored in the redundant data flow repository is received from one of an SDN controller and an application.
