# US 11,121,972 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,972 B2
- Document ID: US11121972B2
- Status: Granted
- Kind: B2
- Application number: 16/524,036
- 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/US11121972B2

## 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. A frequency of use of the multicast filtering address is determined and, based on the frequency of use of the multicast filtering address, the multicast filtering address is stored in either a multicast filtering store of the network adapter or a local filtering store of a respective 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 a number of 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 frequency of use of the multicast filtering address to filter the incoming multicast messages; and
based on the frequency of use of the multicast filtering address, store the multicast filtering address in either a multicast filtering store of the network adapter or a local filtering store of a respective virtual machine.

### Claim 2 (depends on 1)

The system of claim 1, wherein the network adapter is configured to store the multicast filtering address in the local filtering store of the respective virtual machine in response to determining that the multicast filtering address is used less frequency than other multicast filtering addresses of the respective virtual machine.

### Claim 3 (depends on 1)

The system of claim 1, wherein the network adapter is configured to store the multicast filtering address in the local filtering store of the respective virtual machine in response to determining that the multicast filtering address is used less frequency than other multicast filtering addresses of the respective virtual machine stored in the multicast filtering store of the network adapter.

### Claim 4 (depends on 1)

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

### Claim 5 (depends on 1)

The system of claim 1, wherein the respective virtual machine is configured to allocate a region of a memory of the respective 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 there is space in the local filtering store of the respective virtual machine for storing the multicast filtering address therein.

### Claim 7 (depends on 1)

The system of claim 1, wherein the network adapter is configured to:
determine whether there is space in the local filtering store of the respective virtual machine for storing the multicast filtering address therein; and
responsive to determining that space in the local filtering store of the respective virtual machine is insufficient for storing the multicast filtering address therein, transition from a filtering mode of operation to a multicast all mode of operation.

### 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 frequency of use of the multicast filtering address by the network adapter to filter the incoming multicast messages; and
based on the frequency of use of the multicast filtering address, storing the multicast filtering address in either a multicast filtering store of the network adapter or a local filtering store of a respective virtual machine.

### Claim 9 (depends on 8)

The method of claim 8, wherein storing includes storing the multicast filtering address in the local filtering store of the respective virtual machine in response to determining that the multicast filtering address is used less frequency than other multicast filtering addresses of the respective virtual machine.

### Claim 10 (depends on 8)

The method of claim 8, wherein storing includes storing the multicast filtering address in the local filtering store of the respective virtual machine in response to determining that the multicast filtering address is used less frequency than other multicast filtering addresses of the respective virtual machine stored in the multicast filtering store of the network adapter.

### Claim 11 (depends on 8)

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

### Claim 12 (depends on 8)

The method of claim 8, further comprising determining whether there is space in the local filtering store of the respective virtual machine for storing the multicast filtering address therein.

### Claim 13 (depends on 8)

The method of claim 8, further comprising:
determining whether there is space in the local filtering store of the respective virtual machine for storing the multicast filtering address therein; and
responsive to determining that space in the local filtering store of the respective virtual machine is insufficient for storing the multicast filtering address therein, transitioning from a filtering mode of operation to a multicast all mode of operation.

### Claim 14 (depends on 8)

The method of claim 8, further comprising swapping filtering data between the local filtering store and the multicast filtering store of the network adapter based on the frequency.

### 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 frequency of use of the multicast filtering address by the network adapter to filter the incoming multicast messages; and
based on the frequency of use of the multicast filtering address, store the multicast filtering address in either a multicast filtering store of the network adapter or a local filtering store of a respective virtual machine.

### Claim 16 (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 local filtering store of the respective virtual machine in response to determining that the multicast filtering address is used less frequency than other multicast filtering addresses of the respective virtual machine.

### 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 local filtering store of the respective virtual machine in response to determining that the multicast filtering address is used less frequency than other multicast filtering addresses of the respective virtual machine stored in the multicast filtering store of the network adapter.

### Claim 18 (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 a region of a memory on the respective virtual machine reachable by the network adapter.

### Claim 19 (depends on 15)

The computer program product of claim 15, wherein the computer readable program code is configured to determine whether there is space in the local filtering store of the respective virtual machine for storing the multicast filtering address therein.

### Claim 20 (depends on 15)

The computer program product of claim 15, wherein the computer readable program code is configured to:
determine whether there is space in the local filtering store of the respective virtual machine for storing the multicast filtering address therein; and
responsive to determining that space in the local filtering store of the respective virtual machine is insufficient for storing the multicast filtering address therein, transition from a filtering mode of operation to a multicast all mode of operation.
