# US 10,313,271 B2 · Providing and using a distributed forwarding service

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

- Number: US 10,313,271 B2
- Document ID: US10313271B2
- Status: Granted
- Kind: B2
- Application number: 15/071,813
- Filed: 2016-03-16
- Published: 2017-09-21
- Granted: 2019-06-04
- Earliest claimed: 2016-03-16
- Assignees: AT&T Intellectual Property I, L.P.
- Applicants: AT&T Intellectual Property I, L.P.
- Inventors: Gregory O. Harp
- Web page: https://patentgrep.com/patent/US10313271B2

## CPC

- H04L 49/25: Routing or path finding in a switch fabric
- H04L 45/7453: using hashing
- H04L 47/125: by balancing the load, e.g. traffic engineering
- H04L 67/563: Data redirection of data network streams
- H04L 69/22: Parsing or analysis of headers
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Concepts and technologies are disclosed herein for providing and using a distributed forwarding service. A service request can be received at a computing device and can relate to a distributed forwarding service. The computing device can configure the distributed forwarding service by determining a number of nodes that are to provide the distributed forwarding service and configuring a shared control function to control the nodes. The computing device can trigger instantiation of the distributed forwarding service. Instantiation of the distributed forwarding service can include dedicating a shared incoming switch for the distributed forwarding service, dedicating a shared outgoing switch for the distributed forwarding service, instantiating the nodes, and instantiating the shared control function. The distributed forwarding service can include the shared incoming switch, the shared control function, the nodes, and the shared outgoing switch.

## Claims

### Claim 1

A system comprising:
a processor; and
a memory that stores computer-executable instructions that, when executed by the processor, cause the processor to perform operations comprising
receiving a service request, wherein the service request comprises a request that relates to a distributed forwarding service,
configuring the distributed forwarding service, wherein configuring the distributed forwarding service comprises determining a number of nodes that are to provide the distributed forwarding service and configuring a shared control function to control the nodes, and
triggering instantiation of the distributed forwarding service, wherein instantiation of the distributed forwarding service comprises
dedicating a shared incoming switch for the distributed forwarding service,
dedicating a shared outgoing switch for the distributed forwarding service, instantiating the nodes, and
instantiating the shared control function, wherein the distributed forwarding service comprises the shared incoming switch, the shared control function, the nodes, and the shared outgoing switch.

### Claim 2 (depends on 1)

The system of claim 1, further comprising a computing environment, wherein the distributed forwarding service is executed by multiple hosts within the computing environment.

### Claim 3 (depends on 2)

The system of claim 2, wherein the computing environment comprises a data center.

### Claim 4 (depends on 1)

The system of claim 1, wherein the request comprises a request to create the distributed forwarding service.

### Claim 5 (depends on 1)

The system of claim 1, wherein the request comprises a request to scale the distributed forwarding service.

### Claim 6 (depends on 1)

The system of claim 1, wherein the shared incoming switch is configured to distribute packets across the nodes to balance load across the nodes.

### Claim 7 (depends on 6)

The system of claim 6, wherein the shared incoming switch applies a hash algorithm to a header associated with each of the packets, and distributes each of the packets based on a hash generated using the hash algorithm.

### Claim 8 (depends on 1)

The system of claim 1, wherein the distributed forwarding service is created without replicating processing and storage devices associated with a shared forwarding device.

### Claim 9

A method comprising:
receiving, at a computing device comprising a processor that executes a service creation module, a service request, wherein the service request comprises a request that relates to a distributed forwarding service;
configuring, by the computing device, the distributed forwarding service, wherein configuring the distributed forwarding service comprises determining a number of nodes that are to provide the distributed forwarding service and configuring a shared control function to control the nodes; and
triggering, by the computing device, instantiation of the distributed forwarding service, wherein instantiation of the distributed forwarding service comprises
dedicating a shared incoming switch for the distributed forwarding service,
dedicating a shared outgoing switch for the distributed forwarding service,
instantiating the nodes, and
instantiating the shared control function, wherein the distributed forwarding service comprises the shared incoming switch, the shared control function, the nodes, and the shared outgoing switch.

### Claim 10 (depends on 9)

The method of claim 9, wherein the request comprises a request to create the distributed forwarding service.

### Claim 11 (depends on 9)

The method of claim 9, wherein the request comprises a request to scale the distributed forwarding service.

### Claim 12 (depends on 9)

The method of claim 9, wherein each of the nodes comprises a host, and wherein the nodes collectively execute the distributed forwarding service.

### Claim 13 (depends on 9)

The method of claim 9, wherein the service request is received at the service creation module via an application programming interface exposed by the computing device.

### Claim 14 (depends on 9)

The method of claim 9, wherein the shared incoming switch is configured to distribute packets across the nodes to balance load across the nodes.

### Claim 15 (depends on 14)

The method of claim 14, wherein the shared incoming switch applies a hash algorithm to a header associated with each of the packets, and distributes each of the packets based on a hash generated using the hash algorithm.

### Claim 16 (depends on 9)

The method of claim 9, wherein the distributed forwarding service is created without replicating processing and storage devices associated with a shared forwarding device.

### Claim 17

A computer storage medium having computer-executable instructions stored thereon that, when executed by a processor, cause the processor to perform operations comprising:
receiving a service request, wherein the service request comprises a request that relates to a distributed forwarding service;
configuring the distributed forwarding service, wherein configuring the distributed forwarding service comprises determining a number of nodes that are to provide the distributed forwarding service and configuring a shared control function to control the nodes; and
triggering instantiation of the distributed forwarding service, wherein instantiation of the distributed forwarding service comprises
dedicating a shared incoming switch for the distributed forwarding service,
dedicating a shared outgoing switch for the distributed forwarding service,
instantiating the nodes, and
instantiating the shared control function, wherein the distributed forwarding service comprises the shared incoming switch, the shared control function, the nodes, and the shared outgoing switch.

### Claim 18 (depends on 17)

The computer storage medium of claim 17, wherein each of the nodes comprises a host, and wherein the nodes collectively execute the distributed forwarding service.

### Claim 19 (depends on 17)

The computer storage medium of claim 17, wherein the shared incoming switch is configured to distribute packets across the nodes to balance load across the nodes by
applying a hash algorithm to a header associated with each of the packets, and
distributing each of the packets based on a hash generated using the hash algorithm.

### Claim 20 (depends on 17)

The computer storage medium of claim 17, wherein the distributed forwarding service is created without replicating processing and storage devices associated with a shared forwarding device.
