# US 10,374,951 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 10,374,951 B2
- Document ID: US10374951B2
- Status: Granted
- Kind: B2
- Application number: 15/661,836
- Filed: 2017-07-27
- Published: 2017-11-09
- Granted: 2019-08-06
- 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/US10374951B2

## 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 particular implementations, a system, process, and product for filtering multicast messages in virtual environments may include the ability to, responsive to receiving a multicast message including a destination address, examine a local filtering store of the network adapter for a multicast filtering address matching the destination address. The message is sent to respective virtual machines if the destination address matches the multicast filtering address found in the local filtering store for the respective virtual machines. Responsive to determining that the destination address does not match any multicast filtering address found in the local filtering store, a determination is made whether the local filtering store is full and, if so, the multicast message is dropped.

## 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, a number of the virtual machines configured to receive multicast messages; and
a network adapter configured to:
responsive to receiving a multicast message including a destination address, examine a local filtering store of the network adapter for a multicast filtering address matching the destination address;
send the message to respective virtual machines if the destination address matches the multicast filtering address found in the local filtering store for the respective virtual machines;
responsive to determining that the destination address does not match any multicast filtering address found in the local filtering store, determine whether the local filtering store is full; and
responsive to determining that the local filtering store is not full, drop the multicast message.

### Claim 2 (depends on 1)

The system of claim 1, wherein the network adapter is configured to, responsive to determining that the local filtering store is full, analyze filtering stores of the virtual machines for the multicast filtering address matching the destination address.

### Claim 3 (depends on 2)

The system of claim 2, wherein the network adapter is configured to drop the message if a match for the destination address is not found in the filtering stores of the virtual machines.

### Claim 4 (depends on 1)

The system of claim 1, wherein the network adapter is configured to receive from the virtual machines a registration of the destination address for the multicast filtering address.

### Claim 5 (depends on 2)

The system of claim 2, wherein the network adapter is further configured to identify the virtual machines to analyze for a match for the destination address.

### Claim 6 (depends on 1)

The system of claim 1, wherein the network adapter is further configured to maintain a reference count indicating a quantity of the virtual machines having registered a particular destination address with the network adapter.

### Claim 7 (depends on 1)

The system of claim 1, wherein the network adapter is further configured to select whether to store the multicast filtering address in the local filtering store or the filtering store of the virtual machines.

### Claim 8

A method comprising:
determining whether a multicast message has been received at a network adapter, the message including a destination address, the network adapter configured to support multicast message filtering for a plurality of virtual machines;
responsive to receiving the multicast message, examining a local filtering store of the network adapter for a multicast filtering address matching the destination address;
sending the message to respective virtual machines if the destination address matches the multicast filtering address found in the local filtering store for the respective virtual machines;
responsive to determining that the destination address does not match any multicast filtering address found in the local filtering store, determining whether the local filtering store is full; and
responsive to determining that the local filtering store is not full, dropping the multicast message.

### Claim 9 (depends on 8)

The method of claim 8, further comprising, responsive to determining that the local filtering store is full, analyzing by the network adapter filtering stores of the virtual machines for the multicast filtering address matching the destination address.

### Claim 10 (depends on 9)

The method of claim 9, further comprising dropping the message if a match for the destination address is not found in the filtering stores of the virtual machines.

### Claim 11 (depends on 8)

The method of claim 8, further comprising receiving by the network adapter from the virtual machines a registration of the destination address for the multicast filtering address.

### Claim 12 (depends on 9)

The method of claim 9, further comprising identifying by the network adapter the virtual machines to analyze for a match for the destination address.

### Claim 13 (depends on 8)

The method of claim 8, further comprising maintaining a reference count indicating a quantity of the virtual machines having registered a particular destination address with the network adapter.

### Claim 14 (depends on 8)

The method of claim 8, further comprising selecting, by the network adapter, whether to store the multicast filtering address in the local filtering store or the filtering store of the virtual machines.

### 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:
determine whether a multicast message has been received at a network adapter, the message including a destination address, the network adapter configured to support multicast message filtering for a plurality of virtual machines;
responsive to receiving the multicast message, examine a local filtering store of the network adapter for a multicast filtering address matching the destination address;
send the message to respective virtual machines if the destination address matches the multicast filtering address found in the local filtering store for the respective virtual machines;
responsive to determining that the destination address does not match any multicast filtering address found in the local filtering store, determine whether the local filtering store is full; and
responsive to determining that the local filtering store is not full, drop the multicast message.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein the computer readable program code is configured to, responsive to determining that the local filtering store is full, analyze filtering stores of the virtual machines for the multicast filtering address matching the destination address.

### Claim 17 (depends on 16)

The computer program product of claim 16, wherein the computer readable program code is configured to drop the message if a match for the destination address is not found in the filtering stores of the virtual machines.

### Claim 18 (depends on 15)

The computer program product of claim 15, wherein the computer readable program code is configured to receive, by the network adapter from the virtual machines, a registration of the destination address for the multicast filtering address.

### Claim 19 (depends on 15)

The computer program product of claim 15, wherein the computer readable program code is configured to maintain a reference count indicating a quantity of the virtual machines having registered a particular destination address with the network adapter.

### Claim 20 (depends on 15)

The computer program product of claim 15, wherein the computer readable program code is configured to select whether to store the multicast filtering address in the local filtering store or the filtering store of the virtual machines.
