# US 11,121,973 B2 · Multicast message filtering in virtual environments

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

- Number: US 11,121,973 B2
- Document ID: US11121973B2
- Status: Granted
- Kind: B2
- Application number: 16/524,039
- Filed: 2019-07-27
- Published: 2019-11-14
- Granted: 2021-09-14
- Earliest claimed: 2012-02-02
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Omar Cardona; James B. Cunningham; Baltazar De Leon, III; Matthew R. Ochs
- Web page: https://patentgrep.com/patent/US11121973B2

## CPC

- G06F 9/542: {Event management; Broadcasting; Multicasting; Notifications}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- H04L 12/185: {with management of multicast group membership}
- H04L 45/745: Address table lookup; Address filtering
- H04L 63/0227: {Filtering policies (mail message filtering H04L51/212)}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- G06F 2209/543: Local
- H04L 51/212: using filtering or selective blocking
- 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

Various systems, processes, and products may be used to filter multicast messages in virtual environments. In one implementation, a multicast filtering address is received by a network adapter from at least one of a number of virtual machines. A priority of the multicast filtering address is determined and, based on the priority, the multicast filtering address is stored in either a multicast filtering store of the network adapter or a local filtering store of the at least one virtual machine.

## Claims

### Claim 1

A system comprising:
a computer system having hardware resources;
a virtualizer engine configured to virtualize the hardware resources to provide a plurality of virtual machines; and
a network adapter configured to:
register a multicast filtering address received from at least one of the virtual machines, the multicast filtering address identifying a destination address for filtering incoming multicast messages sent from a source to a group of the virtual machines using the destination address;
determine a priority assigned to the multicast filtering address to filter the incoming multicast messages; and
based on the priority, store the multicast filtering address in either a multicast filtering store of the network adapter or a local filtering store of the at least one virtual machine.

### Claim 2 (depends on 1)

The system of claim 1, wherein the network adapter is configured to determine an amount of filtering data corresponding to the at least one virtual machine that is stored in the multicast filtering store of the network adapter.

### Claim 3 (depends on 1)

The system of claim 1, wherein the network adapter is configured to store the multicast filtering address in the multicast filtering store of the network adapter in response to determining that the priority of the multicast filtering address is greater than a priority of another multicast filtering address.

### Claim 4 (depends on 1)

The system of claim 1, wherein the local filtering store includes a region of a memory on the at least one virtual machine reachable by the network adapter.

### Claim 5 (depends on 1)

The system of claim 1, wherein the at least one virtual machine is configured to allocate a region of a memory of the at least one virtual machine as the local filtering store.

### Claim 6 (depends on 1)

The system of claim 1, wherein the network adapter is configured to determine whether space is available in the multicast filtering store of the network adapter.

### Claim 7 (depends on 1)

The system of claim 1, wherein the network adapter is configured to move some amount of filtering data corresponding to the at least one virtual machine from the multicast filtering store of the network adapter to the local filtering store of the at least one virtual machine based on the priority.

### Claim 8

A method comprising:
registering a multicast filtering address received from a number of virtual machines by a network adapter, the multicast filtering address identifying a destination address for filtering incoming multicast messages sent from a source to a group of the virtual machines using the destination address;
determining a priority of the multicast filtering address to filter the incoming multicast messages; and
based on the priority, storing the multicast filtering address in either a multicast filtering store of the network adapter or a local filtering store of the at least one virtual machine.

### Claim 9 (depends on 8)

The method of claim 8, further comprising determining an amount of filtering data corresponding to the at least one virtual machine that is stored in the multicast filtering store of the network adapter.

### Claim 10 (depends on 8)

The method of claim 8, wherein storing includes storing the multicast filtering address in the multicast filtering store of the network adapter in response to determining that the priority of the multicast filtering address is greater than a priority of another multicast filtering address.

### Claim 11 (depends on 8)

The method of claim 8, further comprising allocating a region of a memory of the at least one virtual machine as the local filtering store.

### Claim 12 (depends on 8)

The method of claim 8, further comprising determining whether space is available in the multicast filtering store of the network adapter.

### Claim 13 (depends on 8)

The method of claim 8, further comprising moving some amount of filtering data corresponding to the at least one virtual machine from the multicast filtering store of the network adapter to the local filtering store of the at least one virtual machine based on the priority.

### Claim 14 (depends on 8)

The method of claim 8, further comprising reserving some amount of space in the multicast filtering store of the network adapter for multicast filtering address having a particular priority.

### Claim 15

A computer program product for multicast filtering in virtual environments, the computer program product comprising:
a non-transitory computer readable medium having computer readable program code embodied therewith, the computer readable program code configured to:
register a multicast filtering address received from a number of virtual machines by a network adapter, the multicast filtering address identifying a destination address for filtering incoming multicast messages sent from a source to a group of the virtual machines using the destination address;
determine a priority of the multicast filtering address to filter the incoming multicast messages; and
based on the priority, store the multicast filtering address in either a multicast filtering store of the network adapter or a local filtering store of the at least one virtual machine.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein the computer readable program code is configured to determine an amount of filtering data corresponding to the at least one virtual machine that is stored in the multicast filtering store of the network adapter.

### Claim 17 (depends on 15)

The computer program product of claim 15, wherein the computer readable program code is configured to store the multicast filtering address in the multicast filtering store of the network adapter in response to determining that the priority of the multicast filtering address is greater than a priority of another multicast filtering address.

### Claim 18 (depends on 15)

The computer program product of claim 15, wherein the computer readable program code is configured to determine whether space is available in the multicast filtering store of the network adapter.

### Claim 19 (depends on 15)

The computer program product of claim 15, wherein the computer readable program code is configured to move some amount of filtering data corresponding to the at least one virtual machine from the multicast filtering store of the network adapter to the local filtering store of the at least one virtual machine based on the priority.

### Claim 20 (depends on 15)

The computer program product of claim 15, wherein the computer readable program code is configured to reserve some amount of space in the multicast filtering store of the network adapter for multicast filtering address having a particular priority.
