Apparatus and method for queue release and optimization based on run-time adaptive dynamic-gated list policy
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-12-04
- Publication Date
- 2026-08-11
AI Technical Summary
这可能会导致不必要的丢帧
Smart Images

Figure CN116508298B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to communication networks, and in particular to the switching of scheduled frames. To overcome typical transient network overload conditions, this invention proposes a controller, an improved network node, and a corresponding method to implement an adaptive dynamic gate control list (GCL) based on the state of the network queue. Background Technology
[0002] A key issue in network switches, routers, and gateways may be the overload of the internal queue / first-in first-out (FIFO) memory required to buffer (or temporarily store) network frames flowing from the ingress port to the egress port.
[0003] Figure 1 and Figure 2 Examples of queues are shown, which can be found in the frame scheduling phase of the Time-Sensitive Networking (TSN) standard 802.1Qbv. TSN is a set of standards-defined mechanisms for time-sensitive data transmission over deterministic Ethernet networks. The IEEE 802.1Qbv time-aware scheduler (TAS) is designed to separate communication on Ethernet networks into fixed-length and recurring time periods. According to 802.1Qbv, frames to be transmitted can be assigned to one of two or more traffic classes (priorities). For example... Figure 1 or Figure 2 As shown, traffic categories can include traffic categories #0 through #7. Frames are transmitted at a period corresponding to the traffic categories defined in the gate control list (GCL), and data is allocated to those frames. It is worth noting that "o" in the GCL indicates that the transmission gate corresponding to a specific traffic category is open, and "C" in the GCL indicates that the transmission gate corresponding to a specific traffic category is closed.
[0004] Especially during times of network overload and traffic surges, it is important that network nodes (such as switches / routers / gateways) buffer / store frames in their internal queues to handle such traffic spikes in order to avoid unexpected frame drops due to insufficient capacity, which would degrade the network's quality of service (QoS).
[0005] Most existing solutions for synthesizing data in network nodes implement fixed-depth queues and queue management algorithms for each queue. However, given a gateway with N ingress ports and M egress ports, at a given point in time, some ports may have low activity (i.e., relatively empty), while others may be overstressed (i.e., almost full). In this situation, queues for inactive ports may go unused, while queues for other ports may be collapsed. This can lead to unnecessary frame drops. Summary of the Invention
[0006] In view of the above-mentioned deficiencies, embodiments of the present invention aim to introduce devices and methods for overcoming typical transient network overload conditions. Specifically, the goal is to avoid frame loss, especially the loss of high-priority data packets, thereby improving QoS in critical network scenarios. Another objective is to optimize the use of the total amount of memory dedicated to queues.
[0007] These and other objectives are achieved through the embodiments provided in the appended independent claims. Advantageous implementations of the embodiments are further defined in the dependent claims.
[0008] A first aspect of the invention provides a controller configured to: acquire the state of each of a plurality of queues of a network node, wherein the state of the queues indicates the utilization of the queues, and wherein each queue is associated with a priority entry; determine, based on the state of the queues, whether the utilization of one or more queues exceeds one or more thresholds, wherein one threshold is associated with each of the plurality of queues; if the one or more thresholds are exceeded, generate one or more new entries for a GCL (Global Chaining Entrance) controlling the plurality of queues in the network node; and provide the one or more new entries to the network node.
[0009] Therefore, embodiments of the present invention propose a controller for a GCL based on a network queue state control queue. The controller can be implemented directly in hardware (such as a microcontroller or a coprocessor or peripheral device of a system-on-chip (SoC) device, as part of a network node, etc.) and / or in software (as executable code running on the central processing unit (CPU) of the microcontroller or as part of the SoC, such as a network node).
[0010] This invention relies on the state of each queue. Specifically, when a queue reaches a defined threshold (i.e., indicating that the queue is full or nearly full), such information can be sent to the controller to modify the GCL entry. As previously described, frames are delivered at a period corresponding to the traffic categories defined in the GCL. Specifically, gates corresponding to specific traffic categories (also called transmission gates) are controlled to be open or closed according to the GCL. By dynamically modifying the GCL, gates for overloaded queues (e.g., those with high priority) can be set to open, while gates for less loaded or empty queues (e.g., those with low priority) can be set to close. Therefore, GCL entries can be modified at runtime, depending on traffic demand.
[0011] In the implementation of the first aspect, one or more thresholds include a first threshold indicating that the queue is nearly full.
[0012] It is worth noting that one or more thresholds can be configured, for example, based on specific requirements. Specifically, the adaptive dynamic GCL mechanism can be triggered based on a flag or event called a queue nearly full alert (QNFA). This can be implemented using the first threshold defined in this implementation. It is worth noting that the queue full alert (QFA) may not be used because it is undesirable to wait until the queue is full, which could otherwise lead to packet (frame) loss before the mechanism is applied.
[0013] In the first implementation, the queue status indicates the number of frames in the queue.
[0014] In an implementation of the first aspect, the controller is further configured to: determine that the utilization of one or more queues exceeds the one or more thresholds if the number of frames in the queue exceeds the first threshold; and determine one or more first queues from the plurality of queues, wherein for each of the one or more first queues, the number of frames exceeds the first threshold.
[0015] Optionally, each first queue can be a higher-priority queue. If a higher-priority queue detects a QNFA event, that queue may request more buffer space.
[0016] In an implementation of the first aspect, the controller is further configured to: determine the one or more second queues from the plurality of queues based on one or more default priority entries of the one or more second queues, wherein the default priority entry of each of the one or more second queues is lower than the corresponding default priority entry of one of the one or more first queues.
[0017] Therefore, the controller will search one or more queues with lower priority. Such low-priority queues may need to provide their buffers to high-priority queues.
[0018] In an implementation of the first aspect, the one or more thresholds include a second threshold indicating a nearly empty state of the queue, and / or a third threshold indicating an empty state of the queue.
[0019] The one or more thresholds may be designed to trigger a queue nearly empty alert (QNEA) event and / or a queue empty alert (QEA) event.
[0020] In an implementation of the first aspect, the controller is further configured to: determine the one or more second queues from the plurality of queues based on the one or more default priority entries of the one or more second queues, the state of each of the one or more second queues, and the second threshold or the third threshold, wherein the number of frames in each second queue does not exceed the second threshold or the third threshold.
[0021] For example, if the status of a lower priority queue shows that the queue is empty or nearly empty, it may mean that the queue may have to give up free space in the buffer (e.g., the free space could be provided to a high priority queue that is nearly full).
[0022] In the implementation of the first aspect, the GCL is responsible for traffic shaping of frames in each queue, wherein the controller is further configured to: generate the one or more new entries for the GCL, wherein for the one or more new entries, the door of each of the one or more first queues is set to open, and the door of each of the one or more second queues is set to close.
[0023] Optionally, when a nearly full high-priority queue, such as queue 7 (priority = 7), requires a buffer, and the controller detects a nearly empty or empty low-priority queue, such as queue 0 (priority = 0), new GCL entries will be generated for queues 0 and 7. Specifically, the door for queue 0 is set to closed, while the door for queue 7 is set to open.
[0024] In the implementation of the first aspect, the generated one or more new entries instruct the network node to open the door of each of the one or more first queues and close the door of each of the one or more second queues.
[0025] It is worth noting that the GCL determines which traffic queue is allowed to transmit at a specific point in time within the period. Specifically, after a new GCL entry is applied, the high-priority queue (queue 7) is allowed to transmit its frames during the time period allocated to queue 0, thereby avoiding the loss of arriving frames.
[0026] In an implementation of the first aspect, the controller is further configured to: set a timer for the generated one or more new entries, wherein the generated one or more new entries are active before the timer expires.
[0027] Specifically, the one or more new entries generated by GCL can be active for a controlled period of time.
[0028] In the implementation of the first aspect, the controller is further configured to obtain the updated status of each of the plurality of queues from the network node.
[0029] In an implementation of the first aspect, the controller is further configured to: if it is determined that the utilization of the queue does not exceed the one or more thresholds, then set each of the one or more generated GCL entries back to the default GCL entry.
[0030] It is worth noting that after the high-priority queue (queue 7) has transmitted its burst packets during the time slot allocated to queue 0, the priority level in queue 7 can be reduced (i.e., the utilization of queue 7). If the priority level is lower than QNFA, it means that this new GCL entry does not need to be applied. Therefore, the GCL configuration can be set back to the default configuration.
[0031] A second aspect of the invention provides a network device for: providing the state of each of a plurality of queues to a controller, wherein the plurality of queues are formed at an output port of the network node, wherein each queue is associated with a priority entry; and obtaining from the controller one or more new entries of the GCL controlling the plurality of queues in the network node.
[0032] Therefore, embodiments of the present invention also propose a network device in which the proposed adaptive dynamic GCL implementation allows for optimization of memory usage on the network device and avoids frame loss in critical network scenarios. The network node can be a switch, router, gateway, etc. Specifically, the network node applies one or more new GCL entries obtained from the controller, wherein the new GCL entries can be determined based on the queue state provided by the network node.
[0033] In a second implementation, the network device is further configured to: replace one or more default entries of the GCL with one or more newly acquired entries.
[0034] In the second implementation, the network device is further configured to: open or close the door of each of the plurality of queues based on the GCL.
[0035] As mentioned earlier, after applying the new GCL entries, a nearly full high-priority queue can transmit its burst frames during time slots allocated to nearly empty or empty low-priority queues. Therefore, for high-priority queues, frame loss in critical network scenarios can be prevented.
[0036] In a second implementation, the network device is further configured to provide the controller with the updated status of each of the plurality of queues.
[0037] As mentioned earlier, after a high-priority queue transmits a frame according to a new GCL entry, the high-priority queue's priority may drop below the QNFA. The updated status will be provided to the controller.
[0038] A third aspect of the invention provides a method executed by the controller of the first aspect, wherein the method includes: obtaining the state of each of a plurality of queues of a network node, wherein the state of the queues indicates the utilization of the queues, wherein each queue is associated with a priority entry; determining, based on the state of the queues, whether the utilization of one or more queues exceeds one or more thresholds, wherein one threshold is associated with each of the plurality of queues; if the one or more thresholds are exceeded, generating one or more new entries for a GCL (Global Chaining Registry) controlling the plurality of queues in the network node; and providing the one or more new entries to the network node.
[0039] The implementation of the third method can correspond to the implementation of the controller described in the first aspect. The third method and its implementation achieve the same advantages and effects as the controller and its implementation described in the first aspect.
[0040] A fourth aspect of the invention provides a method performed by a network node of the second aspect, wherein the method includes: providing the state of each of a plurality of queues to a controller, wherein the plurality of queues are formed at an output port of the network node, wherein each queue is associated with a priority entry; and obtaining one or more new entries from the controller of the GCL (Global Chaining) controlling the plurality of queues in the network node.
[0041] The implementation of the fourth method can correspond to the implementation of the controller in the second aspect. The fourth method and its implementation achieve the same advantages and effects as the network device and its implementation in the second aspect.
[0042] A fifth aspect of the present invention provides a computer program product comprising program code for performing, when implemented on a processor, the method according to the third aspect and any implementation thereof, or the fourth aspect and any implementation thereof.
[0043] It should be noted that all devices, elements, units, and modules described in this application can be implemented in software or hardware elements or any combination thereof. All steps performed by the various entities described in this application, and the functions to be performed by the various entities described, are intended to refer to the respective entities performing the respective steps and functions. Although the specific functions or steps performed by external entities are not reflected in the detailed descriptions of the specific elements of the entities performing the specific steps or functions in the following descriptions of specific embodiments, those skilled in the art will understand that these methods and functions can be implemented by corresponding hardware or software elements or any combination thereof. Attached Figure Description
[0044] The following detailed description of specific embodiments, in conjunction with the accompanying drawings, illustrates various aspects and implementations of the present invention, wherein:
[0045] Figure 1 The queue according to 802.1Qbv is shown;
[0046] Figure 2 The queue according to 802.1Qbv is shown;
[0047] Figure 3 An example of the instantaneous state of the queue is shown;
[0048] Figure 4 A controller according to an embodiment of the present invention is shown;
[0049] Figure 5 The state of the queue in a network node according to an embodiment of the present invention is shown;
[0050] Figure 6 A network node according to an embodiment of the present invention is shown;
[0051] Figure 7 An example of an IEEE 802.1Qbv implementation according to an embodiment of the present invention is shown;
[0052] Figure 8 An example of an IEEE 802.1Qbv implementation according to an embodiment of the present invention is shown;
[0053] Figure 9 An example of an IEEE 802.1Qbv implementation according to an embodiment of the present invention is shown;
[0054] Figure 10An example of an IEEE 802.1Qbv implementation according to an embodiment of the present invention is shown;
[0055] Figure 11 The hardware implementation according to an embodiment of the present invention is shown;
[0056] Figure 12 An algorithm according to an embodiment of the present invention is shown;
[0057] Figure 13 A method according to an embodiment of the present invention is shown;
[0058] Figure 14 A method according to an embodiment of the present invention is shown. Detailed Implementation
[0059] Exemplary embodiments of methods, devices, and program products for controlling queue release in network nodes are described with reference to the accompanying drawings. While this description provides detailed examples of possible implementations, it should be noted that these details are intended to be exemplary and do not limit the scope of this application.
[0060] Furthermore, one embodiment / example may refer to multiple other embodiments / examples. For example, any descriptions mentioned in one embodiment / example, including but not limited to terms, elements, processes, explanations, and / or technical advantages, are applicable to multiple other embodiments / examples.
[0061] As mentioned earlier, in existing solutions that implement fixed-depth queues and queue management algorithms for each queue, it may occur that queues on inactive ports are not used (i.e., empty), while queues on other ports are collapsed (i.e., full).
[0062] Figure 3 An example of the instantaneous state of the queues in this scenario is shown. Both queues #1 and #N have incoming frames. At time t, due to a lack of space in the queues, frame drops will occur in queue #N even if there is sufficient free space in the total queue memory. This can degrade network QoS. It can be seen that while the implementation strategy of the queue management algorithm for each queue and fixed-depth queues is fairly simple, it cannot adapt to constantly changing traffic conditions.
[0063] To overcome typical transient network overload conditions, this invention proposes an adaptive dynamic GCL based on the state implementation of network queues.
[0064] Figure 4A controller 400 according to an embodiment of the present invention is illustrated. The controller 400 may include processing circuitry (not shown) for performing, conducting, or initiating various operations of the controller 400 described herein. The processing circuitry may include hardware and software. The hardware may include analog circuitry or digital circuitry, or both analog and digital circuitry. The digital circuitry may include components such as application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), digital signal processors (DSPs), or multi-purpose processors. The controller 400 may also include memory circuitry storing one or more instructions that can be executed by a processor or processing circuitry (specifically, under the control of software). For example, the memory circuitry may include a non-transitory storage medium storing executable software code that, when executed by a processor or processing circuitry, causes the controller 400 to perform various operations. In one embodiment, the processing circuitry includes one or more processors and a non-transitory memory connected to the one or more processors. Non-transient memory may carry executable program code that, when executed by one or more processors, causes controller 400 to perform, conduct, or initiate the operations or methods described herein.
[0065] Specifically, controller 400 is configured to acquire the state 401 of each of a plurality of queues in network node 410. The queue state 401 indicates the utilization of the queue, where each queue is associated with a priority entry. Controller 400 is also configured to: determine, based on the queue state 401, whether the utilization of one or more queues exceeds one or more thresholds, where one threshold is associated with each of the plurality of queues. Therefore, controller 400 is configured to: if the one or more thresholds are exceeded, generate one or more new entries 402 for the GCL controlling the plurality of queues in network node 410. Furthermore, controller 400 is configured to provide one or more new entries 402 to network node 410.
[0066] Network device 410 can be a switch, router, gateway, etc. Multiple queues can be implemented on the output ports of network device 410. Typically, each queue is configured with a separate transmission class, which represents the internal priority among all queues. For example, transmission class #N has a higher priority than transmission class #N-1, where N is a positive integer.
[0067] The controller 400 can be implemented directly in hardware (such as a coprocessor or peripheral device of a microcontroller or SoC device that is part of network node 410). Alternatively, the controller 400 can be implemented in software (as executable code running on the central processing unit or CPU of the microcontroller or SoC that is part of network node 410).
[0068] Figure 5 An example of the queue state in a network node 410 according to an embodiment of the present invention is shown. Specifically, Figure 5 The GCL controller shown can be Figure 4 The controller 400 shown is an example. The GCL controller may be a finite state machine (FSM) or an arithmetic logic unit (ALU).
[0069] As proposed in this embodiment of the invention, the controller 400 depends on the state 401 of each queue. When a queue reaches or exceeds a defined threshold, an event can be triggered, and this information can be sent to the controller 400. This allows the controller 400 to modify the entry 402 associated with the queue, thereby modifying the outgoing frame traffic.
[0070] According to embodiments of the present invention, one or more configurable thresholds can be set to trigger different events. Optionally, the one or more thresholds may include a first threshold indicating a nearly full state of the queue. Specifically, the event triggered by the first threshold may be referred to as QNFA. Figure 5 The dashed line shown indicates the first threshold.
[0071] Another threshold could be set to trigger a queue full alert (QFA) event, i.e., to indicate that the queue is full. However, this event might not be used because it's undesirable to wait until the queue is full, which could otherwise lead to dropped frames before the GCL-adaptive mechanism is applied.
[0072] It is worth noting that the queue state 401 can indicate the number of frames in the queue. According to one embodiment of the invention, the controller 400 can be used to determine that the utilization of one or more queues exceeds one or more thresholds if the number of frames in the queue exceeds a first threshold. It is worth noting that if the number of frames in the queue exceeds the first threshold, a QNFA event is triggered.
[0073] Furthermore, controller 400 can be used to: determine one or more first queues from a plurality of queues, wherein for each of the one or more first queues, the number of frames exceeds the first threshold. That is, if a QNFA event is triggered in a queue, that queue will be identified by controller 400, for example, named the first queue here. It is worth noting that there may be more than one queue where the number of frames exceeds the first threshold.
[0074] Knowing that there are queues requesting more buffer space (i.e., one or more first queues because they are almost full), controller 400 will search for one or more other queues with lower priority. Such low-priority queues may need to provide their buffer space to higher-priority queues.
[0075] According to an embodiment of the present invention, the controller 400 can also be configured to: determine the one or more second queues from a plurality of queues based on one or more default priority entries of the one or more second queues, wherein the default priority entry of each of the one or more second queues is lower than the corresponding default priority entry of one of the one or more first queues. It is worth noting that the second queues should not have a higher priority or transmission category than the first queues.
[0076] If one or more low-priority queues (i.e., one or more second queues) are found, the controller 400 may modify the GCL entries of the high-priority queues and low-priority queues (i.e., one or more first queues and one or more second queues in this implementation) so that frames in the high-priority but overloaded queues are transmitted first.
[0077] As mentioned earlier, the GCL determines which traffic queue is allowed to transmit at a specific point in time within the period. Specifically, after a new GCL entry is applied, one or more first queues may be allowed to transmit their frames during the time period allocated to one or more second queues, thereby avoiding the loss of arriving frames.
[0078] Preferably, the controller 400 will also check whether the low-priority queue is able to receive additional frames in order to avoid frame loss on the low-priority queue.
[0079] Optionally, one or more thresholds may also include a second threshold indicating a nearly empty state of the queue, and / or a third threshold indicating an empty state of the queue. It is worth noting that the second threshold can be set to trigger a QNEA event, and the third threshold can be set to trigger a QEA event.
[0080] Therefore, the controller 400 can also be used to: determine the one or more second queues from the plurality of queues based on the one or more default priority entries of the one or more second queues, the state of each of the one or more second queues and the second threshold or the third threshold, wherein the number of frames in each second queue does not exceed the second threshold or the third threshold.
[0081] In other words, each second queue can be a queue with a lower priority than each first queue, and the state of the second queue should also meet certain conditions. Specifically, the number of frames in each second queue should not trigger a QNFA event or a QFA event. That is, the second queue may have no frames or only a few frames, so it is suitable for it to give up its opportunity to transmit frames (for a certain period of time).
[0082] Therefore, if a suitable low-priority queue (i.e., one or more second queues) is found, the controller 400 can generate new GCL entries 402 for the high-priority queue and the low-priority queue (i.e., one or more first queues and one or more second queues in this implementation) so that frames in the high-priority but overloaded queues are transmitted first by taking advantage of the transmission opportunities of other empty or nearly empty low-priority queues.
[0083] Specifically, the door of each of one or more first queues is set to open, while the door of each of one or more second queues is set to close. Optionally, when a nearly full high-priority queue, such as queue 7 (priority = 7), requires a buffer, and the controller finds a nearly empty or empty low-priority queue, such as queue 0 (priority = 0), new GCL entries will be generated for queues 0 and 7. Specifically, the door of queue 0 is set to close, while the door of queue 7 is set to open.
[0084] For example, such as Figure 5 In the example shown, the QNFA event is triggered at T05 in queues 7 (i.e., queues for traffic class 7) and 6 (i.e., queues for traffic class 6). Since the default GCL entry for queue 7 is "C" and the default GCL entry for queue 3 (i.e., queues for traffic class 3) is "o", the controller 400 can modify the GCL entry for queue 7 to "o" and the GCL entry for queue 3 to "C". In this way, overloaded queue 7 can utilize the transmission opportunities allocated to queue 3, thereby avoiding the loss of high-priority frames. This improves QoS in critical network scenarios.
[0085] It is worth noting that, to ensure that low-priority queues that have relinquished their transmission opportunities also have a chance to transmit (avoiding potential frame drops at lower priorities), a timer can be set for new GCL entries. Specifically, new GCL entries can remain active for a configurable period of time (i.e., before the timer expires). Figure 5 In the example shown, the new GCL entry is only active in T06 and T07.
[0086] Furthermore, once a frame is transmitted, the QNFA event may no longer be triggered for the first queue. In other words, the state of the first queue, i.e., the number of frames in the queue, may fall below the first threshold.
[0087] According to one embodiment of the invention, the controller 400 can also be configured to obtain the updated status of each of the plurality of queues from the network node 410. Therefore, the controller 400 can also be configured to: if it is determined that the utilization of a queue does not exceed the one or more thresholds, set each of the one or more generated GCL entries 402 back to the default GCL entry.
[0088] Therefore, embodiments of the present invention also propose a network node 410. As mentioned above, the network device 410 may be a switch, router, gateway, etc.
[0089] Figure 6 A network node 410 according to an embodiment of the present invention is shown. Network node 410 may be... Figure 4The network node 410 is shown. Network node 410 may include processing circuitry (not shown) for performing, conducting, or initiating various operations of the network node 410 described herein. This processing circuitry may include hardware and software. The hardware may include analog or digital circuitry, or both. The digital circuitry may include components such as application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), digital signal processors (DSPs), or multi-purpose processors. Network node 410 may also include memory circuitry storing one or more instructions that can be executed by a processor or processing circuitry (specifically, under software control). For example, the memory circuitry may include a non-transitory storage medium storing executable software code that, when executed by a processor or processing circuitry, causes network node 410 to perform various operations. In one embodiment, the processing circuitry includes one or more processors and non-transitory memory connected to the one or more processors. The non-transient memory may carry executable program code that, when executed by one or more processors, causes network node 410 to perform, conduct, or initiate the operations or methods described herein.
[0090] Specifically, network node 410 is used to provide the status 401 of each of the multiple queues to controller 400. Controller 400 may be... Figure 4 The controller 400 is shown. Notably, multiple queues are formed at the output port of network node 410, with each queue associated with a priority entry. Network node 410 is also used to retrieve one or more new entries 402 from the controller 400 for the GCL that controls the multiple queues in network node 410.
[0091] It is worth noting that the traffic requirements of network node 410 are provided to controller 400 at runtime. Depending on the state of multiple queues, controller 400 can modify GCL entries in real time, thereby optimizing the use of the total amount of memory dedicated to queues in network node 410.
[0092] According to one embodiment of the present invention, network device 410 is used to replace one or more default entries in the GCL with one or more newly acquired entries. Accordingly, network device 410 can open or close the gate of each of the multiple queues based on the GCL. Therefore, outgoing frames from overloaded higher-priority queues can be allowed to be transmitted first. The objective of this invention is to avoid the loss of high-priority frames / packets, thereby improving QoS in critical network scenarios.
[0093] According to one embodiment of the invention, network device 410 can also be used to provide the updated status of each of a plurality of queues to controller 400. As previously mentioned, after a high-priority queue has delivered its burst packets, the priority level of the high-priority queue may fall below QNFA. This means that the modified GCL entry may no longer be needed. The updated status is provided to controller 400, and controller 400 can accordingly set the default GCL configuration of network node 410.
[0094] Figures 7 to 10 A specific example of an IEEE 802.1Qbv implementation according to an embodiment of the present invention is shown, with each graph showing the state of the queue in chronological order.
[0095] Figure 7 The diagram shows the eight queues of network node 410 and the status of all queues. Network node 410 may be... Figure 4 or Figure 6 The network nodes are shown. Assume a 1ms time period includes eight time slots, namely T0, T1, ..., T7, as follows... Figure 7 As shown. Each time slot is used for a dedicated priority; for example, T7 is assigned to queue with priority 7. As mentioned earlier, each transport category or traffic category represents a dedicated priority. It is also assumed that a dedicated queue is set up for each priority. In this example, queue #7 for traffic category has the highest priority among all eight queues.
[0096] It is worth noting that this time period is continuously repeated. The order and state of each transmission gate are defined in the GCL. Specifically, in each time slot, the transmission gate of each queue will open or close according to the GCL. According to an embodiment of the present invention, the GCL is fixed.
[0097] Figure 8 Based on Figure 7 The figure shows later times for all eight queues. Notably, the figure further illustrates four thresholds used to indicate events QFA, QNFA, QNEA, and QEA. It can be seen that the number of frames in queue #7 (i.e., queue 7) exceeds the threshold that triggers the QNFA event. This indicates that the queue is nearly full. According to one embodiment of the invention, this threshold may be a first threshold defined in a previous embodiment. This information will be provided to controller 400, particularly as... Figure 4 or Figure 6 The controller 400 is shown. Therefore, the controller 400 knows that the queue with priority 7 is almost full, that is, the controller requests more buffer space, otherwise it may lose other arriving frames with higher priority.
[0098] Using the method defined in the previous embodiments, controller 400 can determine the low-priority queue to be accepted from its buffer. Furthermore, controller 400 can generate new GCL entries for both the low-priority and high-priority queues to instruct network node 410 to transmit one or more outgoing frames from queue 7 first.
[0099] Figure 9 Based on Figure 8 .exist Figure 9 At the time point shown, the GCL entries for traffic category #7 (i.e., queue 7) at point T0 have been removed from... Figure 8 The "C" shown has been changed to "o". This means that the transmission gate for queue 7 is now set to open. Simultaneously, the GCL entry for queue #0 (i.e., queue 0) at T0 has been changed from... Figure 8 The “o” shown has been changed to “C”. This means that the transmission gate for queue 0 is now set to closed.
[0100] Therefore, network node 410 opens the door to queue 7. That is, the first time slot T0 allocated to queue 0 is now allocated to queue 7 (i.e., "priority 7" frames are transmitted in T0).
[0101] Figure 10 Further based on Figure 9 It can be seen that once a frame is transmitted, the number of frames in queue 7 no longer exceeds the QNFA threshold. In other words, the QNFA event is no longer triggered for queue 7. In this way, queue 7 will deliver its overloaded frames, thus avoiding the loss of arriving frames.
[0102] The update status of queue 7 (no longer exceeding the QNFA threshold) is provided to controller 400. Therefore, controller 400 restores the default GCL entry settings for queues 0 and 7; that is, the GCL entry for queue 7 in T0 is set back to "C", and the GCL entry for queue 0 in T0 is set back to "o". Therefore, frames are retransmitted from queue 0 (priority = 0) in the first time slot T0.
[0103] Figure 11 A hardware implementation according to an embodiment of the present invention is illustrated. It is worth noting that different queues send updates to the GCL controller (i.e., such as...). Figure 4 or Figure 6 The controller 400 shown is updated. Updates may involve the following events: QFA,
[0104] QNFA, QNEA, and QEA.
[0105] High-priority queues can be configured in the system via "qmodenTX", which represents the list of queues requesting more buffer space. Low-priority queues can be configured in the system via "qmodenRX", which represents the list of queues accepting closure. Furthermore, for greater implementation flexibility, multiple modes of this mechanism can be configured via "GCLmod".
[0106] Figure 12 An algorithm according to an embodiment of the present invention is shown, based on the following four different modes:
[0107] ●Mode "D" (Default): Apply the default GCL without modification.
[0108] ●Mode "ME" (Modify Empty): Apply the new GCL only if the target low-priority queue is empty.
[0109] ● Mode "MNE" (Modify Nearly Empty): Apply the new GCL when the target low-priority queue is nearly empty.
[0110] ● Pattern "JM" (modification only): Apply the new GCL regardless of the state of the target low-priority queue.
[0111] It is worth noting that the adaptive dynamic GCL solution can be implemented in different ways depending on the mode. For mode "D", the adaptive dynamic GCL is not applied.
[0112] Figure 13 A method 1300 according to an embodiment of the present invention is illustrated. In a particular embodiment, method 1300 is performed by... Figure 4 or Figure 6 The controller 400 shown executes this. Specifically, method 1300 includes step 1301 of obtaining the state 401 of each of the multiple queues of network node 410. Network node 410 may be... Figure 4 or Figure 6 The network node 410 is shown. Specifically, the queue state 401 indicates the utilization of the queues, where each queue is associated with a priority entry. The method further includes step 1302: based on the queue state 401, determining whether the utilization of one or more queues exceeds one or more thresholds, where one threshold is associated with each of the multiple queues. Furthermore, method 1300 includes step 1303: if one or more thresholds are exceeded, generating one or more new entries 402 for the GCL (Group Classification) controlling the multiple queues in network node 410. Then, method 1300 further includes step 1304: providing one or more new entries 402 to network node 410.
[0113] Figure 14A method 1400 according to an embodiment of the present invention is illustrated. In a particular embodiment, method 1400 is performed by... Figure 4 or Figure 6 The network device 410 shown performs this action. Specifically, method 1400 includes the step of providing the status 401 of each of a plurality of queues to the controller 400. The controller 400 may be... Figure 4 or Figure 6 The controller 400 is shown. Multiple queues are formed at the output port of network node 410, where each queue is associated with a priority entry. Method 1400 also includes step 1402: obtaining one or more new entries 402 from the controller 400 for the GCL that controls the multiple queues in network node 410.
[0114] In summary, this invention proposes an adaptive dynamic GCL based on network queue state. Accordingly, embodiments of this invention provide a controller and a network node. The innovative controller, namely controller 400, brings significant flexibility to the queue, making the network node more robust to changes in traffic load conditions. The controller also optimizes the use of the total memory dedicated to the queue by modifying GCL entries in real time. Specifically, GCL entries are modified at runtime, depending on traffic demand. Since high-priority outgoing frames with overloaded queues are transmitted first, this invention prevents the loss of high-priority packets, thereby improving QoS in critical network scenarios.
[0115] This invention has been described in conjunction with various embodiments as examples and implementations. However, based on a study of the drawings, the invention, and the independent claims, those skilled in the art will be able to understand and implement other variations in practicing the claimed invention. In the claims and the description, the word "comprising" does not exclude other elements or steps, and the indefinite article "a / an" does not exclude a plurality. A single element or other unit may fulfill the functions of several entities or items described in the claims. Listing certain measures in dissimilar dependent claims does not imply that combinations of these measures cannot be effectively used.
[0116] Furthermore, any method provided in the embodiments of the present invention can be implemented in a computer program having code modules, which, when run by a processing module, causes the processing module to perform the method steps. The computer program is included in a computer-readable medium of the computer program product. The computer-readable medium can substantially include any memory, such as read-only memory (ROM), programmable read-only memory (PROM), erasable PROM (EPROM), flash memory, electrically erasable PROM (EEPROM), or a hard disk drive.
[0117] Furthermore, those skilled in the art will recognize that embodiments of controller 400 and / or network device 410 include the necessary communication capabilities in the form of functions, modules, units, elements, etc., for performing the solution. Other examples of such modules, units, elements, and functions include: processors, memory, buffers, control logic, encoders, decoders, rate matchers, rate-reducing matchers, mapping units, multipliers, decision units, selection units, switches, interleavers, deinterleavers, modulators, demodulators, inputs, outputs, antennas, amplifiers, receiver units, transmitter units, DSPs, trellis-coded modulation (TCM) encoders, TCM decoders, power supply units, power feeders, communication interfaces, communication protocols, etc., which are appropriately arranged together to perform the solution.
[0118] In particular, the processor of controller 400 and / or network device 410 may include one or more instances of, for example, a CPU, processing unit, processing circuitry, processor, application-specific integrated circuit (ASIC), microprocessor, or other processing logic capable of interpreting and executing instructions. Therefore, the term "processor" can refer to processing circuitry comprising multiple processing circuits, such as any, some, or all of the aforementioned processing circuits. The processing circuitry may also perform data processing functions for inputting, outputting, and processing data, including data buffering and device control functions such as call processing control, user interface control, etc.
Claims
1. A controller (400), characterized in that, The controller is used for: Obtain the status (401) of each of the multiple queues of the network node (410), wherein the status (401) of the queue indicates the utilization of the queue, and wherein each queue is associated with a priority entry; Based on the state (401) of the queue, it is determined whether the utilization of one or more queues exceeds one or more thresholds, one of which is associated with each of the plurality of queues; the state (401) of the queue indicates the number of frames in the queue; the one or more thresholds include a second threshold indicating a nearly empty state of the queue, and / or a third threshold indicating an empty state of the queue; If one or more thresholds are exceeded, one or more new entries (402) are generated for the gating list in the network node (410) that controls the multiple queues, the gating list being responsible for traffic shaping of frames in each queue, wherein, for the one or more new entries (402), the gate of each of the one or more first queues is set to open, the gate of each of the one or more second queues is set to close, and the default priority entry of each of the one or more second queues is lower than the corresponding default priority entry of one of the one or more first queues; Provide the one or more new entries (402) to the network node (410); Check whether the one or more second queues are able to receive additional frames.
2. The controller (400) according to claim 1, characterized in that, The one or more thresholds include a first threshold indicating that the queue is nearly full.
3. The controller (400) according to claim 1 or 2, characterized in that, The controller is used for: If the number of frames in the queue exceeds the first threshold, then it is determined that the utilization of one or more queues exceeds the one or more thresholds; One or more first queues are determined from the plurality of queues, wherein for each of the one or more first queues, the number of frames exceeds the first threshold.
4. The controller (400) according to claim 3, characterized in that, The controller is used for: One or more second queues are determined from the plurality of queues based on one or more default priority entries of one or more second queues.
5. The controller (400) according to claim 1, characterized in that, The controller is used for: The one or more second queues are determined from the plurality of queues based on the one or more default priority entries of the one or more second queues, the state of each of the one or more second queues, and the second threshold or the third threshold, wherein the number of frames in each second queue does not exceed the second threshold or the third threshold.
6. The controller (400) according to claim 5, characterized in that, The generated one or more new entries (402) instruct the network node (410) to open the door of each of the one or more first queues and close the door of each of the one or more second queues.
7. The controller (400) according to claim 1 or 2, characterized in that, The controller is used for: Set a timer for the one or more new entries (402) that are generated, wherein the one or more new entries (402) that are generated are active before the timer expires.
8. The controller (400) according to claim 1 or 2, characterized in that, The controller is used for: Obtain the updated status of each of the plurality of queues from the network node (410).
9. The controller (400) according to claim 8, characterized in that, The controller is used for: If it is determined that the utilization of the queue does not exceed one or more of the thresholds, then each of the one or more generated gated list entries is set back to the default gated list entry.
10. A network node (410), characterized in that, The network node is used for: The status (401) of each of a plurality of queues is provided to the controller, wherein the plurality of queues are formed at the outgoing port of the network node (410), wherein each queue is associated with a priority entry; the status (401) of the queue indicates the number of frames in the queue; one or more thresholds include a second threshold indicating a nearly empty state of the queue, and / or a third threshold indicating an empty state of the queue; One or more new entries (402) are obtained from the controller (400) of the gating list that controls the plurality of queues in the network node (410), the gating list being responsible for traffic shaping of frames in each queue, wherein, for the one or more new entries (402), the gate of each of the one or more first queues is set to open, the gate of each of the one or more second queues is set to close, and the default priority entry of each of the one or more second queues is lower than the corresponding default priority entry of one of the one or more first queues.
11. The network node (410) according to claim 10, characterized in that, The network node is used for: Replace one or more default entries in the gating list with one or more new entries (402) obtained therefrom.
12. The network node (410) according to claim 11, characterized in that, The network node is used for: Based on the gating list, open or close the gate of each of the plurality of queues.
13. The network node (410) according to any one of claims 10 to 12, characterized in that, The network node is used for: The updated status of each of the plurality of queues is provided to the controller (400).
14. A method (1300) executed by a controller (400), characterized in that, The method includes: Obtain (1301) the status (401) of each of the multiple queues of the network node (410), wherein the status (401) of the queue indicates the utilization of the queue, and wherein each queue is associated with a priority entry; Based on the state of the queue, determine (1302) whether the utilization of one or more queues exceeds one or more thresholds, one of which is associated with each of the plurality of queues; the state of the queue (401) indicates the number of frames in the queue; the one or more thresholds include a second threshold indicating a nearly empty state of the queue, and / or a third threshold indicating an empty state of the queue; If one or more thresholds are exceeded, one or more new entries are generated (1303) for a gating list in the network node that controls the multiple queues, the gating list being responsible for traffic shaping of frames in each queue, wherein, for the one or more new entries (402), the gate of each of the one or more first queues is set to open, the gate of each of the one or more second queues is set to close, and the default priority entry of each of the one or more second queues is lower than the corresponding default priority entry of one of the one or more first queues; Provide the one or more new entries (1304) to the network node; Check whether the one or more second queues are able to receive additional frames.
15. A method (1400) executed by a network node (410), characterized in that, The method includes: The status (401) of each of a plurality of queues is provided to the controller (400), wherein the plurality of queues are formed at the output port of the network node (410), wherein each queue is associated with a priority entry; the status (401) of the queue indicates the number of frames in the queue; one or more thresholds include a second threshold indicating a nearly empty state of the queue, and / or a third threshold indicating an empty state of the queue; (1402) The controller (400) obtains (1402) one or more new entries (402) from the gating list of the network node (410) that controls the plurality of queues, the gating list being responsible for traffic shaping of frames in each queue, wherein, for the one or more new entries (402), the gate of each of the one or more first queues is set to open, the gate of each of the one or more second queues is set to close, and the default priority entry of each of the one or more second queues is lower than the corresponding default priority entry of one of the one or more first queues.
16. A computer program product, characterized in that, The computer program product includes program code that, when implemented on a processor, is used to perform the method (1300, 1400) according to claim 14 or 15.
Citation Information
Patent Citations
Method and Apparatus for Dynamic Hardware Arbitration
US20080228977A1
Packet transfer device and packet transfer method
US20190356612A1