# US 12,003,422 B1 · Methods for switching network packets based on packet data and devices

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

- Number: US 12,003,422 B1
- Document ID: US12003422B1
- Status: Granted
- Kind: B1
- Application number: 16/588,074
- Filed: 2019-09-30
- Granted: 2024-06-04
- Earliest claimed: 2018-09-28
- Assignees: F5, Inc.
- Applicants: F5 Networks, Inc.
- Inventors: William Ross Baumann; Alan B. Mimms
- Web page: https://patentgrep.com/patent/US12003422B1

## CPC

- H04L 47/41: by acting on aggregated flows or links
- H04L 45/7453: using hashing
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- 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

Methods, non-transitory computer readable media, network traffic manager apparatuses, and systems that assist with network packet switching based on packet data includes receiving a plurality of network packets. Next, header data and payload data is separated for each of the plurality of received network packets. Next, digest data is created from the separated header data for each of the plurality of network packets. One or more network actions are identified for each of the plurality of network packets based on the corresponding created digest data. The identified one or more network actions are performed on the separated header data and the payload data.

## Claims

### Claim 1

A method for managing network packets, the method implemented by a network traffic management system comprising one or more network traffic apparatuses, client devices, or server devices, the method comprising:
separating header data and payload data for a network packet;
creating, exclusively with a field programmable gate array (FPGA) device within a network traffic manager apparatus, digest data from the separated header data for the network packet;
assigning the digest data for each of the header data to a specific processor of a plurality of processors, wherein the specific processor is a separate processor from the FPGA device;
identifying a network action for the network packet based on the created digest data for each of the header data, wherein the identified network action comprises:
adding, changing or deleting a MAC address from the network packet;
adding, changing or deleting an IP address from the network packet;
switching the network packet to a new destination;
routing the network packet to a next-hop;
decrementing the network packet's time-to-live;
dropping the network packet; or
transforming the header data or tunnel data of the network packet; and
performing, exclusively with the assigned separate specific processor of the plurality of processors, the identified network action on the separated header data and the payload data, wherein the specific processor is selected based on the created digest data for each of the header data.

### Claim 2 (depends on 1)

The method as set forth in claim 1 further comprising caching the separated payload data until the performing.

### Claim 3 (depends on 1)

The method as set forth in claim 1 wherein the identifying further comprises:
identifying a hash value in the created digest data; and
identifying the network action based on the identified hash value.

### Claim 4 (depends on 1)

The method as set forth in claim 1 further comprising sending the created digest data to the specific processor for identifying and performing the network action.

### Claim 5 (depends on 1)

The method as set forth in claim 1 wherein the digest data comprises a length of the packet, data associated with the validity of the packet or the length of the packet, a type of the network packet, port data, trunk data, VLAN data, tunnel data, listener match data, destination port data, dis-aggregator hash port data, hash of the IP and the port address, a flow key associated with the source/destination IP and port address, or combinations thereof, and wherein the digest data is entered into a continuous data structure where the digest data is processed in an order that it arrives.

### Claim 6

A non-transitory computer readable medium having stored thereon instructions for managing network packets comprising executable code which when executed by one or more processors, causes the processors to:
separate header data and payload data for a network packet;
create, exclusively with a field programmable gate array (FPGA) device within a network traffic manager apparatus, digest data from the separated header data for the network packet;
assign the digest data for each of the header data to a specific processor of a plurality of processors, wherein the specific processor is a separate processor from the FPGA device;
identify a network action for the network packet based on the created digest data for each of the header data, wherein the identified network action comprises:
adding, changing or deleting a MAC address from the network packet;
adding, changing or deleting an IP address from the network packet;
switching the network packet to a new destination;
routing the network packet to a next-hop;
decrementing the network packet's time-to-live;
dropping the network packet; or
transforming the header data or tunnel data of the network packet; and
perform, exclusively with the assigned specific processor of the plurality of processors, the identified network action on the separated header data and the payload data, wherein the specific processor is selected based on the created digest data for each of the header data.

### Claim 7 (depends on 6)

The medium as set forth in claim 6 further comprises, cache the separated payload data.

### Claim 8 (depends on 6)

The medium as set forth in claim 6 wherein the identifying further comprises:
identify a hash value in the created digest data; and
identify the network action based on the identified hash value.

### Claim 9 (depends on 6)

The medium as set forth in claim 6 further comprises, send the created digest data to the specific processor for identifying and performing the network action.

### Claim 10 (depends on 6)

The medium as set forth in claim 6 wherein the digest data comprises a length of the packet, data associated with the validity of the packet or the length of the packet, a type of the network packet, port data, trunk data, VLAN data, tunnel data, listener match data, destination port data, dis-aggregator hash port data, hash of the IP and the port address, a flow key associated with the source/destination IP and port address, or combinations thereof, and wherein the digest data is entered into a continuous data structure where the digest data is processed in an order that it arrives.

### Claim 11

A network traffic manager apparatus, comprising memory comprising programmed instructions stored in the memory and one or more processors configured to be capable of executing the programmed instructions stored in the memory to:
separate header data and payload data for a network packet;
create, exclusively with a field programmable gate array (FPGA) device within a network traffic manager apparatus, digest data from the separated header data for the network packet;
assign the digest data for each of the header data to a specific processor of a plurality of processors, wherein the specific processor is a separate processor from the FPGA device;
identify a network action for the network packet based on the created digest data for each of the header data, wherein the identified network action comprises:
adding, changing or deleting a MAC address from the network packet;
adding, changing or deleting an IP address from the network packet;
switching the network packet to a new destination;
routing the network packet to a next-hop;
decrementing the network packet's time-to-live;
dropping the network packet; or
transforming the header data or tunnel data of the network packet; and
perform, exclusively with the assigned specific processor of the plurality of processors, the identified network action on the separated header data and the payload data, wherein the specific processor is selected based on the created digest data for each of the header data.

### Claim 12 (depends on 11)

The apparatus as set forth in claim 11 wherein the one or more processors are further configured to be capable of executing the programmed instructions stored in the memory to cache the separated payload data.

### Claim 13 (depends on 11)

The apparatus as set forth in claim 11 wherein the one or more processors are further configured to be capable of executing the programmed instructions stored in the memory wherein the identifying further comprises:
identify a hash value in the created digest data; and
identify the network action based on the identified hash value.

### Claim 14 (depends on 11)

The apparatus as set forth in claim 11 wherein the one or more processors are further configured to be capable of executing the programmed instructions stored in the memory to send the created digest data to the specific processor for identifying and performing the network action.

### Claim 15 (depends on 11)

The apparatus as set forth in claim 11 wherein the digest data comprises a length of the packet, data associated with the validity of the packet or the length of the packet, a type of the network packet, port data, trunk data, VLAN data, tunnel data, listener match data, destination port data, dis-aggregator hash port data, hash of the IP and the port address, a flow key associated with the source/destination IP and port address, or combinations thereof, and wherein the digest data is entered into a continuous data structure where the digest data is processed in an order that it arrives.

### Claim 16

A network traffic management system, comprising one or more traffic management apparatuses, client devices, or server devices, the network traffic management system comprising memory comprising programmed instructions stored thereon and one or more processors configured to be capable of executing the stored programmed instructions to:
separate header data and payload data for a network packet;
create, exclusively with a field programmable gate array (FPGA) device within a network traffic manager apparatus, digest data from the header data for the network packet;
assign the digest data for each of the header data to a specific processor of a plurality of processors, wherein the specific processor is a separate processor from the FPGA device;
identify a network action for the network packet based on the created digest data for each of the header data, wherein the identified network action comprises:
adding, changing or deleting a MAC address from the network packet;
adding, changing or deleting an IP address from the network packet;
switching the network packet to a new destination;
routing the network packet to a next-hop;
decrementing the network packet's time-to-live;
dropping the network packet; or
transforming the header data or tunnel data of the network packet; and
perform, exclusively with the assigned specific processor of the plurality of processors, the identified network action on the separated header data and the payload data, wherein the specific processor is selected based on the created digest data for each of the header data.

### Claim 17 (depends on 16)

The network traffic management system of claim 16, wherein the one or more processors are further configured to be capable of executing the programmed instructions stored in the memory to cache the separated payload data.

### Claim 18 (depends on 16)

The network traffic management system of claim 16, wherein the one or more processors are further configured to be capable of executing the programmed instructions stored in the memory wherein the identifying further comprises:
identify a hash value in the created digest data; and
identify the network action based on the identified hash value.

### Claim 19 (depends on 16)

The network traffic management system of claim 16, wherein the one or more processors are further configured to be capable of executing the programmed instructions stored in the memory to send the created digest data to the specific processor for identifying and performing the network action.

### Claim 20 (depends on 16)

The network traffic management system of claim 16 wherein the digest data comprises a length of the packet, data associated with the validity of the packet or the length of the packet, a type of the network packet, port data, trunk data, VLAN data, tunnel data, listener match data, destination port data, dis-aggregator hash port data, hash of the IP and the port address, a flow key associated with the source/destination IP and port address, or combinations thereof, and wherein the digest data is entered into a continuous data structure where the digest data is processed in an order that it arrives.
