# US 10,503,565 B2 · System and method for multicasting data between networking interfaces of hypervisors

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

- Number: US 10,503,565 B2
- Document ID: US10503565B2
- Status: Granted
- Kind: B2
- Application number: 15/652,150
- Filed: 2017-07-17
- Published: 2019-01-17
- Granted: 2019-12-10
- Earliest claimed: 2017-07-17
- Assignees: Nicira, Inc.
- Applicants: Nicira, Inc.
- Inventors: Fei Guo; Yonggang Wang; Keyong Sun; Dousheng Zhao; Lele Zhang
- Web page: https://patentgrep.com/patent/US10503565B2

## CPC

- G06F 9/542: {Event management; Broadcasting; Multicasting; Notifications}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- H04L 12/18: for broadcast or conference {, e.g. multicast}
- H04L 12/1886: {with traffic restrictions for efficiency improvement, e.g. involving subnets or subdomains}
- H04L 12/4633: {Interconnection of networks using encapsulation techniques, e.g. tunneling}
- H04L 49/201: Multicast operation; Broadcast operation
- H04L 63/0272: {Virtual private networks}
- G06F 9/546: {Message passing systems or structures, e.g. queues}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- H04L 12/465: {wherein a single frame includes a plurality of VLAN tags}
- H04L 2012/4629: {using multilayer switching, e.g. layer 3 switching}
- 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 host computer and method for multicasting data between networking interfaces of hypervisors in a distributed computer system uses a Virtual Extensible LAN Network Identifier (VNI) assigned to a multicast group and an identifier of a VXLAN Tunnel End Point (VTEP) of the host computer associated to the VNI so that data being multicast for the multicast group can be routed to the networking interfaces via VTEPs associated with the VNI.

## Claims

### Claim 1

A method for multicasting data between networking interfaces of hypervisors in a distributed computer system, the method comprising:
receiving a request to join a particular multicast group from a software process connected to a networking interface of a hypervisor in a host computer at a multicast agent module of the host computer;
sending a query from the multicast agent module to a logical network manager for a Virtual Extensible LAN Network Identifier (VNI) assigned to the particular multicast group;
receiving the VNI assigned to the particular multicast group from the logical network manager at the multicast agent module;
sending a VNI join message to the logical network manager from the multicast agent module to join a Virtual Extensible LAN (VXLAN) segment defined by the VNI; and
sending an identifier of a VXLAN Tunnel End Point (VTEP) of the host computer to the logical network manager from the multicast agent module to be associated with the VNI so that data being multicast for the particular multicast group can be routed to the networking interface via the VTEP.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving multicast data from a source software process connected to a source networking interface of a source hypervisor in a source host computer at a multicast output handler of the source host computer, the source networking interface being a member of the particular multicast group;
attaching the VNI assigned to the particular multicast group to the multicast data by the multicast output handler; and
transmitting the multicast data with the VNI to all VTEPs associated with the particular multicast group.

### Claim 3 (depends on 1)

The method of claim 1, wherein the networking interface of the hypervisor has an Internet Protocol (IP) address.

### Claim 4 (depends on 3)

The method of claim 3, wherein the networking interface of the hypervisor is a VMkernel port of the hypervisor.

### Claim 5 (depends on 4)

The method of claim 4, wherein the software process is a process of a VMkernel connected to the VMkernel port of the hypervisor.

### Claim 6 (depends on 1)

The method of claim 1, wherein the identifier of the VTEP is an Internet Protocol (IP) address.

### Claim 7 (depends on 1)

The method of claim 1, wherein the request to join the particular multicast group is an Internet Group Management Protocol (IGMP) join message.

### Claim 8 (depends on 1)

The method of claim 1, further comprising propagating the identifier of the VTEP of the host computer to other hypervisors associated with the particular multicast group from the network manager.

### Claim 9 (depends on 1)

The method of claim 1, wherein propagating the identifier of the VTEP of the host computer includes sending a VTEP membership message to the other hypervisors associated with the particular multicast group, the VTEP membership message including the VNI and identifiers of VTEPs associated with the VNI.

### Claim 10

A non-transitory computer-readable storage medium containing program instructions for multicasting data between networking interfaces of hypervisors in a distributed computer system, wherein execution of the program instructions by one or more processors of a computer system causes the one or more processors to perform steps comprising:
receiving a request to join a particular multicast group from a software process connected to a networking interface of a hypervisor in a host computer at a multicast agent module of the host computer;
sending a query from the multicast agent module to a logical network manager for a Virtual Extensible LAN Network Identifier (VNI) assigned to the particular multicast group;
receiving the VNI assigned to the particular multicast group from the logical network manager at the multicast agent module;
sending a VNI join message to the logical network manager from the multicast agent module to join a Virtual Extensible LAN (VXLAN) segment defined by the VNI; and
sending an identifier of a VXLAN Tunnel End Point (VTEP) of the host computer to the logical network manager from the multicast agent module to be associated with the VNI so that data being multicast for the particular multicast group can be routed to the networking interface via the VTEP.

### Claim 11 (depends on 10)

The non-transitory computer-readable storage medium of claim 10, wherein the steps further comprise:
receiving multicast data from a source software process connected to a source networking interface of a source hypervisor in a source host computer at a multicast output handler of the source host computer, the source networking interface being a member of the particular multicast group;
attaching the VNI assigned to the particular multicast group to the multicast data by the multicast output handler; and
transmitting the multicast data with the VNI to all VTEPs associated with the particular multicast group.

### Claim 12 (depends on 10)

The non-transitory computer-readable storage medium of claim 10, wherein the networking interface of the hypervisor has an Internet Protocol (IP) address.

### Claim 13 (depends on 12)

The non-transitory computer-readable storage medium of claim 12, wherein the networking interface of the hypervisor is a VMkernel port of the hypervisor.

### Claim 14 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, wherein the software process is a process of a VMkernel connected to the VMkernel port of the hypervisor.

### Claim 15 (depends on 10)

The non-transitory computer-readable storage medium of claim 10, wherein the identifier of the VTEP is an Internet Protocol (IP) address.

### Claim 16 (depends on 10)

The non-transitory computer-readable storage medium of claim 10, wherein the request to join the particular multicast group is an Internet Group Management Protocol (IGMP) join message.

### Claim 17 (depends on 10)

The non-transitory computer-readable storage medium of claim 10, wherein the steps further comprise propagating the identifier of the VTEP of the host computer to other hypervisors associated with the particular multicast group from the network manager.

### Claim 18 (depends on 10)

The non-transitory computer-readable storage medium of claim 10, wherein propagating the identifier of the VTEP of the host computer includes sending a VTEP membership message to the other hypervisors associated with the particular multicast group, the VTEP membership message including the VNI and identifiers of VTEPs associated with the VNI.

### Claim 19

A host computer of a distributed computer system comprising:
memory; and
a processor configured to:
receive a request to join a particular multicast group from a software process connected to a networking interface of a hypervisor in the host computer at a multicast agent module of the host computer;
send a query from the multicast agent module to a logical network manager of the distributed computer system for a Virtual Extensible LAN Network Identifier (VNI) assigned to the particular multicast group;
receive the VNI assigned to the particular multicast group from the logical network manager at the multicast agent module;
send a VNI join message to the logical network manager from the multicast agent module to join a Virtual Extensible LAN (VXLAN) segment defined by the VNI; and
send an identifier of a VXLAN Tunnel End Point (VTEP) of the host computer to the logical network manager from the multicast agent module to be associated with the VNI so that data being multicast for the particular multicast group can be routed to the networking interface via the VTEP.

### Claim 20 (depends on 19)

The host computer of claim 19, wherein the processor is further configured to:
receive multicast data from the software process connected to the networking interface of the hypervisor in the host computer at a multicast output handler of the host computer, the networking interface being a member of the particular multicast group;
attach the VNI assigned to the particular multicast group to the multicast data by the multicast output handler; and
transmit the multicast data with the VNI to all VTEPs associated with the particular multicast group.
