# US 9,519,501 B1 · Hardware assisted flow acceleration and L2 SMAC management in a heterogeneous distributed multi-tenant virtualized clustered system

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

- Number: US 9,519,501 B1
- Document ID: US9519501B1
- Status: Granted
- Kind: B1
- Application number: 14/041,838
- Filed: 2013-09-30
- Granted: 2016-12-13
- Earliest claimed: 2012-09-30
- Assignees: F5 Networks, Inc.
- Applicants: F5 Networks, Inc.
- Inventors: Hao Cai; Timothy S. Michels; Paul I. Szabo
- Web page: https://patentgrep.com/patent/US9519501B1

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- H04L 41/0893: Assignment of logical groups to network elements
- H04L 41/0895: Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
- H04L 61/5038: for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
- H04L 61/5061: Pools of addresses
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- H04L 2101/622: Layer-2 addresses, e.g. medium access control [MAC] addresses
- 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 method performed by a hypervisor in a virtual network traffic management cluster, the method comprising: assigning a set of continuous available source media access control (SMAC) addresses to one or more virtual network traffic management devices in a network traffic management cluster, the one or more virtual network traffic management devices configured to handle connections for virtual guest instances; assigning a region of predetermined size in a SMAC-index mapping table to a corresponding virtual network traffic management device; wherein the assigned SMAC addresses and assigned region in the SMAC-index mapping table are accessible by the virtual guest instances; and maintaining SMAC-index pool allocation to virtual guest instances handled by corresponding virtual network traffic management devices.

## Claims

### Claim 1

A method for facilitating network address translation in a virtualized network traffic management cluster, executable by one or more traffic management devices with at least one processor executing the method, the method comprising steps to:
assign, by a first processor on the one or more network traffic management devices, a set of continuous available source media access control (SMAC) addresses stored in a region of a MAC table to a network traffic management cluster comprising one or more virtual network traffic management devices;
establish, by a second processor on the one or more network traffic management devices, a connection in response to a request from one of the virtual network traffic management devices that received a packet associated with a new flow;
insert, by a third processor on the one or more network traffic management devices, a flow table entry comprising an index to the MAC table into a flow table in a hardware-based data flow segment (DFS), wherein the flow table entry can be identified based on a key generated from a flow signature of the packet and the index corresponds to a MAC table entry in the MAC table storing one of the SMAC addresses corresponding to the one of the virtual network traffic management devices; and
transform, by a fourth processor on the one or more network traffic management devices, the packet associated with the connection using the one of the SMAC addresses as a source address of the received packet and send the received packet to a destination network device.

### Claim 2 (depends on 1)

The method of claim 1, further comprising employing at least one of the first, second, third, or fourth processors on the one or more network traffic management devices to:
generate the key based on the flow signature of another received packet;
retrieve the flow table entry using the key and the MAC table entry using the index retrieved from the flow table entry; and
transform the another received packet using the MAC address.

### Claim 3 (depends on 1)

The method of claim 1, wherein the at least a portion of the MAC table has a base boundary and a limit boundary, wherein storing of data associated with the virtual network traffic management devices is performed from the limit boundary in a converging manner to the base boundary.

### Claim 4 (depends on 1)

The method of claim 1, further comprising employing at least one of the first, second, third, or fourth processors on the one or more network traffic management devices to enforce use of the set of SMAC addresses assigned to the virtual network traffic management devices.

### Claim 5 (depends on 1)

The method of claim 1, further comprising employing at least one of the first, second, third, or fourth processors on the one or more network traffic management devices to:
receive a request from another one of the virtual network traffic management devices for one or more additional SMAC addresses; and
allocate additional space in the MAC table for, and assign to the another one of the virtual network traffic management devices, the one or more additional SMAC addresses.

### Claim 6 (depends on 1)

The method as set forth in claim 1, wherein the first processor, the second processor, the third, and the fourth processor are the same processor.

### Claim 7 (depends on 1)

The method as set forth in claim 1, wherein two or more of the first processor, the second processor, the third processor, or the fourth processor are on a same one of the network traffic management devices.

### Claim 8

A non-transitory computer readable medium having stored thereon instructions for facilitating network address translation in a virtualized, comprising executable code which when executed by one or more processors causes the processors to perform steps comprising:
assigning a set of continuous available source media access control (SMAC) addresses stored in a region of a MAC table to a network traffic management cluster comprising one or more virtual network traffic management devices;
establishing a connection in response to a request from one of the virtual network traffic management devices that received a packet associated with a new flow;
inserting a flow table entry comprising an index to the MAC table into a flow table in a hardware-based data flow segment (DFS), wherein the flow table entry can be identified based on a key generated from a flow signature of the packet and the index corresponds to a MAC table entry in the MAC table storing one of the SMAC addresses corresponding to the one of the virtual network traffic management devices; and
transforming the packet associated with the connection using the one of the SMAC addresses as a source address of the received packet and send the received packet to a destination network device.

### Claim 9 (depends on 8)

The non-transitory computer readable medium of claim 8, further having stored thereon executable code which when executed by the processors further causes the processors to perform one or more additional steps comprising:
generating the key based on the flow signature of another received packet;
retrieving the flow table entry using the key and the MAC table entry using the index retrieved from the flow table entry; and
transforming the another received packet using the MAC address.

### Claim 10 (depends on 8)

The non-transitory computer readable medium of claim 8, wherein the at least a portion of the MAC table has a base boundary and a limit boundary, wherein storing of data associated with the virtual network traffic management devices is performed from the limit boundary in a converging manner to the base boundary.

### Claim 11 (depends on 8)

The non-transitory computer readable medium of claim 8, further having stored thereon executable code which when executed by the processors further causes the processors to perform one or more additional steps comprising enforcing use of the set of SMAC addresses assigned to the virtual network traffic management devices.

### Claim 12 (depends on 8)

The non-transitory computer readable medium of claim 8, further having stored thereon executable code which when executed by the processors further causes the processors to perform one or more additional steps comprising:
receiving a request from another one of the virtual network traffic management devices for one or more additional SMAC addresses; and
allocating additional space in the MAC table for, and assign to the another one of the virtual network traffic management devices, the one or more additional SMAC addresses.

### Claim 13

One or more network traffic management devices comprising:
memory comprising programmed instructions stored in the memory; and
one or more processor configured to be capable of executing the programmed instructions stored in the memory to:
assign a set of continuous available source media access control (SMAC) addresses stored in a region of a MAC table to a network traffic management cluster comprising one or more virtual network traffic management devices;
establish a connection in response to a request from one of the virtual network traffic management devices that received a packet associated with a new flow;
insert a flow table entry comprising an index to the MAC table into a flow table in a hardware-based data flow segment (DFS), wherein the flow table entry can be identified based on a key generated from a flow signature of the packet and the index corresponds to a MAC table entry in the MAC table storing one of the SMAC addresses corresponding to the one of the virtual network traffic management devices; and
transform the packet associated with the connection using the one of the SMAC addresses as a source address of the received packet and send the received packet to a destination network device.

### Claim 14 (depends on 13)

The one or more network traffic management devices of claim 13, wherein the one or more processor are further configured to be capable of executing the programmed instructions stored in the memory to:
generate the key based on the flow signature of another received packet;
retrieve the flow table entry using the key and the MAC table entry using the index retrieved from the flow table entry; and
transform the another received packet using the MAC address.

### Claim 15 (depends on 13)

The one or more network traffic management devices of claim 13, wherein the at least a portion of the MAC table has a base boundary and a limit boundary, wherein storing of data associated with the virtual network traffic management devices is performed from the limit boundary in a converging manner to the base boundary.

### Claim 16 (depends on 13)

The one or more network traffic management devices of claim 13, wherein the one or more processor are further configured to be capable of executing the programmed instructions stored in the memory to enforce use of the set of SMAC addresses assigned to the virtual network traffic management devices.

### Claim 17 (depends on 13)

The one or more network traffic management devices of claim 13, wherein the one or more processor are further configured to be capable of executing the programmed instructions stored in the memory to:
receive a request from another one of the virtual network traffic management devices for one or more additional SMAC addresses; and
allocate additional space in the MAC table for, and assign to the another one of the virtual network traffic management devices, the one or more additional SMAC addresses.

### Claim 18

A method for facilitating network address translation in a virtualized network traffic management cluster, the method comprising:
assigning, by a network traffic management device, a set of continuous available source media access control (SMAC) addresses stored in a region of a MAC table to a network traffic management cluster comprising one or more virtual network traffic management devices;
establishing, by the network traffic management device, a connection in response to a request from one of the virtual network traffic management devices that received a packet associated with a new flow;
inserting, by the network traffic management device, a flow table entry comprising an index to the MAC table into a flow table in a hardware-based data flow segment (DFS), wherein the flow table entry can be identified based on a key generated from a flow signature of the packet and the index corresponds to a MAC table entry in the MAC table storing one of the SMAC addresses corresponding to the one of the virtual network traffic management devices; and
transforming, by the network traffic management device, the packet associated with the connection using the one of the SMAC addresses as a source address of the received packet and send the received packet to a destination network device.
