Adaptive routing profile
Patent Information
- Application Number
- CN202610342215.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2025-12-17
- Filing Date
- 2026-03-19
- Publication Date
- 2026-09-22
Smart Images

Figure CN122802416A_ABST
Abstract
Description
[0001] Cross-reference to related applications This application claims the benefit of U.S. Provisional Patent Application No. 63 / 774,150, filed March 19, 2025, by Shpiner et al., the disclosure of which is incorporated herein by reference. Technical Field
[0002] This disclosure relates to network routing, and more specifically, but not exclusively, to adaptive routing. Background Technology
[0003] Adaptive routing is a network routing technique that dynamically adjusts the path selection of data packets based on current network conditions. In traditional static routing, packets follow a predetermined path between source and destination. However, adaptive routing allows the network to respond to changes in topology, congestion, or failures by modifying routing decisions in real time.
[0004] In adaptive routing systems, routers, switches, or multiport network interface controllers (NICs) continuously monitor network metrics such as queue depth, link utilization, and latency. Based on these measurements, routing algorithms can select alternative paths to avoid link congestion or failures, thereby improving overall network performance and reliability.
[0005] One design principle in adaptive routing is to use ranks or scores to represent the desirability of different exit ports or paths. These ranks are typically calculated based on congestion levels, with lower ranks indicating less path congestion.
[0006] Routing algorithms identify ports that can reach the destination of packets (usually via minimum-hop routing, although non-minimum-hop routes may be considered in some topologies). Adaptive routing is the logic of selecting a single best port from these reachable ports (typically, selecting the port with the best rank (i.e., the lowest rank) to forward packets).
[0007] As networks become more complex and handle increasingly diverse applications and traffic patterns, there is growing interest in developing more sophisticated adaptive routing technologies. These technologies aim to provide greater flexibility and optimization for different types of network traffic, thereby improving overall network efficiency and performance. Summary of the Invention
[0008] According to embodiments of the present disclosure, a network device is provided, the network device including: a plurality of ports for receiving packets; and a processing circuit system for determining an adaptive routing profile classification of the received packets, making an adaptive routing decision on the packets based on different adaptive routing profiles associated with the adaptive routing profile classification of the packets, and forwarding the received packets to the ports according to the adaptive routing decision.
[0009] Furthermore, according to embodiments of this disclosure, at least some of the ports are used to receive packets of a first adaptive routing profile classification and a second adaptive routing profile classification; and the processing circuitry is used to make adaptive routing decisions for packets of the first adaptive routing profile classification based on the first adaptive routing profile associated with the first adaptive routing profile classification, and to make adaptive routing decisions for packets of the second adaptive routing profile classification based on the second adaptive routing profile associated with the second adaptive routing profile classification.
[0010] Furthermore, according to embodiments of this disclosure, the first adaptive routing profile and the second adaptive routing profile include different thresholds for classifying ports.
[0011] Additionally, according to embodiments of this disclosure, the processing circuitry is configured to assign a first set of grades to ports for classification in the first adaptive routing profile based on at least one first threshold specified in the first adaptive routing profile, assign a second set of grades to ports for classification in the second adaptive routing profile based on at least one second threshold specified in the second adaptive routing profile, and make adaptive routing decisions for packets based on the first set of grades for ports for classification in the first adaptive routing profile and the second set of grades for ports for classification in the second adaptive routing profile.
[0012] Furthermore, according to embodiments of this disclosure, the first adaptive routing profile classification has a lower bandwidth share of traffic compared to the second adaptive routing profile classification; and the first adaptive routing profile includes a lower threshold for classifying ports compared to the second adaptive routing profile.
[0013] Furthermore, according to embodiments of this disclosure, the processing circuitry is configured to make adaptive routing decisions for packets classified by the first adaptive routing profile using a first routing mode based on a first adaptive routing profile, and to make adaptive routing decisions for packets classified by the second adaptive routing profile using a second routing mode based on a second adaptive routing profile.
[0014] Furthermore, according to embodiments of this disclosure, the processing circuitry is configured to make adaptive routing decisions for packets classified by the first adaptive routing profile using sticky routing based on the first adaptive routing profile, and to make adaptive routing decisions for packets classified by the second adaptive routing profile using free routing based on the second adaptive routing profile.
[0015] Additionally, according to embodiments of this disclosure, the network device further includes a memory for storing mappings between different adaptive routing profiles and different adaptive routing profile classifications, as well as data of the different adaptive routing profiles.
[0016] Furthermore, according to embodiments of this disclosure, the processing circuitry is used to determine an adaptive routing profile classification of a packet based on information in the header of the received packet.
[0017] Additionally, according to embodiments of this disclosure, the adaptive routing profile classification is based on one or more of the following: the traffic class indicated in the header of the received packet; the protocol type indicated in the header of the received packet; the packet's suitability for adaptive routing (as indicated in the header of the received packet); the Differential Service Code Point (DSCP) value in the header of the received packet; the Virtual LAN (VLAN) identifier in the header of the received packet; the Service Level (SL) field in the InfiniBand header of the received packet; the port number in the transport layer header of the received packet; the distinction between TCP traffic and RDMA traffic; or a combination of multiple fields in the header of the received packet.
[0018] According to another embodiment of this disclosure, a method for adaptive routing in a network device is provided, the method comprising: receiving packets at a plurality of ports; determining an adaptive routing profile classification for the received packets; making an adaptive routing decision for the packets based on different adaptive routing profiles associated with the adaptive routing profile classification of the packets; and forwarding the received packets to the ports according to the adaptive routing decision.
[0019] According to another embodiment of this disclosure, a method for adaptive routing in a network device is provided, the method comprising: receiving packets at a plurality of ports; determining an adaptive routing profile classification for the received packets; making an adaptive routing decision for the packets based on different adaptive routing profiles associated with the adaptive routing profile classification of the packets; and forwarding the received packets to the ports according to the adaptive routing decision.
[0020] Further, according to embodiments of this disclosure, at least some of the ports receive packets of a first adaptive routing profile classification and a second adaptive routing profile classification; and making adaptive routing decisions includes: making adaptive routing decisions for packets of the first adaptive routing profile classification based on the first adaptive routing profile associated with the first adaptive routing profile classification; and making adaptive routing decisions for packets of the second adaptive routing profile classification based on the second adaptive routing profile associated with the second adaptive routing profile classification.
[0021] Furthermore, according to embodiments of this disclosure, the first adaptive routing profile and the second adaptive routing profile include different thresholds for classifying ports.
[0022] Additionally, according to embodiments of this disclosure, the method further includes: assigning a first set of grades to ports used for classification in the first adaptive routing profile based on at least one first threshold specified in the first adaptive routing profile; assigning a second set of grades to ports used for classification in the second adaptive routing profile based on at least one second threshold specified in the second adaptive routing profile; and making adaptive routing decisions for packets based on the first set of grades for ports used for classification in the first adaptive routing profile and the second set of grades for ports used for classification in the second adaptive routing profile.
[0023] Furthermore, according to embodiments of this disclosure, the first adaptive routing profile classification has a lower traffic bandwidth share compared to the second adaptive routing profile classification; and compared to the second adaptive routing profile, the first adaptive routing profile includes a lower threshold for classifying ports.
[0024] Furthermore, according to embodiments of this disclosure, making adaptive routing decisions includes: making adaptive routing decisions for packets classified by the first adaptive routing profile using a first routing mode based on a first adaptive routing profile, and making adaptive routing decisions for packets classified by the second adaptive routing profile using a second routing mode based on a second adaptive routing profile.
[0025] Furthermore, according to embodiments of this disclosure, making adaptive routing decisions includes: making adaptive routing decisions for packets classified by the first adaptive routing profile using sticky routes based on a first adaptive routing profile, and making adaptive routing decisions for packets classified by the second adaptive routing profile using free routes based on a second adaptive routing profile.
[0026] Additionally, according to embodiments of this disclosure, the method further includes storing in a memory a mapping between different adaptive routing profiles and different adaptive routing profile classifications, as well as data of the different adaptive routing profiles.
[0027] Furthermore, according to embodiments of this disclosure, determining the adaptive routing profile classification of a packet includes: determining the adaptive routing profile classification based on information in the header of the received packet.
[0028] Additionally, according to embodiments of this disclosure, the adaptive routing profile classification is based on one or more of the following: the traffic class indicated in the header of the received packet, the protocol type indicated in the header of the received packet, the packet's suitability for adaptive routing (as indicated in the header of the received packet), the Differential Service Code Point (DSCP) value in the header of the received packet, the Virtual LAN (VLAN) identifier in the header of the received packet, the Service Level (SL) field in the InfiniBand header of the received packet, the port number in the transport layer header of the received packet, the distinction between TCP traffic and RDMA traffic, or a combination of multiple fields in the header of the received packet. Attached Figure Description
[0029] This disclosure will be understood in conjunction with the accompanying drawings and the following specific embodiments, wherein: Figure 1 This is a simplified block diagram of a network device constructed and operable according to embodiments of the present disclosure; Figure 2 It is used for Figure 1 A view of example mapping tables for network devices; Figure 3 It includes Figure 1 A flowchart of the steps in the operation method of network devices; and Figure 4 This is a schematic diagram illustrating a block diagram of a computing system (e.g., a data center or a high-performance computing (HPC) cluster) according to embodiments of the present disclosure. Detailed Implementation
[0030] Overview of Example Implementations Adaptive routing implementations typically rely on using a single, fixed adaptive routing profile for all packets (e.g., all traffic classes or transport protocols within a network device). This approach can pose challenges for networks handling diverse packet types with varying requirements and characteristics.
[0031] Traffic categories (also known as service categories or Quality of Service (QoS) categories) are used to differentiate and prioritize different types of network traffic packets. These categories allow network administrators to apply specific policies and treatments to various types of data flows. Traffic categories are typically indicated in packet headers (e.g., in the Traffic Category field of the IPv6 and IPv4 headers, such as the Differential Service Code Point (DSCP) or the Virtual Channel (VL) field in InfiniBand).
[0032] Other examples of packet types currently treated equally for adaptive routing purposes include packets with different transport protocol types (such as TCP or UDP) indicated in the packet header; packets with different eligibility for adaptive routing (as indicated in the header fields); packets with different DSCP values in the IP header; packets with different VLAN identifiers in Ethernet frames; packets with different service level fields in the InfiniBand packet header; packets with different port numbers in the transport layer header; packets containing both TCP and RDMA traffic; and packets with different combinations of fields in the packet header. Currently, each of these packet types can be associated with the same adaptive routing profile, which specifies the appropriate routing behavior, thresholds, and patterns for the corresponding packet type.
[0033] Adaptive routing systems that use a single fixed route profile for all packets within a network device face challenges in optimizing performance for various packet types with different requirements. This "one-size-fits-all" approach can lead to suboptimal routing decisions, especially in complex network environments.
[0034] For example, different network transport types may have varying sensitivities to packet reordering, which can significantly impact performance. TCP, for instance, performs best when packets arrive in order, as out-of-order delivery can trigger congestion control mechanisms, reducing throughput. In contrast, RDMA (RoCE) based on Converged Ethernet is less sensitive to packet reordering, allowing for more flexible routing decisions without incurring the same performance penalty. The chosen adaptive route profile directly affects packet reordering because different profiles implement different routing patterns and port selection strategies. Profiles using sticky routes tend to maintain consistent paths for packets within a flow, minimizing reordering; while profiles using free routes dynamically select ports based on the current congestion level, potentially introducing more reordering, but for protocols that can tolerate it, this can improve overall throughput.
[0035] The embodiments of this disclosure address at least some of the aforementioned disadvantages by providing a system and method that implements multiple adaptive routing profiles tailored to different packet types (e.g., traffic categories or protocols) within a single network device. Different types of packets (e.g., packets from different traffic types such as TCP traffic and RoCE traffic) defined by packet header field information can be assigned to different adaptive routing profile classifications, thereby allowing for customized routing policies suitable for each packet type.
[0036] In some embodiments, the network device stores data such as a table providing a mapping between adaptive routing profile classifications and different adaptive routing profiles, as well as profile data. The device identifies the adaptive routing profile classification of an incoming packet and applies the corresponding adaptive routing profile to make a routing decision.
[0037] In some cases, adaptive routing profiles can specify different thresholds to classify egress ports based on congestion levels. For example, a profile for latency-sensitive traffic can use a lower threshold, allowing the routing algorithm to react more quickly to slight increases in port congestion.
[0038] In some embodiments, adaptive routing profiles can define different routing modes for various adaptive routing profile categories. For example, a profile for TCP traffic can implement sticky routing to minimize packet out-of-order delivery, while a profile for RDMA traffic can use free routing to maximize responsiveness to changing network conditions.
[0039] Sticky routing helps minimize problems with TCP (and similar protocols) by consistently selecting paths for packets within a flow. In this approach, once an initial port is selected for a TCP flow, subsequent packets in that flow can continue to use the same port unless certain conditions are met. This consistency in routing helps reduce out-of-order packet delivery, which is particularly problematic for TCP connections. When packets arrive out of order, TCP may interpret them as packet loss and trigger congestion control mechanisms, potentially leading to unnecessary throughput reduction. Sticky routing generally keeps packets from the same flow on the same path (with some exceptions), thereby helping to maintain packet ordering and avoid these erroneous congestion signals. In some implementations, sticky routing can allow occasional path changes if the congestion level on the selected port exceeds a specified threshold. This approach strikes a balance between the benefits of consistent routing and the need to adapt to significant network changes. Sticky routing can include several configurable attributes, such as: a destination group timer, which controls the frequency at which a specific destination group is allowed to change ports; a port-specific timer, which manages the frequency at which any traffic can be switched out of or to a specific egress port; a current port level threshold, which determines when the currently used port is considered to be sufficiently congested and needs to be switched; and a candidate port level threshold, which determines when alternative ports are considered suitable as switching candidates.
[0040] Free routing can benefit RDMA traffic by allowing for more dynamic path selection. In this approach, the routing algorithm can select from the highest-priority ports for each packet, potentially distributing traffic more evenly across available paths. For RDMA workloads (which typically involve large amounts of data transfer and are sensitive to network congestion), free routing can help maximize throughput and minimize latency by quickly adapting to changing network conditions. By continuously re-evaluating path options, free routing allows RDMA traffic to quickly avoid congested links, potentially improving overall performance and resource utilization in high-performance computing environments.
[0041] This approach offers several advantages, including improved congestion management, enhanced quality of service for diverse applications, and more efficient utilization of network resources. By allowing fine-grained control over routing decisions based on packet characteristics, the system can optimize performance in complex network environments such as data centers and AI clusters.
[0042] System Description The following definitions can be used when describing various aspects of adaptive routing systems and methods.
[0043] Traffic categories can refer to a class or classification of network traffic that shares common characteristics or requirements. In some cases, traffic categories can be defined based on factors such as application type, protocol, quality of service requirements, or other attributes specified in the packet header.
[0044] An adaptive routing profile can be a set of parameters and rules that define how routing decisions are made for one or more specific categories of network traffic. In some cases, an adaptive routing profile may include thresholds for classifying ports, routing modes, and other configuration settings for determining how packets are forwarded across the network.
[0045] Adaptive routing profile classification refers to the categorization assigned to a packet based on characteristics or other packet attributes identified in the packet header. In some cases, adaptive routing profile classification can be determined by examining fields such as Traffic Class Indicator, Protocol Type, DSCP value, VLAN identifier, Service Level field, port number, or combinations thereof. Adaptive routing profile classification can be used to map packets to corresponding adaptive routing profiles, which define appropriate routing behavior for packets with similar characteristics.
[0046] Sticky routing can refer to the following routing pattern: unless certain conditions are met, once a port is selected to forward packets of a specific flow, subsequent packets of that flow will continue to be routed through the same port. In some cases, sticky routing can maintain the selected port until the congestion level exceeds a specified threshold.
[0047] Free routing refers to the following routing mode: dynamically selecting the exit port for each packet based on current network conditions. In some cases, free routing may include: randomly selecting from the highest-priority ports for each packet.
[0048] A rank can be a value or score assigned to a port to indicate its degree of deference to packet forwarding. In some cases, ranks can be calculated based on congestion levels, where lower ranks indicate less congested paths and higher ranks indicate more congested paths.
[0049] Thresholds used for port hierarchies can be defined in bytes to represent queue depth. Each port can contain multiple egress queues, which are scheduled using strict priority and weighted round-robin scheduling in a pre-configured hierarchy, where each queue has a different weight. In some cases, these thresholds can be used to determine when to switch between different tiers based on the current occupancy of a port queue. Adaptive routing profiles can define which queues are considered for hierarchical purposes, such as packet-only traffic category queues, all port queues, or subsets of port queues. For example, if the traffic category is of the highest priority, hierarchies can consider only packets pending processing on that particular queue, while for lower priority traffic categories, hierarchies can consider all packets pending processing on the port because they are affected by higher priority traffic.
[0050] Adaptive routing can use queue levels to indicate congestion levels, with higher levels indicating greater congestion. In some cases, routing algorithms may favor lower-level ports when making forwarding decisions to avoid congested paths.
[0051] Adaptive routing in network devices can dynamically select the exit port for packets based on current network conditions. In some cases, adaptive routing systems can use queue levels to represent the congestion level at different ports, where lower levels indicate less congested paths. Network devices implementing adaptive routing can continuously monitor network metrics such as queue depth and link utilization to make real-time routing decisions.
[0052] In some implementations, network devices can support multiple adaptive routing profiles tailored to different adaptive routing profile categories. This approach allows for finer-grained control over routing decisions based on the unique requirements and characteristics of various types of network traffic. By utilizing multiple adaptive routing profiles, the system can optimize performance, improve congestion management, and enhance overall network efficiency under diverse traffic patterns and application requirements.
[0053] Network devices that implement multiple adaptive routing profiles can be switches in a data center network. In some cases, network devices may be part of an AI or GPU cluster, where specific traffic patterns and performance requirements can benefit from customized routing profiles.
[0054] Different adaptive routing profile classifications may have varying sensitivities to factors such as latency, throughput, or out-of-order packet delivery. By applying a specific routing profile to each adaptive routing profile classification, network devices can make routing decisions more suited to the needs of that particular type of traffic. For example, latency-sensitive traffic can use a profile with a lower congestion threshold, allowing it to migrate more quickly from slightly congested ports. In contrast, bulk data transfer traffic can use a profile with a higher threshold, allowing it to continue using ports with higher queue depths before rerouting.
[0055] In some embodiments, the adaptive routing profile can specify different thresholds for allowing the use of non-minimum routes. In certain network topologies (such as Dragonfly+: a low-cost topology for scaling data centers | IEEE conference publication | IEEE Xplore), non-minimum routes (routes that pass through more nodes than the shortest path) can be used to maximize bandwidth when minimum routes become congested.
[0056] Adaptive routing profiles can define a threshold based on queue depth at which network devices begin to consider using non-minimum routes for packet forwarding. For example, when the queue depth on a minimum route port exceeds a specified threshold, the routing algorithm can choose from non-minimum route ports to avoid congestion. Different profiles can use different thresholds for this switch, allowing traffic categories that prioritize bandwidth over latency to use non-minimum routes more effectively than those that prioritize low latency.
[0057] Using multiple adaptive routing profiles can offer several potential benefits. These benefits may include improved overall network performance, higher resource utilization, and enhanced quality of service for different types of applications. By tailoring routing decisions to the specific needs of each adaptive routing profile category, the system can better cope with the diverse and dynamic nature of modern network traffic.
[0058] Now, for reference Figure 1 ,Should Figure 1 This is a simplified block diagram illustrating a network device 10 according to some embodiments. The network device 10 may include a processing circuitry 12, multiple ports 14, and a memory 16.
[0059] The processing circuitry system 12 may include one or more processors 18 and a forwarding circuitry system 20. The one or more processors 18 and the forwarding circuitry system 20 may work together to process and forward packets 22 received through port 14.
[0060] Port 14 can provide an interface for receiving packets 22 from and transmitting packets 22 to network 24. Memory 16 can be connected to processing circuitry 12 and can store data and instructions used by one or more processors 18 and forwarding circuitry 20.
[0061] Processing circuitry 12 can be configured to determine the adaptive routing profile classification of the received packet 22 (e.g., on a packet-by-packet basis). In some cases, processing circuitry 12 can determine the adaptive routing profile classification of packet 22 based on information in the header of the received packet 22.
[0062] In some cases, the processing circuitry 12 can determine the adaptive routing profile classification of packet 22 based on various fields in the packet header. For example, the processing circuitry 12 can examine the Differential Service Code Point (DSCP) field in the IPv4 or IPv6 header to identify quality of service requirements. The DSCP value can indicate whether the packet belongs to a low-latency, high-throughput, or best-effort type of adaptive routing profile classification.
[0063] The processing circuitry 12 can also analyze the protocol field in the IP header to determine the traffic type. For example, packets with protocol number 6 can be identified as TCP traffic, while packets with protocol number 17 can be classified as UDP traffic. This information can be used to apply appropriate routing profiles for different transport layer protocols.
[0064] In some implementations, the processing circuitry 12 can examine the port number in the TCP or UDP header to identify a specific application or service. For example, packets with destination ports 80 or 443 can be classified as web traffic, while packets with port 22 can be identified as SSH traffic.
[0065] For an InfiniBand network, the processing circuitry system 12 can examine the Level of Service (SL) field in the Local Routing Header (LRH) to determine the adaptive routing profile classification. Different SL values can correspond to various Quality of Service levels or traffic types within the InfiniBand architecture.
[0066] In some cases, the processing circuitry 12 can use virtual LAN (VLAN) tags in Ethernet frames to identify adaptive routing profile classifications. Organizations can assign different VLAN IDs to different traffic types, allowing network devices to apply appropriate routing profiles based on VLAN affiliation.
[0067] The processing circuitry system 12 may also consider the Type of Service (ToS) field in the IPv4 header or the Traffic Category field in the IPv6 header. These fields can provide information about latency, throughput, and reliability requirements, which can be used to map packets to appropriate adaptive route profile classifications and route profiles.
[0068] The processing circuitry 12 can also be configured to make adaptive routing decisions for packet 22 based on different adaptive routing profiles associated with the adaptive routing profile classification of packet 22. The memory 16 can store data for the different adaptive routing profiles. In some cases, the memory 16 can also store a mapping between different adaptive routing profiles and different adaptive routing profile classifications.
[0069] After making an adaptive routing decision, the processing circuitry 12 can be configured to forward the received packet 22 to port 14 based on the adaptive routing decision.
[0070] Network device 10 can receive packets 22 through port 14, process them using processing circuitry 12, and forward them to network 24 through port 14. Forwarding circuitry 20 can handle packet forwarding operations, while one or more processors 18 can manage the overall operation of network device 10, including managing various aspects of adaptive routing based on different adaptive routing profile classifications.
[0071] In some cases, network device 10 may be a switch, router, multiport network interface controller (NIC), or other networking device capable of implementing adaptive routing using multiple profiles for different adaptive routing profile classifications.
[0072] Now, for reference Figure 2 ,Should Figure 2 It is used for Figure 1 A view of example mapping table 200 for network device 10. Mapping table 200 can be used to classify and map different adaptive routing profiles to specific adaptive routing profiles in network device 10.
[0073] In some cases, mapping table 200 may include multiple entries, each of which associates a specific adaptive routing profile classification with a corresponding adaptive routing profile. For example, mapping table 200 may include entries mapping TCP adaptive routing profile classifications to sticky routing profiles. In another example, mapping table 200 may include entries mapping RDMA adaptive routing profile classifications to free routing profiles.
[0074] The processing circuitry 12 of network device 10 can use mapping table 200 to determine which adaptive routing profile to apply to packets classified by different adaptive routing profiles. In some cases, at least some of the ports 14 can receive packets classified by a first adaptive routing profile and a second adaptive routing profile through the network. The processing circuitry 12 can make adaptive routing decisions for packets classified by the first adaptive routing profile based on the first adaptive routing profile associated with the first adaptive routing profile classification. Similarly, the processing circuitry 12 can make adaptive routing decisions for packets classified by the second adaptive routing profile based on the second adaptive routing profile associated with the second adaptive routing profile classification.
[0075] Network device 10 can be configured to process multiple adaptive route profile classifications with a specified bandwidth ratio. In some cases, the first adaptive route profile classification may have a lower bandwidth share than the second adaptive route profile classification.
[0076] For example, mapping table 200 may include entries that classify and map adaptive routing profiles for traffic with low bandwidth utilization (less than X%) to one or more low-threshold profiles, while classifying and mapping adaptive routing profiles for traffic with high bandwidth utilization (greater than Y%) to one or more high-threshold profiles (compared to low thresholds).
[0077] Mapping table 200 can be stored in memory 16 of network device 10. Processing circuitry 12 can access mapping table 200 when making adaptive routing decisions based on the adaptive routing profile classification of received packets 22.
[0078] Now, for reference Figure 3 ,Should Figure 3 The diagram illustrates the use of in Figure 1 A flowchart of a method 300 for adaptive routing in network device 10. This method 300 may include several steps for classifying packet-based adaptive routing profiles and processing and routing packets using corresponding adaptive routing profiles.
[0079] The method 300 may begin at step 302, wherein packets associated with different adaptive routing profile classifications are received at multiple ports. These packets may belong to different adaptive routing profile classifications, and each adaptive routing profile classification may require different routing policies.
[0080] At step 304, method 300 may determine the adaptive routing profile classification of the received packet. Step 304 may include substep 306, wherein the adaptive routing profile classification is determined based on header information in the received packet. For example, the adaptive routing profile classification may be identified from specific fields in the packet header that indicate traffic type, quality of service requirements, protocol type, or other attributes that can be used to classify packets for adaptive routing purposes.
[0081] The method 300 may proceed to step 308, in which an adaptive routing profile that matches the adaptive routing profile classification of the packet is found. In some cases, this may include: finding a mapping between adaptive routing profile classifications and corresponding adaptive routing profiles stored in the memory 16 of the network device 10.
[0082] At step 310, an adaptive routing decision may be made for the packet based on the adaptive routing profile associated with the packet's adaptive routing profile classification. This step may include several sub-steps for assigning levels to ports and making routing decisions based on these levels.
[0083] Sub-step 312 may include assigning a class to a port based on different thresholds for different profiles. For example, a first adaptive routing profile for a first adaptive routing profile classification may include at least one first threshold for classifying ports, while a second adaptive routing profile for a second adaptive routing profile classification may include at least one second threshold for classifying ports. These thresholds may be different, thereby allowing customized classification of ports for different adaptive routing profile classifications.
[0084] In some cases, method 300 may assign a first set of grades to ports used for classification in a first adaptive routing profile based on at least one first threshold specified in the first adaptive routing profile. Similarly, a second set of grades may be assigned to ports used for classification in a second adaptive routing profile based on at least one second threshold specified in the second adaptive routing profile.
[0085] Compared to the second adaptive routing profile, the first adaptive routing profile can include a lower threshold for classifying ports. This method can be particularly useful when the first adaptive routing profile classification has a lower share of traffic bandwidth than the second adaptive routing profile classification. The lower threshold can be used for adaptive routing profile classification with lower bandwidth utilization, thus allowing for more sensitive congestion detection and route adjustment for these classifications.
[0086] At step 314, an adaptive routing decision can be made based on the class assigned to the port. Method 300 can make adaptive routing decisions for packets based on a first set of port classes for packets classified in a first adaptive routing profile and a second set of port classes for packets classified in a second adaptive routing profile.
[0087] In some cases, method 300 can make adaptive routing decisions for packets classified by the first adaptive routing profile using a first routing mode, based on a first adaptive routing profile. Simultaneously, method 300 can make adaptive routing decisions for packets classified by the second adaptive routing profile using a second routing mode, based on a second adaptive routing profile.
[0088] For example, method 300 can use sticky routing to make adaptive routing decisions for packets classified by the first adaptive routing profile, based on the first adaptive routing profile. Unless congestion increases significantly, sticky routing can maintain the use of the same port for flows. This approach is beneficial for adaptive routing profile classification that is sensitive to out-of-order packet delivery, such as TCP traffic.
[0089] On the other hand, method 300 can use free routing to make adaptive routing decisions for packets classified by the second adaptive routing profile, based on the second adaptive routing profile. Free routing can randomly select from the highest-priority ports for each packet, thereby providing more dynamic load balancing for adaptive routing profile classifications that are less sensitive to packet ordering (such as RDMA traffic).
[0090] The method 300 may end at step 316, where the received packets are forwarded to the port according to an adaptive routing decision. This step ensures that packets are sent from the port determined to be optimal, based on the adaptive routing profile classification of the packets and the current network conditions.
[0091] By employing different adaptive routing profiles with customized thresholds and routing modes for different adaptive routing profile classifications, method 300 can provide more efficient and customized packet routing in network devices that handle diverse types of network traffic.
[0092] In some cases, adaptive routing systems can be implemented in a variety of network environments and configurations beyond those described above. For example, adaptive routing profiles can be optimized for different traffic patterns in artificial intelligence (AI) and graphics processing unit (GPU) workloads.
[0093] In AI and GPU clusters, network traffic often exhibits unique characteristics, such as bursty communication patterns, all-to-all data exchange, and sensitivity to latency. Adaptive routing profiles can be customized to meet these specific needs. For example, a profile for AI training workloads can prioritize low latency and use a lower queue depth threshold to trigger rerouting decisions more quickly. Conversely, a profile used for large-scale data loading operations in a GPU cluster can use a higher threshold to accommodate larger traffic bursts without requiring unnecessary rerouting.
[0094] In some cases, the system can support the creation of custom adaptive route profile classifications that go beyond the standard Quality of Service (QoS) classifications. Network administrators can define application-specific adaptive route profile classifications and associate them with custom route profiles to meet unique performance requirements.
[0095] Now, for reference Figure 4 ,Should Figure 4 This is a schematic diagram illustrating a block diagram of a computing system 400 (e.g., a data center or a high-performance computing (HPC) cluster) according to an embodiment of the present disclosure.
[0096] According to at least one embodiment, system 400 includes multiple subsystems, such as multiple processing devices, multiple network devices, and multiple networks coupled to each other. The computing system 400 is designed to have multiple integrated circuits (referred to as processing devices), where each integrated circuit may include one or more CPUs and GPUs, thus forming a powerful and flexible architecture.
[0097] Various processing devices are interconnected via NVLink or other high-speed interconnects to enable high-speed communication between subsystems; and are also connected via NICs or DPUs to ensure efficient data transmission within computing system 400 and to one or more external networks 430, 436. In this example, system 400 includes a packet switch 448 that connects NIC / DPU 428 to network 430 and a packet switch 450 that connects NIC / DPU 432 to network 436.
[0098] Seamless data exchange and parallel processing are enabled through NVLink coupling of the processing device, thereby improving overall computing performance. The processing device connects to multiple networks via one or more network interface cards (NICs) or DPUs, enabling the system to handle complex multi-network tasks with high bandwidth and low latency. This configuration is ideal for demanding applications requiring massive processing power, such as artificial intelligence (AI), machine learning (ML), and data-intensive computing, while ensuring robust connectivity and scalability in various networked environments. The integrated circuits of the computing system 400 may include one or more CPUs and one or more GPUs.
[0099] Figure 4 An example architecture of a multi-GPU architecture is also demonstrated. As shown in the figure, computing system 400 includes a processing device 402 with a multi-GPU architecture. Specifically, processing device 402 may be a system-on-a-chip and includes multiple subsystems such as CPU 406, GPU 408, and GPU 410. CPU 406 may be coupled to GPU 408 via die-to-die (D2D) or chip-to-chip (C2C) interconnects 412 (such as ground reference signaling interconnects (GRS interconnects)). CPU 406 may be coupled to GPU 410 via D2D or C2C interconnects 414. CPU 406 may also be coupled to GPU 408 and GPU 410 via PCIe interconnects.
[0100] The CPU 406 can be coupled to one or more NICs or DPUs, which in turn are coupled to one or more networks. For example, as Figure 4 As shown, CPU 406 is coupled to a first NIC / DPU 426, which is coupled to network 430. CPU 406 is also coupled to a second NIC / DPU 428, which is coupled to network 430 via switch 448. For example, NIC / DPU 426 and NIC / DPU 428 can be coupled to network 430 via Ethernet (ETH), NVLINK, or InfiniBand (IB) connections.
[0101] The computing system 400 also includes a processing device 404 with a multi-GPU architecture. Specifically, the processing device 404 includes multiple subsystems, including a CPU 416, a GPU 418, and a GPU 420. The CPU 416 can be coupled to the GPU 418 via a D2D or C2C interconnect 422. The CPU 416 can be coupled to the GPU 420 via a D2D or C2C interconnect 424. The CPU 416 can also be coupled to the GPU 418 and GPU 420 via a PCIe interconnect. The CPU 416 can be coupled to one or more NICs or DPUs, which in turn are coupled to one or more networks. For example, as... Figure 4 As shown, CPU 416 is coupled to a first NIC / DPU 432, which is coupled to network 436. CPU 416 is also coupled to a second NIC / DPU 434, which is coupled to network 436 via switch 450. NIC / DPU 432 and NIC / DPU 434 can be coupled to network 436 via Ethernet (ETH), NVLINK, or InfiniBand (IB) connections.
[0102] In at least one embodiment, processing device 402 and processing device 404 can communicate with each other via NIC / DPU 438 (such as via PCIe interconnect). Processing device 402 and processing device 404 can also communicate with each other via high-bandwidth communication interconnect 440 (such as NVLink interconnect or other high-speed interconnect). Figure 4 The packet switches in the diagram can include, for example, Nvidia Quantum-2 switches. The NIC / DPU in the diagram can include, for example, Nvidia Bluefield DPUs.
[0103] A network switch may include any of the following: ports for connecting network cables, a switching structure for data transmission between management ports, a MAC address table for storing device addresses and port information, a forwarding engine for directing data packets to the correct ports, a buffer memory for temporarily storing data to manage traffic, a management processor for handling configuration and monitoring in a managed switch, a power supply for providing power, a cooling system to prevent the switch from overheating, firmware for controlling the switch, LED indicators for displaying status and activity, and (in a modular switch) a networking module that allows for the addition of additional ports or features.
[0104] In practice, some or all of these functions may be combined in a single physical component, or alternatively, implemented using multiple physical components. These physical components may include hardware circuitry or programmable devices, or a combination of both. In some embodiments, at least some of the functions of the processing circuitry system may be executed by a programmable processor under the control of suitable software. For example, the software may be downloaded to the device in electronic form (e.g., via a network). Alternatively or additionally, the software may be stored in a tangible, non-transitory computer-readable storage medium, such as optical, magnetic, or electronic memory.
[0105] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various examples of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or code portion, comprising one or more executable instructions for implementing one or more specified logical functions. It should also be noted that in some alternative implementations, the functions indicated in the blocks may not occur in the order indicated in the drawings. For example, two blocks shown consecutively may actually execute substantially simultaneously, or sometimes these blocks may execute in reverse order. Combinations of blocks in the block diagrams and / or flowcharts, and combinations thereof, can be implemented by a system based on dedicated hardware that performs the specified functions or actions, or by a combination of dedicated hardware and computer instructions. The description of various examples of this disclosure has been presented for illustrative purposes but is not intended to be exhaustive or limited to the disclosed examples. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described examples.
[0106] As used in this article, unless the context clearly indicates otherwise, the singular forms “a,” “one,” and “the” include plural references.
[0107] For clarity, the various features of this disclosure described in the context of separate embodiments may also be provided in combination in a single embodiment. Conversely, for clarity, the various features of this disclosure described in the context of a single embodiment may also be provided separately or in any suitable sub-combination.
[0108] The embodiments described above are presented by way of example, and this disclosure is not limited to the content specifically shown and described above. Rather, the scope of this disclosure includes both combinations and sub-combinations of the various features described above, as well as variations and modifications thereto that might occur to those skilled in the art upon reading the foregoing description and that are not disclosed in the prior art.
Claims
1. A network device, comprising: Multiple ports are used to receive packets; as well as Processing circuit system, the processing circuit system being used for: Determine the adaptive routing profile classification for the received packets; Adaptive routing decisions are made for the packets based on the different adaptive routing profiles associated with the adaptive routing profile classification of the packets; as well as The received packets are forwarded to the port according to the adaptive routing decision.
2. The network device according to claim 1, wherein: At least some of the ports are used to receive the packets from the first adaptive routing profile classification and the second adaptive routing profile classification; and The processing circuit system is used for: The adaptive routing decision is made on the groupings of the first adaptive routing profile classification based on the first adaptive routing profile classification associated with the first adaptive routing profile classification. as well as The adaptive routing decision is made on the packets of the second adaptive routing profile classification based on the second adaptive routing profile classification associated with the second adaptive routing profile classification.
3. The network device according to claim 2, wherein the first adaptive routing profile and the second adaptive routing profile include different thresholds for classifying the ports.
4. The network device according to claim 3, wherein the processing circuitry is used for: Assign a first group of levels to the ports used for classification in the first adaptive routing profile based on at least one first threshold specified in the first adaptive routing profile; Assign a second group of levels to the ports used for classification in the second adaptive routing profile based on at least one second threshold specified in the second adaptive routing profile; and Adaptive routing decisions are made for the packets based on the first group of grades for the ports used for the first adaptive routing profile classification and the second group of grades for the ports used for the second adaptive routing profile classification.
5. The network device according to claim 3, wherein: Compared to the second adaptive routing profile classification, the first adaptive routing profile classification has a lower traffic bandwidth share; and Compared to the second adaptive routing profile, the first adaptive routing profile includes a lower threshold for classifying the ports.
6. The network device according to claim 2, wherein the processing circuitry is used for: Based on the first adaptive routing profile, a first routing pattern is used to make the adaptive routing decision for the packets classified by the first adaptive routing profile; and Based on the second adaptive routing profile, a second routing mode is used to make the adaptive routing decision for the packets classified by the second adaptive routing profile.
7. The network device according to claim 2, wherein the processing circuit system is used for: Based on the first adaptive routing profile, sticky routing is used to make the adaptive routing decision for the packets classified by the first adaptive routing profile; and Based on the second adaptive routing profile, free routing is used to make the adaptive routing decision for the packets classified by the second adaptive routing profile.
8. The network device according to claim 1 further includes a memory, the memory being used to store the mapping between the different adaptive routing profiles and the different adaptive routing profile classifications, as well as the data of the different adaptive routing profiles.
9. The network device of claim 1, wherein the processing circuitry is configured to determine the adaptive routing profile classification of the packet based on information in the header of the received packet.
10. The network device of claim 1, wherein the adaptive routing profile classification is based on one or more of the following: The traffic category indicated in the header of the received packet; The protocol type indicated in the header of the received packet; The suitability of the packet for adaptive routing is indicated in the header of the received packet; The Differential Service Code Point (DSCP) value in the header of the received packet; The virtual LAN (VLAN) identifier in the header of the received packet; The Service Level (SL) field in the InfiniBand header of the received packet; The port number in the transport layer header of the received packet; The difference between TCP traffic and RDMA traffic; or A combination of multiple fields in the header of the received packet.
11. A method for adaptive routing in a network device, comprising: Receive packets at multiple ports; Determine the adaptive routing profile classification for the received packets; Adaptive routing decisions are made for the packets based on the different adaptive routing profiles associated with the adaptive routing profile classification of the packets; as well as The received packets are forwarded to the port according to the adaptive routing decision.
12. The method according to claim 11, wherein: At least some of the ports receive packets from the first adaptive routing profile classification and the second adaptive routing profile classification; as well as Making the adaptive routing decision includes: Adaptive routing decisions are made for the groups in the first adaptive routing profile classification based on the first adaptive routing profile associated with the first adaptive routing profile classification. as well as Adaptive routing decisions are made for the packets classified by the second adaptive routing profile based on the second adaptive routing profile associated with the second adaptive routing profile classification.
13. The method of claim 12, wherein the first adaptive routing profile and the second adaptive routing profile include different thresholds for classifying the ports.
14. The method of claim 13, further comprising: Assign a first group of levels to the ports used for classification in the first adaptive routing profile based on at least one first threshold specified in the first adaptive routing profile; A second group of levels is assigned to the ports used for classification in the second adaptive routing profile based on at least one second threshold specified in the second adaptive routing profile. as well as Adaptive routing decisions are made for the packets based on the first group of grades for the ports used for the first adaptive routing profile classification and the second group of grades for the ports used for the second adaptive routing profile classification.
15. The method according to claim 13, wherein: Compared to the second adaptive routing profile classification, the first adaptive routing profile classification has a lower traffic bandwidth share; and Compared to the second adaptive routing profile, the first adaptive routing profile includes a lower threshold for classifying the ports.
16. The method of claim 12, wherein making the adaptive routing decision comprises: Based on the first adaptive routing profile, the first routing mode is used to make the adaptive routing decision for the groups classified by the first adaptive routing profile. as well as Based on the second adaptive routing profile, a second routing mode is used to make the adaptive routing decision for the packets classified by the second adaptive routing profile.
17. The method of claim 12, wherein making the adaptive routing decision comprises: Based on the first adaptive routing profile, sticky routing is used to make the adaptive routing decision for the groups classified by the first adaptive routing profile; as well as Based on the second adaptive routing profile, free routing is used to make the adaptive routing decision for the packets classified by the second adaptive routing profile.
18. The method of claim 11, further comprising: The memory stores: the mapping between the different adaptive routing profiles and the different adaptive routing profile classifications, as well as the data of the different adaptive routing profiles.
19. The method of claim 11, wherein determining the adaptive routing profile classification of the packet comprises: The adaptive routing profile classification is determined based on the information in the header of the received packet.
20. The method of claim 11, wherein the adaptive routing profile classification is based on one or more of the following: The traffic category indicated in the header of the received packet; The protocol type indicated in the header of the received packet; The suitability of the packet for adaptive routing is indicated in the header of the received packet; The Differential Service Code Point (DSCP) value in the header of the received packet; The virtual LAN (VLAN) identifier in the header of the received packet; The Service Level (SL) field in the InfiniBand header of the received packet; The port number in the transport layer header of the received packet; The difference between TCP traffic and RDMA traffic; or A combination of multiple fields in the header of the received packet.