# US 10,320,668 B2 · System and method for supporting unique multicast forwarding across multiple subnets in a high performance computing environment

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

- Number: US 10,320,668 B2
- Document ID: US10320668B2
- Status: Granted
- Kind: B2
- Application number: 15/414,196
- Filed: 2017-01-24
- Published: 2017-07-27
- Granted: 2019-06-11
- Earliest claimed: 2016-01-27
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Bjørn Dag Johnsen; Bartosz Bogdański; Line Holen
- Web page: https://patentgrep.com/patent/US10320668B2

## CPC

- H04L 41/0895: Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- H04L 12/18: for broadcast or conference {, e.g. multicast}
- H04L 12/185: {with management of multicast group membership}
- H04L 12/1886: {with traffic restrictions for efficiency improvement, e.g. involving subnets or subdomains}
- H04L 12/4641: {Virtual LANs, VLANs, e.g. virtual private networks [VPN] (LAN interconnection over a bridge based backbone H04L12/462; encapsulation techniques H04L12/4633; routing of packets H04L45/00; packet switches H04L49/00; virtual private networks for security H04L63/0272)}
- H04L 41/046: comprising network management agents or mobile agents therefor
- H04L 41/082: the condition being updates or upgrades of network functionality
- H04L 41/0897: by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
- H04L 41/122: of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
- H04L 41/40: using virtualisation of network functions or resources, e.g. SDN or NFV entities
- H04L 45/02: Topology update or discovery
- H04L 45/16: Multipoint routing
- H04L 45/20: {Hop count for routing purposes, e.g. TTL}
- H04L 45/26: {Route discovery packet}
- H04L 45/484: using multiple routing trees
- H04L 45/586: of virtual routers
- H04L 45/74: Address processing for routing
- H04L 47/23: {Bit dropping}
- H04L 49/00: Packet switching elements
- H04L 49/15: Interconnection of switching modules
- H04L 49/253: using establishment or release of connections between ports
- H04L 49/354: for supporting virtual local area networks [VLAN]
- H04L 49/358: {Infiniband Switches}
- H04L 49/70: {Virtual switches}
- H04L 61/10: of different types
- H04L 61/2514: between local and global IP addresses
- H04L 61/35: {involving non-standard use of addresses for implementing network functionalities, e.g. coding subscription information within the address or functional addressing, i.e. assigning an address to a function}
- H04L 63/06: {for supporting key management in a packet data network (cryptographic mechanisms or cryptographic arrangements for key management H04L9/08)}
- H04L 69/22: Parsing or analysis of headers
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- H04L 63/02: {for separating internal from external traffic, e.g. firewalls}
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L 2101/604: Address structures or formats
- H04L 2101/659: Internet protocol version 6 [IPv6] addresses
- H04L 2101/668: Internet protocol [IP] address subnets
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods for supporting unique multicast forwarding across multiple connected subnets in a high performance computing environment. In accordance with an embodiment, by enforcing that incoming (i.e., incoming on a router port of a subnet) multicast packets have SGIDs (source global identifiers) that correspond to a restricted set of source subnet numbers when entering the ingress router ports to a local subnet, it is possible to ensure that multicast packets sent from one subnet are never returned to the same subnet through a different set of connected router ports (i.e., avoid looping multicast packets).

## Claims

### Claim 1

A system for supporting unique multicast forwarding across multiple subnets in a high performance computing environment, comprising:
one or more microprocessors;
a first subnet, the first subnet comprising
a plurality of switches, the plurality of switches comprising at least a leaf switch, wherein each of the plurality of switches comprise a plurality of switch ports,
a plurality of host channel adapters, each host channel adapter comprising at least one host channel adapter port,
a plurality of end nodes, wherein the plurality of end nodes are interconnected via the plurality of switches, and
a subnet manager, the subnet manager running on one of the plurality of switches and the plurality of end nodes;
wherein a switch port of the plurality of switch ports on a switch of the plurality of switches is configured as a first router port;
wherein a second switch port of the plurality of switch ports on a second switch of the plurality of switches is configured as a second router port;
wherein the first subnet is interconnected with a second subnet via a first physical link between the first router port and a first port of the second subnet;
wherein the first subnet is interconnected with the second subnet via a second physical link between the second router port and a second port of the second subnet;
wherein a multicast packet is sent from an end node of the plurality of end nodes to the first port of the second subnet via the first router port and the first physical link;
wherein the multicast packet is received from the second port of the second subnet at the second router port via the second physical link;
wherein the multicast packet comprises a source global identifier (SGID); and
wherein, upon receiving the multicast packet at the second router port, the second switch determines that the SGID of the multicast packet is associated with the first subnet and, based on the determined association, drops the multicast packet.

### Claim 2 (depends on 1)

The system of claim 1, wherein the plurality of end nodes comprises at least a virtual machine;
wherein at least one of the host channel adapters of the plurality of host channel adapters comprises at least one virtual function, at least one virtual switch, and at least one physical function, and wherein the plurality of host channel adapters are interconnected via the one or more switches; and
wherein the first subnet further comprises:
a hypervisor, wherein the hypervisor is associated with the at least one host channel adapter of the plurality of host channel adapters; and
wherein the virtual machine is associated with the at least one virtual function.

### Claim 3 (depends on 2)

The system of claim 2, wherein the SGID of the multicast packet comprises a source subnet identifier identifying the first subnet.

### Claim 4 (depends on 3)

The system of claim 3,
wherein each of the router ports has access to a respective memory, the memory comprising at least the source subnet identifier identifying the first subnet.

### Claim 5 (depends on 4)

The system of claim 4, wherein the second subnet comprises:
a plurality of switches of the second subnet, the plurality of switches of the second subnet comprising at least a leaf switch of the second subnet, wherein each of the plurality of switches of the second subnet comprise a plurality of switch ports of the second subnet including the first port of the second subnet and the second port of the second subnet,
a plurality of host channel adapters of the second subnet, each host channel adapter of the second subnet comprising at least one host channel adapter port of the second subnet,
a plurality of end nodes of the second subnet, wherein the plurality of end nodes of the second subnet are interconnected via the plurality of switches of the second subnet, and
a subnet manager of the second subnet, the subnet manager of the second subnet running on one of the plurality of switches of the second subnet and the plurality of host channel adapters of the second subnet;
wherein the first switch port of the second subnet of the plurality of switch ports of the second subnet is on a first switch of the plurality of switches of the second subnet and is configured as a first router port of the second subnet; and
wherein the second switch port of the plurality of switch ports of the second subnet is on a second switch of the plurality of switches of the second subnet and is configured as a second router port of the second subnet.

### Claim 6 (depends on 5)

The system of claim 5, wherein the determining that the SGID of the multicast packet is associated with the first subnet includes determining, based upon the SGID of the multicast packet, that the multicast packet originated at the first subnet.

### Claim 7

A method for supporting unique multicast forwarding across multiple subnets in a high performance computing environment, comprising:
providing, at one or more computers, including one or more microprocessors, a first subnet, the first subnet comprising
a plurality of switches, the plurality of switches comprising at least a leaf switch, wherein each of the plurality of switches comprise a plurality of switch ports,
a plurality of host channel adapters, each host channel adapter comprising at least one host channel adapter port,
a plurality of end nodes, wherein the plurality of end nodes are interconnected via the plurality of switches, and
a subnet manager, the subnet manager running on one of the plurality of switches and the plurality of end nodes;
configuring a switch port of the plurality of switch ports on a switch of the plurality of switches as a first router port;
configuring a second switch port of the plurality of switch ports on a second switch of the plurality of switches as a second router port;
interconnecting the first subnet with a second subnet via a first physical link between the first router port and a first port of the second subnet;
interconnecting the first subnet with the second subnet via a second physical link between the second router port and a second port of the second subnet;
sending, from an end node of the plurality of end nodes, a multicast packet to the first port of the second subnet via the first router port and the first physical link, wherein the multicast packet comprises a source global identifier (SGID);
determining, by the second switch and upon receiving the multicast packet at the second switch, that the SGID of the multicast packet is associated with the first subnet and;
based on the determined association, dropping the multicast packet.

### Claim 8 (depends on 7)

The method of claim 7, wherein the plurality of end nodes comprises at least a virtual machine;
wherein at least one of the host channel adapters of the plurality of host channel adapters comprises at least one virtual function, at least one virtual switch, and at least one physical function, and wherein the plurality of host channel adapters are interconnected via the one or more switches; and
wherein the first subnet further comprises:
a hypervisor, wherein the hypervisor is associated with the at least one host channel adapter of the plurality of host channel adapters; and
wherein the virtual machine is associated with the at least one virtual function.

### Claim 9 (depends on 8)

The method of claim 8, wherein the SGID of the multicast packet comprises a source subnet identifier identifying the first subnet.

### Claim 10 (depends on 9)

The method of claim 9, wherein each of the router ports has access to a respective memory, the memory comprising at least the source subnet identifier identifying the first subnet.

### Claim 11 (depends on 10)

The method of claim 10, further comprising:
further providing, at the one or more computers, including the one or more microprocessors, a second subnet, the second subnet comprising:
a plurality of switches of the second subnet, the plurality of switches of the second subnet comprising at least a leaf switch of the second subnet, wherein each of the plurality of switches of the second subnet comprise a plurality of switch ports of the second subnet including the first port of the second subnet and the second port of the second subnet,
a plurality of host channel adapters of the second subnet, each host channel adapter of the second subnet comprising at least one host channel adapter port of the second subnet,
a plurality of end nodes of the second subnet, wherein the plurality of end nodes of the second subnet are interconnected via the plurality of switches of the second subnet, and
a subnet manager of the second subnet, the subnet manager of the second subnet running on one of the plurality of switches of the second subnet and the plurality of host channel adapters of the second subnet;
configuring the first switch port of the second subnet of the plurality of switch ports of the second subnet on a first switch of the plurality of switches of the second subnet as a first router port of the second subnet; and
configuring the second switch port of the plurality of switch ports of the second subnet on a second switch of the plurality of switches of the second subnet as a second router port of the second subnet.

### Claim 12 (depends on 11)

The method of claim 11, further comprising:
determining, by the second router port, based upon the SGID of the multicast packet, that the multicast packet originated at the first subnet.

### Claim 13

A non-transitory computer readable storage medium, including instructions stored thereon for supporting unique multicast forwarding across multiple subnets in a high performance computing environment, which when read and executed by one or more computers cause the one or more computers to perform steps comprising:
providing, at one or more computers, including one or more microprocessors, a first subnet, the first subnet comprising
a plurality of switches, the plurality of switches comprising at least a leaf switch, wherein each of the plurality of switches comprise a plurality of switch ports,
a plurality of host channel adapters, each host channel adapter comprising at least one host channel adapter port,
a plurality of end nodes, wherein the plurality of end nodes are interconnected via the plurality of switches, and
a subnet manager, the subnet manager running on one of the plurality of switches and the plurality of end nodes;
configuring a switch port of the plurality of switch ports on a switch of the plurality of switches as a first router port;
configuring a second switch port of the plurality of switch ports on a second switch of the plurality of switches as a second router port;
interconnecting the first subnet with a second subnet via a first physical link between the first router port and a first port of the second subnet;
interconnecting the first subnet with the second subnet via a second physical link between the second router port and a second port of the second subnet;
sending, from an end node of the plurality of end nodes, a multicast packet to the first port of the second subnet via the first router port and the first physical link, wherein the multicast packet comprises a source global identifier (SGID);
determining, by the second switch and upon receiving the multicast packet at the second switch, that the SGID of the multicast packet is associated with the first subnet and;
based on the determined association, dropping the multicast packet.

### Claim 14 (depends on 13)

The non-transitory computer readable storage medium of claim 13, wherein the plurality of end nodes comprises at least a virtual machine;
wherein at least one of the host channel adapters of the plurality of host channel adapters comprises at least one virtual function, at least one virtual switch, and at least one physical function, and wherein the plurality of host channel adapters are interconnected via the one or more switches;
wherein the first subnet further comprises a hypervisor, wherein the hypervisor is associated with the at least one host channel adapter of the plurality of host channel adapters; and
wherein the virtual machine is associated with the at least one virtual function.

### Claim 15 (depends on 14)

The non-transitory computer readable storage medium of claim 14, wherein the SGID of the multicast packet comprises a source subnet identifier identifying the first subnet; and
wherein each of the router ports has access to a respective memory, the memory comprising at least the source subnet identifier identifying the first subnet.

### Claim 16 (depends on 15)

The non-transitory computer readable storage medium of claim 15, the steps further comprising:
further providing, at the one or more computers, including the one or more microprocessors, a second subnet, the second subnet comprising:
a plurality of switches of the second subnet, the plurality of switches of the second subnet comprising at least a leaf switch of the second subnet, wherein each of the plurality of switches of the second subnet comprise a plurality of switch ports of the second subnet including the first port of the second subnet and the second port of the second subnet,
a plurality of host channel adapters of the second subnet, each host channel adapter of the second subnet comprising at least one host channel adapter port of the second subnet,
a plurality of end nodes of the second subnet, wherein the plurality of end nodes of the second subnet are interconnected via the plurality of switches of the second subnet, and
a subnet manager of the second subnet, the subnet manager of the second subnet running on one of the plurality of switches of the second subnet and the plurality of host channel adapters of the second subnet;
configuring the first switch port of the second subnet of the plurality of switch ports of the second subnet on a first switch of the plurality of switches of the second subnet as a first router port of the second subnet; and
configuring the second switch port of the plurality of switch ports of the second subnet on a second switch of the plurality of switches of the second subnet as a second router port of the second subnet.

### Claim 17 (depends on 16)

The non-transitory computer readable storage medium of claim 16, the steps further comprising:
determining, by the second router port, based upon the SGID of the multicast packet, that the multicast packet originated at the first subnet.
