Enhanced Endpoint Multicast Emulation

By employing an overlay layer or VXLAN layer for enhanced endpoint multicast emulation and using smart NICs to manage IGMP messages, the challenges of multicasting in virtual networks are addressed, resulting in improved network efficiency and scalability.

JP2025509120APending Publication Date: 2025-04-11INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024550648
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-03-21
Filing Date
2023-03-01
Publication Date
2025-04-11

AI Technical Summary

Technical Problem

Current computing systems lack effective support for multicasting in virtual networks, as they do not have physical appliances for IGMP that support multi-tenancy, leading to challenges in efficiently managing multicast groups across virtual networks.

Method used

The implementation of enhanced endpoint multicast emulation in a computing environment using an overlay layer or a virtual expandable LAN (VXLAN) layer, which allows for the maintenance of control over multicast groups and intercepts IGMP messages using a smart network card or programmable network card (smart NIC) to manage multicast group membership.

Benefits of technology

This solution enables efficient multicasting in virtual networks by maintaining control over multicast groups and managing membership effectively, thereby improving network efficiency and scalability in multi-tenant environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025509120000001_ABST
    Figure 2025509120000001_ABST
Patent Text Reader

Abstract

Enhanced endpoint multicast emulation in a computing environment is provided, in which the endpoint multicast emulation is used to perform one or more multicast operations on an overlay network by maintaining control over one or more multicast groups using an overlay layer or a virtual extensible LAN ("VXLAN") layer.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates generally to computing systems, and more particularly to various embodiments for providing enhanced endpoint multicast emulation in a computing environment using a computing processor. Summary of the Invention

[0002] According to an embodiment of the present invention, a method is presented for providing enhanced endpoint multicast emulation in a computing environment by one or more processors. One or more multicast operations may be performed on an overlay network using endpoint multicast emulation by maintaining control over one or more multicast groups using an overlay layer or a Virtual Extensible LAN ("VXLAN") layer.

[0003] Embodiments include a computer usable program product that includes a computer readable storage device and program instructions stored on the storage device.

[0004] An embodiment includes a computer system including a processor, a computer readable memory, and a computer readable storage device, and program instructions stored in the storage device for execution by the processor via the memory.

[0005] Thus, in addition to the exemplary method embodiments described above, other exemplary system and computer product embodiments are provided for automated assessment of robustness of machine learning models during adaptive white-box adversarial operations.

[0006] So that the advantages of the invention may be readily understood, a more particular description of the invention briefly described above will be made by reference to specific embodiments which are illustrated in the accompanying drawings, in which: The invention will be described and explained with additional specificity and detail through the use of the accompanying drawings, with the understanding that these drawings are merely illustrative of typical embodiments of the invention and therefore should not be considered as limiting the scope of the invention, and in which: [Brief description of the drawings]

[0007] [Figure 1] FIG. 2 is a block diagram illustrating an exemplary cloud computing node, in accordance with an embodiment of the present invention. [Diagram 2] FIG. 1 is a diagram of a cloud computing environment in accordance with an embodiment of the present invention. [Diagram 3] FIG. 2 is a diagram of abstraction model layers, according to an embodiment of the present invention. [Figure 4] FIG. 2 is a functional block diagram illustrating a broadcast packet processing environment in accordance with an embodiment of the present invention. [Diagram 5] 1 is a functional block diagram illustrating an embodiment of the present invention for providing enhanced endpoint multicast emulation in a computing environment. [Figure 6A] 1A-1C are diagrams of various exemplary embodiments for providing enhanced endpoint multicast emulation in a computing environment in which various aspects of the present invention are implemented. [Figure 6B] 1A-1C are diagrams of various exemplary embodiments for providing enhanced endpoint multicast emulation in a computing environment in which various aspects of the present invention are implemented. [Figure 7] FIG. 13 is a flow chart diagram illustrating an exemplary method for providing enhanced endpoint multicast emulation in a computing environment in which various aspects of the present invention may be further implemented. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0008] Data processing environments comprise a variety of hardware, software, and firmware networking components. A physical network, also called an underlay, is a network defined using such components. Techniques are now available for constructing logical networks, also known as software-defined networking (SDN) overlays (hereinafter "overlays", "overlay networks", or "OVN"), from such networking components. Essentially, the networking components are abstracted into corresponding logical or virtual representations, and the abstractions are used to define the overlay. In other words, an overlay is a logical network that is formed and operated using logical representations of the underlying networking components.

[0009] A physical network typically exists within the bounded boundaries of a data processing environment in which the networking components of the data processing environment are utilized. Unlike a physical network, an overlay can be designed to span across one or more data processing environments. For example, a physical network may be housed within a data center, but an overlay may span across one or more data centers.

[0010] As an example, a logical representation of a networking gateway may participate in an overlay, such that functionality ascribed to the logical representation of a networking gateway in the overlay is actually performed by the underlying networking gateway components in the underlay.

[0011] In the overlay, the actual networking components that implement the networking functions are abstracted into logical entities that represent the networking functions provided by these components, but not the actual implementation of these functions, so something is needed to surface this networking functionality to a functioning logical network. The SDN controller is the component that manages and operates the logical networking components in the overlay.

[0012] A virtual machine (VM) comprises a virtualized representation of real hardware, software, and firmware components available in a data processing system. A data processing system can have any number of VMs configured on the data processing system and utilizing any number of virtualized components in the data processing system. A data processing system is also referred to as a computing node, compute node, node, or host. A host also includes smart NIC functionality. A smart NIC is a network interface card (NIC) that offloads processing tasks that would normally be handled by a system processor. Using their own on-board processor, smart NICs typically perform functions such as encryption / decryption, firewalls, and TCP / IP and HTTP processing. Just as a physical computer can be virtualized into multiple virtual machines, each of which mimics the physical computer, a smart NIC can also be virtualized. For example, single root I / O virtualization (SR-IOV) is a specification that allows one installed physical device to appear to be multiple separate devices. For example, a quad-port SR-IOV NIC presents itself as four devices, each with a single port. Each of these devices can have up to 256 virtual functions (VFs), each presenting as a single port NIC, for a theoretical total of 1,024 VFs. As a result, a properly configured host can associate each virtual machine with a virtual NIC. When a tenant requests virtual machine resources, a VM for this tenant is created and started on the host and associated with a NIC VF that also runs on the host.

[0013] In large data processing environments such as data centers, thousands of VMs may be running on hosts at any time, and hundreds, if not thousands, of such hosts may be running in the data center at any given time. Virtualized data processing environments such as the described data center are often referred to as "clouds" that provide computing resources and services to a number of clients on an as-needed basis.

[0014] A virtual switch, sometimes referred to herein as a vSwitch, is a software application that allows communication between VMs. A virtual switch is completely virtual and can be connected to a network interface card (NIC). A virtual switch can merge a single physical switch, a portion of a single switch, or multiple physical switches into a single logical switch. This helps increase bandwidth and create an active mesh between servers and switches. A virtual switch may be embedded in the server's installed software or may be included in the server's hardware as part of its firmware.

[0015] Network virtualization by defining overlay networks is an emerging trend in the management and operation of datacenter and cloud computing environments. Network virtualization may be implemented using overlay technologies, such as Virtual Extensible Local Area Network (VXLAN) and Network Virtualization with Generic Routing Encapsulation (NVGRE), to form tunnels and use an identifier to designate the virtual network for each tunneled packet. More specifically, VXLAN is a specification for overlay networks, i.e., a network technology on which overlay networks can be implemented. In other words, VXLAN is a network virtualization technology that encapsulates media access control address ("MAC")-based open system interconnection ("OSI") Layer 2 Ethernet frames within OSI Layer 4 User Datagram Protocol (UDP) packets using a VLAN-like encapsulation technique. The VXLAN endpoint at the end of a VXLAN tunnel, which can be either a virtual switch port or a physical switch port, is known as a VXLAN tunnel endpoint (VTEP). A VTEP is a host interface that forwards Ethernet frames from a virtual network through VXLAN and vice versa.

[0016] An overlay switch ("OSW") is a data communication component that serves an overlay network, typically a virtual switch. In general, an OSW receives packets from a source communication node in an overlay network, encapsulates the original overlay network packets according to the address of the destination communication node, and sends them to other OSWs. An OSW also receives packets from other OSWs, decapsulates them, and sends them to the corresponding destination communication node in the overlay network.

[0017] These techniques allow multiple virtual networks to be utilized on the same physical network. Typically, a virtual switch component in the host or virtualization layer (e.g., hypervisor) provides virtual ports that are used to associate virtual machines (VMs) with various virtual networks. A hypervisor or virtual machine monitor (VMM) is a piece of computer software, firmware, or hardware that creates and runs virtual machines. The computer on which the hypervisor runs one or more virtual machines is called a host machine, and each virtual machine is called a guest machine.

[0018] One of the goals of network virtualization is to simplify network provisioning in multi-tenant and dedicated customer data processing environments.

[0019] Unicasting is a method of sending data point-to-point, i.e., from a single sender to a single receiver. Broadcasting is a method of sending the same data to all possible destinations. Multicasting, another method of broadcast delivery, sends the same data only to interested destinations, called receivers, by using special address assignments. Internet Protocol (IP) multicast is the process of multicasting an IP packet to several receivers in a single transmission of the IP packet. IP multicasting is a widespread technique used to help conserve bandwidth and reduce the load on servers in data centers.

[0020] IP multicast operating in an overlay network is called overlay multicast. Overlay multicast can be achieved in different ways depending on the support for multicasting provided in the underlay network. Multicast-based overlay multicast requires the underlay network to provide support for multicasting. Multicasting in underlay networks is not currently widespread in data processing environments. Multi-unicast-based overlay multicast is a method for transporting multicast packets in an overlay network where the underlay supports unicasting but not multicasting.

[0021] As mentioned, multicasting is when a group of devices all receive the same message or packet. Multicasting works by sharing an IP address between multiple devices. Any network traffic directed to this IP address will reach all devices that share the IP address, not just one. Computers and other devices connected to a network use the Internet Group Management Protocol ("IGMP") protocol when these computers, devices, or applications want to join a multicast group. Routers that support IGMP listen to IGMP transmissions from each of the computers, devices, or applications to figure out which of them belong to which multicast group. IGMP uses a separate set of IP addresses for multicasting. Each multicast group shares one of these IP addresses.

[0022] When a router receives a series of packets destined for a shared IP address, it will duplicate these packets and send copies to all members of the multicast group. In physical network switches and routers that support multicast, packets may be replaced and membership lists may be maintained for downstream group members. IP hosts use IGMP to report their multicast group memberships to any immediate neighboring multicast routing devices. Multicast routing devices use IGMP to learn which groups have members for each physical network to which the multicast routing device is attached.

[0023] Unfortunately, one of the current challenges is that multicasting is not supported on virtual networks due to the typically large number of IP hosts and the large number of potential virtual networks / virtual routers, along with the fact that there is no IGMP physical appliance that supports multi-tenancy that also supports virtual networks.

[0024] Thus, the present invention provides a novel solution for providing enhanced endpoint multicast emulation in a computing environment. Endpoint multicast emulation is used to perform one or more multicast operations on an overlay network by maintaining control over one or more multicast groups using the overlay or VXLAN layer. The present invention may provide a smart network card / programmable network card (e.g., smart NIC) to intercept IGMP messages on a virtual network and maintain IGMP / multicast group memberships on an out-of-band SDN path and propagate this membership to all computer nodes in the system that have at least one virtual entity on this particular virtual group.

[0025] When a message is sent by one of the virtual endpoints, it is intercepted by the smart NIC and sent to all members using the virtualized tunneling mechanism used by virtualization solutions (VLAN, VxLan, Geneve, etc.), which is a fully hardware offloaded and distributed (i.e. no middle box) method of implementing virtual IGMP / Multicast.

[0026] Other examples of various aspects of the illustrated embodiments, and the corresponding benefits, are described further herein.

[0027] Although this disclosure includes detailed descriptions of cloud computing, it is understood that implementations of the teachings recited herein are not limited to cloud computing environments. Rather, embodiments of the invention may be implemented in conjunction with any other type of computing environment now known or later developed.

[0028] Cloud computing is a model of service delivery for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be quickly provisioned and released with minimal management effort or interaction with a service provider. The cloud model can include at least five characteristics, at least three service models, and at least four deployment models.

[0029] The characteristics are as follows:

[0030] On-Demand Self-Service: Cloud customers can unilaterally provision computing capacity, such as server time and network storage, automatically as needed, without the need for human interaction with the service provider.

[0031] Broad Network Access: Capabilities are available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin- or thick-client platforms (e.g., mobile phones, laptops, and PDAs).

[0032] Resource Pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with dynamic allocation and reallocation of various physical and virtual resources on demand. Consumers generally have no control over the exact location of the resources provided, but location independence is meaningful in that they may be able to specify location at a higher level of abstraction (e.g., country, state, or data center).

[0033] Rapid Elasticity: Capacity can be rapidly and elastically provisioned, sometimes automatically, to quickly scale out, and rapidly released to quickly scale in. To the consumer, the capacity available for provisioning often appears unlimited, and can be purchased in any amount at any time.

[0034] Metered Services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at several levels of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both providers and consumers of the services used.

[0035] The service model is as follows:

[0036] Software as a Service (SaaS): The consumer is provided with the ability to use a provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through thin-client interfaces such as web browsers (e.g., web-based email). The consumer has no management or control over the underlying cloud infrastructure, including networks, servers, operating systems, storage, or possibly individual application capabilities, with the possible exception of limited user-specific application configuration settings.

[0037] Platform as a Service (PaaS): The capability provided to a consumer is to deploy consumer-created or acquired applications, created using programming languages ​​and tools supported by the provider, onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but does have control over the deployed applications and, in some cases, the application hosting environment configuration.

[0038] Infrastructure as a Service (IaaS): The capability provided to a customer is to provide processing, storage, networking, and other basic computing resources on which the customer can deploy and run any software, which may include operating systems and applications. The customer does not manage or control the underlying cloud infrastructure, but does have control over the operating systems, storage, deployed applications, and in some cases, limited control over selected networking components (e.g., host firewalls).

[0039] The deployment model is as follows:

[0040] Private Cloud: The cloud infrastructure is operated solely for the organization. The cloud infrastructure may be managed by the organization or by a third party and may be on-site or off-site.

[0041] Community Cloud: Cloud infrastructure is shared by several organizations to support a particular community that has shared concerns (e.g., mission, security requirements, policies, and compliance considerations). The cloud infrastructure may be managed by the organization or by a third party, and may be on-site or off-site.

[0042] Public Cloud: Cloud infrastructure is made available to the general public or large industry entities and is owned by the organizations that sell cloud services.

[0043] Hybrid Cloud: The cloud infrastructure is a composite of two or more clouds (private, community, or public) that remain unique entities but are tied together by standard or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).

[0044] Cloud computing environments are service-oriented with a focus on statelessness, loose coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that consists of a network of interconnected nodes.

[0045] Referring now to Figure 1, an example cloud computing node is shown generally. Cloud computing node 10 is merely one example of a suitable cloud computing node and is not intended to suggest any limitation as to the intended use or scope of functionality of the embodiments of the invention described herein. In any event, cloud computing node 10 is capable of implementing and / or performing any of the functions described above.

[0046] Cloud computing node 10 includes computer system / server 12, which is operable in numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, or configurations, or combinations thereof, that may be suitable for use with computer system / server 12 include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices.

[0047] The computer system / server 12 may be described in the general context of computer system executable instructions, such as program modules, executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, etc. that perform particular tasks or implement particular abstract data types. The computer system / server 12 may be practiced in a distributed cloud computing environment where tasks are performed by remote processing devices linked through a communications network or IoT network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media, including memory storage devices.

[0048] 1, computer system / server 12 in cloud computing node 10 is shown in the form of a general-purpose computing device. Components of computer system / server 12 may include, but are not limited to, one or more processors or processing units 16, system memory 28, and a bus 18 that couples various system components, including system memory 28, to processor 16.

[0049] Bus 18 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus.

[0050] Computer system / server 12 typically includes a variety of computer system readable media. Such media may be any available media that can be accessed by computer system / server 12 and includes both volatile and nonvolatile media, removable and non-removable media.

[0051] The system memory 28 may include computer system readable media in the form of volatile memory, such as random access memory (RAM) 30 and / or cache memory 32. The computer system / server 12 may further include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, the storage system 34 may be provided for reading and writing a non-removable, non-volatile magnetic medium (not shown, but typically referred to as a "hard drive"). Although not shown, a magnetic disk drive may be provided for reading and writing a removable, non-volatile magnetic disk (e.g., a "floppy disk"), and an optical disk drive may be provided for reading and writing a removable, non-volatile optical disk, such as a CD-ROM, DVD-ROM, or other optical medium. In such an example, each may be connected to the bus 18 by one or more data media interfaces. As further shown and described below, the system memory 28 may include at least one program product having a set (e.g., at least one) of program modules configured to perform the functions of an embodiment of the present invention.

[0052] A program / utility 40 having a set (at least one) of program modules 42 may be stored in system memory 28, as well as, by way of example and not limitation, an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data, or some combination thereof, may include an implementation of a networked environment. The program modules 42 generally perform the functions and / or methods of embodiments of the present invention as described herein.

[0053] The computer system / server 12 may also communicate with one or more external devices 14, such as a keyboard, a pointing device, a display 24, one or more devices that allow a user to interact with the computer system / server 12, or any device (e.g., a network card, a modem, etc.) that allows the computer system / server 12 to communicate with one or more other computing devices, or a combination thereof. Such communication may occur via an input / output (I / O) interface 22. Additionally, the computer system / server 12 may communicate with one or more networks, such as a local area network (LAN), a general wide area network (WAN), an IoT network, or a public network (e.g., the Internet), or a combination thereof, via a network adapter 20. As shown, the network adapter 20 communicates with other components of the computer system / server 12 via a bus 18. Although not shown, it is understood that other hardware and / or software components may be used in conjunction with the computer system / server 12. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archive storage systems.

[0054] 2, there is shown an illustrative cloud computing environment 50. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10 with which local computing devices used by cloud consumers, such as, for example, a personal digital assistant (PDA) or cellular phone 54A, a desktop computer 54B, a laptop computer 54C, and / or an automobile computer system 54N, can communicate.

[0055] The nodes 10 can communicate with each other. They may be physically or virtually grouped in one or more networks, such as private, community, public, or hybrid clouds, or combinations thereof, as described above (not shown). This allows the cloud computing environment 50 to provide infrastructure, platform, and / or software as a service without the cloud consumer having to maintain resources on a local computing device. It is understood that the types of computing devices 54A-N shown in FIG. 2 are intended to be illustrative only, and that the computing nodes 10 and the cloud computing environment 50 can communicate with any type of computerized device over any type of network and / or network addressable connections (e.g., using a web browser).

[0056] Referring now to Figure 3, a set of functional abstraction layers provided by cloud computing environment 50 (Figure 2) is shown. It should be understood in advance that the components, layers, and functions shown in Figure 3 are intended to be exemplary only, and embodiments of the present invention are not limited thereto. As shown, the following layers and corresponding functions are provided:

[0057] The device layer 55 includes physical and / or virtual devices, embedded and / or standalone with electronics, sensors, actuators, and other objects for performing various tasks in the cloud computing environment 50. Each of the devices in the device layer 55 incorporates networking capabilities to other functional abstraction layers so that information obtained from the device can be provided to the device and / or information from other abstraction layers can be provided to the device. In one embodiment, the various devices that comprise the device layer 55 may incorporate a network of entities collectively known as the "Internet of Things" (IoT). Such a network of entities allows for intercommunication, collection, and dissemination of data to accomplish a wide variety of purposes as those skilled in the art will recognize.

[0058] The device layer 55 as shown includes sensors 52, actuators 53, a "learning" thermostat 56 integrating processing, sensor, and networking electronics, a camera 57, a controllable household outlet / outlet 58, and a controllable light switch 59. Other possible devices may include, but are not limited to, a variety of additional sensor devices, networking devices, electronics devices (such as remote control devices), additional actuator devices, so-called "smart" appliances such as refrigerators or washers / dryers, and a wide variety of other possible interconnected objects.

[0059] Hardware and software layer 60 includes hardware and software components. Examples of hardware components include mainframes 61, RISC (reduced instruction set computing) architecture based servers 62, servers 63, blade servers 64, storage devices 65, and networks and networking components 66. In some embodiments, software components include network application server software 67 and database software 68.

[0060] The virtualization layer 70 provides an abstraction layer from which examples of virtual entities such as virtual servers 71, virtual storage 72, virtual networks including virtual private networks 73, virtual applications and operating systems 74, and virtual clients 75 may be provided.

[0061] In one example, the management layer 80 may provide the functions described below. Resource provisioning 81 provides dynamic procurement of computing and other resources utilized to perform tasks within the cloud computing environment. Metering and pricing 82 provides cost tracking as resources are utilized within the cloud computing environment and bills or invoices for the usage of these resources. In one example, these resources may include application software licenses. Security provides identity verification of cloud consumers and tasks, and protection of data and other resources. User portal 83 provides consumers and system administrators with access to the cloud computing environment. Service level management 84 provides allocation and management of cloud computing resources such that required service levels are met. Service level agreement (SLA) planning and execution 85 provides pre-provisioning and procurement of cloud computing resources where future requirements are anticipated according to SLAs.

[0062] The workload layer 90 provides examples of functions for which a cloud computing environment is utilized. Examples of workloads and functions provided from this layer include mapping and navigation 91, software development and lifecycle management 92, virtual classroom instructional delivery 93, data analytics processing 94, transaction processing 95, and, in the context of the illustrated embodiment of the present invention, various configuration settings for various workloads and functions 96 for providing enhanced endpoint multicast emulation in a computer. Additionally, the configuration settings for various workloads and functions 96 for providing enhanced endpoint multicast emulation in a computer may include operations such as data analytics (including collecting and processing data from various environmental sensors), networking, sending and receiving data, providing virtualization / virtual computation, encryption, cloud computing communication, and / or management functions. Those skilled in the art will appreciate that the configuration settings for the various workloads and functions 96 for providing enhanced endpoint multicast emulation in a computer may also work in conjunction with other portions of the various abstraction layers, such as those of hardware and software 60, virtualization 70, management 80, and other workloads 90 (such as data analytics processing 94) to achieve various objectives of the illustrated embodiments of the present invention.

[0063] As described above, the present invention provides a novel solution for providing enhanced endpoint multicast emulation in a computing environment. Using endpoint multicast emulation, one or more multicast operations may be performed on an overlay network by maintaining control over one or more multicast groups using an overlay layer or a Virtual Extensible LAN ("VXLAN") layer.

[0064] For further explanation, Figure 4 is a functional block diagram 400 illustrating a broadcast packet processing environment in one embodiment according to the present invention. It should be noted that the descriptions and embodiments of Figures 1-3 can be used in Figure 4. Repetitive descriptions of similar elements employed in other embodiments described herein (e.g., Figure 4) are omitted for the sake of brevity.

[0065] The broadcast packet processing environment 400 includes a server 402, a network controller 422, a server 424, and a server 442, all interconnected via a network 420. The servers 402, 424, and 442 may each be any electronic device or combination of electronic devices capable of processing program instructions and transmitting and receiving data, for example, via the network 420. In some embodiments, the servers 402, 424, and 442 may be a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a server computer, a personal digital assistant (PDA), or a smart phone. In other embodiments, the servers 402, 424, and 442 may each represent a server computing system that utilizes multiple computers as server systems, such as in a distributed computing environment.

[0066] Server 402 includes RAM 404, CPU 406, persistent storage 408, VM 412, VM 414, virtual switch 416, and network adapter 418. Persistent storage 408 may be, for example, a hard disk drive. Alternatively, or in addition to a magnetic hard disk drive, persistent storage 408 may include a solid state hard drive, a semiconductor storage device, a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a flash memory, or any other computer-readable storage medium capable of storing program instructions or digital information. Persistent storage 408 stores operating system software, as well as software that enables server 402 to communicate with network controller 422, server 424, and server 442 via data connections over network 420. Broadcast software 410 (sometimes shortened to "mdest software 410") is also stored in persistent storage 408. Broadcast software 410 is software that enables virtual switch 416 to communicate over network 420 with network controller 422, VM 412, and VM 414 on server 402, VM 434, VM ​​436, and virtual switch 438 on server 424, and VM 452, VM 454, and virtual switch 456 on server 442. Broadcast software 410 also enables network controller 422 to provide virtual switches 416, 438, and 456 with a broadcast group receiver list for a given broadcast group.

[0067] VM 412 communicates with VM 434 and VM 452 through virtual switch 416, virtual switch 438, and virtual switch 456 using an overlay virtual network on network 420. VM 414 communicates with VM 436 and VM 454 through virtual switch 416, virtual switch 438, and virtual switch 456 using a separate overlay virtual network on network 420. Virtual switch 416 is used by VM 412 and VM 414 to communicate with nodes on their respective overlay networks on network 420. In one embodiment, many virtual machines and virtual overlay networks may be present in broadcast packet processing environment 400. In other embodiments, network controller 422 may reside on a server in broadcast packet processing environment 400 or as a standalone computer connected to network 420.

[0068] Network adapter 418 is a computer hardware component that connects server 402 to network 420. Network adapter 418 allows server 402 to communicate with network controller 422, server 424, and server 442. Network adapter 418 also includes offload capabilities that allow network adapter 418 to maintain a map of broadcast groups and TEPs, provide an application program interface (API) for manipulating such a map, and handle head-end replication for broadcast packets based on offload instructions provided by the software-based data path. Network adapter 418 also allows VM 412 to communicate with VM 434 and VM 452 through virtual switch 416, virtual switch 438, and virtual switch 456 using an overlay virtual network on network 420. Network adapter 418 also enables VM 414 to communicate with VM 436 and VM 454 through virtual switch 416 , virtual switch 438 , and virtual switch 456 using a separate overlay virtual network on network 420 .

[0069] 4 illustrates network 420 as an interconnection fabric between server 402, network controller 422, server 424, and server 442. In practice, network 420 may be any feasible data transfer network. Network 420 may be, for example, a local area network (LAN), a wide area network (WAN) such as the Internet, or a combination of the two, and may include wired, wireless, or fiber optic connections. In general, network 420 may be any combination of connections and protocols that would support communication between server 402, network controller 422, server 424, and server 442, in accordance with embodiments of the present invention.

[0070] Network controller 422 is an SDN controller with visibility into end-to-end provisioning of virtual networks, virtual switches, and virtual endpoints (broadcast senders and receivers). Network controller 422 is responsible for generating and provisioning broadcast group receiver lists in a given broadcast group, e.g., VM 412, VM 434, and VM 452, to virtual switches, e.g., virtual switch 456, that have broadcast senders for the given broadcast group. In one embodiment, network controller 422 may be a separate computer system, server, or hardware in broadcast packet processing environment 400. In another embodiment, network controller 422 may be part of server 402, server 424, or server 442. Some embodiments may include more than one network controller in broadcast packet processing environment 400, e.g., to serve as backups to network controller 422.

[0071] Server 424 includes RAM 426, CPU 428, persistent storage 430, VM 434, VM ​​436, a virtual switch, and network adapter 440. Persistent storage 430 includes mdest software 432, similar to mdest software 410. Network adapter 440 is a computer hardware component that connects server 424 to network 420. Network adapter 440 allows server 424 to communicate with network controller 422, server 402, and server 442. Network adapter 440 also includes offload capabilities that allow network adapter 440 to maintain a map of broadcast groups and TEPs, provide application program interfaces ("APIs") for manipulating such maps, and handle head-end replication for broadcast packets based on offload instructions provided by the software-based data path. Network adapter 440 also enables VM 434 to communicate with VM 412 and VM 452 through virtual switch 438, virtual switch 416, and virtual switch 456 using an overlay virtual network on network 420. Network adapter 440 also enables VM 436 to communicate with VM 414 and VM 454 through virtual switch 438, virtual switch 416, and virtual switch 456 using a separate overlay virtual network on network 420.

[0072] Server 442 includes RAM 444, CPU 446, persistent storage 448, VM 452, VM 454, virtual switch 456, and network adapter 458. Persistent storage 448 includes mdest software 450, similar to mdest software 410. Network adapter 458 is a computer hardware component that connects server 442 to network 420. Network adapter 458 allows server 442 to communicate with network controller 422, server 402, and server 424. Network adapter 458 also includes offload capabilities that allow network adapter 458 to maintain a map of broadcast groups and TEPs, provide application program interfaces (APIs) for manipulating such maps, and handle head-end replication for broadcast packets based on offload instructions provided by the software-based data path. Network adapter 458 also enables VM 452 to communicate with VM 412 and VM 434 through virtual switch 456, virtual switch 416, and virtual switch 438 using an overlay virtual network on network 420. Network adapter 458 also enables VM 454 to communicate with VM 414 and VM 436 through virtual switch 456, virtual switch 416, and virtual switch 438 using a separate overlay virtual network on network 420.

[0073] 4, server 442 serves as a broadcast sender for a broadcast group called “MDG-1” hosted on virtual switch 456 and handles network data for VM 412, VM 434, VM ​​452, virtual switch 438, and virtual switch 416. Server 442 also serves as a broadcast sender for a broadcast group called “MDG-2” (not shown) hosted on virtual switch 456 and handles network data for VM 414, VM ​​436, VM 454, virtual switch 438, and virtual switch 416. In other embodiments, broadcast groups may be hosted on one or more virtual switches in broadcast packet processing environment 400.

[0074] Using the various components of Figure 4, the present invention can provide multicasting in a virtual network. For example, a server, such as server 402, server 424, or server 442, or a combination thereof, can provide enhanced endpoint multicast emulation in a broadcast packet processing environment. One or more multicast operations may be performed on the overlay network using endpoint multicast emulation by maintaining control over one or more multicast groups using the overlay layer or virtual extensible LAN ("VXLAN") layer.

[0075] For example, server 402 (or other servers, such as, for example, server 424 or server 442 or both) can keep track of one or more multicast groups using an overlay layer. Server 402 can keep track of one or more multicast groups using a VXLAN layer.

[0076] Server 402 can join one or more multicast groups and intercept application requests that are carried by the VXLAN without being transported to the virtual network.

[0077] The server 402 detects when an application has joined one or more multicast groups, and upon detecting that an application has joined one or more multicast groups, updates the membership of the one or more multicast groups. The server 402 can send a UDP datagram to each member of the one or more multicast groups.

[0078] Turning now to FIG. 5, diagram 500 illustrates computing systems 502 and 504 that deploy various exemplary embodiments for providing enhanced endpoint multicast emulation in a computer. Note that the descriptions and embodiments of FIGS. 1-4 can be used with FIG. 5. Repetitive descriptions of similar elements employed in other embodiments described herein (e.g., FIG. 4) are omitted for brevity. Computing system 502 is similar to computing system 504, except that overlay logic is used to control multicast group membership rather than VXLAN logic, as described herein.

[0079] As shown in FIG. 5, both computing systems 502 and 504 include an application 510 (“app”), an operating system (“OS”) transport network 530, a root I / O virtualization (SR-IOV) virtual function (“VF”) 520 with a remote direct memory access (“RDMA”) component, a hypervisor physical function (“PF”) component 540, a VXLAN 570, and a NIC 560 (e.g., a smart NIC).

[0080] The computing system 504 may be used for collective emulation using a VXLAN logic layer, such as, for example, using a VXLAN 570 and a NIC 560 (e.g., overlay transport / IP software ("SW") and hardware ("HW")).

[0081] The VXLAN layer of the Smart NIC / NIC570 adapter is used to continue control of the multicast group, as explained in the following steps.

[0082] In step 1), when an application 510 ("app") joins a multicast group (e.g., sends a User Datagram Protocol (UDP) join request to join), the adapter VXLAN software (e.g., VXLAN 570) consumes the request and prevents it from being forwarded to the network. Rather, the VXLAN software (e.g., VXLAN 570) adds the overlay IP and virtual network interface ("VNI") of the application 510 ("app") to the multicast group in the SDN control plane (so that other nodes become aware of this) and to the hardware pipeline of the adapter 560 (which is part of the smart NIC / VXLAN 570 send and receive logic).

[0083] In step 2), after the UDP join request is completed, the application 510 can send a message to the multicast IP.

[0084] In step 3), when the application 510 sends a message to the multicast group, the VXLAN software (e.g., VXLAN 570) of the adapter, or the hardware for improved and maximized performance, xA UDP multicast datagram can be sent to the associated VNI, overlay IP, and underlay IP, where N represents each member of the group. This can be done by using a counter of N to count down and send the same UDP multicast datagram to each of the members of the group, then returning completion when the datagram has been sent to the last member.

[0085] In step 4), when a message is received for the IP of application 510, the message is delivered to application 510 by the adapter's VXLAN logic (e.g., the VXLAN 570 hardware pipeline).

[0086] In step 5, when the application 510 leaves the group, the IP address of the application 510 is removed from the adapter's VXLAN multicast group and the SDN control plane.

[0087] By way of further explanation, Figures 6A-6B show various exemplary embodiments for providing enhanced endpoint multicast emulation in a computing environment in which various aspects of the present invention are implemented. It should be noted that the descriptions and embodiments of Figures 1-5 can be used with Figures 6A-6B. Repetitive descriptions of similar elements employed in other embodiments described herein (e.g., Figure 4) are omitted for the sake of brevity.

[0088] 6A-6B, one or more hosts are shown, such as, for example, host 610X and hosts 610A-N. Host 610 can include one or more VMs / containers 616A-N, an SDN controller, such as, for example, SDN controllers 614X and 614A, and smart NICs, such as, for example, smart NICs 612X and 612A. Host 610X and host 610A may be connected to an SDN control plane 640. In some aspects, host 610X may be in communication with network 630.

[0089] Note that Figures 6A-6B show relationships where, for example, SDN controller software can be part of the smart NIC or host software. For example, the smart NICs (e.g., smart NICs 612X and 612A) implement overlay transport / IP and VXLAN protocols and interact with the SDN controllers (e.g., SDN controllers 614X and 614A). Thus, the smart NICs (e.g., smart NICs 612X and 612A) expose APIs to the SDN controllers (e.g., SDN controllers 614X and 614A) that allow the SDN controllers (e.g., SDN controllers 614X and 614A) to set VXLAN state. The smart NICs also implement SDN controller (e.g., SDN controllers 614X and 614A) APIs to inform the SDN control plane (e.g., SDN control plane 640) about multicast group membership changes via the SDN controllers (e.g., SDN controllers 614X and 614A).

[0090] More specifically, as shown in Figure 6A, operations may be performed for membership selection propagation via SDN control plane 640. A host, such as host 610X, may intercept one or more IGMP messages on virtual network 630, maintain IGMP / multicast group membership on an out-of-band SDN path, and communicate this membership to each node (e.g., each virtual endpoint) in the computing system that has at least one virtual entity in this particular virtual group.

[0091] When a message is to be sent by one of the nodes (e.g., a virtual endpoint, which may be host 610A-N or 610X), the message is intercepted by a smart NIC, such as smart NIC 612X (associated with SDN controller 614X), and is sent to all members (e.g., hosts 610A-610B) using a virtualization tunnel mechanism used in virtualization solutions (e.g., VLAN, VxLan, Geneve, etc. as indicated in FIG. 5) to implement virtual IGMP / multicast in a distributed manner.

[0092] That is, as shown in FIG. 6B, a smart NIC, such as smart NIC 612X, may replicate messages (e.g., message replication) on a source host, such as host 610X. That is, each VM / container 616A-N may send messages to a multicast IP via a smart NIC, such as smart NIC 612X. For example, host 610X replicates a message for VM container 616D and transmits the replicated message via smart NIC 612X to one or more requesting members, such as host 610A (e.g., VMs / containers 616A and 616N), host 610F, and host 610G, each of which may have previously made a request (e.g., an IGMP join request sent to SDN controller 614A on virtual network X) to join one or more multicast groups, which is retained by the overlay layer without being forwarded to the virtual network and smart NIC 612A that intercepted the request.

[0093] Thus, using one or more components of FIGS. 6A-6B, a host 610X may perform one or more multicast operations on an overlay network using endpoint multicast emulation by maintaining control over one or more multicast groups (e.g., one or more other hosts 610A-N, which may be considered to be members of a group for receiving multicast data using the overlay layer or virtual extensible LAN ("VXLAN")) using the overlay layer or virtual extensible LAN ("VXLAN") layer. The host 610X may keep track of one or more multicast groups using the overlay layer. The host 610X may participate in one or more multicast groups using the VXLAN layer.

[0094] Host 610A can intercept, via smart NIC 612A, requests by applications (e.g., applications associated with one or more hosts 610N) to join one or more multicast groups that are not transported to the virtual network but are maintained by the overlay layer.

[0095] Host 610A can intercept, via smart NIC 612A, a request by an application (e.g., an application associated with one or more hosts 610A-N) to join one or more multicast groups that is not transported to a virtual network but is maintained by the VXLAN.

[0096] A host 610X associated with a smart NIC and / or SDN controller 614X can detect an application (e.g., an application associated with one or more hosts 610A-N) that has joined or left one or more multicast groups, and the application can be determined / detected via a smart NIC (e.g., smart NIC 612X) and forwarded to an SDN controller (e.g., SDN controller 614X), which can then trigger a membership update for the group Internet Protocol ("IP") on the virtual network ("VNET") and eventually stop forwarding User Datagram Protocol (UDP) datagrams belonging to this group to the leaving host, etc.

[0097] A host 610X associated with a smart NIC and / or SDN controller 614 updates its membership in one or more multicast groups (e.g., one or more hosts 610A-N) when it detects an application that has joined one or more multicast groups. A host 610X associated with a smart NIC and / or SDN controller 614 can send UDP datagrams to each member of the one or more multicast groups (e.g., one or more hosts 610A-N).

[0098] Turning now to Figure 7, a method 700 for providing enhanced endpoint multicast emulation in a computing environment is illustrated. In one aspect, each of the devices, components, modules, operations, or functions described in Figures 1-6A-6B, or combinations thereof, may also apply or perform one or more operations or actions of Figure 6. The function 700 may be implemented as a method executed as instructions on a machine, the instructions being contained in at least one computer-readable medium or one non-transitory machine-readable storage medium. The function 700 may begin at block 702.

[0099] One or more multicast operations may be performed on the overlay network using endpoint multicast emulation by maintaining control over one or more multicast groups using the overlay layer or the Virtual Extensible LAN ("VXLAN") layer, as per block 704. As per block 706, the function 700 may end.

[0100] In one aspect, in conjunction with or as part of at least one block of FIG. 7, or as part of at least one block of FIG. 7, or both, the operations of method 700 may include each of the following: The operations of method 700 may keep track of one or more multicast groups using an overlay layer. The operations of method 700 may keep track of one or more multicast groups using a VXLAN layer. The operations of method 700 may intercept requests by applications to join one or more multicast groups that are not transported to the virtual network and are maintained by the overlay layer, and / or intercept requests by applications to join one or more multicast groups that are not transported to the virtual network and are maintained by the VXLAN.

[0101] Operations of method 700 may include detecting an application that has joined one or more multicast groups and, upon detecting an application that has joined the one or more multicast groups, updating membership of the one or more multicast groups. Operations of method 700 may include sending a UDP datagram to each member of the one or more multicast groups.

[0102] The present invention may be a system, method, and / or computer program product, which may include a computer readable storage medium (or media) having computer readable program instructions for causing a processor to carry out aspects of the present invention.

[0103] A computer readable storage medium can be a tangible device capable of holding and storing instructions for use by an instruction execution device. A computer readable storage medium can be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer readable storage media includes portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory sticks, floppy disks, mechanically encoded devices such as punch cards or ridge-in-groove structures having instructions recorded thereon, and any suitable combination of the foregoing. Computer-readable storage media as used herein should not be interpreted as signals that are transitory in nature, such as electric waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses passing through a fiber optic cable), or electrical signals transmitted through wires.

[0104] The computer readable program instructions described herein can be downloaded from the computer readable storage medium to each computing / processing device or to an external computer or storage device over a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may comprise copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, and / or host servers. A network adapter card or network interface of each computing / processing device receives the computer readable program instructions from the network and forwards the computer readable program instructions for storage on the computer readable storage medium within the respective computing / processing device.

[0105] The computer readable program instructions for carrying out the operations of the present invention may be assembler instructions, instruction set architecture (ISA) instructions, machine language instructions, machine dependent instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including object oriented programming languages ​​such as Smalltalk®, C++, or the like, and traditional procedural programming languages ​​such as the “C” programming language, or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, or partially on the user's computer, as a standalone software package, or partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or wide area network (WAN), or the connection may be made to an external computer (e.g., through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including programmable logic circuitry, field programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) may execute computer readable program instructions by utilizing state information of the computer readable program instructions to individualize the electronic circuitry to implement aspects of the present invention.

[0106] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer readable program instructions.

[0107] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, the instructions of which execute via the processor of the computer or other programmable data processing apparatus to produce means for performing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. These computer readable program instructions may also be stored on a computer readable storage medium such that the computer readable storage medium having the instructions stored thereon comprises an article of manufacture including instructions for performing aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams, and can direct a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner.

[0108] The computer readable program instructions may also be loaded into a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device to produce a computer-executed process to perform the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.

[0109] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions noted in the blocks may be performed out of the order noted in the figures. For example, two blocks shown in succession may in fact be executed substantially simultaneously, or the blocks may sometimes be executed in reverse order depending on the functionality involved. It is also noted that each block in the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, may be executed by a special-purpose hardware-based system that performs the specified functions or acts or executes a combination of special-purpose hardware and computer instructions.

Claims

1. 1. A method for providing enhanced endpoint multicast emulation in a computing environment, comprising: Performing one or more multicast operations on an overlay network using endpoint multicast emulation by maintaining control over one or more multicast groups using an overlay layer or a virtual extensible LAN ("VXLAN") layer. A method comprising:

2. The method of claim 1 , further comprising: tracking the one or more multicast groups using the overlay layer.

3. The method of claim 1 , further comprising: tracking the one or more multicast groups using the VXLAN layer.

4. 10. The method of claim 1, further comprising intercepting a request by an application to join the one or more multicast groups, the request being maintained by the overlay layer without being transported to a virtual network.

5. 10. The method of claim 1, further comprising intercepting a request by an application to join the one or more multicast groups, the request being maintained by the VXLAN without being transported to a virtual network.

6. detecting applications that have joined the one or more multicast groups; updating membership of the one or more multicast groups upon detecting the application having joined the one or more multicast groups; The method of claim 1 further comprising:

7. 2. The method of claim 1, further comprising transmitting a User Datagram Protocol (UDP) datagram to each member of the one or more multicast groups.

8. 1. A system for providing enhanced endpoint multicast emulation in a computing environment, comprising: one or more computers having executable instructions that, when executed, Performing one or more multicast operations on an overlay network using endpoint multicast emulation by maintaining control over one or more multicast groups using an overlay layer or a virtual extensible LAN ("VXLAN") layer. The system is configured to:

9. 9. The system of claim 8, wherein the executable instructions, when executed, cause the system to track the one or more multicast groups using the overlay layer.

10. 10. The system of claim 8, wherein the executable instructions, when executed, cause the system to track the one or more multicast groups using the VXLAN layer.

11. 10. The system of claim 8, wherein the executable instructions, when executed, cause the system to intercept requests by applications to join the one or more multicast groups that are not transported to a virtual network but are maintained by the overlay layer.

12. 10. The system of claim 8, wherein the executable instructions, when executed, cause the system to intercept requests by applications to join the one or more multicast groups that are not transported to a virtual network but are maintained by the VXLAN.

13. The executable instructions, when executed, detecting applications that have joined the one or more multicast groups; updating membership of the one or more multicast groups upon detecting the application having joined the one or more multicast groups; The system of claim 8 , further comprising:

14. 9. The system of claim 8, wherein the executable instructions, when executed, cause the system to send a User Datagram Protocol (UDP) datagram to each member of the one or more multicast groups.

15. 1. A computer program product for providing enhanced endpoint multicast emulation in a computing environment, comprising: one or more computer readable storage media; and program instructions collectively stored on the one or more computer readable storage media, the program instructions comprising: Program instructions for performing one or more multicast operations on an overlay network using endpoint multicast emulation by maintaining control over one or more multicast groups using an overlay layer or a virtual extensible LAN ("VXLAN") layer.

2. A computer program product comprising:

16. tracking the one or more multicast groups using the overlay layer; tracking the one or more multicast groups using the VXLAN layer; 20. The computer program product of claim 15, further comprising program instructions for:

17. 16. The computer program product of claim 15, further comprising program instructions for intercepting a request by an application, the request being maintained by the overlay layer without being transported to a virtual network, to join the one or more multicast groups.

18. 16. The computer program product of claim 15, further comprising program instructions for intercepting requests by applications maintained by the VXLAN without being transported to a virtual network to join the one or more multicast groups.

19. detecting applications that have joined the one or more multicast groups; updating membership of the one or more multicast groups upon detecting the application having joined the one or more multicast groups; 16. The computer program product of claim 15, further comprising program instructions for:

20. 16. The computer program product of claim 15, further comprising program instructions for transmitting a User Datagram Protocol (UDP) datagram to each member of the one or more multicast groups.