Congestion control algorithm switching method and device, chip, equipment, storage medium and program product
By comparing the congestion control algorithm identification information in the event request, the handover is determined and the algorithm status information is initialized, the problem of low switching efficiency of congestion control algorithm in the RDMA network is solved, and efficient hot switching and state information management is realized.
Patent Information
- Application Number
- CN202411598552.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-08
- Publication Date
- 2025-03-07
AI Technical Summary
The switching efficiency of congestion control algorithms in existing RDMA networks is low, and thermal upgrade operations involve complex algorithm mirroring loading and unloading, resulting in high overhead of critical paths.
By comparing the congestion control algorithm identification information in the two event requests before and after, we determine whether to switch, and initialize the algorithm congestion control status information during the switch to avoid interference problems.
Efficient hot switching of congestion control algorithm is realized, switching efficiency is improved, and interference of algorithm status information is avoided during the switching process.
Smart Images

Figure CN119583448A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of chip technology, and in particular to a switching method, device, chip, equipment, storage medium and program product of a congestion control algorithm. Background Art
[0002] Remote Direct Memory Access (RDMA) is an efficient communication technology that can be widely used in various high-performance computing and data center networks. RDMA enables servers to directly access remote memory without the intervention of the operating system, thereby significantly improving data processing speed and network efficiency.
[0003] RDMA networks usually involve congestion control algorithms, which can dynamically change the message sending rate of the sender according to the congestion situation in the network. Congestion control algorithms are not static and can be updated and iterated as the objective needs of business performance optimization are met.
[0004] In the related art, the congestion control algorithm deployed in the RDMA network card is usually switched through a hot upgrade operation. However, the hot upgrade operation involves a complex algorithm image loading and unloading process, and the critical path overhead is large, resulting in low switching efficiency of the congestion control algorithm. Summary of the invention
[0005] Based on this, it is necessary to provide a switching method, device, chip, equipment, storage medium and program product of a congestion control algorithm that can improve the switching efficiency of the congestion control algorithm in response to the above technical problems.
[0006] In a first aspect, the present application provides a method for switching a congestion control algorithm, which is applied to a first network device, wherein the first network device includes a message processing module and an algorithm module, and the method includes:
[0007] The message processing module sends a first event request to the algorithm module, where the first event request includes identification information of a first congestion control algorithm to be executed;
[0008] If the identification information of the first congestion control algorithm and the identification information of the second congestion control algorithm in the second event request are different, the algorithm module determines to switch the congestion control algorithm and adds new flow event indication information in the first event request, and the second event request is the previous event request of the first event request;
[0009] The algorithm module calls the first congestion control algorithm to process the first event request according to the event type included in the first event request, and initializes algorithm congestion control state information in response to the new flow event indication information.
[0010] In one embodiment, the method further comprises:
[0011] If the identification information of the first congestion control algorithm is the same as the identification information of the second congestion control algorithm in the second event request, the algorithm module determines not to switch the congestion control algorithm, and calls the first congestion control algorithm to process the first event request according to the event type contained in the first event request.
[0012] In one of the embodiments, the first event request also includes feedback mode indication information and / or unit indication information, the feedback mode indication information is used to indicate the parsing type of the initial congestion control value corresponding to the first event request, and the unit indication information is used to indicate the unit of the initial congestion control value corresponding to the first event request.
[0013] In one of the embodiments, before the message processing module sends the first event request to the algorithm module, the method further includes:
[0014] The message processing module obtains the feedback mode indication information and / or the unit indication information from a global register unit in the message processing module.
[0015] In one embodiment, the method further comprises:
[0016] The algorithm module generates a response message corresponding to the first event request, and sends the response message to the message processing module, wherein the response message is used to indicate the initial congestion control value, and the response message also includes the feedback mode indication information and / or the unit indication information;
[0017] The message processing module parses the initial congestion control value according to the feedback mode indication information and / or the unit indication information to obtain a parsed congestion control value;
[0018] The message processing module sends a message according to the parsed congestion control value.
[0019] In one of the embodiments, the parsed congestion control value includes a rate value, a token value, or a window value;
[0020] The unit of the parsed congestion control value includes the number of packets, the number of packet bytes or the bandwidth.
[0021] In one of the embodiments, after the algorithm module determines to switch the congestion control algorithm, the method further includes:
[0022] The configuration information corresponding to the first congestion control algorithm is configured in the global register unit through read and write operations; wherein, all configuration fields corresponding to the congestion control algorithm are arranged in the global register unit, and each configuration field is used to configure different configuration information corresponding to the congestion control algorithm, and the read and write operations are atomic operations.
[0023] In one of the embodiments, after the algorithm module determines to switch the congestion control algorithm, the method further includes:
[0024] The message processing module sends a switching request message to the second network device, where the switching request message is used to request the second network device to support the first congestion control algorithm;
[0025] The message processing module receives a switching response message triggered unconditionally by the second network device, where the switching response message is used to confirm that the second network device supports the first congestion control algorithm;
[0026] The first network device is a source device of messages to be transmitted, the second network device is a destination device of messages to be transmitted, and the message types of the algorithm switching request message and the switching response message both correspond to the first congestion control algorithm.
[0027] In a second aspect, the present application provides a switching device for a congestion control algorithm, which is applied to a first network device, wherein the switching device for the congestion control algorithm includes a message processing module and an algorithm module;
[0028] The message processing module is used to send a first event request to the algorithm module, wherein the first event request includes identification information of a first congestion control algorithm to be executed;
[0029] The algorithm module is used to determine to switch the congestion control algorithm if the identification information of the first congestion control algorithm is different from the identification information of the second congestion control algorithm in the second event request, and add new flow event indication information in the first event request, and the second event request is the previous event request of the first event request; according to the event type contained in the first event request, call the first congestion control algorithm to process the first event request, and initialize the algorithm congestion control status information in response to the new flow event indication information.
[0030] In one of the embodiments, the algorithm module is also used to determine not to switch the congestion control algorithm if the identification information of the first congestion control algorithm is the same as the identification information of the second congestion control algorithm in the second event request, and call the first congestion control algorithm to process the first event request according to the event type included in the first event request.
[0031] In one of the embodiments, the first event request also includes feedback mode indication information and / or unit indication information, the feedback mode indication information is used to indicate the parsing type of the initial congestion control value corresponding to the first event request, and the unit indication information is used to indicate the unit of the initial congestion control value corresponding to the first event request.
[0032] In one of the embodiments, the message processing module is further used to obtain the feedback mode indication information and / or the unit indication information from a global register unit in the message processing module.
[0033] In one embodiment, the algorithm module is further used to generate a response message corresponding to the first event request, and send the response message to the message processing module, the response message is used to indicate the initial congestion control value, and the response message also includes the feedback mode indication information and / or the unit indication information;
[0034] The message processing module is further used to parse the initial congestion control value according to the feedback mode indication information and / or the unit indication information to obtain a parsed congestion control value; and send a message according to the parsed congestion control value.
[0035] In one of the embodiments, the parsed congestion control value includes a rate value, a token value or a window value; the unit of the parsed congestion control value includes the number of packets, the number of packet bytes or the bandwidth.
[0036] In one of the embodiments, after the algorithm module determines to switch the congestion control algorithm, the method further includes:
[0037] The algorithm module is also used to configure the configuration information corresponding to the first congestion control algorithm in the global register unit through read and write operations; wherein, all configuration domain segments corresponding to the congestion control algorithm are arranged in the global register unit, and each configuration domain segment is used to configure different configuration information corresponding to the congestion control algorithm, and the read and write operations are atomic operations.
[0038] In one embodiment, the message processing module is further used to send a switching request message to the second network device, wherein the switching request message is used to request the second network device to support the first congestion control algorithm; receive a switching response message unconditionally triggered by the second network device, wherein the switching response message is used to confirm that the second network device supports the first congestion control algorithm;
[0039] The first network device is a source device of messages to be transmitted, the second network device is a destination device of messages to be transmitted, and the message types of the algorithm switching request message and the switching response message both correspond to the first congestion control algorithm.
[0040] In a third aspect, the present application provides a chip comprising a memory and a processor, wherein the memory stores a computer program, and wherein the processor implements the steps of the method described in the first aspect when executing the computer program.
[0041] In a fourth aspect, the present application provides a computer device, comprising a processor and the chip described in the third aspect, wherein the chip is used to dispatch messages to the processor or the chip itself for processing, and the processor is used to process messages dispatched by the chip.
[0042] In a fifth aspect, the present application provides a network interface card, comprising the chip and interface of the fourth aspect, wherein the chip communicates externally through the interface.
[0043] In a sixth aspect, the present application further provides a computer-readable storage medium having a computer program stored thereon, and when the computer program is executed by a processor, the steps of the method described in the first aspect above are implemented.
[0044] In a seventh aspect, the present application further provides a computer program product, comprising a computer program, which, when executed by a processor, implements the steps of the method described in the first aspect above.
[0045] The switching method, device, chip, equipment, storage medium and program product of the congestion control algorithm provided by the embodiment of the present application, the message processing module sends a first event request to the algorithm module, and the first event request includes the identification information of the first congestion control algorithm to be executed. If the identification information of the first congestion control algorithm and the identification information of the second congestion control algorithm in the second event request are different, the algorithm module determines to switch the congestion control algorithm, and adds the new flow event indication information in the first event request, and the second event request is the previous event request of the first event request. The algorithm module calls the first congestion control algorithm to process the first event request according to the event type contained in the first event request, and initializes the algorithm congestion control state information in response to the new flow event indication information. Since the identification information of the congestion control algorithm in the two event requests before and after is compared to determine whether the congestion control algorithm is switched, and after determining that the congestion control algorithm is switched, the algorithm congestion control state information is initialized, thereby avoiding the interference problem caused by the algorithm congestion control state information in the algorithm switching process, thereby efficiently realizing the hot switching of the congestion control algorithm, and improving the switching efficiency of the congestion control algorithm. BRIEF DESCRIPTION OF THE DRAWINGS
[0046] In order to more clearly illustrate the technical solutions in the embodiments of the present application or related technologies, the drawings required for use in the embodiments of the present application or related technical descriptions will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other related drawings can be obtained based on these drawings without paying creative work.
[0047] Figure 1 A schematic diagram of the structure of a network device provided in an embodiment of the present application;
[0048] Figure 2 A flowchart of a switching method of a congestion control algorithm provided in an embodiment of the present application;
[0049] Figure 3 A flowchart of another method for switching a congestion control algorithm provided in an embodiment of the present application;
[0050] Figure 4 A flowchart of a switching method for another congestion control algorithm provided in an embodiment of the present application;
[0051] Figure 5 A structural block diagram of a switching device for a congestion control algorithm provided in an embodiment of the present application;
[0052] Figure 6 An internal block diagram of a computer device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0053] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0054] First, the related technology will be described below.
[0055] Remote Direct Memory Access (RDMA) is an efficient communication technology that can be widely used in various high-performance computing and data center networks. RDMA enables servers to directly access remote memory without the intervention of the operating system, thereby significantly improving data processing speed and network efficiency.
[0056] In RDMA communication, the message queue (Queue Pair, QP) is the basic unit used to describe the communication connection between two transmission nodes. Each QP has a send queue (SQ) and a receive queue (RQ), which are used to send and receive data respectively. Through QP, RDMA data transmission can be directly carried out between transmission nodes without involving the data transmission process of the operating system. Among them, a pair of QPs can also become a flow.
[0057] RDMA networks usually involve congestion control algorithms, which can dynamically change the message sending rate of the sender according to the congestion situation in the network. Common congestion control algorithms used in RDMA networks can include the Data Center Quantized Congestion Notification (DCQCN) algorithm and the Timely algorithm. Before running the congestion control algorithm, the network device needs to load the binary image file of the congestion control algorithm into the algorithm core, which is the processor in the network device that runs the congestion control algorithm.
[0058] In the related art, the congestion control algorithm is not static and can be updated and iterated as the business performance is optimized. The congestion control algorithm deployed in the RDMA network card is usually switched through a hot upgrade operation. Among them, the hot upgrade operation can be to upgrade the congestion control algorithm from the old version to the new version without stopping the traffic. Usually, the hot upgrade operation of the congestion control algorithm has a large overhead, which can include S101-S107:
[0059] S101, the processor of the current congestion control algorithm runs the image file (CC_A.img) of the first congestion control algorithm;
[0060] S102, obtaining an image file (CC_B.img) of the second congestion control algorithm to be upgraded;
[0061] S103, saving CC_B.img to a storage space of the network device, where the storage space may be a cache of the network device;
[0062] S104, execute the hot upgrade command, load CC_B.img into the processor of the congestion control algorithm, and set the state of CC_B.img to ready;
[0063] S105, setting the state of CC_B.img to running, and gradually switching the related traffic to CC_B.img;
[0064] S106, after all traffic is switched to CC_B.img, the state of CC_A.img is set to suspended;
[0065] S107. Uninstall CC_A.img.
[0066] However, during the hot upgrade process, the image file of the congestion control algorithm needs to be loaded and unloaded, which results in a long key execution path, low efficiency, and high overhead, which in turn makes the switching process of the congestion control algorithm time-consuming and inefficient.
[0067] In addition, the congestion control algorithm version needs to be changed through hot upgrade each time, which greatly limits the potential for implementing and deploying multiple congestion control algorithms in the same congestion control algorithm framework, is not conducive to the flexibility of development, testing and comparative optimization of congestion control algorithms, and also limits the ability to design efficient congestion control algorithm switching interfaces, resulting in poor scalability.
[0068] Compared with the hot upgrade operation, the hot switch operation is to switch the running congestion control algorithm binary file from one version in the algorithm framework to another version without stopping the traffic. The difference between the hot switch operation and the hot upgrade is that the hot upgrade operation requires reloading the new algorithm image, while the hot switch only switches the code execution branch in the same algorithm image.
[0069] In related technologies, the data processor (DPU) in some network devices supports programmable congestion control (PCC), allowing users to write congestion control algorithms based on their own business needs and execute the corresponding congestion control algorithm processing according to event reporting signals. Supporting programmable congestion control algorithms can give users the ability to write multiple versions of congestion control algorithms in a set of congestion control algorithm frameworks.
[0070] However, DPUs that support programmable congestion control algorithms usually only support hot upgrade operations, not hot switching operations. Even if you want to switch the congestion control algorithm included in the image file with a stream, you must perform it through hot upgrade, which makes the switching process of the congestion control algorithm time-consuming and inefficient.
[0071] In the related art, hot switching of congestion control algorithms faces the following four problems.
[0072] First, in the related art, when switching the congestion control algorithm, the register configuration of the congestion control algorithm needs to be updated at the same time. If the register configuration of the congestion control algorithm cannot be updated atomically, when part of the configuration corresponds to the congestion control algorithm before the switch and part of the configuration corresponds to the congestion control algorithm after the switch, it may cause inconsistent execution of the congestion control algorithm. Among them, atomicity means that a certain operation is completely executed and is not interrupted by other operations during the execution process.
[0073] On the second aspect, in the related technology, a congestion control context information (CCContext, CCC) is saved for each QP. The CCC can be stored in the memory of the network device and cached in the message sending unit in the message processing module. When processing the first event request, the algorithm module can obtain the CCC corresponding to the QP and update the CCC during the execution of the congestion control algorithm logic. After the algorithm is switched, the CCC used by the congestion control algorithm before the switch will be inherited and affect the CCC update of the congestion control algorithm after the switch. Since the domain segments and meanings of the CCC of the congestion control algorithm before the switch and the congestion control algorithm after the switch are completely different, this may lead to algorithm execution risks.
[0074] On the third aspect, in the related art, the feedback mode (global_feedback_mode) of the congestion control algorithm and the type (global_cc_mode) of the congestion control algorithm are tightly coupled. Therefore, when parsing the execution result of the congestion control algorithm, the execution result may still be the execution result of the congestion control algorithm before the switch, but the feedback mode used may be the feedback mode of the currently configured congestion control algorithm, rather than the feedback mode of the congestion control algorithm configured before the congestion control algorithm was switched. Since the units and ranges corresponding to the feedback modes of different congestion control algorithms are inconsistent, this may result in uncontrolled bursts of messages or interruptions in extreme cases. Exemplarily, the congestion control algorithm uses the rate (the algorithm usage mode before the switch), while the token method (the algorithm usage mode after the switch) is used for parsing.
[0075] Fourthly, in the related art, the feedback mode (global_feedback_mode) of the congestion control algorithm and the type (global_cc_mode) of the congestion control algorithm are tightly coupled. Therefore, when parsing the execution result of the congestion control algorithm, the message granularity used may cause the message granularity corresponding to the congestion control algorithm to be inconsistent. Due to the inconsistency in message granularity, this may cause uncontrolled message bursts or very slow packet transmission close to interruption in extreme cases. Exemplarily, the congestion control algorithm uses message granularity to calculate tokens (the algorithm usage mode before switching), while the byte granularity is used during parsing (the algorithm usage mode after switching).
[0076] Fifthly, in a data center environment, the hot switching of congestion control algorithms is not just the switching of algorithms for a single node or a single network device (e.g., a network card), but may involve the switching of algorithms for all nodes in the entire data center network. Therefore, the switching of congestion control algorithms is completed in a diffuse and gradual manner. During the switching process, there will be a state where some nodes have switched algorithms while other nodes have not yet switched algorithms. In the end-to-end communication process, there may be asymmetric event enablement, asymmetric feedback mode, and asymmetric unit granularity. There may be a situation where the sending device relies on the receiving device to send back a specific message, but the receiving device cannot respond due to asymmetric settings, causing the algorithm of the sending device to fail to work as expected.
[0077] To solve the above problems, the embodiments of the present application provide a switching method, apparatus, chip, device, storage medium and program product for a congestion control algorithm. The method determines whether the congestion control algorithm has been switched by comparing the identification information of the congestion control algorithm in two event requests before and after, and initializes the algorithm congestion control state information after determining that the congestion control algorithm has been switched, thereby avoiding the interference problem caused by the algorithm congestion control state information during the algorithm switching process, thereby efficiently realizing the hot switching of the congestion control algorithm and improving the switching efficiency of the congestion control algorithm.
[0078] The network devices involved in the embodiments of the present application are described below.
[0079] Figure 1 A schematic diagram of the structure of a network device provided in an embodiment of the present application. Figure 1 As shown, the network device can send and receive messages through the network. The network device may include a message processing module and an algorithm module. Among them, the message processing module is used to schedule and control the sending and receiving of messages, send event requests to the algorithm module according to configuration information and corresponding events, and receive response messages corresponding to the event requests sent by the algorithm module.
[0080] Exemplarily, the message processing module may include a message sending unit, a message receiving unit, an event interface unit, a global register unit and a message queue context (Queue Pair Context, QPC) unit. Among them, the message sending unit is used to process message sending tasks. The message receiving unit is used to process message receiving tasks. The event interface unit is used to aggregate and filter event requests and send event requests to the algorithm module. At the same time, the event interface unit can also update the relevant domain segments in the QPC unit according to the response message after receiving the response message. The global register unit is used for users to read and write global register configurations, including global register configurations related to congestion control. The QPC unit is used to manage the context information of traffic, including the context information related to traffic congestion control.
[0081] It should be understood that the embodiments of the present application do not limit the types of the above-mentioned event requests and the global register configuration related to congestion control. For example, the types of event requests can be as shown in Table 1, and the global register configuration related to congestion control can be as shown in Table 2.
[0082] Table 1
[0083]
[0084] Table 2
[0085]
[0086] Exemplarily, the algorithm module may be composed of an algorithm core, which may be a processor of a network device. The algorithm module may include an algorithm framework processing unit and an algorithm logic execution unit. The algorithm framework processing unit is used to receive an event request, parse the event request to obtain the algorithm input parameters of the congestion control algorithm, and forward the algorithm input parameters to the algorithm logic execution unit to run the congestion control algorithm logic. Subsequently, the algorithm logic execution unit generates an algorithm response result, and the algorithm framework processing unit parses and encapsulates the algorithm response result to generate a response message, which is sent to the message processing module.
[0087] It should be noted that the algorithm logic execution unit corresponding to the algorithm module may include multiple congestion control algorithms, and each congestion control algorithm may use the same or different event requests to measure and process the congestion state, and update the message sending rate to constrain the message processing module. When the algorithm module executes the corresponding congestion control algorithm, the type of the selected congestion control algorithm can be determined by the identification information in the specific field (cc_mode field) in the event request, and then the algorithm module executes the specified type of congestion control algorithm.
[0088] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.
[0089] In an exemplary embodiment, Figure 2 As shown, a method for switching a congestion control algorithm is provided. The method is applied to a first network device as an example for explanation. The first network device includes a message processing module and an algorithm module. The method for switching a congestion control algorithm includes S201-S203:
[0090] S201. A message processing module sends a first event request to an algorithm module. The first event request includes identification information of a first congestion control algorithm to be executed.
[0091] In the present application, when it is necessary to switch the congestion control algorithm, the message processing module sends a first event request to the algorithm module, and the first event request includes identification information of the first congestion control algorithm to be executed.
[0092] Among them, the identification information of the above-mentioned first congestion control algorithm can be carried in a specific field of the first event request, and the specific field can be specifically set according to actual conditions. For example, it can be the cc_mode field in the first event request. Different values of the cc_mode field can be used as identification information of different congestion control algorithms.
[0093] Exemplarily, the event interface unit in the message processing module may send a first event request to the algorithm module according to the current global configuration and event generation, thereby instructing the algorithm module to execute the algorithm logic of the first congestion control algorithm to complete the first event request.
[0094] S202: If the identification information of the first congestion control algorithm is different from the identification information of the second congestion control algorithm in the second event request, the algorithm module determines to switch the congestion control algorithm and adds new flow event indication information in the first event request.
[0095] The second event request is a previous event request of the first event request.
[0096] In this step, after the algorithm module receives the first event request, it can compare the identification information of the first congestion control algorithm in the first event request with the identification information of the second congestion control algorithm in the second event request to determine whether the congestion control algorithm needs to be switched. If the identification information of the first congestion control algorithm and the identification information of the second congestion control algorithm in the second event request are different, the algorithm module determines to switch the congestion control algorithm and adds new flow event (NEW_FLOW_EVENT) indication information in the first event request.
[0097] It should be understood that if the identification information of the first congestion control algorithm and the identification information of the second congestion control algorithm are different, the algorithm module can determine that the two event requests correspond to different congestion control algorithms, and the congestion control algorithm needs to be switched. After switching the second congestion control algorithm to the first congestion control algorithm, new flow event indication information is added to the first event request and transmitted to the algorithm logic execution unit.
[0098] Exemplarily, if the first event request is the first event request, the identification information of the second congestion control algorithm in the second event request may be initialized to 0, indicating that no congestion control algorithm is used.
[0099] The new flow event indication information is used to indicate that a new second congestion control algorithm starts to be executed.
[0100] In other embodiments, if the identification information of the first congestion control algorithm and the identification information of the second congestion control algorithm in the second event request are the same, the algorithm module determines not to switch the congestion control algorithm, and calls the first congestion control algorithm to process the first event request according to the event type contained in the first event request.
[0101] It should be understood that when the identification information of the first congestion control algorithm and the identification information of the second congestion control algorithm are the same, the algorithm module can determine that the two event requests correspond to the same congestion control algorithm, and there is no need to switch the congestion control algorithm, and it can be directly passed through to the algorithm logic execution unit.
[0102] S203: The algorithm module calls the first congestion control algorithm to process the first event request according to the event type included in the first event request, and initializes the algorithm congestion control state information in response to the new flow event indication information.
[0103] In this step, after the algorithm module determines to switch the congestion control algorithm, it can call the first congestion control algorithm to process the first event request according to the event type contained in the first event request, and initialize the algorithm congestion control status information in response to the new flow event indication information.
[0104] Exemplarily, the algorithm module can pass the first event request to the algorithm logic execution unit, so that the algorithm logic execution unit calls the first congestion control algorithm to process one by one according to the event type contained in the first event request. If the first event request includes new flow event indication information, the algorithm module can also initialize the algorithm congestion control state information and set it to the preset default parameters.
[0105] In the application, by comparing the identification information of the congestion control algorithm in the two event requests, it can be determined whether the congestion control algorithm has been switched, thereby avoiding the algorithm switching coverage interference problem of the algorithm congestion control status information, and avoiding the algorithm execution risk caused by the inheritance or legacy of the algorithm congestion control status information.
[0106] In some embodiments, for switching congestion control algorithms of multiple network devices, the message processing module of the first network device can send a switching request message to the second network device, and the switching request message is used to request the second network device to support the first congestion control algorithm. Subsequently, the message processing module of the first network device receives a switching response message unconditionally triggered by the second network device, and the switching response message is used to confirm that the second network device supports the first congestion control algorithm.
[0107] The first network device is a source device of messages to be transmitted, the second network device is a destination device of messages to be transmitted, and the message types of the algorithm switching request message and the switching response message both correspond to the first congestion control algorithm.
[0108] The handover request message may include an RTT message, an explicit congestion notification (ECN) message, etc., and the handover response message may include an RTT response message, a CNP message, etc.
[0109] Exemplarily, the first network device enables the RTT-based Swift algorithm, and the second network device needs to support replying to the RTT response message. At this time, after the first network device sends a switching request message to the second network device, after receiving the RTT message, the second network device does not need to determine whether it can reply to the RTT response message based on the local congestion control algorithm type and event enablement status, but unconditionally replies to the first network device with the RTT response message.
[0110] Exemplarily, the first network device enables the ECN-based Data Center Quantized Congestion Notification (DCQCN) algorithm, which requires the second network device to support replying CNP messages. After receiving the ECN message sent by the first network device, the second network device automatically generates a CNP message based on the ECN filter waterline (np_min_time_between_cnps) and sends it back to the first network device.
[0111] In the present application, the message processing module supports automatic triggering of response messages, independent of the current congestion control algorithm mode and event enable status, thereby supporting normal operation of the algorithm under inconsistent instantaneous switching of multiple nodes.
[0112] In the switching method of the congestion control algorithm provided in the embodiment of the present application, the message processing module sends a first event request to the algorithm module, and the first event request includes the identification information of the first congestion control algorithm to be executed. If the identification information of the first congestion control algorithm is different from the identification information of the second congestion control algorithm in the second event request, the algorithm module determines to switch the congestion control algorithm, and adds the new flow event indication information in the first event request, and the second event request is the previous event request of the first event request. The algorithm module calls the first congestion control algorithm to process the first event request according to the event type contained in the first event request, and initializes the algorithm congestion control state information in response to the new flow event indication information. Since the identification information of the congestion control algorithm in the two event requests before and after is compared to determine whether the congestion control algorithm is switched, and after determining that the congestion control algorithm is switched, the algorithm congestion control state information is initialized, thereby avoiding the interference problem caused by the algorithm congestion control state information in the algorithm switching process, thereby efficiently realizing the hot switching of the congestion control algorithm, and improving the switching efficiency of the congestion control algorithm.
[0113] Based on the above embodiment, how to parse the response message corresponding to the first event request is described below. Figure 3 A flow chart of another method for switching a congestion control algorithm provided in an embodiment of the present application is shown in FIG. Figure 3 As shown, the switching method of the congestion control algorithm includes S301-S307:
[0114] S301. A message processing module obtains feedback mode indication information and / or unit indication information from a global register unit in the message processing module.
[0115] In some embodiments, feedback mode indication information (feedback_mode) and / or unit indication information (unit_mode) may be set in a global register unit as a global configuration of the congestion control algorithm. Before the message processing module sends the first event request to the algorithm module, the message processing module may obtain the feedback mode indication information and / or unit indication information from the global register unit in the message processing module, thereby adding the feedback mode indication information and / or unit indication information to the first event request.
[0116] The feedback mode indication information is used to indicate the parsing type of the initial congestion control value corresponding to the first event request, and the unit indication information is used to indicate the unit of the initial congestion control value corresponding to the first event request.
[0117] It should be understood that the above-mentioned initial congestion control value is a congestion control value in the execution result generated after executing the first congestion control algorithm.
[0118] S302: The message processing module sends a first event request to the algorithm module, where the first event request includes identification information of a first congestion control algorithm to be executed.
[0119] In some embodiments, the first event request also includes feedback mode indication information and / or unit indication information.
[0120] Exemplarily, when reporting the first event request, the message processing module may place the feedback mode indication information (feedback_mode) set in the global register unit in the first event request as a field segment, and report it to the algorithm module. And / or, when reporting the first event request, the message processing module may also place the unit indication information (unit_mode) set in the global register unit in the first event request as a field segment, and report it to the algorithm module.
[0121] S303. If the identification information of the first congestion control algorithm and the identification information of the second congestion control algorithm in the second event request are different, the algorithm module determines to switch the congestion control algorithm and adds new flow event indication information in the first event request. The second event request is the previous event request of the first event request.
[0122] S304: The algorithm module calls the first congestion control algorithm to process the first event request according to the event type included in the first event request, and initializes the algorithm congestion control state information in response to the new flow event indication information.
[0123] S305: The algorithm module generates a response message corresponding to the first event request, and sends the response message to the message processing module, where the response message is used to indicate an initial congestion control value.
[0124] In the present application, when the algorithm module calls the first congestion control algorithm to process the first event request, a corresponding initial congestion control value can be generated. Subsequently, the algorithm module can generate a response message corresponding to the first event request and add the initial congestion control value to the response message corresponding to the first event request.
[0125] In some embodiments, the response message also includes feedback mode indication information and / or unit indication information.
[0126] Exemplarily, when the algorithm module generates a response message corresponding to the first event request, it also places the feedback mode indication information in the response message as a field segment to notify the message processing module of the feedback mode indication information.
[0127] Exemplarily, when the algorithm module generates a response message corresponding to the first event request, the algorithm module also places the unit indication information in the response message as a field segment to notify the message processing module of the unit indication information.
[0128] In some embodiments, after receiving the response message corresponding to the first event request, the message processing module may obtain the feedback mode indication information and / or the unit indication information from the response message. Subsequently, the message processing module may record the feedback mode indication information and / or the unit indication information in the QPC unit. Specifically, the feedback mode indication information may be recorded in the feedback_mode field of the QPC unit, and the unit indication information may be recorded in the unit_mode field of the QPC unit. Accordingly, the initial congestion control value in the response message corresponding to the first event request may also be recorded in the value field in the QPC unit.
[0129] S306: The message processing module parses the initial congestion control value according to the feedback mode indication information and / or the unit indication information to obtain a parsed congestion control value.
[0130] In some embodiments, when the message processing module is scheduled to send a message, it can read the initial congestion control value from the value field of the QPC unit. In addition, it can read the feedback mode indication information from the feedback_mode field of the QPC unit, and / or read the unit indication information from the unit_mode field of the QPC unit. Subsequently, the initial congestion control value can be parsed using the feedback mode indication information and / or the unit indication information to convert the initial congestion control value into the parsed congestion control value.
[0131] The parsed congestion control value includes a rate value, a token value or a window value; the unit of the parsed congestion control value includes the number of packets, the number of packet bytes or the bandwidth.
[0132] S307: The message processing module sends a message according to the parsed congestion control value.
[0133] In some embodiments, the message processing module may use the parsed congestion control value to constrain the sending of messages. For different feedback modes, the message processing module may use different methods to constrain the sending of messages.
[0134] In the present application, by attaching feedback mode indication information and / or unit indication information in the first event request and response message, the feedback mode indication information and / or unit indication information can be passed to the message processing module, so that the message processing module uses the feedback mode indication information and / or unit indication information to parse the initial congestion control value, thereby ensuring that the feedback mode and message granularity used by the congestion control algorithm are consistent with the feedback mode and message granularity used during parsing, thereby avoiding the problem of flow rate jitter and interruption.
[0135] Based on the above embodiment, how to configure the first congestion control algorithm is described below. Figure 4 A flow chart of a switching method of another congestion control algorithm provided in an embodiment of the present application is shown as follows: Figure 4 As shown, the switching method of the congestion control algorithm includes S401-S404:
[0136] S401. The algorithm module configures configuration information corresponding to a first congestion control algorithm in a global register unit through read and write operations.
[0137] Among them, all configuration fields corresponding to the congestion control algorithm are arranged in the global register unit, and each configuration field is used to configure different configuration information corresponding to the congestion control algorithm, and the read and write operations are atomic operations.
[0138] Exemplarily, the global register unit may support arranging all required register configurations in the same 32-bit control-status register (CSR) address to include all configuration fields corresponding to the congestion control algorithm, thereby configuring all registers at one time when supporting hot switching of the congestion control algorithm.
[0139] It should be understood that the embodiment of the present application does not limit the configuration information corresponding to each configuration field segment of the global register unit. For example, Table 3 is a schematic table of each configuration field segment of a global register unit provided in the embodiment of the present application.
[0140] Table 3
[0141]
[0142] The atomic operation behavior may be to completely execute a certain operation without being interrupted by other operations during the execution process. It should be understood that the reading and writing of the 32-bit CSR address are atomic operations, thereby avoiding the asynchronous problem of updating the configuration register during hot switching of the congestion control algorithm.
[0143] S402: The message processing module sends a first event request to the algorithm module, where the first event request includes identification information of a first congestion control algorithm to be executed.
[0144] S403. If the identification information of the first congestion control algorithm and the identification information of the second congestion control algorithm in the second event request are different, the algorithm module determines to switch the congestion control algorithm and adds new flow event indication information in the first event request. The second event request is the previous event request of the first event request.
[0145] S404: The algorithm module calls the first congestion control algorithm to process the first event request according to the event type included in the first event request, and initializes the algorithm congestion control state information in response to the new flow event indication information.
[0146] In this application, the congestion control algorithm can be changed by modifying the global register configuration, which is flexible and simple to operate and provides a better user experience. In addition, by modifying the register configuration, the relevant configuration can be passed to the algorithm core, which adaptively switches the congestion control algorithm by parsing the current configuration, thus realizing lightweight and efficient hot switching of the congestion control algorithm.
[0147] Several examples of algorithm switching using the switching method of the above congestion control algorithm are provided below.
[0148] In the first example, congestion control algorithm A is switched to congestion control algorithm A+. At this time, the algorithm mode (cc_mode) and event enable mode (events_en) change, and the feedback mode (feedback_mode) and unit (unit_mode) remain unchanged. In this scenario, the message sending unit and the message receiving unit report the corresponding event request according to the global configuration. The algorithm module executes the corresponding congestion control algorithm logic according to the cc_mode passed in the event request, and recognizes the algorithm switch at the first cc_mode change, forcibly enables NEW_FLOW_EVENT to initialize the algorithm congestion control state information, and generates the corresponding initial congestion control value (such as line speed start rate or slow start window, etc.). The algorithm module puts the feedback_mode and unit_mode in the reported event request into the event response. When the message processing module parses the response message, it finds that the feedback_mode and unit_mode in the response message are the same as the same-named field segments stored in the QPC, and parses the initial congestion control value based on feedback_mode and unit_mode. For example, in rate feedback mode and window feedback mode, the message processing module directly uses the value in the event response to replace the same-named domain in QPC, that is, qpc.value = rsp.value; in token feedback mode, the message processing module adds the value in the event response to the same-named domain in QPC as its new value, that is, qpc.value = qpc.value + rsp.value. Since feedback_mode and unit_mode are the same as before the switch, the message sending unit only needs to pay attention to the value constraints (rate, token, window) in the QPC module when executing message sending.
[0149] In the second example, congestion control algorithm A is switched to congestion control algorithm A*. At this time, cc_mode, events_en and unit_mode change, and feedback_mode remains unchanged. In this scenario, the message sending unit and the message receiving unit report the corresponding event request according to the global configuration. The algorithm module executes the corresponding congestion control algorithm logic according to the cc_mode passed in the event request, and recognizes the algorithm switch when the cc_mode changes for the first time, and forcibly enables NEW_FLOW_EVENT to initialize the algorithm congestion control state information. The algorithm module puts the feedback_mode and unit_mode in the reported event request into the response message. When the message processing module parses the response message and finds that the unit_mode in the response message is different from the unit_mode stored in the QPC, it first invalidates the value field stored in the QPC, and then uses the feedback_mode, unit_mode and value values in the event response to update the same-name field in the QPC, and parses the value value through unit_mode when sending the message next time.
[0150] In the third example, congestion control algorithm A switches to congestion control algorithm B. At this time, cc_mode, events_en, feedback_mode, and unit_mode all change. In this scenario, the message sending unit and the message receiving unit report the corresponding event request according to the global configuration. The algorithm module executes the corresponding algorithm logic according to the cc_mode passed in the event request, and recognizes the algorithm switch when the cc_mode changes for the first time, and forcibly enables NEW_FLOW_EVENT to initialize the algorithm congestion control state information. The algorithm module puts the feedback_mode and unit_mode in the reported event request into the response message. After the message processing module parses the response message, once it finds that any value of feedback_mode and unit_mode in the response message has changed, the value field segment stored in the QPC is first invalidated, and then the feedback_mode, unit_mode, and value values in the event response are used to update the same-name field segment in the QPC, and the value value is parsed by feedback_mode and unit_mode when the message is sent next time.
[0151] The switching method of the congestion control algorithm provided in the embodiment of the present application does not require a complicated hot upgrade process, and only requires a small amount of global register configuration of the hardware to complete the hot switching of the congestion control algorithm, with fast execution speed and low execution overhead. Since hot switching can be achieved, the user only needs the same algorithm image file to include multiple different versions of congestion control algorithms, and can also use different types of congestion control algorithms as needed, and can also include multiple custom congestion control algorithms in the algorithm logic execution unit as needed.
[0152] In the switching method of the congestion control algorithm provided in the embodiment of the present application, the message processing module sends a first event request to the algorithm module, and the first event request includes the identification information of the first congestion control algorithm to be executed. If the identification information of the first congestion control algorithm is different from the identification information of the second congestion control algorithm in the second event request, the algorithm module determines to switch the congestion control algorithm, and adds the new flow event indication information in the first event request, and the second event request is the previous event request of the first event request. The algorithm module calls the first congestion control algorithm to process the first event request according to the event type contained in the first event request, and initializes the algorithm congestion control state information in response to the new flow event indication information. Since the identification information of the congestion control algorithm in the two event requests before and after is compared to determine whether the congestion control algorithm is switched, and after determining that the congestion control algorithm is switched, the algorithm congestion control state information is initialized, thereby avoiding the interference problem caused by the algorithm congestion control state information during the algorithm switching process, thereby efficiently realizing the hot switching of the congestion control algorithm, and improving the switching efficiency of the congestion control algorithm.
[0153] It should be understood that, although the steps in the flowcharts involved in the above embodiments are displayed in sequence according to the indication of the arrows, these steps are not necessarily executed in sequence according to the order indicated by the arrows. Unless there is a clear explanation in this article, the execution of these steps is not strictly limited in order, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above embodiments may include multiple steps or multiple stages, and these steps or stages are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily carried out in sequence, but can be executed in turn or alternately with other steps or at least a part of the steps or stages in other steps.
[0154] Based on the same inventive concept, the embodiment of the present application also provides a file system request processing device for implementing the file system request processing method involved above. The implementation scheme for solving the problem provided by the file system request processing device is similar to the implementation scheme recorded in the above method, so the specific limitations in the file system request processing device embodiment provided below can refer to the limitations of the file system request processing method above, and will not be repeated here.
[0155] In an exemplary embodiment, Figure 5 As shown, a switching device 500 of a congestion control algorithm is provided, which is applied to a first network device and includes: a message processing module 501 and an algorithm module 502, wherein:
[0156] The message processing module 501 is used to send a first event request to the algorithm module 502, where the first event request includes identification information of a first congestion control algorithm to be executed;
[0157] Algorithm module 502 is used to determine the switching of the congestion control algorithm if the identification information of the first congestion control algorithm is different from the identification information of the second congestion control algorithm in the second event request, and add new flow event indication information in the first event request, and the second event request is the previous event request of the first event request; according to the event type contained in the first event request, call the first congestion control algorithm to process the first event request, and initialize the algorithm congestion control status information in response to the new flow event indication information.
[0158] In one of the embodiments, the algorithm module 502 is also used to determine not to switch the congestion control algorithm if the identification information of the first congestion control algorithm is the same as the identification information of the second congestion control algorithm in the second event request, and call the first congestion control algorithm to process the first event request according to the event type included in the first event request.
[0159] In one of the embodiments, the first event request also includes feedback mode indication information and / or unit indication information, the feedback mode indication information is used to indicate the parsing type of the initial congestion control value corresponding to the first event request, and the unit indication information is used to indicate the unit of the initial congestion control value corresponding to the first event request.
[0160] In one embodiment, the message processing module 501 is further configured to obtain feedback mode indication information and / or unit indication information from a global register unit in the message processing module 501 .
[0161] In one embodiment, the algorithm module 502 is further used to generate a response message corresponding to the first event request, and send the response message to the message processing module 501, the response message is used to indicate the initial congestion control value, and the response message also includes feedback mode indication information and / or unit indication information;
[0162] The message processing module 501 is further configured to parse the initial congestion control value according to the feedback mode indication information and / or the unit indication information to obtain the parsed congestion control value; and send a message according to the parsed congestion control value.
[0163] In one of the embodiments, the parsed congestion control value includes a rate value, a token value or a window value; the unit of the parsed congestion control value includes the number of packets, the number of packet bytes or the bandwidth.
[0164] In one embodiment, after the algorithm module 502 determines to switch the congestion control algorithm, the method further includes:
[0165] The algorithm module 502 is also used to configure the configuration information corresponding to the first congestion control algorithm in the global register unit through read and write operations; wherein, all the configuration fields corresponding to the congestion control algorithm are arranged in the global register unit, and each configuration field is used to configure different configuration information corresponding to the congestion control algorithm, and the read and write operations are atomic operations.
[0166] In one embodiment, the message processing module 501 is further used to send a switching request message to the second network device, the switching request message is used to request the second network device to support the first congestion control algorithm; receive a switching response message unconditionally triggered by the second network device, the switching response message is used to confirm that the second network device supports the first congestion control algorithm;
[0167] The first network device is a source device of messages to be transmitted, the second network device is a destination device of messages to be transmitted, and the message types of the algorithm switching request message and the switching response message both correspond to the first congestion control algorithm.
[0168] Each module in the switching device of the above congestion control algorithm can be implemented in whole or in part by software, hardware and a combination thereof. Each module can be embedded in or independent of a processor in a computer device in the form of hardware, or can be stored in a memory in a computer device in the form of software, so that the processor can call and execute operations corresponding to each module.
[0169] In one embodiment, a computer device is provided. The computer device may be a network device. The computer device includes a chip. The computer device may implement the switching method of the congestion control algorithm. The internal structure diagram of the computer device may be as follows: Figure 6As shown. The computer device includes a processor, a memory, an input / output interface (Input / Output, referred to as I / O) and a communication interface. The processor, memory and input / output interface are connected through a system bus, and the communication interface is connected to the system bus through the input / output interface. The processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program and a database. The internal memory provides an environment for the operation of the operating system and computer programs in the non-volatile storage medium. The database of the computer device is used to store data. The input / output interface of the computer device is used to exchange information between the processor and an external device. The communication interface of the computer device is used to communicate with an external terminal through a network connection. When the computer program is executed by the processor, a switching method of a congestion control algorithm is implemented. Those skilled in the art can understand that Figure 6 The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine certain components, or have a different arrangement of components.
[0170] In one embodiment, a chip is provided. The chip includes a memory and a processor, and the memory stores a computer program. When the processor executes the computer program, the switching method of the congestion control algorithm is implemented. The chip may be a data processing unit (DPU) chip.
[0171] In one embodiment, an electronic device is provided. The electronic device includes a processor and the above chip. The above chip is used to dispatch messages to the processor or the chip itself for processing. The processor is used to process the messages dispatched by the chip.
[0172] In one embodiment, a network interface card is provided, the network interface card includes the above chip and multiple interfaces, and the chip communicates with the outside through the interface. The interface includes a PCI / PCIE interface, a network interface, and the like.
[0173] In one embodiment, a computer-readable storage medium is provided, wherein a computer program is stored on the computer-readable storage medium, and when the computer program is executed by a processor, the switching method of the congestion control algorithm is implemented.
[0174] In one embodiment, a computer program product is provided, comprising a computer program, which implements the switching method of the above congestion control algorithm when executed by a processor.
[0175] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiments can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to the memory, database or other medium used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The database involved in each embodiment provided in this application may include at least one of a relational database and a non-relational database. Non-relational databases may include distributed databases based on blockchains, etc., but are not limited to this. The processor involved in each embodiment provided in this application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, etc., but are not limited to this.
[0176] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0177] The above embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the present application. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the attached claims.
Claims
1. A method for switching a congestion control algorithm, characterized in that: Applied to a first network device, the first network device includes a message processing module and an algorithm module, and the method includes: The message processing module sends a first event request to the algorithm module, where the first event request includes identification information of a first congestion control algorithm to be executed; If the identification information of the first congestion control algorithm and the identification information of the second congestion control algorithm in the second event request are different, the algorithm module determines to switch the congestion control algorithm and adds new flow event indication information in the first event request, and the second event request is the previous event request of the first event request; The algorithm module calls the first congestion control algorithm to process the first event request according to the event type included in the first event request, and initializes algorithm congestion control state information in response to the new flow event indication information.
2. The method according to claim 1, characterized in that: The method further comprises: If the identification information of the first congestion control algorithm is the same as the identification information of the second congestion control algorithm in the second event request, the algorithm module determines not to switch the congestion control algorithm, and calls the first congestion control algorithm to process the first event request according to the event type contained in the first event request.
3. The method according to claim 1, characterized in that: The first event request also includes feedback mode indication information and / or unit indication information, wherein the feedback mode indication information is used to indicate a parsing type of an initial congestion control value corresponding to the first event request, and the unit indication information is used to indicate a unit of an initial congestion control value corresponding to the first event request.
4. The method according to claim 3, characterized in that Before the message processing module sends the first event request to the algorithm module, the method further includes: The message processing module obtains the feedback mode indication information and / or the unit indication information from a global register unit in the message processing module.
5. The method according to claim 3, characterized in that: The method further comprises: The algorithm module generates a response message corresponding to the first event request, and sends the response message to the message processing module, wherein the response message is used to indicate the initial congestion control value, and the response message also includes the feedback mode indication information and / or the unit indication information; The message processing module parses the initial congestion control value according to the feedback mode indication information and / or the unit indication information to obtain a parsed congestion control value; The message processing module sends a message according to the parsed congestion control value.
6. The method according to claim 5, characterized in that The parsed congestion control value includes a rate value, a token value or a window value; The unit of the parsed congestion control value includes the number of packets, the number of packet bytes or the bandwidth.
7. The method according to any one of claims 1 to 5, characterized in that: The method further comprises: The algorithm module configures the configuration information corresponding to the first congestion control algorithm in the global register unit through read and write operations; wherein, all configuration domains corresponding to the congestion control algorithm are arranged in the global register unit, and each configuration domain is used to configure different configuration information corresponding to the congestion control algorithm, and the read and write operations are atomic operations.
8. The method according to any one of claims 1 to 5, characterized in that: After the algorithm module determines to switch the congestion control algorithm, the method further includes: The message processing module sends a switching request message to the second network device, where the switching request message is used to request the second network device to support the first congestion control algorithm; The message processing module receives a switching response message triggered unconditionally by the second network device, where the switching response message is used to confirm that the second network device supports the first congestion control algorithm; The first network device is a source device of messages to be transmitted, the second network device is a destination device of messages to be transmitted, and the message types of the algorithm switching request message and the switching response message both correspond to the first congestion control algorithm.
9. A switching device for a congestion control algorithm, characterized in that: Applied to the first network device, the switching device of the congestion control algorithm includes a message processing module and an algorithm module; The message processing module is used to send a first event request to the algorithm module, wherein the first event request includes identification information of a first congestion control algorithm to be executed; The algorithm module is used to determine to switch the congestion control algorithm if the identification information of the first congestion control algorithm is different from the identification information of the second congestion control algorithm in the second event request, and add new flow event indication information in the first event request, and the second event request is the previous event request of the first event request; according to the event type contained in the first event request, call the first congestion control algorithm to process the first event request, and initialize the algorithm congestion control status information in response to the new flow event indication information.
10. A chip, characterized in that: The method comprises a memory and a processor, wherein the memory stores a computer program, and wherein the processor implements the steps of the method according to any one of claims 1 to 8 when executing the computer program.
11. A computer device comprising a processor and the chip according to claim 10, characterized in that: The chip is used to dispatch the message to the processor or the chip itself for processing, and the processor is used to process the message dispatched by the chip.
12. A network interface card, comprising the chip and the interface as claimed in claim 10, wherein the chip communicates externally through the interface.
13. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 8 are implemented.
14. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 8 are implemented.
Citation Information
Cited By
Hot upgrade method and equipment for congestion control and medium
CN122160254A