The present invention relates to communications networks, and in particular to the dynamic allocation of bandwidth (BW) at ports of such networks.
InfiniBand (IB) is the present state-of-the art protocol for network communications. The IB protocol defines the procedure to raise a link by a network port from a user to a peer. One of parameter a port negotiates before raising up a link is maximum bandwidth. In the existing art, the raising of a link proceeds by first trying to raise the maximum BW supported by the port (e.g. 12x). If this bandwidth cannot be raised, the next step is a trial to raise the next lower BW link (e.g. 4x). If this is unsuccessful, the next trial is to raise an even lower BW link (1x) as defined in the InfiniBand (IB) specification. If the maximum successfully raised BW is 4x (i.e. if the host channel adapter supports only a 4x link) one basically loses ⅔ of the maximum bandwidth supported by the switch port (12x).
There is thus a widely recognized need for, and it would be highly advantageous to have, a method and system by which bandwidth losses are avoided at a port that tries to raise a link of maximum bandwidth.
The present invention discloses a method and a switch system (referred to simply as a “switch”) for dynamically controlling bandwidth maximalization at a network port. The invention provides a capability to support a bandwidth split at a port cluster (also referred to as “port”) of the switch (e.g. a 12x port can also function in a configuration of a “trio” of three 4x (“3-4x”) ports). A particularly advantageous inventive feature is the ability to auto-negotiate between two options, 12x and 3-4x, during hot insertion. Hot insertion in the case of this auto-negotiation may pose a problem to the subnet manager: if the switch declares a port to be 12x (when it is still down) and the port is then configured as 3-4x, the subnet manager suddenly discovers two new ports that were previously undeclared (e.g. the port number may change and the routing table needs to be updated). We solve this problem as explained below.
In the inventive approach disclosed herein, the switch can change the port configuration (maximum bandwidth or split bandwidth) dynamically, while prior art switches do this statically. The port first tries to raise a 12x link. If it fails, it changes the configuration to 3-4x and tries to raise each 4x link separately. A second advantageous feature is to enable hot insertion in a system: in order to avoid the appearance or disappearance of a port in a hot insertion, our switch always declares (in response to a query from the subnet manager) the maximum number of ports (3 for a cluster, and N for a switch where N is an integer>1). Each cluster of 3 ports can raise a link as 12x or 3-4x. In each such cluster, there is one master and two slaves. The switch always declares the master with a maximum BW as 12x, while each slave is declared with a maximum BW of only 4x. If the master port raises a 12x (maximum BW) link successfully and uses the entire physical lane (11-0), the configuration is set to be “single” and the two slaves will stay in a “disable” state (i.e. they basically do not have a physical connection outside the switch). The “disable” state is defined in the IB specification. If the master port fails in raising the maximum bandwidth, then the two slaves are woken up from the disable state, and each of the 3 ports tries to raise a link separately (while the maximum BW of each port is 4x). If one of 4x links succeeds, then the configuration is set to “trio”. Otherwise, the master tries to raise a link again in the 12x configuration, and two slaves go back into the disable state. This procedure continues until one of the links comes up and the configuration is set.
According to the present invention there is provided, in a communications network, a method for optimizing the use of a given bandwidth in different network connections, comprising the steps of providing port bandwidth resources at a port of the network; and dynamically and automatically allocating the port bandwidth resources, whereby the dynamic allocation optimizes and maximizes the use of the given bandwidth.
According to one feature in the method for optimizing the use of a given bandwidth in different network connections, the step of providing bandwidth resources includes providing a three port cluster with a bandwidth of 12x declared as a port of 12x and two ports of 4x each, whereby the declaration makes the dynamic and automatic allocation transparent to a subnet manager.
According to another feature in the method for optimizing the use of a given bandwidth in different network connections, the step of providing bandwidth resources includes providing a three port cluster with a bandwidth of 12x declared as a trio of 4x ports, whereby the declaration makes the dynamic and automatic allocation transparent to a subnet manager.
According to yet another feature in the method for optimizing the use of a given bandwidth in different network connections, the step of dynamically and automatically allocating includes connecting to one peer at a maximum bandwidth smaller than the given bandwidth, the difference between the maximum bandwidth and the given bandwidth being a remainder bandwidth, and using the remainder bandwidth to connect to at least one other peer.
According to yet another feature in the method for optimizing the use of a given bandwidth in different network connections, the using of the remainder bandwidth to connect to at least one other peer includes using the remainder bandwidth to connect to at least one peer selected from the group consisting of a 4x port and a 1x port.
According to the present invention there is provided a method for optimizing bandwidth utilization at a network port, comprising the steps of providing a cluster of three ports configured to carry a given bandwidth, and dynamically and automatically allocating bandwidth among the three ports in order to optimize the use of the given bandwidth.
According to the present invention there is provided a switch system for optimizing the use of a given bandwidth in different network connections, comprising a switch with a plurality of port clusters, each cluster comprising three ports; and a dynamic bandwidth allocation mechanism operative to configure automatically each cluster in a manner in which the use of the given bandwidth is optimized.
The invention is herein described, by way of example only, with reference to the accompanying drawings, wherein:
The present invention provides a method and switch system for optimizing the use of a given bandwidth at a port of a switch in a communications network, for use in different network connections. The present invention provides a switch that facilitates this optimization by dynamic configuration of the given bandwidth in a manner which is transparent to a subnet manager, and which does not disturb traffic on other ports of the network. As shown schematically in
In one exemplary embodiment, the three-port cluster (see schematic physical view in
Returning now to the method,
While the invention has been described with respect to a limited number of embodiments, it will be appreciated that many variations, modifications and other applications of the invention may be made.
The present invention claims priority from U.S. Provisional Patent Application No. 60/520,666, filed 18 Nov. 2003, the contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60520666 | Nov 2003 | US |