# US 2019/0173689 A1 · Methods and systems to offload overlay network packet encapsulation to hardware

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

- Number: US 2019/0173689 A1
- Document ID: US20190173689A1
- Status: Published application
- Kind: A1
- Application number: 16/199,305
- Filed: 2018-11-26
- Published: 2019-06-06
- Earliest claimed: 2014-06-30
- Assignees: Nicira, Inc.
- Applicants: Nicira, Inc.
- Inventors: Shoby Cherian; Raghavendra Subbarao Narahari Venkata; Tanuja Ingale
- Web page: https://patentgrep.com/patent/US20190173689A1

## CPC

- H04L 12/4633: {Interconnection of networks using encapsulation techniques, e.g. tunneling}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- H04L 45/745: Address table lookup; Address filtering
- H04L 49/354: for supporting virtual local area networks [VLAN]
- H04L 69/22: Parsing or analysis of headers
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- H04L 49/9068: {in the network interface card}
- H04L 61/103: across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
- H04L 2012/4629: {using multilayer switching, e.g. layer 3 switching}
- H04L 2101/622: Layer-2 addresses, e.g. medium access control [MAC] addresses
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for offloading packet encapsulation for an overlay network is provided. The method, at a virtualization software of a host, sends a mapping table of the overlay network to a physical network interface controller (NIC) associated with the host. The mapping table maps the identification of each of a set of virtual machine (VM) of a tenant on the host to an identification of a tunnel on the overlay network. The method, at the virtualization software, receives a packet from a VM of the tenant. The method sends the packet to the physical NIC. The method, at the physical NIC, encapsulates the packet for transmission over the overlay network by using the mapping table. The method of claim also tags the packet by the virtualization software as a packet that requires encapsulation for transmission in the overlay network prior to sending the packet to the physical NIC.

## Claims

### Claim 1

A method for offloading packet encapsulation for an overlay network, the method comprising:
at a virtualization software of a host, sending a mapping table of the overlay network to a physical network interface controller (NIC) associated with the host, the mapping table associating an identification of each of a set of virtual machine (VM) of a tenant on the host with an identification of a tunnel on the overlay network;
at the virtualization software, receiving a packet from a VM of the tenant;
sending the packet to the physical NIC; and
at the physical NIC, encapsulating the packet, for transmission through the tunnel associated with the VM, using the mapping table.

### Claim 2 (depends on 1)

The method of claim 1 further comprising tagging the packet by the virtualization software as a packet that requires encapsulation for transmission in the overlay network prior to sending the packet to the physical NIC.

### Claim 3 (depends on 1)

The method of claim 1 further comprising updating the mapping table by the virtualization software after receiving a control event in a set of control events trigging the update of the mapping table; and
sending the updated mapping table to the physical NIC.

### Claim 4 (depends on 3)

The method of claim 3, wherein the set of control events comprises a VM joining the overly network, a VM leaving the overlay network, a VM of the tenant migrating to the host from another host, a VM of the tenant migrating from the host to another host, and receiving incoming packets for the overlay network at the physical NIC from an entity outside of the host.

### Claim 5 (depends on 1)

The method of claim 1, wherein the identification of the tunnel comprises an identification of an end of the tunnel terminating on the host, wherein the mapping table further associates the identification of each VM to an identification of the overlay network.

### Claim 6 (depends on 1)

The method of claim 1 further comprising:
at the physical NIC, receiving a packet destined for one of the VMs of the tenant;
removing an outer layer of the received packet, the outer layer comprising information corresponding to the overlay network; and
sending the packet after removing the outer layer to the virtualization software.

### Claim 7 (depends on 6)

The method of claim 6, wherein the packet comprises an identification of a source VM of the tenant sending the packet, an identification of an end of the tunnel corresponding to the source VM, and an identification of the overlay network.

### Claim 8 (depends on 7)

The method of claim 7 further comprising:
at the physical NIC, learning any changes to the mapping table based on the information received from the packet; and
sending the changes to the virtualization software.

### Claim 9 (depends on 8)

The method of claim 8 further comprising updating the mapping table by the virtualization software based on the learned changes.

### Claim 10 (depends on 1)

The method of claim 1, wherein the overlay network is a virtual extensible local area network (VXLAN).

### Claim 11

A virtual machine host comprising:
a physical network interface controller (NIC);
a virtualization software, the virtualization software configured to:
send a mapping table of the overlay network to the NIC, the mapping table associating an identification of each of a set of virtual machine (VM) of a tenant on the host with an identification of a tunnel on the overlay network;
receive a packet from a VM of the tenant; and
send the packet to the physical NIC,
wherein the physical NIC is configured to encapsulate the packet, for transmission through the tunnel associated with the VM, using the mapping table.

### Claim 12 (depends on 11)

The virtual machine host of claim 11, the virtualization software further configured to tag the packet as a packet that requires encapsulation for transmission in the overlay network prior to sending the packet to the physical NIC.

### Claim 13 (depends on 11)

The virtual machine host of claim 11, the virtualization software further configured to:
update the mapping table after receiving a control event in a set of control events trigging the update of the mapping table; and
send the updated mapping table to the physical NIC.

### Claim 14 (depends on 13)

The virtual machine host of claim 13, wherein the set of control events comprises a VM joining the overly network, a VM leaving the overlay network, a VM of the tenant migrating to the host from another host, a VM of the tenant migrating from the host to another host, and receiving incoming packets for the overlay network at the physical NIC from an entity outside of the host.

### Claim 15 (depends on 11)

The virtual machine host of claim 11, wherein the identification of the tunnel comprises an identification of an end of the tunnel terminating on the host, wherein the mapping table further associates the identification of each VM to an identification of the overlay network.

### Claim 16 (depends on 11)

The virtual machine host of claim 11, the physical NIC further configured to:
receive a packet destined for one of the VMs of the tenant;
remove an outer layer of the received packet, the outer layer comprising information corresponding to the overlay network; and
send the packet after removing the outer layer to the virtualization software.

### Claim 17 (depends on 16)

The virtual machine host of claim 16, wherein the packet comprises an identification of a source VM of the tenant sending the packet, an identification of an end of the tunnel corresponding to the source VM, and an identification of the overlay network.

### Claim 18 (depends on 17)

The virtual machine host of claim 17, the physical NIC further configured to:
learn any changes to the mapping table based on the information received from the packet; and
send the changes to the virtualization software.

### Claim 19 (depends on 18)

The virtual machine host of claim 18, the virtualization software further configured to update the mapping table based on the learned changes.

### Claim 20 (depends on 11)

The virtual machine host of claim 11 further comprising a storage to store the mapping table.
