Performance isolation based on endpoint class in high performance interconnects
By introducing endpoint and source/destination category types to extend QoS metrics in high-performance interconnect networks, and configuring the relative priority and bandwidth allocation of category types, the problem of improper resource utilization caused by the lack of consideration of endpoint types in the prior art is solved, and more efficient and fair resource allocation is achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- HEWLETT PACKARD ENTERPRISE DEV LP
- Filing Date
- 2025-06-24
- Publication Date
- 2026-05-29
AI Technical Summary
Current traffic management rules do not take into account different types of endpoints in high-performance interconnected networks, resulting in suboptimal resource utilization and suboptimal forwarding, leading to inefficient or unfair resource allocation.
By introducing endpoint category types and source/destination category types to extend existing non-hierarchical QoS metrics, and configuring the relative priority and bandwidth allocation ratio between category types, packet forwarding is carried out using a hierarchical category structure.
It improves the efficiency and fairness of resource allocation in network structure and system, and enhances the accuracy and effectiveness of traffic management.
Smart Images

Figure CN122120212A_ABST
Abstract
Description
[0001] Related applications
[0002] This application claims the benefit of U.S. Provisional Application No. 63 / 725,864, filed November 27, 2024, entitled “Endpoint Class-Based Performance Isolation in High-Performance Interconnects”, by Pedro HRBruel, Dejan S. Milojicic, Sai Rahul Chalamalasetti, Aditya Dhakal, Laurence Scott Kaplan, and Duncan Roweth, Attorney General’s File No. HPE-P175832USP. Background Technology
[0003] Current traffic management rules can prioritize traffic based on different traffic categories associated with different needs and serving different Quality of Service (QoS) policies. However, using these non-hierarchical category-based QoS metrics in current traffic management rules does not take into account different types of endpoints. Attached Figure Description
[0004] Figure 1A An environment based on endpoint category-based performance isolation, according to one aspect of this application, is illustrated, which facilitates high-performance interconnects.
[0005] Figure 1B An environment based on endpoint category-based performance isolation, according to one aspect of this application, is illustrated, including packet headers and structure headers, which contribute to high-performance interconnects.
[0006] Figure 2 A schematic diagram is shown depicting an extension of endpoint category control to traffic category control in traffic management, according to one aspect of this application.
[0007] Figure 3 A schematic diagram is shown depicting, according to one aspect of this application, the extension of source / destination category control to endpoint category control and traffic category control at the switch layer.
[0008] Figure 4 A schematic diagram depicting the weight allocation for a combination of QoS category types according to one aspect of this application is shown, including traffic category type, endpoint category type, and source / destination category type.
[0009] Figure 5A A schematic diagram is shown depicting a non-hierarchical prioritization of QoS categories according to one aspect of this application.
[0010] Figure 5BA schematic diagram is shown depicting the prioritization of QoS categories using a hierarchical class structure based on traffic category type, endpoint category type, and source / destination category type according to one aspect of this application.
[0011] Figure 5C A schematic diagram is shown depicting the prioritization of QoS categories in a hierarchical category structure using endpoint category type, traffic category type, and source / destination category type according to one aspect of this application.
[0012] Figure 6 A flowchart illustrating a method for performance isolation based on endpoint categories in high-performance interconnects, according to one aspect of this application, is shown.
[0013] Figure 7A A flowchart illustrating a method for forwarding packets and determining bandwidth allocation using endpoint category types, according to one aspect of this application, is shown.
[0014] Figure 7B A flowchart illustrating a method for providing delayed critical support using endpoint category types, according to one aspect of this application, is shown.
[0015] Figure 8 A computer system (e.g., a network device) based on endpoint category is shown according to one aspect of this application, which facilitates performance isolation in high-performance interconnects.
[0016] Figure 9 A computer-readable medium based on endpoint category performance isolation in high-performance interconnects is shown according to one aspect of this application.
[0017] In the accompanying drawings, the same reference numerals denote the same elements. Detailed Implementation
[0018] This application extends the non-hierarchical category-based QoS metrics (e.g., "traffic category types") used for traffic management by utilizing two additional category types: "endpoint category type" and "source / destination category type". These additional category types enable traffic management decisions to be made based on endpoint category performance objectives, resulting in more efficient forwarding and resource allocation.
[0019] Current traffic management rules can prioritize traffic using non-hierarchical category-based QoS metrics, i.e., based on different traffic categories (also known as traffic category types) associated with different needs and serving different QoS policies. However, using only non-hierarchical category-based QoS metrics in current traffic management rules does not take into account different types of endpoints. In some high-performance interconnect networks, the lack of endpoint-specific traffic control can lead to suboptimal resource utilization and suboptimal forwarding, resulting in inefficient or unfair resource allocation.
[0020] This invention addresses the limitations of current traffic management by extending non-hierarchical category-based QoS metrics through the use of two additional category types: endpoint category type and source / destination category type. Packets can be routed through network fabric (e.g., as described below regarding...). Figure 1A The aforementioned switch network transmits data from a source endpoint to a destination endpoint. The endpoint category type value can indicate the category of the component or device coupled to the network structure to which the packet will be sent (e.g., storage-based endpoint category, computing-based endpoint category, graphics processing unit (GPU)-based endpoint category, or central processing unit (CPU)-based endpoint category). The source / destination category type value can indicate the priority between the source and destination (or a set of sources and a set of destinations) of the packet.
[0021] The system (or management user) can configure: category types, which have relative priorities among each category type (e.g., [traffic, endpoint, source / destination] or [endpoint, traffic]); and values within each category type, which have bandwidth allocation proportions among each category value (e.g., [traffic to endpoint category A will receive 50% of the bandwidth of traffic to endpoint category B] or [traffic flowing from a certain type of source (or a set of sources) has a higher priority than traffic flowing to a certain type of destination (or a set of destinations)]). These configuration values can be represented as weights and by a hierarchical class structure ("Hierarchical Class Structure", e.g., a tree), as described below. Figure 5A , 5B As described in 5C.
[0022] Therefore, any switch in the network architecture can receive packets indicating values for one or more category types, such as values for traffic category type, endpoint category type, and source / destination category type. The switch can determine bandwidth allocation based on the indicated values and traversal of the hierarchical category structure. For example, the switch can identify subcategories by traversing the hierarchical category structure, and these subcategories can be associated with a priority, for example, being configured to prioritize by category type order and by the proportion of bandwidth allocation between values of a certain category type. The switch can then forward packets based on the determined bandwidth allocation. This will be discussed in conjunction with... Figure 5A , 5B 5C and 7A describe determining the bandwidth allocation ratio for data packets and forwarding data packets based on the determined bandwidth allocation ratio.
[0023] By extending standard non-hierarchical traffic class types with endpoint class types and source / destination class types, these aspects can provide additional granularity and precision for applying traffic management rules when forwarding packets through the network structure. Furthermore, by configuring priority information between class types and bandwidth allocation ratios between class values for a given class type, these aspects can achieve more efficient and fairer resource allocation across the network structure and the entire system.
[0024] Figure 1AAn environment 100 based on endpoint category performance isolation in high-performance interconnects is illustrated according to one aspect of this application. Environment 100 may include a switch network 110, which may be referred to as a "Network Fabric" or "Switch Fabric," and may include switches 112, 114, 116, 118, and 120. Network Fabric 110 may be a high-performance interconnect. Each switch may have a unique address or identifier within Switch Fabric 110. Various types of endpoints, processing nodes, devices, and networks may be coupled to Switch Fabric. For example, endpoint device or terminal host 122 may be coupled to Network Fabric 110 via switch 112; network 124 may be coupled to Network Fabric 110 via switch 114; multiple other terminal hosts (such as hosts 126 and 127) may be coupled to Network Fabric 110 via switch 118; and storage array 128 may be coupled to Network Fabric 110 via switch 120. Network 124 can be a high-performance computing (HPC) network (e.g., InfiniBand, Slingshot, or any other high-performance network), which may include multiple networked computers and storage devices running concurrently to perform tasks of varying complexity and performance intensity. Network 124 can also be an Internet Protocol (IP) / Ethernet network, which may include physical Ethernet cabling and application layer protocols between IP-based network devices, including communication via Transport Communication Protocol (TCP) / IP and User Datagram Protocol (UDP) packets. Network architecture 110 itself may be an Ethernet network or an HPC network (i.e., a high-performance interconnect).
[0025] A switch may include one or more ports. For example, in a network fabric, an edge port may be coupled to a device outside the fabric, and a fabric port may be coupled to another switch within the fabric via a fabric link. Typically, traffic may be injected into network fabric 110 via an ingress port of an edge switch and may leave network fabric 110 via an egress port of another (or the same) edge switch. An ingress link may couple the network interface controller (NIC) of an edge device (e.g., an HPC terminal host) to an ingress port of an edge switch. Network fabric 110 may then forward the traffic to an egress edge switch, which may in turn forward the traffic to a destination edge device via another NIC. Packets may be forwarded within network fabric 110 based on their Layer-2 address (or “Fabric Address”), which can be considered equivalent to a Media Access Control (MAC) address in Ethernet. The forwarding path for data packets can be determined based on adaptive forwarding, for example, based on local programming of the switches in switching structure 110 and on information related to load, traffic, and congestion available to and associated with switching structure 110. Data packets can also be routed based on other protocols, such as IP addresses in network 124 or across network structure 110.
[0026] Figure 1B An environment 130 based on endpoint category for performance isolation in high-performance interconnects, according to one aspect of this application, is illustrated, including a packet header and a fabric header. Environment 130 may include: a source node 140 with NIC 142; a network fabric 132 having at least switch 144 and switch 154; and a destination node 150 with NIC 152. The source node 140 and destination node 150 may respectively correspond to… Figure 1A Devices 122 and 126, and network structure 132 can correspond to Figure 1A The network structure in 110.
[0027] The switches in network architecture 132 can be configured to handle certain types of traffic, including one or more of traffic class types, endpoint class types, and source / destination class types. Each switch can store information related to forwarding priority (“forwarding priority information”) in a hierarchical class structure. See below for more information. Figures 2 to 4As described in 5B and 5C, the stored information can be configured to indicate the priority of the required bandwidth allocation ratio between categories and values based on a certain category type. Each switch can store configurations that are the same as or different from those of other switches in the network structure, and these configurations can be dynamically modified based on predetermined policies or monitored conditions.
[0028] During operation, source node 140 can send data packet 160 to destination node 150 via structure 132. Data packet 160 may include header 161 and payload 166. Header 161 may include: header field 162; Differentiated Service Code Point (DSCP) information 163 for classifying network traffic; endpoint class identifier (ID) 164; and source identifier (ID) 165. Source node 140 may send the data packet to switch 144 via its NIC 142.
[0029] Upon receiving packet 160, switch 144 (acting as an ingress edge switch) can encapsulate the packet with a structure header to obtain encapsulated packet 170, which includes structure header 171, a previous header 181, and payload 186. The previous header 181 may include the same fields as header 161, labeled as: Header Field 182; DSCP 183; Endpoint Class ID 184; and Source ID 185. Payload 186 may correspond to payload 166. Structure header 171 may include at least: Header Field 162; and Forwarding Tag (FTAG) 173, which includes portion 174. Portion 174 may include bits indicating endpoint class values for endpoint class types and source / destination class values for source / destination class types.
[0030] Packet 170 has been depicted for illustrative purposes only. Other header configurations are also possible. For example, in a Virtual Scalable Local Area Network (VxLAN), Ethernet frames may be encapsulated within Universal Datagram Protocol (UDP) datagrams, in which case the structure header 171 may be an outer IP header (such as a VxLAN header), with the original header (i.e., the previous header 181) serving as the inner header. In such networks, the aforementioned information in FTAG 173 (e.g., indicators for endpoint class values for endpoint class types and source / destination class values for source / destination class types) may be included in another DSCP field within the outer IP header. Therefore, switch 144 may extract the traffic class value, endpoint class value, and source / destination class value from the packet based on the information indicated in the following: a network structure-specific header or one associated with the network structure, such as structure header 171; or a header associated with a protocol used outside the network structure, such as header 161 / the previous header 181 or an outer IP header (not shown). Furthermore, although a structure header 171 is depicted in packet 170, and the information in the structure header 171 can be used by network devices in network structure 132 to manage traffic, any unstructured switch that receives a packet with a structure header 171 can ignore the structure header 171 without breaking the protocol indicated by the previous header 181.
[0031] Switch 144 can use the information in packet 160 and its configuration information associated with the hierarchical class structure to include extended information (e.g., a specific class value) related to the other two class types (i.e., endpoint class type and source / destination class type) in the structure header 171. Switch 144 can then queue packet 170 based on this specific class value and the hierarchical class structure, as described below. Figure 7A As described above. Switch 144 can forward packet 170 to switch 154 based on the queue in which packet 170 is placed. Inserting a packet into the queue for subsequent processing is based on determining the bandwidth allocation for that packet, and the bandwidth allocation for the packet is determined based on at least one of a traffic class value, an endpoint class value, and a source / destination value, as described below. Figures 2 to 4 As described in 5B and 5C. Before reaching switch 154, packet 170 may be transmitted through multiple intermediate switches (not shown) in network structure 132. Each switch in network structure 132 (including edge switches and intermediate switches) may forward packets based on its uniquely configured forwarding priority information, which includes a hierarchical category structure and associated information (e.g., priority based on the proportion of bandwidth allocation between a category type and a value of a certain category type).
[0032] Switch 154 (acting as an egress edge switch) can decapsulate packet 170 by removing structure header 171 to obtain packet 190. Packet 190 can be similar to packet 160 before entering structure 132. Packet 190 may include header 191 and payload 196. Header 191 may include: header field 192; DSCP 193; endpoint class ID 194; and source ID 195. Switch 154 can send packet 190 to destination node 150, which can receive packet 190 via its NIC 152.
[0033] Therefore, when forwarding packets through the network structure, the configured forwarding priority information (i.e., a hierarchical category structure indicating relative priority and bandwidth allocation) can provide additional granularity and precision for applying traffic management rules. By extending the standard non-hierarchical traffic category types with endpoint category types and source / destination categories, these aspects not only improve the performance and efficiency of individual network devices (e.g., switches) within the network structure, but also enhance the performance and efficiency of the entire network structure and system.
[0034] Figure 2 A schematic diagram 200 is shown depicting an extension of endpoint category control to traffic category control in traffic management according to one aspect of this application. The upper half (202) of Figure 200 depicts traffic management in NIC 201 based solely on traffic category type. The lower half (204) of Figure 200 depicts traffic management in NIC 201 based on both endpoint category type and traffic category type. Three data streams are depicted in each of the upper and lower halves. For example: the dotted line indicates data of traffic category type "TC1" (250); the solid line indicates data of traffic category type "TC2" (252); and the dashed line indicates data of traffic category type "TC3" (254).
[0035] Furthermore, NIC 201 can use the configured forwarding priority information to determine traffic management rules. For example, the target or desired bandwidth allocation ratio 260 may include a Traffic Class Bandwidth Allocation (BWA) ratio 262 and an Endpoint Class Bandwidth Allocation ratio 264. For instance, traffic of Traffic Class Type TC1 may be allocated twice the bandwidth of traffic of Traffic Class Type TC2 (indicated as 1:0.5), and traffic of Traffic Class Type TC1 may be allocated six times the bandwidth of traffic of Traffic Class Type TC3 (indicated as 1:0.167). Similarly, traffic of Endpoint Type A may be allocated twice the bandwidth of traffic of Endpoint Type B (indicated as 1:0.5).
[0036] As shown in section 202, traffic of traffic category type TC1 receives 30% BWA (as indicated by "30%" in elements 232 and 235), regardless of whether the endpoint category type is A or B. Similarly, traffic of traffic category type TC2 receives 15% BWA, following a 1:0.5 BWA ratio between TC1 and TC2. However, endpoint category type also does not affect BWA (as indicated by "15%" in elements 231 and 234). Furthermore, traffic of traffic category type TC3 receives 5% BWA, following a 1:0.167 BWA ratio between TC1 and TC3. Likewise, endpoint category type is not considered in BWA (as indicated by "5%" in elements 230 and 233).
[0037] As shown in section 204, when managing traffic via NIC 201, adding endpoint category types to traffic category types provides granularity that can improve the accuracy and effectiveness of traffic management. In section 204, traffic of traffic category type TC1 can receive 30% BWA, but the allocated BWA will further depend on whether the endpoint category type is A or B, following a 1:0.5 BWA ratio between A and B (as indicated by "30%" for endpoint category type A in element 242 and by "15%" for endpoint category type B in element 245). Similarly, traffic of traffic category type TC2 can receive 15% BWA, following a 1:0.5 BWA ratio between TC1 and TC2. Furthermore, the allocated BWA will further depend on whether the endpoint category type is A or B, and follow a 1:0.5 BWA ratio between A and B (as indicated by "15%" for endpoint category type A in element 241, and by "7.5%" for endpoint category type B in element 244). Additionally, traffic of traffic category type TC3 can receive 5% BWA, following a 1:0.167 BWA ratio between TC1 and TC3, and the allocated BWA will further depend on whether the endpoint category type is A or B, and follow a 1:0.5 BWA ratio between A and B (as indicated by "5%" for endpoint category type A in element 240, and by "2.5%" for endpoint category type B in element 243).
[0038] Figure 3A schematic diagram 300 is shown illustrating the extension of source / destination class control to endpoint class control and traffic class control at the switch layer according to one aspect of this application. Figure 300 may depict traffic flowing in the network structure, for example: from switch 310 to switches 312 and 314; from switch 312 to switches 316 and 318; and from switch 314 to switches 320 and 322. The number of switches depicted in Figure 300 is for illustrative purposes only. More or fewer switches may be used in the network structure. Traffic class type "TC4" may be represented by a dashed line (330), and traffic class type "TC5" may be represented by a solid line (332).
[0039] When processing packets to be forwarded by the appropriate switch, each switch can also use configured forwarding priority information. For example, the target or desired bandwidth allocation (BWA) ratio 340 may include: endpoint class BWA ratio 342; traffic class BWA ratio 344; and source / destination class BWA ratio 346. For example: traffic of endpoint class type "A" may be allocated twice the bandwidth of traffic of endpoint class type "B" (indicated as 1 to 0.5); traffic of traffic class type TC4 may be allocated 0.75 times the bandwidth of traffic of traffic class type TC5 (indicated as 0.75 to 1); and traffic of source / destination class type "source" (S) may be allocated half the bandwidth of traffic of source / destination class type "destination" (D) (indicated as 0.5 to 1).
[0040] Each switch in the network architecture can use the same or different bandwidth allocation ratios. The bandwidth allocation ratio can depend on the type of node from which the traffic originates or is destined. For example, the bandwidth allocation ratio on a switch connected to a client node may differ from the bandwidth allocation ratio on a switch connected to a storage server or data center. Figure 300 depicts the bandwidth allocation ratios configured for different category types and combinations of category types. For example: when forwarding data to switch 312, switch 310 can use BWA ratio 350 (traffic category type + endpoint category type 302 traffic management); when forwarding data to switch 314, switch 310 can use BWA ratio 352 (traffic category type 304 traffic management only); when forwarding data to switches 316 and 318, switch 312 can use BWA ratio 354 (traffic category type + endpoint category type + source / destination category type 306 traffic management); and when forwarding data to switches 320 and 322, switch 314 can use BWA ratio 356 (traffic category type + source / destination category type 308 traffic management).
[0041] By applying configured bandwidth allocation ratios within configured priorities or combinations at specific switches, these aspects can forward traffic with improved efficiency based on the additional granularity of two additional category types. For example, by using the required BWA ratio 340 and specifically based on the configured BWA ratio 350 (e.g., based on both traffic category type and endpoint category type), switch 310 can forward traffic to switch 312 based on: 0.75 BWA for traffic category type TC4 and endpoint category type A; 0.375 BWA for traffic category type TC4 and endpoint category type B; 1 BWA for traffic category type TC5 and endpoint category type A; and 0.5 BWA for traffic category type TC5 and endpoint category type B. Each switch can use different configured BWA ratios for different ports, paths, or links to other switches. For example, in addition to forwarding traffic to switch 312 based on traffic category type and endpoint category type (traffic management 302), switch 310 can also forward traffic to switch 312 based solely on traffic category type: traffic category type TC4 uses 0.75 BWA; and traffic category type TC5 uses 1 BWA. Furthermore, switches 312 and 314 can use BWA ratios of 354 and 356 to forward traffic to switches 316 / 318 and 320 / 322, respectively. (See below for more information.) Figure 5A As mentioned in C, each switch can also be configured with priorities for each category type.
[0042] Figure 4 A schematic diagram 400 illustrating the allocation of weights for combinations of QoS category types according to one aspect of this application is shown, including traffic category types, endpoint category types, and source / destination category types. Figure 400 may include: a traffic category type-only table 401; a traffic category type and endpoint category type table 420; and a traffic category type, endpoint category type, and source / destination category type table 440. Each table may include a bandwidth allocation distribution (e.g., allocated "weights" expressed as a percentage) for a first value of the included category(s) relative to other values(s) of the same category(s), and an overall BWA. The included category types may be ordered based on configured priorities (e.g., along with allocation weights as part of configured forwarding priority information). The total traffic for each table can be summarized by multiplying the allocation weights for one category type with the allocation weights for the other category(s).
[0043] Table 401 indicates category types 402 and weights 404, where row 406 indicates the weights for each traffic category type (e.g., TC1 50%, TC2 30%, TC3 15%, TC4 5%). Since Table 401 only describes one category type, row 408 indicates the total traffic volume using the allocated weights (i.e., BWA percentages) from Table 401 for the actual allocated weights for each traffic category (TC) type: Total Traffic Volume = TC 权重 (410).
[0044] Table 420 indicates category types 422 and weights 424, with two rows indicating weights for the two category types: row 426 indicates weights for traffic category types (e.g., TC1 50%, TC2 30%, TC3 15%, TC4 5%); and row 428 indicates weights for endpoint category types within each traffic category type (e.g., EC1 100%, EC2 50%). The order of rows 426 and 428 indicates that traffic category types have higher priority than endpoint category types, which is why endpoint category type weights are listed for each traffic category type. Since Table 420 depicts two category types, row 430 indicates that the total traffic using the allocated weights (i.e., BWA proportions) in Table 420 is multiplied by the actual allocated weight for the traffic category type by the actual allocated weight for the endpoint category (EC) type: Total Traffic = TC 权重 *EC 权重 (432).
[0045] Table 440 indicates category types 442 and weights 444, with three rows indicating weights for the three category types: row 446 indicates weights for traffic category types (e.g., TC1 50%, TC2 30%, TC3 15%, and TC 45%); row 448 indicates weights for endpoint category types within each traffic category type (e.g., EC1 100% and EC2 50%); and row 450 indicates weights for source / destination category types within each endpoint category type (e.g., source 100% and destination 50%). The order of rows 446, 448, and 450 indicates that traffic category types have higher priority than endpoint category types, and endpoint category types have higher priority than source / destination category types. Therefore, endpoint category type weights are listed for each traffic category type, and source / destination category type weights are listed for each endpoint category type. Since Table 440 describes three category types, line 452 indicates that the total traffic using the allocation weights (i.e., BWA proportions) in Table 440 is calculated by multiplying the actual allocation weight for the traffic category type by the actual allocation weight for the endpoint category type and then by the actual allocation weight for the source / destination category (SDC) type: Total Traffic = TC 权重 *EC权重 *SDC weights (454).
[0046] Figure 5A A schematic diagram 500 is shown depicting prioritizing QoS categories using only traffic category type according to one aspect of this application. In Figure 500, the traffic category type values of TC1 to TC7 can be configured in priority order, where TC1 is assigned the highest priority and TC7 is assigned the lowest priority. Figure 500 illustrates the non-hierarchical category-based QoS metric described herein.
[0047] Figure 5B A schematic diagram 520 is shown depicting the prioritization of QoS categories according to a hierarchical class structure using traffic category type, endpoint category type, and source / destination category type, according to one aspect of this application. Figure 520 may correspond to... Figure 4 Table 440 in Figure 520 shows that the traffic category values for TC1 to TC4 can be configured in priority order, with TC1 assigned the highest priority and TC4 assigned the lowest priority (in the traffic category values, for example, such as...). Figure 4 (As indicated by line 446 in the document). The endpoint category values for EC1 and EC2 can be configured in order of priority, with EC1 given higher priority than EC2 (in the endpoint category values, for example, such as...). Figure 4 (As indicated by line 448 in the text). Source / destination values can be configured in priority order, where source (Src) is given higher priority than destination (Destination) (in source / destination category values, for example, such as...). Figure 4 As indicated by line 450 in Figure 520, bandwidth can be allocated to packets first based on traffic class type (e.g., TC1, TC2, TC3, or TC4), then based on endpoint class type (e.g., EC1 or EC2), and finally based on source / destination class type (e.g., Src or Dest).
[0048] Figure 5CA schematic diagram 540 depicts prioritizing QoS categories in a hierarchical category structure using traffic category type, endpoint category type, and source / destination category type according to one aspect of this application. In Figure 540, endpoint category values for EC1 and EC2 can be configured in priority order, with EC1 assigned a higher priority than EC2 (in the endpoint category values). Traffic category values for TC1 through TC4 can be configured in priority order, with TC1 assigned the highest priority and TC4 assigned the lowest priority (in the traffic category values). Source / destination values can be configured in priority order, with the source (Src) assigned a higher priority than the destination (Destination values) (in the source / destination values). As depicted in the hierarchical category structure (tree) of Figure 540, bandwidth can be allocated to packets first based on endpoint category type (e.g., EC1 or EC2), then based on traffic category type (e.g., TC1, TC2, TC3, or TC4), and finally based on source / destination category type (e.g., Src or Dest). Although Figure 5B and 5C The hierarchical category structure (i.e., tree data structure) in the text is described as balanced (i.e., nodes in the same level each have the same number of child nodes), but this hierarchical category structure can be based on an unbalanced tree data structure (i.e., nodes in the same level can each have different numbers of child nodes).
[0049] Figure 6 A flowchart 600 illustrates a method for performance isolation based on endpoint category in high-performance interconnects according to one aspect of this application. During operation, the system receives data packets through network devices in the network structure. These packets include at least one of a traffic category value for a traffic category type and an endpoint category value for an endpoint category type, wherein the endpoint category value indicates the category of the component or device coupled to the network structure to which the data packet will be sent (operation 602). When data packet 160 enters network structure 132, the traffic category value may be included in the DSCP information 163 of data packet 160 (or in the DSCP information 183 of data packet 170 when data packet 170 is transmitted through network structure 132). The endpoint category value may be included as an option in the outer IP header or network structure header, for example, as described above with respect to bit 174 in FTAG 173 of data packet 170 in Figure 1.
[0050] The system extracts the Traffic Category Value (CLV) and Endpoint Category Value (ENDV) from the data packet (Operation 604). The system can determine the CLV and ENDV based on previously configured information corresponding to bit 174 set in, for example, FTAG 173 in data packet 170 of Figure 1. For example, a value of 0 for this bit may correspond to an ENDV "A" value, while a value of 1 may correspond to an ENDV "B" value. The BWA ratio between ENDV "A" and ENDV "B" can be configured by each switch in the network structure, as described above regarding... Figure 3 The switch described in the text.
[0051] The system determines a hierarchical category structure that indicates: the priority associated with the category type, including a first priority associated with the traffic category type and a second priority associated with the endpoint category type; and the bandwidth allocation proportion for values within the corresponding category type, including a first bandwidth allocation proportion for values of the traffic category type and a second bandwidth allocation proportion for values of the endpoint category type (operation 606). For example, the hierarchical category structure can be represented by a tree data structure, where the category type priority is defined by its position or level within the tree data structure, as described above regarding... Figure 5B and 5C As described above, bandwidth allocation can be based on priority, such as the position of child nodes within the same level of a tree data structure. The specific bandwidth allocation ratio can be defined as weights, where a certain weight is assigned to the value of each category type. (As mentioned above...) Figure 4 As described in primitives 410, 432, and 454, bandwidth allocation for the overall traffic of packets can be calculated using the configured relative priorities and bandwidth allocation proportions (i.e., weights) indicated in the hierarchical category structure. The hierarchical category structure can be configured before packets arrive at the switch or can be dynamically changed as packets arrive at the switch. The hierarchical category structure (and the weights assigned to values within each configured and prioritized category type) can be unique for each switch or network device along the packet's path as packets are transmitted through the network structure.
[0052] The system determines the bandwidth allocation for the packet based on the extracted values and the hierarchical category structure (operation 608), for example, by determining the bandwidth allocation ratio for a specific category value of a specific category type and by determining the priority of that specific category type in the hierarchical category structure, as mentioned above. Figure 2 , Figure 3 , Figure 4 , Figure 5B and Figure 5C As described.
[0053] The system forwards the packet based on the bandwidth allocation determined for the packet (operation 610). The system can use the bandwidth allocation determined from operation 608 to identify subclasses for queues (e.g., based on traversal of a hierarchical tree structure) and place the packet into a specific queue among multiple queues, where the corresponding queue may correspond to a specific value for a specific category type. The system (e.g., via a scheduler component) can remove packets from the queues for forwarding based on the identified subclass and the associated priority of the corresponding queue. The operation returns.
[0054] Figure 7A A flowchart 700 illustrates a method, according to one aspect of this application, for determining bandwidth allocation and forwarding packets using endpoint category types. As described above with respect to Figures 1 to 4, 5B and 5C, the system can receive traffic to be forwarded based on traffic management rules. For example, as... Figure 7A As indicated by operations 702 and 704 in section 701 of the BWA (Browser Application Wave) system, the system (i.e., the network device) can receive data packets associated with a request and determine bandwidth allocation for the corresponding data packets. Section 701 may correspond to... Figure 6 Operation 608 in the code. The system can also forward data packets based on a determined bandwidth allocation, such as based on... Figure 7A The operations 706 to 718 in the forwarding of BWA section 705 are as indicated. Section 705 may correspond to Figure 6 Operation 610 in the middle.
[0055] During operation, the system identifies subcategories by traversing the hierarchical category structure, where each subcategory is associated with a priority indicated in the hierarchical category structure (Operation 702). The above refers to... Figure 5B and Figure 5C This describes the traversal of the example hierarchical category structure. (The above is about...) Figure 4 , 5B The 5Cs describe the relative priority between category types (e.g., subcategories). The hierarchical category structure may have been configured for use by switches receiving packets in the network structure, or it may be dynamically configured by the receiving switches as they process traffic associated with packets.
[0056] The system adds packets to a queue corresponding to the identified subclass and associated priority (operation 704). The system can place packets into one of multiple queues based on specific class values and a hierarchical class structure. Each queue can be an output queue from which packets are removed for forwarding. Each queue can correspond to specific values for a specific class type (e.g., subclass and associated priority). The switch's scheduler component can then remove packets from the queue for forwarding based on the identified subclass and associated priority for the appropriate queue.
[0057] The system can forward packets based on a determined bandwidth allocation, for example, by performing a scheduling algorithm on the current output queue of the network device. The system processes the request associated with the packet in the queue (operation 706). If the head of the queue contains a request (decision 708), the system serves the request (operation 710) and returns to the head of the queue (i.e., returns to decision 708). If the head of the queue does not contain a request (decision 708), and if one or more category values remain to be processed for a category type (decision 712), the system switches to the remaining category values (operation 714), and the operation returns to the head of the queue (i.e., returns to decision 708).
[0058] If the queue head does not contain a request (decision 708), and if there are no remaining pending one or more category values for that category type (decision 712), and if there are remaining pending one or more category types (decision 716), the system switches to the remaining category type, and the operation returns to the queue head (i.e., returns to decision 708). If the queue head does not contain a request (decision 708), and if there are no remaining pending one or more category values for that category type (decision 712), and if there are no remaining pending one or more category types (decision 716), the operation returns. In some aspects, when the operation returns, the network device may continue to perform operations 702 through 718 to process and manage all incoming packets to be forwarded via a specific output queue.
[0059] Figure 7B A flowchart 730 illustrating a method according to one aspect of this application that facilitates providing delay-critical support using endpoint category types is shown. A system (e.g., via a switch or other network device) may receive requests or packets. In response to receiving a packet, the system determines that the packet is associated with a delay-critical flow (operation 732). The system may make this determination based on fields, flags, or other information indicated in one or more packet headers. If an indication is given in the packet (e.g., in the packet header, such as bit 174 of FTAG 173 in Structure Header 171 in Figure 1), the system may also determine a traffic category value and an endpoint category value.
[0060] If there is any allocated bandwidth remaining for the traffic category value (Decision 734), and if there is any allocated bandwidth remaining for the endpoint category value (Decision 736), the system adds the packet to the priority category for the corresponding endpoint category value (Operation 738) and serves the request associated with the delay-critical flow (Operation 740). The system can add the packet to a priority category by placing it in a queue with a higher priority, and the scheduler component can serve requests from that higher priority queue by scheduling packets in that queue for earlier forwarding compared to other lower priority queues. Operation returns.
[0061] If no allocated bandwidth remains for the traffic category value (Decision 734), the system adds the packet to the Best-Effort category for the corresponding endpoint category value (Operation 742) and serves the request associated with the delay-critical flow (Operation 740). The system can add the packet to the Best-Effort category by placing it in a queue with medium priority. The scheduler component can serve requests from this medium-priority queue by scheduling packets in this queue for forwarding based on a scheduling algorithm where requests from the medium-priority queue are scheduled before requests from other lower-priority queues, but later than requests from higher-priority queues (e.g., as in Operation 738). Other techniques can be used to determine when to serve requests associated with packets in the Best-Effort category. Operation returns.
[0062] If there is any allocated bandwidth remaining for the traffic category value (Decision 734), and if there is no allocated bandwidth remaining for the endpoint category value, the system adds the packet to the best-effort category for the corresponding endpoint category value (Operation 742) and serves the request associated with the delay-critical flow (Operation 740). The operation returns.
[0063] Figure 8A computer system 800, according to one aspect of this application, is illustrated that facilitates endpoint-class-based performance isolation in high-performance interconnects. The computer system 800 includes a processor 802, a memory 804, and a storage device 806. The memory 804 may include volatile memory (e.g., random access memory (RAM)) that can be used as managed memory and can be used to store one or more memory pools. Furthermore, the computer system 800 may be coupled to peripheral I / O user devices 810 (e.g., a display device 811, a keyboard 812, and a pointing device 813). The storage device 806 includes a non-transitory computer-readable storage medium and stores an operating system 816, instructions 818, and data 830. The computer system 800 may also be a network device 800 having at least one processing resource (e.g., 802) and a circuit system (including modules, units, components, etc., such as hardware, software, or a combination of hardware and software, e.g., 806). In network device 800, a circuit system or storage device may store instructions that, when executed by the at least one processing resource (e.g., 802), include instructions for performing the operations described herein. Computer system 800 may include... Figure 8 The fewer or more entities or instructions shown.
[0064] Instruction 818 may include instructions that, when executed by computer system 800, cause computer system 800 to perform the methods and / or processes described in this disclosure. Specifically, instruction 818 may include instruction 820 for receiving a data packet through a network device in a network structure, the data packet including at least one of a traffic category value for a traffic category type and an endpoint category value for an endpoint category type, wherein the endpoint category value indicates the category of a component or device coupled to the network structure, as described above. Figure 1B Data packets 160 and 170 and Figure 6 As described in operation 602.
[0065] Instruction 818 may include instruction 822, used to extract traffic category values and endpoint category values from data packets, as described above. Figure 1B Data packet 170 and Figure 6 As described in operation 604.
[0066] Instruction 818 may include instruction 824 for determining a hierarchical category structure indicating: a priority associated with the type of category, including a first priority associated with a traffic category type and a second priority associated with an endpoint category type; and a bandwidth allocation ratio for values in the corresponding category type, including a first bandwidth allocation ratio for values of the traffic category type and a second bandwidth allocation ratio for values of the endpoint category type. The determination of the hierarchical category structure is described above in conjunction with the following: Figure 4Tables 401, 420, and 440; Figure 5B and 5C The corresponding tree data structures 520 and 540; and Figure 6 Operation 606 in the middle.
[0067] Instruction 818 may include instruction 826, used to determine bandwidth allocation for packets based on the extracted values and hierarchical category structure, as mentioned above. Figures 2 to 4 5B and 5C Figure 6 Operation 608 and Figure 7A As described in operations 702 and 704.
[0068] Instruction 818 may include instruction 828, for forwarding data packets based on a determined bandwidth allocation for the data packets, as described above. Figure 5B , 5C 7A, 7B Figure 6 Operation 610 and Figure 7A As described in operations 706 to 718.
[0069] Instruction 818 may include more than Figure 8 The instructions shown are further instructions. For example, instruction 818 may include instructions for performing the operations described above with respect to the following: Figure 1A and Figure 1B The environment within; Figure 2 and Figure 3 Communication and operation within; Figure 4 , 5B And the weights and hierarchical category structure assigned in 5C; Figure 6 , 7A The operations depicted in the flowchart of 7B; and Figure 9 The instructions in CRM 900.
[0070] Data 830 may include any data required as input or output for the methods, operations, communications, and / or processes described in this disclosure. Specifically, data 830 may store at least the following: information associated with data packets; traffic category values; traffic category types; endpoint category values; endpoint category types; source / destination values; source / destination category types; hierarchical category structures; tree data structures; bandwidth allocation ratios; priorities; indicators for processing-based endpoint categories, storage-based endpoint categories, GPU-based endpoint categories, CPU-based endpoint categories, or one or more endpoint groups, wherein the corresponding group is associated with processing-based endpoints, storage-based endpoints, GPU-based endpoints, or CPU-based endpoints; source or destination groups; headers; packet headers; structure headers; the order of traversing the hierarchical category structure or tree data structure; queues; requests; indicators for delaying critical flows; priorities; and best-effort categories.
[0071] Figure 9 A computer-readable medium 900, according to one aspect of this application, is illustrated to facilitate endpoint category-based performance isolation in high-performance interconnects. The CRM 900 may be a non-transitory computer-readable medium or device storing instructions that, when executed by a computer or processor, cause the computer or processor to perform a method. The CRM 900 may store instructions 910 for receiving data packets through network devices in a network structure, the data packets including at least one of a traffic category value for a traffic category type and an endpoint category value for an endpoint category type, wherein the endpoint category value indicates the category of the component or device coupled to the network structure to which the data packet will be sent, as described above regarding... Figure 1B Data packets 160 and 170 and Figure 6 As described in operation 602.
[0072] The CRM 900 can store instruction 912, used to extract traffic category values and endpoint category values from data packets, as mentioned above. Figure 1B Data packet 170 and Figure 6 As described in operation 604.
[0073] CRM 900 can store instruction 914 for determining the structure, a hierarchical category structure indicating: the priority associated with the type of category, including a first priority associated with the traffic category type and a second priority associated with the endpoint category type; and the bandwidth allocation proportion for values in the corresponding category type, including a first bandwidth allocation proportion for values of the traffic category type and a second bandwidth allocation proportion for values of the endpoint category type. The above describes the determination of the hierarchical category structure regarding the following: Figure 4 Tables 401, 420, and 440; Figure 5B and 5CThe corresponding tree data structures 520 and 540; and Figure 6 Operation 606 in the middle.
[0074] The CRM 900 can store instruction 916, which is used to determine bandwidth allocation for data packets based on the extracted values and hierarchical category structure, as mentioned above. Figures 2 to 4 5B and 5C Figure 6 Operation 608 and Figure 7A As described in operations 702 and 704.
[0075] The CRM 900 can store instruction 918 for forwarding data packets based on a determined bandwidth allocation for the data packet, as mentioned above. Figure 5B , 5C 7A, 7B Figure 6 Operation 610 and Figure 7A As described in operations 706 to 718.
[0076] CRM 900 can include more Figure 9 The CRM 900 can also store instructions for performing the operations described above, such as those shown below. Figure 1A and Figure 1B The environment within; Figure 2 and Figure 3 Communication and operation within; Figure 4 , 5B And the weighting and hierarchical category structure in 5C; Figure 6 , 7A The operations depicted in the flowchart of 7B; and Figure 8 Instruction 818 of the computer system 800.
[0077] Therefore, the disclosed aspects extend the category-only QoS metrics for non-hierarchical traffic used for traffic management by adding endpoint category types and source / destination category types. By leveraging configured forwarding priority information (including the priority order between category types and the bandwidth allocation ratio between category values for a given category type), the disclosed aspects can provide additional granularity in forwarding traffic through network infrastructure (or other high-performance interconnects), resulting in a more efficient overall system and fairer resource allocation.
[0078] In summary, the disclosed aspects provide a method, a computer system, and a computer-readable medium that facilitates endpoint category-based performance isolation in high-performance interconnects. During operation, the system receives data packets through network devices in a network structure. These packets include at least one of a traffic category value for a traffic category type and an endpoint category value for an endpoint category type, wherein the endpoint category value indicates the category of a component or device coupled to the network structure to which the data packet will be sent. The system extracts the traffic category value and the endpoint category value from the data packet. The system determines a hierarchical category structure indicating: a priority associated with the type of category, including a first priority associated with the traffic category type and a second priority associated with the endpoint category type; and a bandwidth allocation proportion for the values in the corresponding category type, including a first bandwidth allocation proportion for the values of the traffic category type and a second bandwidth allocation proportion for the values of the endpoint category type. The system determines a bandwidth allocation for the data packet based on the extracted values and the hierarchical category structure. The system forwards the data packet based on the determined bandwidth allocation for the data packet.
[0079] In one variant of this aspect, the endpoint category value indicates at least one of the following: a processing-based endpoint category; a storage-based endpoint category; a graphics processing unit (GPU)-based endpoint category; a central processing unit (CPU)-based endpoint category; or one or more endpoint groups, wherein the respective group is associated with a processing-based endpoint, a storage-based endpoint, a GPU-based endpoint, or a CPU-based endpoint.
[0080] In another variation of this aspect, the data packet further includes a source / destination category value for the source / destination category type, indicating the priority between the source and destination of the data packet. The hierarchical category structure further indicates a third priority associated with the source / destination category type, and a third bandwidth allocation proportion for the value of the source / destination category type. The system extracts the source / destination category value from the data packet. The system further determines the bandwidth allocation for the data packet based on the extracted source / destination category value.
[0081] In another variant, the source / destination category value indicates at least one of the following: priority for traffic originating from sources associated with the first group of sources; priority for traffic flowing to sources associated with the second group of sources; priority for traffic originating from destinations associated with the third group of destinations; or priority for traffic flowing to destinations associated with the fourth group of destinations.
[0082] In another variant, the extraction of traffic category values, endpoint category values, and source / destination category values from packets is based on information indicated in at least one of the following: headers specific to or associated with the network architecture; or headers associated with protocols used outside the network architecture.
[0083] In another variant, the priorities (including first, second, and third priorities) in the hierarchical category structure indicate the order in which the tree-like data structure representing the hierarchical category structure is traversed. The bandwidth allocation proportions in the hierarchical category structure correspond to the weights of the corresponding category values for the respective category types.
[0084] In another variant, the traffic category value includes two or more values, the endpoint category value includes two or more values, and the source / destination category value includes two or more values.
[0085] In another variant, determining the bandwidth allocation for a packet includes: identifying a subclass by traversing a hierarchical category structure, wherein the subclass is associated with a priority indicated in the hierarchical category structure; and adding the packet to a queue corresponding to the identified subclass and the associated priority.
[0086] In another variant, forwarding packets based on the determined bandwidth allocation includes serving requests associated with packets in the queue by: serving requests of the highest priority class type if the queue header contains a request; switching to the remaining class values and serving the request if the queue header does not contain a request and there are one or more class values remaining for the highest priority class type; and switching to the remaining class types and serving the request if the queue header does not contain a request, there are no remaining class values for the highest priority class type, and there are one or more class types remaining for the highest priority class type.
[0087] In another variant, the system determines that a packet is associated with a delay-critical flow. Based on the availability of allocated bandwidth for both the traffic class value and the endpoint class value, the system adds the packet to the priority class for the corresponding endpoint class value and serves the request associated with that packet. Based on the availability of allocated bandwidth for the traffic class value and the absence of allocated bandwidth for the endpoint class value, the system adds the packet to the best-effort class and serves the request associated with that packet. Based on the absence of allocated bandwidth for the traffic class value, the system adds the packet to the best-effort class and serves the request associated with that packet.
[0088] In another variant, the hierarchical category structure is specific to the network device and can be configured by the network device.
[0089] On the other hand, a computer system (e.g., a network device) includes at least one processing resource and a storage device storing instructions, which, when executed by the at least one processing resource, include instructions for receiving data packets through network devices in a network structure. The data packets include at least one of a traffic category value for a traffic category type and an endpoint category value for an endpoint category type, wherein the endpoint category value indicates a category of a component or device coupled to the network structure. These instructions are also used to extract the traffic category value and the endpoint category value from the data packets. These instructions are also used to determine a hierarchical category structure indicating: a priority associated with the type of category, including a first priority associated with a traffic category type and a second priority associated with an endpoint category type; and a bandwidth allocation ratio for values in the corresponding category types, including a first bandwidth allocation ratio for values of the traffic category type and a second bandwidth allocation ratio for values of the endpoint category type. These instructions are also used to determine a bandwidth allocation for the data packets based on the extracted values and the hierarchical category structure, and to forward the data packets based on the determined bandwidth allocation for the data packets. The computer system or network device may include a content processing system including the aforementioned instructions and instructions for performing the operations described herein, including regarding: Figure 1A and 1B The environment within; Figure 2 and Figure 3 Communication and operation within; Figure 4 , 5B And the weighting and hierarchical category structure in 5C. Figure 6 , 7A The operations depicted in the flowchart of 7B; and Figure 9 The instructions in CRM 900.
[0090] On the other hand, the non-transitory computer-readable storage medium (or CRM) stores instructions for receiving data packets through network devices in a network structure, including at least one of a traffic category value for a traffic category type and an endpoint category value for an endpoint category type, wherein the endpoint category value indicates the category of a component or device coupled to the network structure to which the data packet will be sent. These instructions are also used to extract the traffic category value and the endpoint category value from the data packet. These instructions are also used to determine a hierarchical category structure indicating: a priority associated with the type of category, including a first priority associated with a traffic category type and a second priority associated with an endpoint category type; and a bandwidth allocation ratio for values in the corresponding category type, including a first bandwidth allocation ratio for values of the traffic category type and a second bandwidth allocation ratio for values of the endpoint category type. These instructions are also used to determine a bandwidth allocation for the data packet based on the extracted values and the hierarchical category structure, and to forward the data packet based on the determined bandwidth allocation for the data packet. The CRM may also store instructions for performing the operations described above with respect to the following: Figure 1A and 1B The environment within; Figure 2 and Figure 3 Communication and operation within; Figure 4 , 5B And the weighting and hierarchical category structure in 5C; Figure 6 , 7A The operations depicted in the flowchart of 7B; and Figure 8 Instruction 818 of the computer system 800.
[0091] The above description is provided to enable those skilled in the art to implement and use these aspects and examples, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed aspects will be apparent to those skilled in the art, and the general principles defined herein can be applied to other aspects and applications without departing from the spirit and scope of the invention. Therefore, the aspects described herein are not limited to those shown, but should be given the broadest scope consistent with the principles and features disclosed herein.
[0092] Furthermore, the foregoing descriptions of the aspects are presented for illustrative and descriptive purposes only. They are not intended to be exhaustive or to limit the aspects described herein to the disclosed forms. Therefore, many modifications and variations will be apparent to those skilled in the art. Additionally, the foregoing disclosure is not intended to limit the aspects described herein. The scope of the aspects described herein is defined by the appended claims.
Claims
1. A method, the method comprising: Data packets are received through network devices in the network structure, the data packets including at least one of a traffic category value for a traffic category type and an endpoint category value for an endpoint category type, the endpoint category value indicating the category of the component or device coupled to the network structure and to which the data packets will be sent; Extract the traffic category value and the endpoint category value from the data packet; Determine the hierarchical category structure, which indicates: Priorities associated with the type of category, the priorities including a first priority associated with the traffic category type and a second priority associated with the endpoint category type; as well as The bandwidth allocation ratio for values in the corresponding category type includes a first bandwidth allocation ratio for values of the traffic category type and a second bandwidth allocation ratio for values of the endpoint category type. Based on the extracted values and the hierarchical category structure, determine the bandwidth allocation for the data packet; as well as The data packet is forwarded based on the determined bandwidth allocation for the data packet.
2. The method of claim 1, wherein the endpoint category value indicates at least one of the following: Based on the endpoint category being processed; Endpoint category based on storage; Endpoint categories based on graphics processing unit (GPU); Endpoint category based on Central Processing Unit (CPU); or One or more endpoint groups, wherein the corresponding group is associated with a processing-based endpoint, a storage-based endpoint, a GPU-based endpoint, or a CPU-based endpoint.
3. The method as described in claim 1, The data packet further includes a source / destination category value for a source / destination category type, the source / destination category value indicating the priority between the source and destination of the data packet. The hierarchical category structure further indicates a third priority associated with the source / destination category type, and a third bandwidth allocation ratio for the value of the source / destination category type, and The method further includes: Extract the source / destination category value from the data packet; as well as The bandwidth allocation for the data packet is further determined based on the extracted source / destination category values.
4. The method of claim 3, wherein the source / destination category value indicates at least one of the following: Prioritize traffic flowing from sources associated with the first group of sources; Prioritize traffic flowing to sources associated with the second group of sources; Prioritize traffic flowing from destinations associated with the third group of destinations; or Prioritize traffic flowing to destinations associated with the fourth group of destinations.
5. The method as described in claim 3, in, Extracting the traffic category value, the endpoint category value, and the source / destination category value from the data packet is based on information indicated in at least one of the following: A header specific to or associated with the network structure; or Headers associated with protocols used outside the network structure.
6. The method as described in claim 3, in, The priority indicator in the hierarchical category structure, including the first priority, the second priority, and the third priority, indicates the order in which the tree data structure representing the hierarchical category structure is traversed. The bandwidth allocation ratio in the hierarchical category structure corresponds to the weight of the corresponding category value for the corresponding category type.
7. The method as described in claim 3, in, The traffic category value includes two or more values. The endpoint category value includes two or more values, and The source / destination category value includes two or more values.
8. The method of claim 3, wherein determining the bandwidth allocation for the data packet comprises: Subcategories are identified by traversing the hierarchical category structure, wherein the subcategories are associated with priorities indicated in the hierarchical category structure; as well as The data packet is added to the queue corresponding to the identified subclass and associated priority.
9. The method of claim 8, wherein forwarding the data packet based on the determined bandwidth allocation comprises: The following operations are used to serve requests associated with data packets in the queue: If the queue header contains a request, the highest priority category type request is served; if the queue header does not contain a request and there are one or more category values remaining to be processed for the highest priority category type, the process switches to the remaining category values and serves the request. as well as Based on the fact that the head of the queue does not contain a request, there are no remaining category values for the highest priority category type, and there are one or more remaining category types to be processed, switch to the remaining category types and serve the request.
10. The method of claim 3, further comprising: The data packet was determined to be associated with a delay-critical flow; Based on the remaining allocated bandwidth for the traffic category value and the endpoint category value, the data packet is added to the priority category for the corresponding endpoint category value, and the request associated with the data packet is served. Based on the fact that there is remaining allocated bandwidth for the traffic category value and no remaining allocated bandwidth for the endpoint category value, the packet is added to the best-effort category, and the request associated with the packet is served. as well as If there is no remaining allocated bandwidth for the traffic category value, the packet is added to the best-effort category, and the request associated with the packet is served.
11. The method of claim 1, wherein the hierarchical category structure is specific to the network device and can be configured by the network device.
12. A network device, the network device comprising: At least one processing resource; as well as A storage device for storing instructions, which includes instructions for performing the following operations when the instructions are executed by the at least one processing resource: Data packets are received through the network devices in the network structure, the data packets including at least one of a traffic category value for a traffic category type and an endpoint category value for an endpoint category type, the endpoint category value indicating the category of a component or device coupled to the network structure; Extract the traffic category value and the endpoint category value from the data packet; Determine the hierarchical category structure, which indicates: Priorities associated with the type of category, the priorities including a first priority associated with the traffic category type and a second priority associated with the endpoint category type; as well as The bandwidth allocation ratio for values in the corresponding category type includes a first bandwidth allocation ratio for values of the traffic category type and a second bandwidth allocation ratio for values of the endpoint category type. Based on the extracted values and the hierarchical category structure, determine the bandwidth allocation for the data packet; as well as The data packet is forwarded based on the determined bandwidth allocation for the data packet.
13. The network device as described in claim 12, The data packet further includes a source / destination category value for a source / destination category type, the source / destination category value indicating the priority between the source and destination of the data packet. The hierarchical category structure further indicates a third priority associated with the source / destination category type, and a third bandwidth allocation ratio for the value of the source / destination category type, and The instructions therein are further used to perform the following operations: Extract the source / destination category value from the data packet; and Further, based on the extracted source / destination category values, the bandwidth allocation for the data packet is determined.
14. The network device as described in claim 13, The endpoint category value indicates at least one of the following: Based on the endpoint category being processed; Endpoint category based on storage; Endpoint categories based on graphics processing unit (GPU); Endpoint category based on Central Processing Unit (CPU); or One or more endpoint groups, wherein a corresponding group is associated with a processing-based endpoint, a storage-based endpoint, a GPU-based endpoint, or a CPU-based endpoint; and The source / destination category value indicates at least one of the following: Prioritize traffic flowing from sources associated with the first group of sources; Prioritize traffic flowing to sources associated with the second group of sources; Prioritize traffic flowing from destinations associated with the third group of destinations; or Prioritize traffic flowing to destinations associated with the fourth group of destinations.
15. The network device as described in claim 13, in, Extracting the traffic category value, the endpoint category value, and the source / destination category value from the data packet is based on information indicated in at least one of the following: A header specific to or associated with the network structure; or Headers associated with protocols used outside the network structure.
16. The network device as described in claim 13, in, The priority indicator in the hierarchical category structure, including the first priority, the second priority, and the third priority, indicates the order in which the tree data structure representing the hierarchical category structure is traversed. The bandwidth allocation ratio in the hierarchical category structure corresponds to the weight of the corresponding category value for the corresponding category type.
17. The network device as described in claim 13, The instruction for determining the bandwidth allocation for the data packet is used to perform the following operations: Subcategories are identified by traversing the hierarchical category structure, wherein the subcategories are associated with priorities indicated in the hierarchical category structure; as well as Add the data packet to the queue corresponding to the identified subclass and associated priority; and The instruction for forwarding the data packet based on the determined bandwidth allocation further enables the service of requests associated with the data packets in the queue to be performed by: Based on the requests contained in the head of the queue, the requests of the highest priority category type are served; If the head of the queue does not contain a request and there are one or more category values remaining to be processed for the highest priority category type, switch to the remaining category values and serve the request. as well as If the queue header does not contain a request, there are no remaining category values for the highest priority category type, and there are one or more remaining category types to be processed, switch to the remaining category type and serve the request.
18. The network device of claim 12, wherein the hierarchical category structure is dynamically configured by the network device and is specific to the network device.
19. A non-transitory computer-readable medium storing instructions for performing the following operations: Data packets are received through network devices in the network structure, the data packets including at least one of a traffic category value for a traffic category type and an endpoint category value for an endpoint category type, the endpoint category value indicating the category of the component or device coupled to the network structure and to which the data packets will be sent; Extract the traffic category value and the endpoint category value from the data packet; Determine the hierarchical category structure, which indicates: Priorities associated with the type of category, the priorities including a first priority associated with the traffic category type and a second priority associated with the endpoint category type; as well as The bandwidth allocation ratio for values in the corresponding category type includes a first bandwidth allocation ratio for values of the traffic category type and a second bandwidth allocation ratio for values of the endpoint category type. Based on the extracted values and the hierarchical category structure, determine the bandwidth allocation for the data packet; as well as The data packet is forwarded based on the determined bandwidth allocation for the data packet.
20. The non-transitory computer-readable medium as claimed in claim 19, The data packet further includes a source / destination category value for a source / destination category type, the source / destination category value indicating the priority between the source and destination of the data packet. The hierarchical category structure further indicates a third priority associated with the source / destination category type, and a third bandwidth allocation ratio for the value of the source / destination category type, and The instructions therein are further used to perform the following operations: Extract the source / destination category value from the data packet; and The bandwidth allocation for the data packet is further determined based on the extracted source / destination category values.