EP-4738782-A1 - CAPABILITY BASED AUTONOMOUS STORAGE AREA NETWORK TRAFFIC ENGINEERING
Abstract
A network device for capability-based autonomous SAN traffic engineering is provided. The network device includes one or more ingress points configured to receive one or more packets from a first network node, a first set of buffers configured to store packets associated with a first group of network nodes, and a packet processing logic configured to determine a communication speed of the first network node over a first channel, wherein the packet processing logic is configured to assign the first network node to a first group nodes of the plurality of groups of network nodes, and store the one or more packets from the first network node in the first set of buffers.
Inventors
- GNANASEKARAN, SATHISH
- CHIDAMBARAM, PUSHPANATHAN
- RAJARATHINAM, PONPANDIARAJ
Assignees
- Avago Technologies International Sales Pte. Limited
Dates
- Publication Date
- 20260506
- Application Date
- 20251027
Claims (15)
- An apparatus comprising: one or more ingress points configured to receive one or more packets from a first network node; and a logic configured to determine a communication speed of the first network node, wherein the logic is configured to determine, based at least in part on the communication speed of the first network node, a group of network nodes of a plurality of groups of network nodes to assign the first network node, wherein in response to determining that the communication speed of the first network node is greater than or equal to a first speed, assign the first network node to a first group of network nodes of the plurality of groups of network nodes, wherein the first group of network nodes includes network nodes configured to communicate at at least a first speed; and store the one or more packets from the first network node in a first set of buffers, wherein the first set of buffers is configured to store packets associated with the first group of network nodes.
- The apparatus of claim 1, further comprising a second set of buffers of the two or more sets of buffers, the second set of buffers configured to store packets associated with a second group of network nodes, the second group of network nodes configured to communicate at at least a second speed and slower than the first speed.
- The apparatus of claim 1 or claim 2, wherein the logic is configured to determine the communication speed of the first network node based, at least in part, on a service level agreement (SLA) associated with the first network node, and/or wherein the logic is configured to determine the communication speed of the first network node based, at least in part, on a data rate of a fiber channel connecting the first network node to the one or more ingress points.
- The apparatus of one of claims 1 to 3, wherein the logic is configured to determine the communication speed of the first network node based, at least in part, on a data rate of an internet protocol (IP) connection between the first network node to the one or more ingress points, and/or wherein the logic is further configured to: determine a supported protocol of the first network node based, at least in part, on an Upper-Level Protocol (ULP) supported by the first network node; and assign the first network node to the first group of network nodes based, at least in part, on the communication speed of the first network node and the ULP of the first network node.
- The apparatus of one of claims 1 to 4, wherein the logic is further configured to: determine a total number of groups of network nodes of the plurality of groups of network nodes including the first group of network nodes, wherein in response to determining that the total number of groups of network nodes is less than a number of virtual channels, splitting at least one of group of network nodes into two or more groups of network nodes.
- The apparatus of one of claims 1 to 5, wherein the logic is further configured to: determine a total number of groups of the plurality of groups of network nodes including the first group of network nodes, wherein in response to determining that that the total number of groups of network nodes is greater than a number of virtual channels, combining two or more groups of into a single group.
- The apparatus of one of claims 1 to 6, wherein the logic is further configured to: determine a total number of groups of network nodes of the plurality of groups of network nodes including the first group of network nodes, wherein in response to determining that the total number of groups of network nodes is the same as a number of available virtual channels, the logic is further configured to: delete an unused group of network nodes of the plurality of groups of network nodes to which no devices are assigned; and release virtual channels associated with the unused group of network nodes.
- A network device comprising: one or more ingress points configured to receive one or more packets from a first network node; a first set of buffers configured to store packets associated with a first group of network nodes, the first group of network nodes configured to communicate at at least a first speed; and a packet processing logic configured to determine a communication speed of the first network node over a first channel, wherein the packet processing logic is configured to determine, based at least in part on the communication speed of the first network node, a group of networks nodes of a plurality of groups of network nodes to assign the first network node, wherein in response to determining that the communication speed of the first network node is greater than or equal to a first speed, assign the first network node to a first group nodes of the plurality of groups of network nodes; and store the one or more packets from the first network node in the first set of buffers.
- The network device of claim 8, further comprising a second set of buffers of the two or more sets of buffers, the second set of buffers configured to store packets associated with a second group of network nodes, the second group of network nodes configured to communicate at at least a second speed and slower than the first speed.
- The network device of claim 8 or claim 9, wherein the packet processing logic is further configured to: determine a supported protocol of the first network node based, at least in part, on an Upper-Level Protocol (ULP) supported by the first network node; and assign the first network node to the first group of network nodes based, at least in part, on the communication speed of the first network node and the ULP of the first network node, and/or wherein the packet processing logic is further configured to: determine a total number of groups of network nodes of the plurality of groups of network nodes including the first group of network nodes, wherein in response to determining that the total number of groups of network nodes is less than a number of virtual channels, splitting at least one of group of network nodes into two or more groups of network nodes.
- The network device of claim 8 or claim 9 or claim 10, wherein the packet processing logic is further configured to: determine a total number of groups of the plurality of groups of network nodes including the first group of network nodes, wherein in response to determining that that the total number of groups of network nodes is greater than a number of virtual channels, combining two or more groups of into a single group, and/or wherein the packet processing logic is further configured to: determine a total number of groups of network nodes of the plurality of groups of network nodes including the first group of network nodes, wherein in response to determining that the total number of groups of network nodes is the same as a number of available virtual channels, the packet processing logic is further configured to: delete an unused group of network nodes of the plurality of groups of network nodes to which no devices are assigned; and release virtual channels associated with the unused group of network nodes.
- A system comprising: one or more network nodes including a first network node; a network device coupled to the one or more network nodes, wherein each network node of the one or more network nodes is connected to the network device via a respective communication channel, wherein the first node is coupled to the first network device via a first channel, the network device comprising: one or more ingress points configured to receive one or more packets from the first network node; a first set of buffers configured to store packets associated with a first group of network nodes, the first group of network nodes configured to communicate at at least a first speed; and a packet processing logic configured to determine a communication speed of the first network node over the first channel, wherein the packet processing logic is configured to determine, based at least in part on the communication speed of the first network node, a group of networks nodes of a plurality of groups of network nodes to assign the first network node, wherein in response to determining that the communication speed of the first network node is greater than or equal to a first speed, assign the first network node to a first group nodes of the plurality of groups of network nodes; and store the one or more packets from the first network node in the first set of buffers.
- The system of claim 12, wherein the traffic manager is further configured to group the one or more packets into one or more blocks of packets, the one or more blocks of packets including a first block of one or more first packets and a second block of one or more second packets, and/or wherein the packet processing logic is further configured to: determine a total number of groups of network nodes of the plurality of groups of network nodes including the first group of network nodes, wherein in response to determining that the total number of groups of network nodes is less than a number of virtual channels, splitting at least one of group of network nodes into two or more groups of network nodes.
- The system of claim 12 or claim 13, wherein the packet processing logic is further configured to: determine a total number of groups of the plurality of groups of network nodes including the first group of network nodes, wherein in response to determining that that the total number of groups of network nodes is greater than a number of virtual channels, combining two or more groups of into a single group.
- The system of one of claims 12 to 14, wherein the packet processing logic is further configured to: determine a total number of groups of network nodes of the plurality of groups of network nodes including the first group of network nodes, wherein in response to determining that the total number of groups of network nodes is the same as a number of available virtual channels, the packet processing logic is further configured to: delete an unused group of network nodes of the plurality of groups of network nodes to which no devices are assigned; and release virtual channels associated with the unused group of network nodes.
Description
COPYRIGHT STATEMENT A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. FIELD The present disclosure relates, in general, to methods, systems, and apparatuses for traffic engineering in a storage area network (SAN). BACKGROUND Link speeds in SANs have increased exponentially with each passing generation, from 1G to 128G, with 256G technology in development. Storage protocols for higher performance have been developed and deployed. SANs are being designed for use as a unified network, carrying both IP-based ULPs (such as NVMe over IP, SCSI over IP, etc.) along with native FC-based ULPs (such as SCSI over FC, FICON over FC, NVMe over FC, etc.). As a result, SANs are required to host applications with a wide range of performance characteristics. In some approaches to traffic engineering in SANs, network data plane resources, such as buffers, virtual channels, and scheduling slots (e.g., priority) are shared by a large number of traffic flows relative to the number of resources. The traffic flows sharing a given resource are typically grouped together randomly. Sharing of resources across a diverse collection of traffic flows with different performance capabilities creates bottlenecks to performance and efficiency, and can result in service level agreement (SLA) violations. Accordingly, a framework for capability-based engineering of traffic flows is provided. BRIEF DESCRIPTION OF THE DRAWINGS A further understanding of the nature and advantages of particular embodiments may be realized by reference to the remaining portions of the specification and the drawings, in which like reference numerals are used to refer to similar components. In some instances, a sub-label is associated with a reference numeral to denote one of multiple similar components. When reference is made to a reference numeral without specification to an existing sub-label, it is intended to refer to all such multiple similar components. Fig. 1 is a schematic block diagram of a network switch with capability-based traffic engineering, in accordance with various embodiments;Fig. 2 is a schematic block diagram of a storage area network implementing capability-based traffic engineering, in accordance with various embodiments;Fig. 3 is a schematic block diagram of dataplane operations within a storage area network implementing capability-based traffic engineering, in accordance with various embodiments; andFig. 4 is a hardware block diagram of a computer system for a network switch with capability-based traffic engineering, in accordance with various embodiments. DETAILED DESCRIPTION OF EMBODIMENTS Various embodiments set forth a network device for providing capability-based traffic engineering in SANs. In some embodiments, an apparatus for providing capability-based traffic engineering in SANs is provided. The apparatus includes one or more ingress points configured to receive one or more packets from a first network node, and a logic configured to determine a communication speed of the first network node. The logic is configured to determine, based at least in part on the communication speed of the first network node, a group of network nodes of a plurality of groups of network nodes to assign the first network node. In response to determining that the communication speed of the first network node is greater than or equal to a first speed, the logic is further configured to assign the first network node to a first group of network nodes of the plurality of groups of network nodes, wherein the first group of network nodes includes network nodes configured to communicate at at least a first speed, and store the one or more packets from the first network node in a first set of buffers. The first set of buffers is configured to store packets associated with the first group of network nodes. In further embodiments, a network device with capability-based traffic engineering in SANs is provided. The network device includes one or more ingress points configured to receive one or more packets from a first network node, a first set of buffers configured to store packets associated with a first group of network nodes, the first group of network nodes configured to communicate at at least a first speed, and a packet processing logic configured to determine a communication speed of the first network node over a first channel. The packet processing logic is configured to determine, based at least in part on the communication speed of the first network node, a group of networks nodes of a plurality of groups of network nodes to assign the first network node. In response to determining that the communication speed of the first network node is greater tha