Data plane separation in network to reuse virtual network addresses

Through data plane separation technology, virtual network addresses are mapped to multiple physical ports and logical separation is achieved through track optimization, which solves the problem of limited LID allocation in IB network, improves network resource utilization efficiency, and supports efficient communication of more hosts.

CN119892790APending Publication Date: 2025-04-25MELLANOX TECHNOLOGIES LTD(IL)
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411485594.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-10-23
Filing Date
2024-10-23
Publication Date
2025-04-25

AI Technical Summary

Technical Problem

In the prior art, the allocation of LIDs of virtual network addresses in IB networks is limited, resulting in limited expansion of a single subnet, limited number of hosts and ports, and inability to effectively utilize network resources.

Method used

Through data plane separation technology, the virtual network address is mapped to multiple physical ports using the subnet manager (SM), and logical or virtual data plane separation is achieved through track optimization, allowing different switches to reuse the same virtual network address and realize local port packets and exclusive communication.

Benefits of technology

It reduces the number of LIDs used in IB networks, improves the connection capabilities between hosts, optimizes network resource utilization, and supports efficient communication of more hosts.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119892790A_ABST
    Figure CN119892790A_ABST
Patent Text Reader

Abstract

The invention relates to data plane separation in a network to reuse virtual network addresses. Systems and methods herein are applicable to one or more processing units that may communicate in a network using a subnet manager (SM) that includes a mapping of a virtual network address to two or more physical ports, wherein one virtual network address may be associated with different switches of different data planes, and wherein data may be communicated concurrently and separately using one virtual network address and using two or more physical ports.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] At least one embodiment is directed to data plane separation in a network to reuse virtual network addresses. Background Art

[0002] An IB network can be used in high-performance computing and data centers. An IB network can be a switched fabric network that uses a high-bandwidth and low-latency communication protocol called Remote Direct Memory Access (RDMA) to allow devices to communicate directly without a host. This allows very fast communication speeds and low latency, making it ideal for applications that require high-speed data transfer and low-latency communication, such as financial trading systems, high-performance computing, and other time-sensitive applications. In an IB network, communication is carried out using a series of interconnected switches that are responsible for routing data packets between devices. Different identifiers used to identify IB ports can limit the number of host machines that can communicate on the IB network, but it is also necessary to assign identifiers per multiple endpoints or multiple ports per endpoint. BRIEF DESCRIPTION OF THE DRAWINGS

[0003] Figure 1 A system in which data plane separation in a network is performed to reuse virtual network addresses is shown according to at least one embodiment;

[0004] Figure 2A illustrates aspects of data plane separation in a network to reuse virtual network addresses for multiple hosts in accordance with at least one embodiment;

[0005] Figure 2B IB management aspects of a system for data plane separation in a network to reuse virtual network addresses and local port grouping for tracks of network links are shown in accordance with at least one embodiment;

[0006] Figure 3 Further aspects of a system for data plane separation and local port grouping of tracks of network links in an IB network using a subnet manager (SM) according to at least one embodiment are shown;

[0007] Figure 4 Still further aspects of a system for data plane separation and local port grouping using SMs with mappings of different virtual network addresses and relationships between different virtual network addresses in accordance with at least one embodiment are shown;

[0008] Figure 5A A process flow for data plane separation in a network to reuse virtual network addresses is shown in accordance with at least one embodiment;

[0009] Figure 5B A process flow for data plane separation and local port grouping in a network to enable exclusive communication is shown in accordance with at least one embodiment;

[0010] Fig. 6A A process flow is shown for supporting data plane separation in a network to reuse virtual network addresses in accordance with at least one embodiment;

[0011] Figure 6B Another process flow for data plane separation and local port grouping in a network to enable exclusive communications is shown in accordance with at least one embodiment;

[0012] Fig. 7A Yet another process flow for data plane separation in a network to reuse virtual network addresses is shown in accordance with at least one embodiment; and

[0013] Figure 7B Yet another process flow for data plane separation and local port grouping in a network to enable exclusive communications is shown in accordance with at least one embodiment. DETAILED DESCRIPTION

[0014] In at least one embodiment, Figure 1 A system 100 is shown in which network data plane separation is performed to reuse virtual network addresses. In addition, the reused virtual network addresses can be used to support local port grouping of network link tracks in an IB network, as described herein. Local ports are used interchangeably with physical ports herein. The system 100 enables data plane separation in a network, thereby reusing virtual network addresses (e.g., local identifiers or LIDs) for different physical ports of a host machine. Different physical ports are associated with different switches of different data planes, so that traffic of the host machine can be transmitted concurrently and separately using, for example, different physical ports addressed using the same virtual network address; and the same virtual network address can be reused in different switches.

[0015] In at least one embodiment, the system 100 also supports virtual data plane separation in the network to reuse virtual network addresses. For example, logical or virtual data plane separation can be achieved in part through track optimization, rather than data plane separation that may include physical separation (e.g., using different switches), where switches can be divided into "virtual switches" whose logical separation is achieved by forwarding logic without physical separation. Therefore, as used herein, data plane separation can be physical or virtual. In either case, data plane separation can be achieved by a subnet manager (SM), which includes mapping a virtual network address to two or more physical ports on a host machine. In addition, local port grouping can be provided as an abstraction, which is referred to herein as the track of a network link between such local port groups in two host machines to a single virtual network address to provide logical or virtual data plane separation. Network links can use physical ports grouped together exclusively for IB communication between host machines.

[0016] In at least one embodiment, in a planarized network (e.g., In a physical separation (or IB), physical separation can be achieved throughout the network fabric, for example, between physical ports of different data planes. Each of the different data planes can be associated with different switches. In at least one embodiment, data plane separation in the network can be performed by associating a single LID for the physical port but associating the port to different switches to reuse the virtual network address. This can be further supported by the planar nature of the network implementation for NVLINK or related types. Therefore, data plane separation allows the subnet manager (SM) that performs the association between the physical port and the virtual network address to reuse the port LID on different data planes. In at least one embodiment, the association is stored in the SM as an associated mapping. The SM can provide the necessary configuration information to different switches to allow communications from the host to occur concurrently and separately using a single LID and using different physical ports. For example, the plane and LID combination can use data plane separation to reuse the virtual network address to uniquely identify the physical port.

[0017] This data plane separation in the network to reuse virtual network addresses can address the limited allocation of LIDs in NVLINK or related type networks, where allocation can be done per multiple endpoints or multiple ports per endpoint. Because LIDs must be allocated per multiple endpoints or multiple ports per endpoint, the expansion of a single subnet may be limited. This limitation may be due in part to the fact that the LID space may only include 48,000 (or 48K) LIDs for unicast forwarding. In addition, this limitation may be due in part to the fact that the forwarding base size of the switch may be less than the capacity of 48K of data. In addition, in multi-port endpoints, the number of hosts in a single subnet may be limited by the capacity of the LID space (e.g., limited to 1 or 2 hosts), based in part on the number of ports per endpoint.

[0018] The solution in this article provides data plane separation in the network to reuse virtual network addresses, reducing the number of port LIDs that would otherwise be required in an NVLINK or IB network. Therefore, the allocation of LIDs occurs on multiple ports per data plane, rather than on multiple endpoints or multiple ports per endpoint. Another benefit is that more LIDs can be allocated to different switches using different data planes. In addition to using separate data planes, the grouping of local ports can also provide tracks of network links, which is an abstraction while providing addressing for such local ports. This is to enable control of IB communication forwarding for the IB network with greater granularity. The benefit of using tracks of network links with data plane separation is that the number of overall LIDs used in the IB network is reduced. The reduction in the number of overall LIDs allows more hosts to be connected and creates an efficient forwarding scheme for the IB switch (e.g., due to the reduction of local ports through the track of abstract network links, thereby reducing the hash bits required for IB communication between two host machines).

[0019] exist Figure 1In the embodiment, multiple IB master machines 1-N 120, A1-AN 124 of different IB networks 102, 106 can interface with each other using IB switches 116 and IB routers 114; however, it is also possible to support the use of interconnect devices 112 to interface between the IB networks 102; 106 and the Ethernet network 104. For the Ethernet network 104, the Ethernet switch 112 and the Ethernet gateway 110 can coordinate the connections within the Ethernet network 104, and can use the Ethernet-over-IB protocol 128 to coordinate the connections between different Ethernet master machines 122 of the Ethernet network 104 and other networks (such as the IB networks 102; 106). Differently, in the IB networks 102; 106, each subnet 102, 106 relies on a subnet manager (SM) and a subnet management agent (SMA) to coordinate the network connections between different IB master machines 1-N 120; A1-AN 124 that communicate using IB links 128. Furthermore, the SM may be implemented on the IB switch 116 or on at least one of the IB host machines 1-N 120; A1-AN 124, wherein at least one SM is provided in each subnet 102; 106.

[0020] In one example, since the IB network 102 includes the SM and the SMA, for example, at least Figure 2A-4 The SM and SMA shown and / or discussed above are used to monitor the link status of the IB ports within the IB hosts 1-N 120, A1-AN 124. In addition, the SM 220 (in Figure 2A , Figure 2B for use via SMA 302 (in Figure 3 Therefore, when the mapping of virtual LIDs is established and the relationship between virtual LIDs is established, the SM must be informed so that it can configure one or more IB switches 116 using the mapping and relationship as part of the track-based forwarding table. The IB switch routes IB packets from one IB link to another IB link in the same IB subnet, such as Figure 2B Each IB subnet in 1 252; 2 254. The IB router can Figure 2B Routes packets between IB subnets 1 252 and 2 254 in the .

[0021] Figure 2AAspects of data plane separation 200 in a network in accordance with at least one embodiment are shown to reuse virtual network addresses for multiple hosts. At least two data planes L1 and L2 204 are shown. Furthermore, while illustrated as distinct entities, these may be physically enabled using distinct IB switches S11-S22 116, or these may be virtually enabled within a subnet manager (SM) 220 of a subnet that may include IB hosts 1-8 120; 1-8 124. In at least one embodiment, the SM 220 may be an abstraction implemented by one or more IB switches S11-S22 116.

[0022] As shown, a system 212 for communication in a network 102; 106 (e.g., IB or other supported network) may include an SM 220 having stored therein a mapping 210 of a virtual network address 210A (e.g., one of the LIDs 1-16 shown) to two or more physical ports 210B (e.g., ports 1-4) on an IB host machine 120; 124 (e.g., host machines 1-8, which may be IB or any other supported host machine). One virtual network address 210A may be associated with different IB switches 116 of different data planes 204. For example, one data plane L1 may be associated with switches S11 and S12, while a second data plane L2 may be associated with switches S21 and S22. Furthermore, data associated with the IB host machines 1-8 120; 124 may be communicated concurrently and separately using one virtual network address 210A and using two or more physical ports 210B. For example, since the data planes 204 are distinct, communications using the same LID 210A are not allowed to interact or intersect with two different physical ports 210B.

[0023] In at least one embodiment, the different data planes L1-L2 204 provide physical separation for traffic associated with two or more physical ports 210B of the IB host 1-8 120; 1-8 124. Figure 2A As shown, port 1 and port 3 of host 1 are each provided with an example LID 1 because these ports are associated with different data planes, for example, port 1 of host 1 is associated with data plane L1-1, while port 3 of host 1 is associated with data plane L2-1. As previously described, data plane 204 can be an abstraction defined by associations in mapping 210 provided in at least one SM 220. Line 206 partially illustrates the mapping between physical port 210B and different data planes L1-1—L2-4 204 (and their underlying virtual network addresses 210A), while line 202 above data plane 204 partially illustrates the distribution of IB switches S11-S22 116 and different data planes L1-1—L2-4 204.

[0024] In at least one embodiment, SM 220 is also used to determine connected devices in the network. For example, SM 220 can perform a scan of all connected devices in its subnet. Then, SM 220 can determine whether there are more physical ports found than available virtual network addresses. In the range where this situation may exist, SM 220 can use at least two or more physical ports of each host to the same virtual network address, but in different data planes to enable or register physical ports as part of different data planes 204. Therefore, SM 220 can determine that a virtual network address is associated with a first physical port of two or more physical ports on a host machine (e.g., host 1), and can determine that a virtual network address is also associated with a first switch in different switches S11. In addition, SM 220 can assign a virtual network address to a second physical port of two or more physical ports on host 1 and to a second switch in different switches S21.

[0025] In at least one embodiment, the SM 220 also allows for reuse of one virtual network address for different data planes 204 by updating the mapping 210 to associate one virtual network address to different ones of the two or more physical ports on the IB host machine 1-8 120; 1-8 124. This information of the update to the mapping 210 is also provided to different IB switches S11-S22 116 of different data planes 204. In at least one embodiment, the SM 220 is also used to uniquely identify one of the two or more physical ports 210A on the IB host 1-8 120; 1-8 124 using a combination of one of the different data planes 204 and a virtual network address 210B for traffic or communication 212 through different IB switches S11-S22 116.

[0026] In at least one embodiment, the SM 220 provides configuration information to different IB switches S11-S22 116 to enable communication 212. For example, the SM 220 can provide first configuration information to a first switch S11 among the different switches to identify a virtual network address (e.g., LID 1) and to identify a first physical port (e.g., port #1) among two or more physical ports on a host. The SM 220 can also provide second configuration information to a second switch S21 among the different switches to identify a virtual network address (LID 1) and to identify a second physical port (e.g., port #3) among two or more physical ports on the host. The first configuration information and the second configuration information then allow the switches S1, S21 to use the same virtual network address (LID 1) to ensure concurrent and separate communications 212 of different physical ports (ports #1, 3).

[0027] In at least one embodiment, the SM 220 is also used to determine that a first number of physical ports 210B on the connected host machines 120; 124 in the network 100 exceeds a second number associated with available virtual network addresses. For example, in NVLINK or related types of networks, the allocation of LIDs may be limited, where the allocation may be made by the number of endpoints or the number of ports 210B per endpoint. Because the LIDs 210A must be allocated by the number of endpoints or the number of ports per endpoint, the expansion of a single subnet will be limited, for example, the LID space may only include 48,000 (or 48K) LIDs for unicast forwarding, or may be based in part on the limitations of the switch's capacity to forward data, and its basic size may be less than 48K. Then, the number less than 48K may represent an example of a second number associated with an available virtual network address. However, when making such a determination regarding the availability of virtual network addresses relative to the ports discovered in the network, the SM 220 can prepare different data planes 204 for allocation. The SM 220 may allocate available virtual network addresses 210A to a number of physical ports 210B as part of the allocation based at least on the different data planes (eg, L1, L2) available in the network.

[0028] Thus, in at least one embodiment, a system for communication 212 in a network 100 may include at least one of the IB switches S11-S22 116, which may be part of a first data plane and a second data plane. At least one of the switches may receive configuration information from an SM 220. The configuration information may be associated with a mapping 210 in the SM 220 and may enable at least one switch to communicate with another switch of the second data plane in a concurrent and separate manner. Such communication 212 between switches may be on behalf of an IB master machine 1-8 120. In addition, at least one switch (e.g., switch S11) and another switch (e.g., switch S21) may use one virtual network address (e.g., LID 1) associated with two or more physical ports (e.g., port #1 and port #3) of the IB master machine 1-8 120.

[0029] SM 220 is also used to receive a request for communication 212 from a host machine (e.g., host 1). The request may specify a recipient host machine (e.g., host 6). SM 220 is also used to associate a virtual network address LID 1 with a first physical port (port #1) of two or more physical ports of host machine 1 and with a first data plane L1. A virtual network address LID 1 may be associated with a second physical port (port #3) of two or more physical ports of host machine 1 and with a second data plane L1 to enable host machine 1 to perform communication 212 with recipient host 6. In at least one embodiment, the system for data plane separation for reuse of virtual network addresses herein may include one or more circuits for transmitting configuration information between SM 220 and an available IB switch 116. The configuration information may enable the IB switch 116 to provide communication 212 associated with at least one host machine 1 using a mapping of a virtual network address LID 1 to two or more physical ports (e.g., port #1 and port #3) on at least one host machine 1. One virtual network address LID 1 may be associated with different switches S11 and S21 located on different data planes L1 and L2.

[0030] Figure 2BIB management aspects of a system 250 for data plane separation in a network to reuse virtual network addresses according to at least one embodiment are shown. For example, associating physical ports on different data planes with a virtual network address can enable tracks 258-262 of IB network links that exclusively use these physical ports to communicate between at least two IB host machines 1-N 120; A1-AN 124 in the IB network. In addition, the IB switch between the two host machines can use different port groups to direct IB communications between the IB switches. For example, the track of the network link with the data plane uses different individual physical network addresses (e.g., a physical LID that is different from the virtual LID 210A). These physical network addresses are associated with individual physical ports 210B of different host machines that can be grouped together. In addition, the IB switches between the two host machines can use different port groups to direct IB communications between the IB switches. For example, the track of the network link with the data plane uses different individual physical network addresses (e.g., a physical LID that is different from the virtual LID 210A). These physical network addresses are associated with individual physical ports 210B of different host machines that can be grouped together. In addition, the IB switches between the two host machines can use different port groups. Figure 2A The port number is shown in place of the physical LID.

[0031] In at least one embodiment, virtual network addresses (or virtual LIDs) may be used in place of individual physical LIDs or port numbers to handle the limited physical LIDs available to at least multi-port end nodes. In at least one embodiment, multi-port end nodes (e.g., multi-port endpoints or multi-port high channel adapters (HCAs)) may consume LIDs even though they may retain knowledge of the exact target ports. Thus, each virtual LID may represent multiple physical LIDs or port numbers. In addition, the relationships between these virtual LIDs may be registered to their data planes, where each relationship represents a network link track to exclusively occupy certain physical ports. This may address limitations in the number of hosts and ports available for communication in an IB network.

[0032] In at least one embodiment, the rails 258-262 of the IB network links and their data plane 204 can also reduce the number of control bits required to ensure configuration in the switching network structure without extensive communication with multiple ports of multiple host machines (also known as network spray). This approach also achieves uniform distribution of network traffic in the switching network structure by retaining the network spray from many ports to a limited number of ports. The rails 258-262 of the IB network links and their data plane 204 can be controlled or managed by each SM 220 of each subnet 254.

[0033] In at least one embodiment, communication using the track 258-262 of the IB network link and its data plane 204 refers to the respective physical ports of at least two IB host machines 1-N 120, A1-AN 124, which are part of the track of the network link and are located on different data planes so that they exclusively occupy the track of the network link between the at least two host machines. The allocation of virtual LIDs and the relationship between virtual LIDs can be based in part on one or more of the at least two IB host machines 1-N 120, A1-AN 124 requesting mutual communication. The allocation and relationship of virtual network addresses are registered in the SM and passed to one or more switches between the communication paths of the at least two host machines to partially enable the track 258-262 of the IB network link and its data plane 204.

[0034] In at least one embodiment, the relationship is stored in the track and data plane forwarding table of the SM to provide a mapping between different physical ports, their virtual LIDs and their data planes. The track and its data plane 204 can divide the IB network into smaller isolated networks so that traffic in the smaller isolated networks does not mix. In the use case of multi-port endpoints or multi-port high channel adapters (HCAs), each multi-port HCA can request that a track and its data plane 204 be assigned to a local port so that all local ports 1 of the multi-port HCA of the switching structure are isolated from other local ports (e.g., ports 2, 3 to N), as available in the multi-port HCA of each switching structure. Therefore, in at least one embodiment, there may be a local port group between at least two host machines that are part of the track and plane, and there may be other local ports between the same at least two host machines that are not part of the track and can receive traffic outside the track of the network link established for the at least two host machines.

[0035] The track and its data plane 204 optimize the nature of the switch fabric 118, i.e., using a virtual LID assigned to each endpoint. This approach enables the use of a single virtual LID to address multiple physical LIDs (ports) of a multi-port HCA. Due to this approach, traffic destined for a particular destination port will be received in a destination port based in part on the source port of the traffic, as further described herein with respect to one or more figures. This approach eliminates the need to use a different physical LID to direct traffic to each endpoint port.

[0036] Figure 2B250 for local port grouping of tracks of network links in an IB network 252, 254 having multiple subnets and its data plane 204 for LID reuse in accordance with at least one embodiment. In at least one embodiment, the systems and methods herein allow for LID reuse by an SM 220 and at least one subnet management agent (SMA) (e.g., Figure 3 The SMA 302 and related description in the ) establishes, modifies and monitors the track of the network link and its mapping and relationship of the data plane 204. Unless otherwise explicitly stated using the previous text IB or Ethernet or regarding IB-related aspects and Ethernet-related aspects, the host and host machine are used interchangeably to describe an IB or Ethernet host, wherein an IB host is exclusively located within an IB network and an Ethernet host is exclusively located within an Ethernet network. In addition, this exclusivity does not limit the IB to Ethernet communications described herein.

[0037] exist Figure 2B , the IB aspect of the interconnect device 112 may represent an IB fabric 118, and may include at least a plurality of IB switches 1-N 116; AN 116 and one or more IB routers 1 114; 2 114. Such an IB fabric 118 allows one or more IB hosts 1-N 120, A1-An 124 to communicate within or across subnets via one or more designated IB links 126. Although illustrated via IB routers, IB network links 258 may couple IB switches together. These IB hosts may be located within the same subnet or in different subnets, as at least with respect to FIG. Figure 2B Further described.

[0038] Abstractly, an IB network link 126; 258 may be bound to a physical IB port of an IB host 120, but such an IB network link 126; 258 may be a network link that is not associated with a specific physical IB port, wherein an IB data packet is sent between available physical IB ports of a sender host machine and a receiver host machine. In addition, an orbital 260; 262 of an IB network link replaces such a non-exclusive (non-orbital) IB network link 126; 258 to provide communication between physical IB ports of two different IB hosts 1-N 120 that are exclusively in an IB subnet 1 252 or between two different IB hosts A1-AN 124 that are in a different IB subnet 2 254. Thus, an orbital network link along with a data plane may be used interchangeably with a network link having a dedicated physical port based in part on a mapping and relationship registered at least in the SM 220.

[0039] Therefore, local port grouping can be enabled for the IB host machines 1-N 120, A1-AN 124 in each IB subnet 1 252, 2 254, so that at least two IB host machines 1-N 120, A1-AN 124 in their respective IB subnets 1 252, 2 254 can associate their ports together to form a track of a network link and a data plane between the at least two IB host machines. In one example, the SM 220 may include mapping different virtual network addresses and data planes to two or more physical network addresses of two or more physical ports on at least two host machines, for example, the virtual LID of the first virtual port of the first IB host machine 1120 on the first data plane and the virtual LID of the second virtual port of the second IB host machine 9 120 on the second data plane can be mapped to two or more of their respective physical ports. This allows the first IB host machine 1 120 and the second IB host machine 9 120 to each have multiple physical ports that can be independently grouped under each virtual LID, and allows the same LID to be reused by each host.

[0040] In addition, the SM 220 may also include relationships between different virtual LIDs, such as relationships registered within the SM 220 and relationships between a first virtual LID of a first virtual port of a first data plane of the first IB host machine 1 120 and a second virtual LID of a second virtual port of a second data plane of the second IB host machine 9 120. In at least one embodiment, the registration may be in the form of a track-based forwarding table. The mapping and relationship between the first virtual LID and the second virtual LID enables multiple network links 260 (double lines to indicate exclusivity) to exist between two or more physical ports, which are located under the first virtual LID and the second virtual LID for communication between the first IB host machine 1 120 and the second IB host machine 9 120.

[0041] In at least one embodiment, based at least on the relationship in the track-based forwarding table, communications between the plurality of network links 260 will exclusively use two or more physical ports of the underlying virtual LID; however, other IB network links 258 from other IB host machines 2 120, N 120 outside of the relationship between the first IB host machine 1 120 and the second IB host machine 9 120 may be received through other physical ports. Therefore, in at least one embodiment, even though there is a mapping and relationship between the first IB host machine 1 120 and the second IB host machine 9 120, each of these IB host machines may include a physical port open for an IB network link 258 for IB communications without being part of the track 260 of the network link.

[0042] In at least one embodiment, there may be other groupings of other virtual LIDs as part of other tracks of the IB network link 262 for communication between different IB host machines, for example, different tracks of the IB network link 262 for different data planes between the first IB host machine 1 120 and the third IB host machine N 120, using different respective underlying local ports based in part on different mappings and relationships registered in the SM 220. Thus, in addition to the mappings 210 for data plane separation, the SM 220 may also include relationships between other virtual LIDs ( Figure 4 416 in the figure), for example, a relationship between a third virtual LID of a third virtual port of the first IB host machine 1 120 and a fourth virtual LID of a fourth virtual port of the third IB host machine N 120, registered within the SM 220. The mapping and relationship between the third virtual LID and the fourth virtual LID enables many different IB network links 262 (three lines represent different exclusivity of the underlying physical ports) to be used for communication between the first IB host machine 1 120 and the third IB host machine N 120. Since the tracks 260, 262 of these IB network links are capable of sending and receiving IB packets between physical or local port groups via the mapping between the virtual ports and two or more corresponding physical or local ports and via the relationship between the virtual ports, local port grouping is implemented between these local port groups.

[0043] In at least one embodiment, the SM 220 provides configuration information to one or more SMAs of one or more IB devices between the SM and the IB host 120. For example, the configuration information can enable at least one IB device (e.g., the IB switch 116) to configure its internal forwarding table based in part on mappings and in part on relationships. The configuration information, with the help of the forwarding table configured in the IB switch, can enable the tracks 260, 262 of the IB network link. Although this is illustrated in the IB subnet 1 252, this approach is also feasible in other subnets, for example, the second IB subnet 2 254 uses its own SM 220 and its own IB switch AN 116 for IB hosts A1-AN 124. Communication between tracks of network links dedicated to two or more physical ports can also be extended between subnets via the IB router 2 114, which transmits IB packets between subnets at least until they communicate locally using mappings and relationships within their subnets. However, the advantage of the implementation is that the IB network is divided into smaller isolated networks by exclusively using the communication between the network links of two or more physical ports so that the traffic in the smaller isolated networks is not mixed.

[0044] Figure 3Further aspects of a system 300 for performing data plane separation and local port grouping of tracks of network links in an IB network using a subnet manager (SM) 220 according to at least one embodiment are shown. The system 300 is provided for data plane separation and local port grouping of at least two host IB machines 120, 312 in at least one subnet of an IB network 1 252; 2 254. The SM 220 may include, for example, Figure 2A The mapping 210 for data plane separation described above may include further mapping for local port grouping. For example, the further mapping is to map different virtual network addresses V1 316A, VN1 316B (reflecting Figure 4 The virtual LIDs C 412 and C1 432 in the IB host 120 and 312 are mapped to two or more physical network addresses (reflecting the physical ports P1-P2 314A and PN1-N2 314B) of two or more physical ports P1-P2 314A and PN1-N2 314B on at least two IB host machines 120 and 312. Figure 4 434 in the IB host machines 120; 312). In addition, the SM may include relationships between different virtual network addresses V1 316A, VN1 316B to enable a track 306 that exclusively uses a network link of two or more physical ports P1-P2 314A and PN1-N2 314B (and any particular data plane) between at least two host machines. Other open or non-track ports PN 318 or PN3-NN 318 may exist to support non-track communications 304 between the same host machines. In at least one embodiment, in each of the at least two IB host machines 120; 312, ports P1-P2 314A, PN1-N2 314B, PN318, and PN3-NN 318 are ports associated with a multi-port HCA 320.

[0045] Figure 4 Further aspects of a system 400 are shown for data plane separation and local port grouping of network link tracks in an IB network using SM 220 with different mappings for these requirements. In at least one embodiment, a data processing unit (DPU) 402 can provide communication capabilities in each host machine, such as shown for one host machine 120. For example, in addition to the Figure 2AIn addition to the mapping 210 described for data plane separation, according to at least one embodiment, the SM 220 may also include a further mapping 418 of different virtual network addresses (e.g., LID C 412 to LID A / P1 and B / P2 414) and a relationship 416 between different virtual network addresses (e.g., LID C 412 and LID C1 426; 432). Each DPU 402 may collectively track its associated virtual LID 404; 424. This further mapping may be used for exclusive communication. In at least one embodiment, at least one IB switch 116 may be located between at least two IB hosts 120, 312 to receive configuration information 442 about the two mappings from the SM. In addition, the configuration information may be associated with the mapping 210, 418 and the relationship 416 between the different virtual network addresses 412, 432. In at least one embodiment, the local LID 414 (e.g., LIDA) of the physical port 314A can be used as a virtual network address, such as shown by the mapping of LID A 420 relative to other physical network addresses LID E 414, LID F 414. In addition, the local LID (e.g., LID A) can be mapped relative to itself and the other physical network addresses LID E 414, LIDF 414.

[0046] As about Figure 2A-3 As discussed, directed routing may be used instead of physical network addresses, where a mapping 418 in the SM 220 is between ports 314A, 318B, via port numbers P1, P2, PN1, PN2210B in the corresponding IB host 120 (in Figure 2A ) is mapped to virtual network addresses 412, 432. In directional routing, the data packet header may include a local port number, based on two vectors, such as a forwarding path and a response path. The class in the data packet header may indicate which type of addressing is used, such as Class 1 indicating LID or Class 81 indicating directional routing. The number of hops between the sending host machine (or the nearest switch) and the receiving host machine (or the nearest switch) can be used to list the egress port to be used at each hop. For example, a data packet from the sending host machine and intended for the receiving host machine may require three hops to reach the receiving host machine. The header of such a data packet may include a list of 1, 3, 5, indicating that the first egress port is used at the first hop, the third egress port is used at the second hop, and the fifth egress port is used at the third hop. Therefore, when mapping two or more physical ports to a virtual network address, at least the port number can be used.

[0047] In at least one embodiment, the configuration information 446 may enable at least one IB switch 116 to provide communications between at least two IB master machines 120, 312 via the rail 306 of the network link. Although generally illustrated as a traffic flow 440, the traffic flow 440 may include dedicated rail traffic for dedicated physical ports and may include other non-rail traffic from non-dedicated physical ports of the IB switch 116. Furthermore, although illustrated differently, the configuration information 446 is sent via the same IB switch 116 and the same physical port addressable by the physical port addresses 314A, 314B, 318. The SM 220 may not participate in the traffic flow 440 conducted between the IB master machines 120, 312 via one or more IB switches 116, whether using rail or non-rail communications or traffic.

[0048] In at least one embodiment, the mapping 418 and the relationship 416 may be in a track-based forwarding table and based in part on one or more of the at least two IB host machines 120, 312 requesting to communicate with each other and may also be based in part on a request to include a track using a network link. In at least one embodiment, communications between the track 306 of the network link may not interfere with other non-track communications 304 from other host machines 312 that are outside the track to be received through other physical ports other than the two or more physical ports 314A, 314B in the track of the network link between the at least two IB host machines 120, 312. For example, there may be other ports 318 of the at least two IB host machines 120, 312 and other host machines to support non-track communications 304.

[0049] In at least one embodiment, the interface of the SM is capable of receiving a request to communicate using the track of the network link between the two host machines. The SM can update or register at least the relationship between different virtual network addresses based in part on the request 416. In at least one embodiment, the interface uses management datagram (MAD) messaging and trap messaging 308, and the SM is capable of updating its track-based forwarding table. In addition, the IB software service of the host machine or endpoint can enable the use of MAD messaging and trap messaging 308 to transmit configuration information 446 between the SM and multiple SMAs of two or more physical ports.

[0050] In at least one embodiment, the SMA 302, 310A-D, 436A, 436B may respond to at least MAD messaging and trap messaging 308. For example, the SMA may provide MAD messaging and trap messaging 308 to notify the SM 220 of two or more physical ports 314A, 314B for different virtual network addresses 412. The SMA may provide messaging and trap messaging 308 to request different virtual network addresses 412 from two or more physical ports 314A, 314B. The SMA may provide messaging and trap messaging 308 to notify the SM 220 of changes to different virtual network addresses 412 of two or more physical ports 314A, 314B. These changes may include updates to data planes, virtual LIDs, and one or more mappings described herein. Two or more physical ports 314A, 314B may be associated with two or more physical network addresses 414 and different data planes. The SMA may also provide trap messaging 308 to notify about communications.

[0051] In at least one embodiment, the MAD messaging and the trap messaging 308 may include the two or more physical network addresses 414 of the two or more physical ports 314A, 314B in the source and destination address header fields. In at least one embodiment, the SM 220 may be enabled to assign virtual network addresses 412, 432 to the two or more physical ports 314A, 314B on the at least two IB host machines 120, 312, wherein the two or more physical ports are associated with the two or more physical network addresses 414, 434. The SM does not participate in the traffic between the at least two IB host machines 120, 312, but the configuration information may be provided via the same IB network link 258 and thus provided to the physical ports, even though at least Figure 3 and Figure 4 are shown by separate lines.

[0052] In at least one embodiment, the SM 220 is also adapted to receive a communication request, such as via MAD messaging and trap messaging 308. The request may be from a first IB host machine 120 of the at least two host machines, and may specify a second IB host machine 312 of the at least two host machines as, for example, a target host machine for the communication. The SM is also used to determine different virtual network addresses 412, 432 to be associated with the first host machine of the at least two host machines and the second host machine of the at least two host machines. In at least one embodiment, the different virtual network addresses 412, 432 may be associated with a device as part of a scan performed by the SM for all connected devices. The association between the virtual network address and the physical network address is a mapping 418 stored in a portion or a different table of a track-based forwarding table. The SM is also used to register a relationship 416 of different virtual network addresses for communication as a portion or a different table of a track-based forwarding table. The relationship 416 enables a network link of two or more physical ports under the virtual network address of the exclusive use of the relationship and the mapping.

[0053] In at least one embodiment, after the communication request, SM 220 is also adapted to check that at least the second host machine 312 of the at least two host machines is associated with at least one of the different virtual network addresses. However, this check can be performed by each host machine to communicate. In at least one embodiment, the communication request can come from a virtual network address, and therefore, the check can be performed only for other parties associated together in the communication.

[0054] In at least one embodiment, the previous mapping may be valid for the virtual network address and the physical network address of the second host machine 312 of the at least two hosts. For example, the presence of a mapping 418 between LID C1 and LID A1 / PN1 and B1 / PN2 in the SM indicates a previous association. Thereafter, a registration of a relationship 416 of different virtual network addresses LID C and LID C1 for communication may be performed. For example, the first virtual address LID C of the first IB host machine 120 of the two hosts may be registered as being associated with the second virtual address LID C1 of the second host machine 312 of the two hosts, which exclusively groups the underlying physical ports LID A, LID B, LID A1, and LID B1 to provide a network link for communication between the two IB hosts 120, 312. In addition, virtual LIDs may be associated with specific data planes so that they can be reused for different groups of underlying physical ports. Other non-track ports LID E 414 and LID F 414 may also be reserved in at least one IB host machine 120 for non-track communication in the IB network.

[0055] In at least one embodiment, the SM 220 is further adapted to determine that a second host machine 312 of the at least two hosts is to be associated with at least one different virtual network address. This may be the case when none of the ports of the first IB host machine 120 of the at least two hosts are associated with a virtual network address. The SM is configured to enable at least one of the different virtual network addresses by mapping local ports LID A1 and B1 to virtual network address LID C1. The SM is then further configured to register the relationship of the different virtual network address LID C with LID C1 based at least in part on a network link that exclusively uses its underlying two or more physical ports for communication based on a request for such communication between the at least two IB hosts 120, 312.

[0056] In at least one embodiment, the system herein includes one or more processing units for transmitting configuration information between the SM and at least one switch. The processing unit may be located in an IB switch or an IB host capable of being used as an SM, or may be located in other IB devices having an SMA to communicate with the SM. The configuration information is used to enable at least one switch to provide communication between at least two host machines by exclusively using the track of a network link of two or more physical ports of at least two host machines. The configuration information may be associated with the mapping and relationship of different virtual network addresses of two or more physical ports of the bottom layer. For example, the mapping may be a mapping between different virtual network addresses and two or more physical ports on at least two host machines. The relationship may be between different virtual network addresses to indicate that the bottom physical port to the virtual network address will be used exclusively in the track of the network link for communication.

[0057] In at least one embodiment, one or more processing units of the SM are further adapted to monitor each of the two or more physical ports using trap messaging from at least one SMA. For example, the trap messaging can provide a status update of the port. The one or more processing units are further adapted to enable changes to at least two host machines or at least one switch via configuration information based in part on changes indicated to the SM by at least one SMA, which causes the SM to update its track-based forwarding table to delete the relationship between the at least two host machines. The SM can communicate the change to the corresponding SMA.

[0058] Figure 5AA process flow or method 500 for data plane separation in a network to reuse virtual network addresses according to at least one embodiment is shown. For example, the method 500 can be used for addressing while providing data plane separation to allow reuse of virtual network addresses. The method 500 includes providing 502 in an SM a mapping of a virtual network address to two or more physical ports on a host machine. A verification 504 can be performed to confirm whether the host machine has requested communication. The method 500 includes enabling 506 a virtual network address to be associated with different switches of different data planes. In addition, the method 500 includes using a virtual network address and using two or more physical ports to concurrently and separately transmit 508 data associated with the host machine.

[0059] In at least one embodiment, the method 500 of using different data planes provides physical separation for traffic associated with two or more physical ports. For example, physical separation of traffic can be provided by different switches. However, the method 500 supports virtual data plane separation in the network to reuse virtual network addresses. For example, instead of data plane separation that may include physical separation (e.g., using different switches), logical or virtual data plane separation can be enabled in part through track optimization, such as Figure 3 , Figure 4 As described in one or more of the foregoing, wherein the switch can be divided into a "virtual switch" with logical separation implemented by forwarding logic without physical separation. Therefore, as used herein, data plane separation can be physical or virtual. In either case, data plane separation can be enabled by a subnet manager (SM), which includes a mapping of a virtual network address to two or more physical ports on a host machine. In addition, local port grouping can be provided as an abstraction, which is referred to herein as the track of a network link between such local port groups in two host machines to a single virtual network address to provide logical or virtual data plane separation. The network link can exclusively use the physical ports grouped together for IB communication between the host machines.

[0060] Figure 5BA process flow or method 550 for data plane separation and local port grouping in a network to achieve exclusive communication in at least one embodiment is shown. The method 550 can be used for local port grouping of at least two host machines in a network. The method 550 includes: providing 552 mappings of different virtual network addresses to two or more physical ports on at least two host machines and relationships between different virtual network addresses in a subnet manager (SM). In at least one embodiment, the two or more physical ports have respective physical network addresses. However, at least one of the different virtual network addresses can be used for multiple physical network addresses in the corresponding physical network addresses to provide data plane separation and local port grouping in the network to achieve exclusive communication.

[0061] In at least one embodiment, the method 550 includes verifying or determining 554 whether communication is requested between the at least two host machines. For example, at least one of the two host machines may transmit a request to communicate with a second host machine of the at least two host machines by identifying a target network address of a physical port of the second host machine of the two host machines. The request may include a request for a track of a network link to be established between the at least two host machines.

[0062] In at least one embodiment, method 550 includes transmitting 556 configuration information from the SM to at least one switch. However, there may be multiple switches in the IB network between at least two hosts, so the transmission of configuration information from the SM can be directed to all such switches. The configuration information is associated with mappings and relationships of different virtual network addresses. For example, at least one switch determines that a mapping exists for a physical port of a second host machine of the two hosts relative to a first virtual network address. At least one switch can determine that a first virtual address is associated with a second virtual address associated with a first host machine of the two hosts requesting communication.

[0063] In at least one embodiment, the method 550 includes enabling 558 at least one switch to use the configuration information to provide a network link that exclusively uses two or more physical ports for communication between at least two host machines. Once the network link is provided, the method 550 includes enabling 560 the two host machines to communicate using the network link. For example, traffic between the at least two host machines does not need to be reviewed by the SM, but is passed directly between the at least two host machines without regard to the SM using the underlying virtual LID of the relationship, which in turn uses the mapped underlying physical LID.

[0064] In at least one embodiment, method 550 includes further steps or sub-steps for mappings and relationships based in part on one or more of the at least two host machines requesting communication with each other. In at least one embodiment, method 550 includes further steps or sub-steps for monitoring each of the two or more physical ports and enabling changes to the communication between the at least two host machines using the configuration information. The change may be based in part on a request by at least one of the at least two host machines. For example, the request may be to cancel a track of a previous network link between the at least two host machines. The SM enables the change so that the communication does not use the track of the network link. The SM deletes the relationship previously in the track-based forwarding table so that any further communication can occur without the track.

[0065] In at least one embodiment, method 550 includes a further step or sub-step for receiving a communication request using an interface of the SM. For example, the interface can be a network interface for receiving MAD and trap messages. The SM can update its track-based forwarding table or register at least the relationship between different virtual network addresses in the track-based forwarding table based in part on the request. In at least one embodiment, method 550 includes a further step or sub-step for assigning virtual network addresses to two or more physical ports on at least two host machines using the SM.

[0066] In at least one embodiment, method 550 includes further steps or sub-steps for enabling configuration information using an IB software service of the host machine or endpoint to communicate between the SM and the SMAs of the two or more physical ports using MAD messaging. In at least one embodiment, an administrator may access such an IB software service to configure changes to the IB network.

[0067] Fig. 6A A process flow or method 600 is shown for supporting data plane separation in a network to reuse virtual network addresses according to at least one embodiment. The method 600 may be used to assign a virtual network address to a physical port. For example, the method 600 includes determining 602 connected devices in the network. In the determination 602 step, if ports or connected devices are identified, a verification 604 may be performed to find out whether these ports or connected devices need to be assigned at least one virtual network address.

[0068] The method 600 includes determining 606 that a virtual network address is associated with a first physical port of two or more physical ports on the host machine. This step 606 can be used to ensure that the allocated virtual network address can be reused. The method 600 includes verifying as part of the determining 606 step that the virtual network address is also associated with a first switch of different switches. Then, in the method 600, the virtual network address can be reused for another switch. Therefore, the method 600 includes assigning 608 a virtual network address to a second physical port of two or more physical ports on the host machine and a second switch of different switches.

[0069] In at least one embodiment, method 600 includes further steps or sub-steps for allowing reuse of a virtual network address for different data planes by updating a mapping to associate the virtual network address to different physical ports of the two or more physical ports on the host machine and different switches of different data planes. Method 600 includes further steps or sub-steps for uniquely identifying one of the two or more physical ports on the host machine using a combination of one of the different data planes and a virtual network address for traffic transmitted through different switches.

[0070] Figure 6B Another process flow or method 650 for data plane separation and local port grouping in a network to achieve exclusive communication according to at least one embodiment is shown. The method 650 includes receiving 652 a communication request. The request can be received in an SM. The request can come from a first host machine of at least two host machines and can specify a second host machine of at least two host machines. The second host machine of at least two host machines can be specified by a target LID, which can be a physical LID of a port of the second host machine of at least two host machines.

[0071] In at least one embodiment, method 650 includes determining 654 different virtual network addresses associated with a first host machine in at least two hosts and a second host machine in at least two hosts. Determining 654 steps may also include verifying that different virtual network addresses are associated with specific data planes to ensure that the traffic of the first host machine in the two hosts and the traffic of the second host machine in the two hosts do not cross or remain separate and are used for the expected physical port. For example, a physical LID may be mapped to a virtual LID in an SM and a data plane in an SM. The two hosts may have different respective virtual LIDs belonging to different data planes. Determining 654 may be performed using one or more mappings of a track-based forwarding table and a data plane in an SM. Verification 656 may be performed in method 650 for possible relationships between respective virtual LIDs. Communication may be allowed or enabled via step 660 based in part on the relationships between the respective virtual LIDs. In at least one embodiment, relationships may be provided between data planes rather than between respective virtual LIDs.

[0072] In at least one embodiment, the method 650 includes registering 658 relationships of different virtual network addresses or LIDs to provide network links that exclusively use the underlying physical ports of the associated virtual LIDs for communication. After the registration step 658, the communication can be allowed or enabled 660. In at least one embodiment, the SM can periodically monitor and update the track-based forwarding table to ensure that the relationship exists, or can check at the beginning of a communication cycle or session using the physical or virtual LID associated with the communication until a change is detected that causes the communication to become non-track communication or traffic.

[0073] In at least one embodiment, method 650 includes a further step or sub-step for checking that a second host machine of the at least two host machines is associated with at least one of the different virtual network addresses, as step 656. Method 650 includes registering 658 the relationship of the different virtual network addresses to provide a track of the network link of the underlying physical port to the associated different virtual network addresses to provide communication. The registering step 658 can be based in part on the request for communication in step 652.

[0074] Fig. 7AYet another process flow or method 700 for data plane separation in a network to reuse virtual network addresses according to at least one embodiment is shown. In one example, the method 700 can be used to prepare different data planes for allocation of different virtual LIDs. The method 700 includes determining 702 a first number of physical ports on a host machine connected in the network and a second number associated with available virtual network addresses. The method 700 includes verifying 704 whether the first number exceeds the second number. The method 700 includes preparing 706 different data planes for allocation. The method 700 includes, as part of the allocation, enabling 708 the available virtual network addresses to be allocated to the number of physical ports based at least on the different data planes available in the network.

[0075] Figure 7B Another process flow or method 750 for data plane separation and local port grouping in a network to achieve exclusive communication is shown in accordance with at least one embodiment. Fig. 7A Once method 700 in method 650 ensures data plane separation, method 750 can be performed. Method 750 includes receiving 752 a communication request, for example in a manner similar to step 652 in method 650. The request in step 752 can be similarly received in the SM. The request can come from a first host machine of at least two host machines and can specify a second host machine of at least two host machines. Method 750 includes verifying or determining 754 whether the first host machine or the second host machine of at least two host machines will be associated with different virtual network addresses. However, associations between different data planes can also be used instead of different virtual network addresses.

[0076] The method 750 includes enabling 756 at least one of the different virtual network addresses. In at least one embodiment, the virtual network address is transmitted from the SM to the SMA or the corresponding physical ports of the at least two host machines. The corresponding physical port is a physical port that is intended to be exclusively located in the track of the network link so that the communication between the at least two host machines can use the track of the network link. The method 750 includes performing 758 steps 658-660 to register the relationship of the different virtual network addresses enabled for the corresponding physical ports so that the track of the network link uses the different virtual network addresses of the underlying corresponding ports to support communication therethrough.

[0077] Other variations are within the spirit of the present disclosure. Thus, while the disclosed technology is susceptible to various modifications and alternative constructions, certain illustrated embodiments thereof are shown in the drawings and have been described in detail above. However, it should be understood that there is no intention to limit the disclosure to one or more specific forms disclosed, but on the contrary, it is intended to cover all modifications, alternative constructions, and equivalents that fall within the spirit and scope of the present disclosure as defined by the appended claims.

[0078] Unless otherwise noted or clearly contradictory to the context, in the context of describing the disclosed embodiments (particularly in the context of the appended claims), the use of the terms "one" and "an" and "the" and similar referents should be interpreted as covering the singular and plural, rather than as a definition of the term. Unless otherwise noted, the terms "include", "have", "include" and "contain" should be interpreted as open terms (meaning "including but not limited to") unless otherwise noted. The term "connection" (which refers to a physical connection when unmodified) should be interpreted as being partially or completely contained, attached to or connected together, even if there are some intervening objects. Unless otherwise noted herein, references to numerical ranges herein are intended only to be used as a shorthand method of referring to each individual value falling within the range, respectively, and each individual value is incorporated into the specification as if it were individually narrated herein. In at least one embodiment, unless otherwise noted or contradictory to the context, the use of the term "set" (e.g., "item set") or "subset" should be interpreted as a non-empty set including one or more members. Furthermore, unless otherwise indicated or contradicted by context, the term "subset" of a corresponding set does not necessarily mean a proper subset of the corresponding set, but rather a subset and a corresponding set may be equivalent.

[0079] Unless expressly indicated otherwise or clearly contradicted by context, conjunctions such as phrases of the form "at least one of A, B, and C" or "at least one of A, B and C" are understood in context to be generally used to refer to an item, term, or the like, which may be A or B or C, or any non-empty subset of the set of A and B and C. For example, in the illustrative example of a set having three members, the conjunction phrases "at least one of A, B, and C" and "at least one of A, B and C" refer to any of the following sets: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}. Thus, such conjunction language is generally not intended to imply that certain embodiments require the presence of each of at least one of A, at least one of B, and at least one of C. Additionally, unless otherwise indicated or contradicted by context, the term "plurality" indicates a plural state (e.g., "plurality of items" indicates a plurality of items). In at least one embodiment, the number of items in the plurality of items is at least two, but may be more if expressly indicated or indicated by context. Further, the phrase "based on" means "based at least in part on" rather than "based solely on" unless otherwise specified or clear from context.

[0080] Unless otherwise indicated herein or clearly contradicted by context, the operations of the processes described herein may be performed in any suitable order. In at least one embodiment, processes such as those described herein (or variations and / or combinations thereof) are performed under the control of one or more computer systems configured with executable instructions and are implemented as code (e.g., executable instructions, one or more computer programs, or one or more applications) that is executed jointly by hardware or a combination thereof on one or more processors. In at least one embodiment, the code is stored on a computer-readable storage medium in the form of, for example, a computer program that includes a plurality of instructions that can be executed by one or more processors.

[0081] In at least one embodiment, the computer-readable storage medium is a non-transitory computer-readable storage medium that excludes transient signals (e.g., propagating transient electrical or electromagnetic transmissions), but includes non-transitory data storage circuits (e.g., buffers, caches, and queues) within a transceiver of transient signals. In at least one embodiment, code (e.g., executable code or source code) is stored on a set of one or more non-transitory computer-readable storage media (or other memory for storing executable instructions) having executable instructions stored thereon, which, when executed by one or more processors of a computer system (i.e., as a result of being executed), causes the computer system to perform the operations described herein. In at least one embodiment, a set of non-transitory computer-readable storage media includes a plurality of non-transitory computer-readable storage media, and one or more of the individual non-transitory storage media in the plurality of non-transitory computer-readable storage media lacks all of the code, but rather the plurality of non-transitory computer-readable storage media collectively store all of the code. In at least one embodiment, the executable instructions are executed so that different instructions are executed by different processors, for example, a non-transitory computer readable storage medium stores the instructions and a main central processing unit ("CPU") executes some instructions while a graphics processing unit ("GPU") executes other instructions. In at least one embodiment, different components of the computer system have separate processors and different processors execute different subsets of instructions.

[0082] In at least one embodiment, an arithmetic logic unit is a group of combinational logic circuits that use one or more inputs to produce a result. In at least one embodiment, the processor uses the arithmetic logic unit to implement mathematical operations, such as addition, subtraction, or multiplication. In at least one embodiment, the arithmetic logic unit is used to implement logical operations, such as logical AND / OR or XOR. In at least one embodiment, the arithmetic logic unit is stateless and is made of physical switch components (such as semiconductor transistors) arranged to form logic gates. In at least one embodiment, the arithmetic logic unit can be operated internally as a stateful logic circuit with an associated clock. In at least one embodiment, the arithmetic logic unit can be constructed as an asynchronous logic circuit with an internal state that is not maintained in an associated register group. In at least one embodiment, the arithmetic logic unit is used by the processor to combine operands stored in one or more registers of the processor and generate outputs that can be stored in another register or memory location by the processor.

[0083] In at least one embodiment, as a result of processing the instructions retrieved by the processor, the processor presents one or more inputs or operands to the arithmetic logic unit, causing the arithmetic logic unit to produce a result based at least in part on the instruction code provided to the input of the arithmetic logic unit. In at least one embodiment, the instruction code provided by the processor to the ALU is based at least in part on the instructions executed by the processor. In at least one embodiment, the combinational logic in the ALU processes the inputs and produces an output, which is placed on a bus within the processor. In at least one embodiment, the processor selects a destination register, memory location, output device, or output storage location on an output bus so that the processor is clocked so that the result produced by the ALU is sent to the desired location.

[0084] Thus, in at least one embodiment, a computer system is configured to implement one or more services that individually or collectively perform the operations of the processes described herein, and such a computer system is configured with applicable hardware and / or software that enables the operations to be performed. In addition, a computer system that implements at least one embodiment of the present disclosure is a single device, and in another embodiment is a distributed computer system that includes multiple devices that operate differently, such that the distributed computer system performs the operations described herein, and such that a single device does not perform all operations.

[0085] The use of any and all examples or exemplary language (e.g., "such as") provided herein is intended only to better illustrate embodiments of the present disclosure and does not impose a limitation on the scope of the disclosure unless otherwise required. No language in the specification should be construed as indicating any non-claimed element is essential to practicing the disclosure.

[0086] In the specification and claims, the terms "coupled" and "connected" and their derivatives may be used. It should be understood that these terms may not be intended as synonyms for each other. On the contrary, in specific examples, "connected" or "coupled" may be used to indicate that two or more elements are in direct or indirect physical or electrical contact with each other. "Coupled" may also mean that two or more elements are not in direct contact with each other, but still cooperate or interact with each other.

[0087] Unless explicitly stated otherwise, it is understood that throughout the specification, terms such as "processing", "computing", "calculating", "determining", etc. refer to the actions and / or processes of a computer or computing system or similar electronic computing device that manipulates and / or transforms data represented as physical quantities (e.g., electronic quantities) in the registers and / or memories of the computing system into other data similarly represented as physical quantities in the memories, registers, or other such information storage, transmission, or display devices of the computing system.

[0088] In a similar manner, the term "processor" may refer to any device or part of a device that processes electronic data from registers and / or memory and converts the electronic data into other electronic data that can be stored in registers and / or memory. As a non-limiting example, a "processor" may be a CPU or a GPU. A "computing platform" may include one or more processors. As used herein, a "software" process may include, for example, software and / or hardware entities that perform work over time, such as tasks, threads, and intelligent agents. Similarly, each process may refer to multiple processes to execute instructions sequentially or in parallel, continuously or intermittently. In at least one embodiment, the terms "system" and "method" may be used interchangeably herein, as long as a system may embody one or more methods, and a method may be considered a system.

[0089] In this document, reference may be made to obtaining, acquiring, receiving, or inputting analog or digital data into a subsystem, a computer system, or a computer-implemented machine. In at least one embodiment, the process of obtaining, acquiring, receiving, or inputting analog and digital data may be accomplished in various ways, such as by receiving data as a parameter of a function call or a call to an application programming interface. In at least one embodiment, the process of obtaining, acquiring, receiving, or inputting analog or digital data may be accomplished by transmitting data via a serial or parallel interface. In at least one embodiment, the process of obtaining, acquiring, receiving, or inputting analog or digital data may be accomplished by transmitting data from a providing entity to an acquiring entity via a computer network. Reference may also be made to providing, outputting, transmitting, sending, or presenting analog or digital data. In at least one embodiment, the process of providing, outputting, transmitting, sending, or presenting analog or digital data may be accomplished by transmitting data as an input or output parameter of a function call, a parameter of an application programming interface, or an interprocess communication mechanism.

[0090] Although the description herein sets forth example implementations of the described techniques, other architectures may be used to implement the described functionality and are intended to fall within the scope of the present disclosure. In addition, although specific responsibilities are defined above for descriptive purposes, various functions and responsibilities may be allocated and divided in different ways, depending on the circumstances.

[0091] Furthermore, although the subject matter has been described in language specific to structural features and / or methodological acts, it should be understood that the subject matter claimed in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claims.

Claims

1. A system for communication in a network, comprising: A subnet manager SM comprises a mapping of a virtual network address to two or more physical ports, wherein the one virtual network address is associated with different switches of different data planes, and wherein data associated with the two or more physical ports are transmitted concurrently and separately using the one virtual network address and using the two or more physical ports.

2. The system of claim 1, wherein the different data planes provide physical separation for traffic associated with the two or more physical ports.

3. The system according to claim 1, wherein the SM is further configured to: determining connected devices in the network; determining that the one virtual network address is associated with a first physical port of the two or more physical ports on the host machine and is associated with a first switch of the different switches; and The one virtual network address is assigned to a second physical port of the two or more physical ports on the host machine and a second switch of the different switches.

4. The system according to claim 1, wherein the SM is further configured to: The one virtual network address is allowed to be reused for the different data planes by updating the mapping to associate the one virtual network address to different ports of the two or more physical ports and the different switches of the different data planes.

5. The system according to claim 1, wherein the SM is further configured to: One of the two or more physical ports on the host machine is uniquely identified using a combination of one of the different data planes and the one virtual network address for traffic transmitted through the different switch.

6. The system according to claim 1, wherein the SM is further configured to: providing first configuration information to a first switch of the different switches to identify the one virtual network address and a first physical port of the two or more physical ports; and Second configuration information is provided to a second switch of the different switches to identify the one virtual network address and a second physical port of the two or more physical ports.

7. The system according to claim 1, wherein the SM is further configured to: determining that a first number of physical ports on connected host machines in the network exceeds a second number associated with available virtual network addresses; preparing different data planes for allocation; and The available virtual network addresses are enabled to be allocated to the number of physical ports as part of the allocating based at least on the different data planes available in the network.

8. A system for communication in a network, comprising: At least one switch, as part of a first data plane, and configured to receive configuration information from a subnet manager SM, the configuration information being associated with a mapping in the SM and enabling the at least one switch to communicate concurrently and separately with another switch of a second data plane using two or more physical ports represented by one virtual network address.

9. The system according to claim 8, wherein the SM is further configured to: receiving a request for a communication from a sending host machine and specifying a receiving host machine; and The one virtual network address is associated with a first port among the two or more physical ports of the sender host machine and with the first data plane, and the one virtual network address is associated with a second physical port among the two or more physical ports of the sender host machine and with the second data plane, so that the sender host machine can communicate with the receiver host machine.

10. The system according to claim 8, wherein the SM is further configured to: Updating the mapping allows the one virtual network address to be reused to associate the one virtual network address with a different one of the two or more physical ports on the host machine and with other switches of other data planes.

11. The system according to claim 8, wherein the SM is further configured to: providing the configuration information to the first switch of the different switches to identify the one virtual network address and a first port of the two or more physical ports on the host machine; and Second configuration information is provided to another of the different switches to identify the one virtual network address and a second physical port of the two or more physical ports on the host machine.

12. The system according to claim 8, wherein the SM is further configured to: determining that a first number of physical ports on connected host machines in the network exceeds a second number associated with available virtual network addresses; preparing the first data plane and the second data plane for allocation; and The available virtual network addresses are enabled to be allocated to the number of physical ports as part of the allocating based on at least the first data plane and the second data plane.

13. A system comprising: One or more circuits for communicating configuration information between a subnet manager SM and a plurality of switches to enable the plurality of switches to provide communication between the plurality of switches using a mapping of a virtual network address to two or more physical ports associated with the plurality of switches, wherein the one virtual network address is associated with different switches of the plurality of switches located on different data planes, and wherein communication is performed concurrently and separately using the one virtual network address and using the two or more physical ports.

14. The system according to claim 13, wherein the SM is further configured to: receiving a request for a communication from a sending host machine and specifying a receiving host machine; and The one virtual network address is associated with a first port among the two or more physical ports of the sending host machine and with the first data plane, and the one virtual network address is associated with a second port among the two or more physical ports of the at least one host machine and with the second data plane, so that the sending host machine can communicate with the receiving host machine.

15. The system according to claim 13, wherein the SM is further configured to: The one virtual network address is allowed to be reused by updating the mapping to associate the one virtual network address with a different one of the two or more physical ports and with other switches of the plurality of switches of other data planes.

16. The system according to claim 13, wherein the SM is further configured to: providing the configuration information to the first of the different switches to identify the one virtual network address and a first physical port of the two or more physical ports on at least one host machine; and Second configuration information is provided to the second of the different switches to identify the one virtual network address and a second of the two or more physical ports on the at least one host machine.

17. The system according to claim 13, wherein the SM is further configured to: determining that a first number of physical ports on connected host machines in the network exceeds a second number associated with available virtual network addresses; preparing the different data planes for allocation; and The available virtual network addresses are enabled to be allocated to the number of physical ports as part of the allocating based at least on the different data planes available in the network.

18. A method for addressing in a network, the method comprising: providing a mapping of a virtual network address to two or more physical ports in the subnet manager SM; enabling the one virtual network address to be associated with different switches of different data planes; and Data associated with the two or more physical ports are concurrently and separately transmitted using the one virtual network address and using the two or more physical ports.

19. The method of claim 18, wherein the different data planes provide physical separation for traffic associated with the two or more physical ports.

20. The method of claim 18, further comprising: determining connected devices in the network; determining that the one virtual network address is associated with a first physical port of the two or more physical ports on the host machine and is associated with a first switch of the different switches; as well as The one virtual network address is assigned to a second physical port of the two or more physical ports on the host machine and a second switch of the different switches.