Detailed Description
Exemplary embodiments of the present disclosure may include any one or more of the novel features described herein (including those described in the detailed description) and/or shown in the accompanying drawings. As used herein, "at least one," "one or more," and/or "are open-ended expressions that are both connected and separated in operation. For example, each of the expressions "at least one of A, B and C", "at least one of A, B or C", "one or more of A, B and C", "one or more of A, B or C", and "A, B and/or C" means a alone, B alone, C, A alone and B together, a and C together, B and C together, or A, B and C together.
It should be noted that the terms "a" or "an" entity refer to one or more of the described entities. Thus, the terms "a", "an", "one or more" and "at least one" may be used interchangeably herein.
Exemplary embodiments of the present disclosure provide a hybrid network communication system and method that combines a PCIe-based Ethernet over PCIe (Ethernet over PCIe, hereinafter abbreviated as EoP) technology and an Ethernet (Ethernet under abbreviated as Ethernet) technology, so that the EoP technology that originally only supports packet propagation in the same enclosure also supports data propagation across the enclosure after the hybrid network communication system and method provided by exemplary embodiments of the present disclosure are combined.
In the hybrid Network communication system and method according to the exemplary embodiments of the disclosure, at least one or a part of the plurality of implementation examples may include a Controller (Controller) and a Network Interface (NIC), the NIC is built with an Ethernet (EoP) and an Ethernet (Ethernet) supporting a pci express bus, and the NIC sets a Rule (Flow Rule) through the Controller so that packets can be transmitted between machines in different cabinets, and thus, the NIC is also a Super Network Interface Card (Super Network Interface Card). In addition, the system also provides the broadcasting service of Ethernet behavior, and simultaneously avoids the occurrence of broadcasting storm. In one embodiment, the controller may be implemented in a management host of a network system, or in another embodiment, may be implemented in any host in the same cabinet, depending on the environment to be used, and is not limited thereto.
In the hybrid peripheral component interconnect express (PCIe) and Ethernet network communication system and method according to the exemplary embodiment of the present disclosure, a network originally supporting only the EoP technology can also perform packet propagation between the same cabinet and different cabinets in a hybrid or compatible Ethernet network environment.
The strategy for enabling a network supporting the EoP technology to perform packet propagation between a cabinet and a different cabinet in a hybrid or compatible Ethernet network environment includes, for example, letting a user (network manager) issue rules through a controller. To achieve this, the controller first performs a Medium Access Control (MAC) learning action, and then the controller applies rules to the corresponding NIC. And then, when the Host (Host) carries out data transmission with the same cabinet or different cabinets, the data transmission can be carried out according to a single point (Unicast) transmission rule issued by a user (network manager). To avoid broadcast storm, the hybrid network communication system and method according to the exemplary embodiments of the disclosure also prescribe broadcast (broadcast) rules such that the NIC does not perform the broadcast action of the packet after dropping (Drop) the packet according to the rules or sending the packet to the host and the controller.
In the present disclosure, Ethernet over pci express (EoP) ports are used to speed up the propagation of hosts in the enclosure, and in combination with Ethernet ports to perform inter-enclosure propagation. Further, the EoP port is a PCIe port using a memory mapping method, and may be a connection port implemented by using a software Driver (Driver); in another embodiment, the EoP port may also be a physical/hardware connection port.
Exemplary embodiments of the invention are described in detail below with reference to the drawings, wherein like reference numerals are used to refer to the same or similar parts throughout the drawings and the description.
FIG. 1 is a block diagram illustrating a memory mapping system according to an exemplary embodiment of the present disclosure.
Referring to FIG. 1, a memory mapping system 100 includes a management host 110, a PCIe bus 130, and a plurality of servers 120 a-120 n. Servers 120 a-120 n may be coupled to management host 110 via PCIe bus 130, and a Non-Transparent Bridge (hereinafter NTB) over PCIe bus 130 (i.e., 140 a-140 n) performs memory address mapping between management host 110 and servers 120 a-120 n. Specifically, each NTB 140 a-140 n has two endpoints, and each endpoint is responsible for memory address mapping in one direction. The management host 110 includes a Central Processing Unit (CPU) 112, a memory 114, a memory mapping controller 116, and Single Root directory I/O Virtualization (SR-IOV) devices 118 a-118 n. The memory mapping controller 116 may control the management of memory address mapping between the host 110 and the servers 120 a-120 n. SR-IOV devices 118 a-118 n (e.g., 10G Ethernet cards) may be plugged onto the management host 110, and virtual functions of the SR-IOV devices 118 a-118 n may be shared to the servers 120 a-120 n via the PCIe bus 130.
In an exemplary embodiment, an endpoint of NTB 140a may map the address space of management host 110 to server 120a via PCIe bus 130, while another endpoint of NTB 140a may map the address space of server 120a to management host 110 via PCIe bus 130. In this approach, accesses to memory of the managing host 110 may be directed to the mapped memory addresses of the server 120a, and accesses to memory of the server 120a may be directed to the mapped memory addresses of the managing host 110.
In various example implementations, the memory-mapped controller 116 may be implemented as a software module or program code. For example, when a new server is detected on the PCIe bus, program code may be loaded into memory 114 and executed by CPU 112 such that mapping information between management host 110 and the server is updated. However, the present disclosure is not limited thereto. In some implementation examples, the memory mapping controller 116 may also be implemented as hardware circuitry that controls the management of memory address mappings between the host 110 and the servers 120 a-120 n.
Fig. 2 is a flowchart illustrating a memory mapping method according to an exemplary embodiment of the present disclosure.
Referring to fig. 2, in step S201, a management host having a memory address configures an extended memory address.
In step S203, the NTB of the PCIe bus maps the extended memory address of the management host corresponding to each server to the memory address of each of the servers, respectively.
In step S205, each server configures an extended memory address.
In step S207, the NTB maps the extended memory address of each server to the memory address of the management host and the extended memory address, wherein the extended memory address of each server corresponds to the server and the management host.
As described above, the memory mapping method constructs a global memory mapping structure in the server and the management host, so that the server can share virtual functions of the SR-IOV device and communicate with each other through global memory address mapping using the BAR of each NTB while utilizing the maximum bandwidth of the PCIe bus. Accordingly, the present disclosure implements an EoP port by this memory mapping method, thereby increasing the propagation bandwidth of data and reducing the propagation delay. In other words, the present disclosure may combine PCIe ports with a management host as EoP ports in the form of software modules or program code.
Fig. 3 is a block diagram illustrating a network communication system within a cabinet according to an exemplary embodiment of the present disclosure.
Referring to fig. 3, a network system 300 includes a controller 310, a plurality of hosts 320a to 320n, a PCIe switch 330, and an Ethernet switch 340. Each host 320 a-320 n includes an Ethernet port Eth and an EoP port, which are coupled to PCIe switch 330. The hosts 320a to 320n may be servers or virtual servers, and the EoP ports may be connection ports or physical connection ports of the memory mapping system implemented in software as described in fig. 1 and 2. It is noted that the Ethernet port Eth and the EoP port may be combined into a Network Interface Card (NIC) by a software module or program code. Based on this, the NIC may be a virtual switch, a driver module, or other various virtual modules, etc., and the NIC may have at least one rule table to transmit or receive packets according to the rules of the rule table. The controller 310 is coupled to the NICs of the multiple hosts 320a through 320n and the NICs of the hosts of different cabinets, thereby monitoring the hosts in and out of the cabinets in real time. Specifically, a management network is formed between the controller 310 and the hosts of each cabinet, and this network is completely independent of the network between the hosts. It should be noted that the controller 310 may be disposed in the cabinet, in the host, or outside the cabinet, but the disclosure is not limited thereto. PCIe switch 330 is coupled to Ethernet switch 340 for handling the propagation in the cabinet, and may propagate or receive packets to or from different cabinets through Ethernet switch 340. In various embodiments, PCIe switch 330 may be disposed inside the cabinet, in the host, or outside the cabinet, but the disclosure is not limited thereto.
Fig. 4 is a block diagram illustrating a network communication system between cabinets according to an exemplary embodiment of the present disclosure.
Referring to fig. 4, the network system 400 includes a controller 410, racks 420a to 420n, and an Ethernet switch 430, and the controller 410 and the Ethernet switch 430 are independent of the racks 420a to 420n, and each rack 420a to 420n has at least one host. The controller 410 is coupled to the racks 420a through 420n to monitor and manage the hosts within each rack. In other words, the controller 410 and the cabinets 420a to 420n have formed a management network. The cabinets 420a to 420n are coupled to the Ethernet switch 430 to perform propagation between cabinets. In other words, when the hosts in different cabinets communicate with each other, the data needs to be transmitted or received by the Ethernet switch 430, and the Ethernet switch 430 and the cabinets 420a to 420n form a data network independent of the management network.
Referring to fig. 3 and 4, the NIC of the host of each of the cabinets 420a to 420n may transmit or receive a packet, wherein the packet is propagated through the EoP port using the PCIe-based EoP architecture for propagation to the same cabinet, and the packet is propagated through the Ethernet port Eth for propagation to a different cabinet. If the packet is broadcast, the packet is discarded or transmitted to the controller.
Fig. 5 is a block diagram illustrating a controller according to an exemplary embodiment of the present disclosure.
Referring to fig. 5, the controller 500 includes a processor 510, a memory 520, and an input/output interface 530. The processor 510 may be coupled to the memory 520 and the io interface 530, and the processor 510 stores the EoP port and the Ethernet port in the memory 520 in advance corresponding to the number of ports and which hosts are in the same cabinet. In other words, the memory 520 stores a cabinet mapping table and a port mapping table, wherein the port mapping table has the mapping relationship between the ports of the hosts and the EoP port and the Ethernet port, and the cabinet mapping table records which cabinet the hosts are installed in. The processor 510 modifies the port mapping table in real time whenever the relationship between the ports of the hosts and the EoP and Ethernet ports changes. The processor 510 modifies the cabinet mapping table in real time whenever a host is added or removed from the cabinet. When the controller 500 receives a packet through the i/o interface 530, the processor 510 analyzes the packet to obtain a Media Access Control (MAC) address and port information, wherein the i/o interface 530 may be a wired nic or a wireless nic, and the port information may be a pin for the host to receive the packet. In addition, the processor 510 reads the port mapping table of the memory 520, and determines whether the port information is related to the Ethernet port or the EoP port according to the port mapping table to generate the determination information, and further generates a rule according to the mac address and the determination information to further return the rule. For example: when the connection port information is the 15 th pin of the host, the 15 th pin is determined to be an EoP port according to the connection port mapping table, and the processor 510 sets the EoP port as the determination information.
Further, when the external source host broadcasts a packet to the external destination host, the processor 510 may receive the packet via the io interface 530, wherein the packet is from the NIC of the external destination host, and the NIC determines that the packet does not match all rules in the rule table according to the rule table, wherein the packet includes the MAC address and the port information of the source host. Then, the processor 510 determines the connection port information related to the EoP port or the Ethernet port of the NIC of the external destination host according to the connection port information to generate determination information, and further generates another rule according to the determination information and the packet and transmits the rule to the external destination host through the io interface 530, wherein the external destination host stores the another rule in the rule table and responds to the external source host, and the external source host does not rebroadcast the packet.
Fig. 6 is a schematic diagram illustrating a rule table according to an exemplary embodiment of the present disclosure.
Referring to fig. 6, a rule table 600 includes at least one rule, and each rule has at least a MAC address field 610a through 610n and a corresponding connection port field 620a through 620n of a host. In addition, each rule may have a priority field. Specifically, when each host wants to transmit a packet, the MAC address of the destination host is searched to find a corresponding port field, and the packet is transmitted to the destination host through the corresponding port, where the port field is the judgment information generated by the controller. If the MAC address of the destination host is found to correspond to two rules, the priority fields of the two rules are compared to select the rule with higher priority, wherein the connection port field can store an Ethernet port or an EoP port. When each host receives the packet, the corresponding rule is determined according to the MAC address of the source host by searching the rule table. If the corresponding rule already exists and the packet is broadcast, the packet is discarded or returned to the controller according to the rule. If there is no corresponding rule, the connection port information of the packet is added to the packet to be transmitted to the controller, wherein the connection port information may be a pin of the host receiving the packet.
Fig. 7 is a flowchart illustrating a transmitting end of a single point transmission (unicast transmission) according to an exemplary embodiment of the present disclosure.
Referring to fig. 7, in step S701, the source host compares the MAC address of the destination host of the packet with a rule table. In other words, the MAC address of the destination host in the packet is directly extracted and compared with all rules of the rule table.
In step S703, a connection port corresponding to the destination host is obtained in accordance with the rule matching the packet. Specifically, when the MAC address of the destination host within the packet matches a rule of the rule table, the connection port field of this rule will be read to obtain the connection port corresponding to the MAC address of the destination host, where the connection port may be an EoP port or an Ethernet port. In various embodiments, if the MAC address of the destination host matches two rules, the connection port corresponding to the MAC address of the destination host is determined according to the priority field in the rules.
In step S705, the packet is transmitted through the corresponding connection port. Specifically, if the corresponding connection port is an EoP port, the packet is transmitted to the destination host in the same cabinet through the EoP port. If the corresponding connection port is an Ethernet port, the packet is transmitted to the destination host of a different cabinet through the Ethernet port.
Fig. 8 is a flowchart illustrating a receiving end of single point propagation according to an exemplary embodiment of the present disclosure.
Referring to fig. 8, in step S801, the destination host determines whether there is a rule matching the packet according to the rule table and the packet. Specifically, the destination host reads the MAC address in the packet and reads the MAC address column of the rules table to compare if the MAC addresses in the packet match.
In step S803, if there is no match, the destination host adds the MAC address of the source host and the connection port information of the connection port to the packet to transmit to the controller. Specifically, the NIC of the destination host determines the pin of the received packet to generate the connection port information with the pin information, and adds the connection port information and the MAC address of the source host into the packet to be transmitted to the controller.
In step S805, the controller generates and returns the rule to the destination host. Specifically, the controller determines that the connection port information belongs to the EoP port or the Ethernet port according to the connection port mapping table to generate determination information (at least having information of the EoP port or the Ethernet port), and generates a rule according to the MAC address of the source host of the packet and the determination information, and then transmits the rule back to the destination host.
In step S807, the destination host stores the rule in a rule table. Further, the NIC of the destination host has a preset rule table, and whenever the NIC receives a new rule, the NIC adds the rule to the rule table.
In step S809, the unicast of the destination is ended.
Fig. 9 is a flowchart illustrating a destination host of broadcast propagation according to an exemplary embodiment of the present disclosure.
Referring to fig. 9, in step S901, a destination host receives a broadcasted packet. In other words, at least one destination host receives an Address Resolution Protocol (ARP) packet broadcast by a source host.
In step S903, the destination host determines whether there is a rule matching the packet according to the rule table. Specifically, the destination host may present the MAC address in the packet to compare the MAC address with the rules in the rule table one by one, and further determine whether matching is complete.
In step S905, if matching is completed, the packet is discarded.
In step S907, if the matching is not completed, the MAC address of the source host and the connection port information of the connection port related to the received packet are added to the packet to be transmitted to the controller. Specifically, the NIC of the destination host determines the pin of the received packet to generate the connection port information with the pin information, and adds the connection port information and the MAC address of the source host into the packet to be transmitted to the controller.
In step S909, the controller generates and returns the rule to the destination host. Specifically, the controller determines that the connection port information belongs to an EoP port or an Ethernet port according to the connection port mapping table to generate determination information, and generates a rule according to the MAC address of the source host of the packet and the determination information, and then transmits the rule back to the destination host.
In step S911, the destination host stores the rule to send the response packet back to the source host according to the rule. Specifically, the NIC of the destination host stores the rule in the rule table, and generates a response packet according to the rule and the MAC address of the destination host, and the destination host selects the connection port according to the connection port column of the corresponding rule to return the response packet. It should be noted that, if two rules in the rule table have the same MAC address, the rule with EoP in the connection port column is set to have higher priority, and the destination host transmits the response packet preferentially according to the connection port with higher priority. If the port with higher priority is damaged, the destination host will transmit the response packet through the port with lower priority.
In step S913, the destination host will end address resolution.
Fig. 10 is a flowchart illustrating a source host of a broadcast propagation according to an exemplary embodiment of the present disclosure.
Referring to fig. 10, in step S1001, to complete address resolution, a source host broadcasts a packet. Specifically, the controller transmits the broadcast rule to the source host to generate the rule table having the broadcast rule when the source host is in the initial state. The source host generates an ARP packet based on the rule table and the MAC address of the source host to transmit the packet from the EoP port and the Ethernet port. Therefore, the destination host of the same cabinet will receive the packet by the EoP port and the Ethernet port, and the destination host of the different cabinet will receive the packet only by the Ethernet port. Wherein the destination host discards or forwards the packet to the controller according to the rules table of its NIC.
In step S1003, the source host receives a response packet from the destination host. Specifically, the source host will receive the response packet of the destination host of the same enclosure from the EoP port, and receive the response packet of the destination host of a different enclosure from the Ethernet port.
In step S1005, the source host adds the MAC address of the destination host and the connection port information of the connection port with respect to the reception response packet to the response packet to transmit to the controller. Specifically, the NIC of the source host detects the connection port receiving the response packet to generate connection port information, and adds the connection port information and the MAC address of the destination host to the response packet to transmit to the controller.
In step S1007, the controller generates and returns a rule. Specifically, the controller determines that the connection port information of the response packet belongs to the EoP port or the Ethernet port according to the connection port mapping table to generate the determination information, and generates a rule according to the MAC address of the destination host of the response packet and the determination information, and then returns the rule to the source host.
In step S1009, the source host stores the rule in the rule table. Specifically, the NIC of the source host receives the rules to store the rules in the rule table, thereby completing address resolution.
A practical application of an exemplary embodiment of the present disclosure will be described below with reference to FIGS. 11 and 12, wherein like reference numerals are used to refer to the same or similar parts throughout the drawings and description. Fig. 11 is a schematic diagram illustrating a network communication system within a cabinet according to an exemplary embodiment of the present disclosure. Fig. 12 is a schematic diagram illustrating an inter-cabinet network communication system according to an exemplary embodiment of the present disclosure.
Referring to FIG. 11, a network system 1100 within a cabinet may have a plurality of hosts 1110 a-1110 d, a controller, and a PCIe switch, where each host 1110 a-1110 d has a NIC. When the transmission in the cabinet is needed, the packet can be transmitted through the EoP port of the NIC of the host and transmitted to the EoP port of the NIC of another host through the PCIe switch. For example: when the host 1110a transmits a packet to the host 1110b, the host 1110c, or the host 1110d, the packet may be transmitted through the EoP port of the NIC of the host 1110a and received through the EoP port of the NIC of the host 1110b, the host 1110c, or the host 1110 d.
Referring to FIG. 12, an inter-enclosure network system 1200 may have network systems within multiple enclosures and PCIe switches. Referring to fig. 11 and 12, for example: hosts 1210a through 1210c belong to the same enclosure, while hosts 1220a through 1220c belong to another enclosure. When the propagation between the cabinets is required, the packet can be transmitted through the Ethernet port of the NIC of the host and transmitted to the Ethernet port of the NIC of the host of another cabinet through the Ethernet switch. For example: when the host 1210a transmits a packet to the host 1220a, 1220b, or 1220c of another cabinet, the packet may be transmitted through the Ethernet port of the NIC of the host 1210a and received through the Ethernet port of the NIC of the host 1220a, 1220b, or 1220 c. In addition, the host NIC determines whether rules have been stored with respect to the received packet, whether propagation is occurring within or between enclosures. If it is determined that there are no rules associated with the received packet, the NIC may notify the controller to generate a new rule and store the new rule in the NIC.
Fig. 13 is a flowchart illustrating a network communication method combining PCIe and Ethernet according to an exemplary embodiment of the present disclosure.
Referring to fig. 13, in step S1301, a packet is transmitted or received through a network interface card, wherein the packet is propagated through an EoP port for propagation to the same cabinet, and the packet is propagated through an Ethernet port for propagation to a different cabinet.
In step S1303, if the packet is broadcast, the packet is discarded or transmitted to the controller in response to the packet.
In summary, the network communication method of the present disclosure constructs a propagation structure combining the pci express bus and the Ethernet network between the hosts in the cabinet or between the cabinets, so that the hosts in the cabinet use the EoP port for communication with each other, and the hosts between the cabinets use the Ethernet port for connection. The system can integrate the functions into one network card, simultaneously utilizes the maximum bandwidth of a PCIe bus, and does not need to arrange redundant network cards to accelerate the propagation among cabinets. The previously described exemplary embodiments of the present disclosure have the foregoing advantages, which are not required by all forms of the present disclosure.
Although the present invention has been described with reference to the above embodiments, it should be understood that various changes and modifications can be made therein by those skilled in the art without departing from the spirit and scope of the invention.