Message scheduling method and forwarding equipment

By using time slot rotation and message squeezing methods in the periodic scheduling technology, the problem of the queue cache packets cannot guarantee deterministic jitter when they exceed the maximum time slot carrying bit resources, and the high bandwidth utilization and 2T jitter are achieved.

CN119922144APending Publication Date: 2025-05-02ZTE CORP
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202311440546.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-10-31
Publication Date
2025-05-02

AI Technical Summary

Technical Problem

When the queue cache packet exceeds the maximum bit resource for the time slot, the existing periodic scheduling technology cannot guarantee the deterministic jitter of 2T, and reducing the queue cache packet will lead to a significant reduction in bandwidth utilization.

Method used

The message in the cache queue is scheduled using the time slot rotation method. When the message in the current dispatch queue exceeds the time slot scheduling quantity, the remaining message is squeezed to the next time slot, and the number of the current queue is carried in the message.

Benefits of technology

While increasing bandwidth utilization, 2T jitter is ensured and does not rely on precise orchestration of the control surface.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119922144A_ABST
    Figure CN119922144A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a message scheduling method and forwarding equipment, the forwarding equipment comprises a plurality of cache queues, each cache queue is associated with a scheduled time slot, and the method comprises the following steps: scheduling messages in the associated cache queues in a time slot rotation mode; and under the condition that the message in the currently scheduled cache queue exceeds the scheduling amount of the associated time slot, extruding the residual message in the currently scheduled cache queue after the scheduling of the associated time slot is finished to the next time slot for scheduling, and carrying the serial number of the currently scheduled cache queue in the residual message. Through application of the method and the device, the problems that 2T deterministic jitter cannot be ensured and the bandwidth utilization rate is greatly reduced if the queue cache messages are reduced when the queue cache messages exceed the maximum bearing bit resource of the time slot in the related technology are solved, so that 2T jitter can be ensured while the bandwidth utilization rate is improved, and the bandwidth utilization rate is improved. And meanwhile, the method does not depend on accurate arrangement of a control plane.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present invention relate to the field of communications, and in particular to a message scheduling method and forwarding device. Background Art

[0002] The Internet Engineering Task Force (IETF) proposed a deterministic network technology based on periodic scheduling. The periodic scheduling mechanism includes multiple queues, each queue is associated with a time slot, the time slot size is recorded as T (for example, T = 10us), the number of queues is recorded as N, and the messages in the associated queues are scheduled in a round-robin manner. Using this technology, the end-to-end jitter of the service can be limited to within 2T, which is a popular deterministic network technology.

[0003] The existing periodic scheduling technology solution cannot guarantee 2T deterministic jitter when the queue cache messages exceed the maximum bit resources of the time slot. If the queue caches messages, the bandwidth utilization rate will be greatly reduced. Summary of the invention

[0004] The embodiment of the present invention provides a periodic scheduling method and forwarding device to at least solve the problem in the related art that when the aggregated traffic exceeds the maximum carrying bit resources of the time slot, the deterministic jitter of 2T cannot be guaranteed, and if the aggregated traffic is reduced, the bandwidth utilization will be greatly reduced.

[0005] According to an embodiment of the present invention, a method for scheduling a message is provided, which is applied to a forwarding device.

[0006] The forwarding device includes a plurality of cache queues, each of the cache queues is associated with a scheduled time slot, and the method includes:

[0007] Scheduling the messages in the associated cache queue in a time slot round-robin manner;

[0008] When the messages in the currently scheduled cache queue exceed the scheduling amount of the associated time slot, the remaining messages in the currently scheduled cache queue after the scheduling of the associated time slot is completed are squeezed into the next time slot for scheduling and sending, and the number of the currently scheduled cache queue is carried in the remaining messages.

[0009] According to another embodiment of the present invention, a forwarding device is provided, the forwarding device comprising a plurality of cache queues, each of the cache queues being associated with a scheduled time slot, the device comprising:

[0010] A first scheduling module, used for scheduling the messages in the associated cache queue in a time slot round-robin manner;

[0011] The second scheduling module is used to squeeze the remaining messages in the currently scheduled cache queue after the associated time slot scheduling ends into the next time slot for scheduling when the messages in the currently scheduled cache queue exceed the scheduling amount of the associated time slot, and carry the number of the currently scheduled cache queue in the remaining messages.

[0012] According to yet another embodiment of the present invention, a computer-readable storage medium is provided, in which a computer program is stored, wherein the computer program is configured to execute the steps of any one of the above method embodiments when run.

[0013] According to yet another embodiment of the present invention, there is provided an electronic device, including a memory and a processor, wherein the memory stores a computer program, and the processor is configured to run the computer program to execute the steps in any one of the above method embodiments.

[0014] In an embodiment of the present application, messages in an associated cache queue are scheduled in a time slot rotation manner; when the messages in the currently scheduled cache queue exceed the scheduling amount of the associated time slot, the messages remaining in the currently scheduled cache queue after the scheduling of the associated time slot is completed are squeezed into the next time slot for scheduling, and the number of the currently scheduled cache queue is carried in the remaining messages, which solves the problem in the related art that when the queue cache message exceeds the maximum carrying bit resource of the time slot, the deterministic jitter of 2T cannot be guaranteed, and if the queue cache message is reduced, the bandwidth utilization will be greatly reduced. Therefore, it is possible to ensure 2T jitter while improving the bandwidth utilization, and it is not dependent on the precise arrangement of the control plane. BRIEF DESCRIPTION OF THE DRAWINGS

[0015] Figure 1 It is a hardware structure block diagram of a mobile terminal of a method for scheduling messages according to an embodiment of the present invention;

[0016] Figure 2 is a flow chart of a method for scheduling messages according to an embodiment of the present invention;

[0017] Figure 3 1 is a schematic diagram of message scheduling for squeezing time slots according to an embodiment of the present invention (I);

[0018] Figure 4 is a schematic diagram of the configuration of the scheduling mode and the maximum allowed scheduling amount of messages according to an embodiment of the present invention;

[0019] Figure 5 Schematic diagram of message scheduling for time slot squeezing according to an embodiment of the present invention (II);

[0020] Figure 6 Schematic diagram of message scheduling for time slot squeezing according to an embodiment of the present invention (III);

[0021] Figure 7 is a schematic diagram of a processing flow of a forwarding device according to an embodiment of the present invention;

[0022] Figure 8 Schematic diagram (IV) of message scheduling for squeezing time slots according to an embodiment of the present invention;

[0023] Fig. 9 is a schematic diagram of a southbound message format according to an embodiment of the present invention;

[0024] Fig.10 is a schematic diagram of another southbound message format according to an embodiment of the present invention;

[0025] Fig.11 Schematic diagram of message scheduling for time slot squeezing according to an embodiment of the present invention (V);

[0026] Fig.12 is a schematic diagram of scheduling mode configuration parameters of a control plane according to an embodiment of the present invention;

[0027] Fig.13 is a structural block diagram of a forwarding device according to an embodiment of the present invention. DETAILED DESCRIPTION

[0028] Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings and in combination with the embodiments.

[0029] It should be noted that the terms "first", "second", etc. in the specification and claims of the present invention and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence.

[0030] The periodic scheduling mechanism in deterministic network technology includes multiple queues, each queue can be associated with a time slot, the size of the time slot is denoted by T (for example, T=10us), the number of queues is denoted by N, and the messages in the associated queues are scheduled in a time slot round-robin manner.

[0031] In each time slot T, the number of bits that can be scheduled from the queue is a fixed value, namely T*Cap, where Cap is the port rate. When the packets cached in the queue exceed T*Cap, they may be discarded or cached to the next round of physical cycle scheduling, resulting in packet loss or failure to guarantee 2T jitter: Assuming that each T can send m*bit packets, the number of cached packets in queue 0 is n*bit, and n>m, then the packets cached in queue 0 cannot be emptied in time slot 0. In the best case, there are still (nm)*bit packets that cannot be sent. If the remaining (nm)*bit packets are squeezed into the time slot 0 of the next physical cycle for transmission, additional N*T jitter will be introduced at this node, which cannot meet the determinism of end-to-end jitter.

[0032] In order to improve bandwidth utilization and the number of service accesses, the industry is exploring the precise scheduling technology of time slots based on the control plane. This technology performs path calculation and resource reservation based on the remaining bits in the time slot to prevent the queue from accumulating messages exceeding T*Cap. However, this technology is not yet mature, and faces many problems such as high algorithm complexity and end-side jitter when multiple services coexist.

[0033] Another current strategy is to reduce reliance on control plane orchestration, keep the forwarding plane simple and efficient, and admit service messages based on arrival time. The advantage of this strategy is that it is relatively simple. However, this method can easily cause the queue cache messages to exceed T*Cap at the aggregation point. If bandwidth expansion is taken into account, bandwidth utilization may be reduced, and the carrying efficiency of deterministic services cannot be improved.

[0034] In response to the above-mentioned problem that determinism cannot be guaranteed when the queue cache messages exceed T*Cap, the present application proposes a periodic scheduling method, whose technical concept is to schedule the messages in the associated cache queue in a time slot rotation manner; when the messages in the currently scheduled cache queue exceed the scheduling amount of the associated time slot, the remaining messages in the currently scheduled cache queue after the scheduling of the associated time slot is completed are squeezed into the next time slot for scheduling, and the number of the currently scheduled cache queue is carried in the remaining messages, thereby improving bandwidth utilization while ensuring 2T jitter, and at the same time not relying on the precise orchestration of the control plane.

[0035] The method embodiments provided in the embodiments of the present application can be executed in a mobile terminal, a computer terminal or a similar computing device. Taking running on a mobile terminal as an example, Figure 1 FIG. 1 is a hardware structure diagram of a mobile terminal of a periodic scheduling method according to an embodiment of the present invention. Figure 1 As shown, the mobile terminal may include one or more ( Figure 1 Only one is shown in the figure) a processor 102 (the processor 102 may include but is not limited to a processing device such as a microprocessor MCU or a programmable logic device FPGA) and a memory 104 for storing data, wherein the mobile terminal may also include a transmission device 106 and an input / output device 108 for communication functions. It can be understood by those skilled in the art that Figure 1 The structure shown is only for illustration and does not limit the structure of the mobile terminal. Figure 1 More or fewer components as shown, or with Figure 1 Different configurations are shown.

[0036] The memory 104 can be used to store computer programs, for example, software programs and modules of application software, such as the computer program corresponding to the periodic scheduling method in the embodiment of the present invention. The processor 102 executes various functional applications and data processing by running the computer program stored in the memory 104, that is, to implement the above method. The memory 104 may include a high-speed random access memory, and may also include a non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some instances, the memory 104 may further include a memory remotely arranged relative to the processor 102, and these remote memories may be connected to the mobile terminal via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.

[0037] The transmission device 106 is used to receive or send data via a network. The specific example of the above network may include a wireless network provided by a communication provider of the mobile terminal. In one example, the transmission device 106 includes a network adapter (Network Interface Controller, referred to as NIC), which can be connected to other network devices through a base station so as to communicate with the Internet. In one example, the transmission device 106 can be a radio frequency (RF) module, which is used to communicate with the Internet wirelessly.

[0038] In this embodiment, a method for scheduling a message is provided, which is applied to a forwarding device, wherein the forwarding device includes a plurality of cache queues, each of which is associated with a scheduled time slot. Figure 2 is a flow chart of a method for scheduling messages according to an embodiment of the present invention, such as Figure 2 As shown, the process includes the following steps:

[0039] Step S201, scheduling the messages in the associated cache queue in a time slot round-robin manner.

[0040] Step S202, when the messages in the currently scheduled cache queue exceed the scheduling amount of the associated time slot, the messages remaining in the currently scheduled cache queue after the scheduling of the associated time slot is completed are squeezed into the next time slot for scheduling, and the number of the currently scheduled cache queue is carried in the remaining messages.

[0041] In an embodiment of the present application, a forwarding device may include multiple cache queues, the cache queues may carry queue numbers, each cache queue may be associated with a scheduled time slot, and each time slot may correspond to a time slot number. Messages in the associated cache queues may be scheduled in a time slot rotation manner, and when the messages cached in a queue exceed the scheduling amount of the associated time slot, the messages in the queue that exceed the scheduling amount of the time slot may be squeezed into subsequent time slots for scheduling.

[0042] For example, the size of the time slot is recorded as T (for example, T = 10us), the number of queues is recorded as N, and in each time slot T, the bits that can be scheduled from the queue are fixed values, namely T*Cap, where Cap is the port rate. Assuming that the messages cached in a queue are n*bit, and each T can send m*bit messages, if n>m, the messages cached in the queue cannot be emptied in its corresponding time slot, that is, the messages cached in the queue exceed T*Cap, and the messages (nm)*bit in the queue that exceed the preset message threshold can be squeezed into the subsequent time slot for continued transmission.

[0043] As an example, during the time slot rotation, the messages in the currently scheduled cache queue may be obtained to determine whether the messages in the currently scheduled cache queue exceed the scheduling amount of the time slot associated with the queue.

[0044] As an example, when the messages in the cache queue do not exceed the scheduling amount of the associated time slot, scheduling can be performed directly in the current time slot.

[0045] As an example, when the messages in the cache queue exceed the scheduling amount of the associated time slot, the messages that do not exceed the scheduling amount of the associated time slot can be scheduled in the associated time slot, and the remaining messages after the scheduling of the associated time slot is completed can be squeezed into the next time slot for scheduling.

[0046] For example, Figure 3 Schematic diagram (I) of message scheduling for squeezing time slots according to an embodiment of the present invention, such as Figure 3 As shown, at the end of the scheduling time slot 0, there is still one buffered message left in the current sending queue 0, so the message is allowed to be squeezed into the time slot 1 for continued transmission.

[0047] Among them, the message in the embodiment of the present application can carry the number of the currently scheduled cache queue as the time slot scheduling number. For example, assuming that the device of the currently scheduled cache queue is an upstream forwarding device, the upstream forwarding device can schedule the message carrying the queue number and send it to the downstream forwarding device. The downstream forwarding device can calculate the time slot mapping relationship based on the queue number carried by the message forwarded by the upstream device and the number of the time slot in which the downstream forwarding device receives the message, thereby deterministically scheduling the message to ensure end-to-end determinism.

[0048] In the embodiment of the present application, since the messages exceeding the scheduling amount of the associated time slot can be squeezed into the next time slot for transmission, it is possible to allow the messages in the cache queue to exceed the T*Cap limit during aggregation.

[0049] In an embodiment of the present application, messages in an associated cache queue are scheduled in a time slot rotation manner; when the messages in the currently scheduled cache queue exceed the scheduling amount of the associated time slot, the messages remaining in the currently scheduled cache queue after the scheduling of the associated time slot is completed are squeezed into the next time slot for scheduling, and the number of the currently scheduled cache queue is carried in the remaining messages, thereby solving the problem in the related art that when the queue cache message exceeds the maximum carrying bit resource of the time slot, the deterministic jitter of 2T cannot be guaranteed, and if the queue cache message is reduced, the bandwidth utilization will be greatly reduced. Therefore, the 2T jitter can be guaranteed while the bandwidth utilization is improved, and it does not rely on the precise scheduling of the control plane.

[0050] In an exemplary embodiment, when the messages in the currently scheduled cache queue exceed the scheduling amount of the associated time slot, the messages remaining in the currently scheduled cache queue after the associated time slot ends are squeezed into the next time slot for transmission, and the number of the currently scheduled cache queue is carried in the remaining message, including:

[0051] When the number of messages in the currently scheduled cache queue exceeds the scheduling amount of the associated time slot, obtaining message scheduling configuration information set by the control plane, wherein the message scheduling configuration information includes a squeeze scheduling mode parameter;

[0052] When the squeeze scheduling mode parameter is turned on, the remaining messages in the currently scheduled cache queue after the associated time slot scheduling is completed are squeezed into the next time slot for scheduling, and the number of the currently scheduled cache queue is carried in the remaining messages.

[0053] As an example, the scheduling mode parameters of the forwarding device may be configured on the control plane, and the maximum allowed scheduling amount of the message may be set.

[0054] For example, Figure 4 is a schematic diagram of the scheduling mode and the maximum allowed scheduling amount of messages according to an embodiment of the present invention, such as Figure 4As shown, the controller can be used to configure the device through the southbound interface to turn on / off the scheduling mode. The interface channel protocol may include but is not limited to the Network Configuration Protocol (Netconf), the Border Gateway Protocol (Border Gateway Protocol, BGP), etc.; the device can also be configured at a single point through the Command Line Interface (CLI) command front end.

[0055] It should be noted that the southbound interface can be an interface for managing network management or equipment of other manufacturers, that is, an interface provided downward. The controller controls the network mainly through the southbound interface protocol, including link discovery, topology management, policy formulation, table entry delivery, etc. The embodiment of the present invention does not impose any restrictions on the southbound interface.

[0056] In addition, whether the device starts the scheduling mode can be negotiated between forwarding devices, and the present invention does not limit this.

[0057] As an example, when the squeeze scheduling mode is turned on, the remaining messages in the currently scheduled cache queue after the associated time slot scheduling ends are squeezed into the next time slot for scheduling, and the number of the currently scheduled cache queue is carried in the remaining messages.

[0058] In an exemplary embodiment, when the messages in the currently scheduled cache queue exceed the scheduling amount of the associated time slot, the messages remaining in the currently scheduled cache queue after the associated time slot scheduling is completed are squeezed into the next time slot for scheduling, further comprising:

[0059] When the messages in the currently scheduled cache queue exceed the scheduling amount of the associated time slot but do not exceed twice the scheduling amount of the associated time slot, the messages remaining in the currently scheduled cache queue after the scheduling of the associated time slot ends are squeezed into the next time slot for scheduling.

[0060] For example, refer to Figure 3 , assuming that the amount of messages cached in queue 0 is n*bit, the time slot scheduling amount associated with queue 0 is m*bit, and the 2 times time slot scheduling amount is 2m*bit. When m<n≤2m, that is, the messages cached in queue 0 exceed the scheduling amount of the associated time slot, and do not exceed the twice scheduling amount of the associated time slot, then the messages m*bit in the cache queue that do not exceed the preset message threshold can be scheduled in time slot 0, and the messages (nm)*bit in the cache queue that exceed the scheduling amount of the associated time slot can be squeezed into the next time slot 1 for transmission.

[0061] In an exemplary embodiment, the message scheduling configuration information further includes a maximum allowed scheduling amount of messages, and when the messages in the currently scheduled cache queue exceed the scheduling amount of the associated time slot, the messages remaining in the currently scheduled cache queue after the associated time slot scheduling is completed are squeezed into the next time slot for scheduling, and further includes:

[0062] When the messages in the currently scheduled cache queue exceed twice the scheduling amount of the associated time slot and do not exceed the maximum allowed squeezing amount of the messages, the messages remaining in the currently scheduled cache queue after the next time slot scheduling ends are squeezed into the next time slot scheduling.

[0063] As an example, the method for scheduling messages in the embodiment of the present application does not allow squeeze scheduling to be performed without limit. For example, when the messages cached in the queue exceed T*Cap*N, the scheduled time slot will definitely span two physical cycles, which will inevitably introduce additional jitter. Therefore, the scheduling mechanism for messages in the embodiment of the present application does not allow the queue cache amount to exceed T*Cap*N at any time, that is, it is not allowed to exceed the maximum allowed scheduling amount of the message.

[0064] As an example, when the messages cached in the queue exceed the twice scheduling amount of the associated time slot, 2m*bit, the messages that exceed the twice scheduling amount of the associated time slot can be squeezed into the next time slot of the next time slot associated with the cache queue for scheduling. For example, the current queue 0 cached messages are n*bit, the time slot scheduling amount associated with queue 0 is m*bit, n>2m, that is, the current queue 0 cached message amount is greater than the twice scheduling amount of the associated time slot, 2m*bit, then after the m*bit messages cached in queue 0 are scheduled at the end of time slot 0, the remaining m*bit messages can be squeezed into time slot 1 for scheduling, and after the scheduling of time slot 1 is completed, the remaining (n-2m)*bit messages can be squeezed into time slot 2 for scheduling.

[0065] Figure 5 Schematic diagram (II) of scheduling a message squeeze time slot according to an embodiment of the present invention, such as Figure 5As shown, the amount of bits that can be sent in each time slot is T*Cap=m*bit. When the number of messages cached in queue 0 is n*bit and n>2*m, the first m*bit message in queue 0 can be scheduled in time slot 0, the second m*bit message can be squeezed into time slot 1 for scheduling, and the (n-2m)*bit message can be squeezed into time slot 2 for scheduling. That is, the message cached in queue 0 will be squeezed into time slot 2 for sending. When the message cached in queue 0 is emptied, according to the current message scheduling mechanism, time slot 2 will continue to schedule the message b*bit in the corresponding cache queue 2. At this time, the a*bit message cached in queue 1 is skipped and does not get the scheduling opportunity, resulting in the message cached in queue 1 being squeezed into the next round of physical period scheduling cycle, thereby introducing jitter.

[0066] To solve the above problem, the embodiment of the present application modifies the existing scheduling process. When there is remaining time in the current time slot and the previous sending queue is empty, it is not the message in the queue associated with the scheduling time slot, but the message in the next queue of the empty queue.

[0067] In an exemplary embodiment, after the remaining messages in the currently scheduled cache queue after the associated time slot scheduling is completed are squeezed into the next time slot for scheduling, and the number of the currently scheduled cache queue is carried in the remaining message, the following steps may also be included:

[0068] Step S1, determining whether the difference between the message carrying the number of the currently scheduled cache queue and the current time slot number is greater than 1;

[0069] Step S2, when the difference between the message carrying the number of the currently scheduled cache queue and the number of the current time slot is not greater than 1, scheduling the message in the cache queue associated with the current time slot;

[0070] Step S3: When the difference between the message carrying the number of the currently scheduled cache queue and the current time slot number is greater than 1, schedule the message in the next non-empty queue of the currently scheduled cache queue.

[0071] For example, Figure 6 Schematic diagram (III) of message scheduling for squeezing time slots according to an embodiment of the present invention, such as Figure 6 As shown in the figure, the message cached in queue 0 is sent when it is squeezed into time slot 2. There is remaining time in time slot 2, so the next message a*bit cached in queue 1 can be scheduled. At this time, the scheduling amount of time slot 2 is (3m-na)*bit, so the message in queue 2 can be scheduled, and the message (3m-na)*bit in queue 2 is scheduled to time slot 2 for continued transmission, and the remaining message (a+b+n-3m)*bit in queue 2 is scheduled to the next time slot 3 of time slot 2 for continued transmission.

[0072] In an embodiment of the present application, a switch for the squeeze scheduling mode can be set. When the squeeze scheduling mode is turned on, when the message in the cache queue is emptied, the message in the next non-empty queue of the cache queue can be scheduled; when the squeeze scheduling mode is turned off, when the message in the cache queue is emptied, the message in the queue associated with the current time slot can be scheduled.

[0073] As an example, see Figure 5 , the cached messages in queue 0 are squeezed into time slot 2 for scheduling. After the messages in queue 0 are emptied, there is remaining time in time slot 2. At this time, it can be determined that the difference between the number of time slot 2 and the number of queue 0 is 2, which is greater than 1. Then the message in queue 1, the next queue of queue 0, can be scheduled.

[0074] As an example, if the difference between the message carrying the number of the currently scheduled cache queue and the number of the current time slot is not greater than 1, the message in the cache queue associated with the current time slot can be scheduled.

[0075] In an exemplary embodiment, when the number of packets in the currently scheduled buffer queue exceeds the maximum allowed scheduling amount of packets, the packets in the currently scheduled buffer queue that exceed the maximum allowed scheduling amount of packets are discarded.

[0076] As an example, the maximum allowed scheduling amount of messages in the scheduling mechanism of messages of the forwarding device can be configured in advance through the control panel. The queue buffer amount of the message scheduling mechanism of the embodiment of the present application is not allowed to exceed T*Cap*N at any time, that is, it is not allowed to exceed the maximum allowed scheduling amount of messages.

[0077] As an example, when the packets in the currently scheduled buffer queue exceed the maximum allowed scheduling amount of packets, the packets in the currently scheduled buffer queue that exceed the maximum allowed scheduling amount of packets may be discarded, thereby avoiding the introduction of additional jitter.

[0078] Figure 7 is a schematic diagram of a processing flow of a forwarding device according to an embodiment of the present invention. Figure 7 As shown, the specific steps include:

[0079] 1) Obtain the message scheduling configuration information set by the controller / CLI, which includes squeeze scheduling mode parameters and the maximum allowed scheduling amount of messages;

[0080] When the squeeze scheduling mode in the message squeeze configuration information is turned on, the forwarding device can squeeze the messages remaining in the currently scheduled cache queue after the associated time slot scheduling is completed into the next time slot for scheduling.

[0081] 2) When the squeeze scheduling mode is turned on, determine whether the current time slot number minus the number of the sending queue is greater than 1. If not, go to 3), otherwise go to 4);

[0082] 3) Schedule the message in the queue corresponding to the current time slot, and go to 5);

[0083] 4) Schedule the next queue of the sending queue;

[0084] 5) Check the number of messages cached in the queue corresponding to the current time slot to determine whether it exceeds the maximum allowed scheduling amount of messages. If so, go to 6), otherwise go to 7);

[0085] 6) discard the messages in the queue that exceed the maximum allowed scheduling amount of messages;

[0086] 7) Schedule the messages in the queue according to the squeeze scheduling mode until the messages in the current sending queue are emptied, and then go to 2).

[0087] In order to facilitate those skilled in the art to understand the present application, the present application is further described below through some examples.

[0088] Example 1

[0089] Figure 8 Schematic diagram (iv) of message scheduling for squeezing time slots according to an embodiment of the present invention, such as Figure 8 As shown in the figure, assuming that the message scheduling mechanism consists of 4 queues, the time slot length T = 10us, and the port rate is 10Gbps, then the bit capacity that can be carried in each T is 100000bit. The control plane sends configuration information to each node of the forwarding plane, including parameters such as: enable squeeze scheduling mode, and the maximum allowed scheduling capacity of the message is 300000bit.

[0090] Fig. 9 is a schematic diagram of a southbound message format according to an embodiment of the present invention, Fig.10 is a schematic diagram of another southbound message format according to an embodiment of the present invention, such as Fig. 9 , 10 As shown, it is assumed that the control plane is extended based on the Path Computation Element Protocol (PCEP) through the southbound parameter delivery interface. In the PCEP protocol message, the Object-class field and the Object Type (OT) field can be flexibly defined to specify the message type. The Object-class value range is 1 to 255, and the OT value range is 1 to 15. Fig.10 The values ​​of the Object-class and OT fields in PCEP messages are defined in

[0091] Assume that the packets buffered in queues are as follows: queue 0 is 230000 bits, queue 1 is 0 bits, queue 2 is 50000 bits, and queue 3 is 60000 bits.

[0092] The message volume of queue 0 is 230000 bits < 300000 bits, and the messages in queue 0 are allowed to be emptied. When the message scheduling of queue 0 is completed, the message is squeezed into time slot 2, and scheduling can continue from the next non-empty queue, such as Figure 8 As shown in the figure, the message from queue 0 is squeezed into time slot 2. At this time, there are 80,000 bits of resources left in time slot 2. Since queue 1 is empty, scheduling can continue from queue 2, thereby ensuring the certainty of message sending.

[0093] Example 2

[0094] Fig.11 Schematic diagram (V) of message scheduling for squeezing time slots according to an embodiment of the present invention, such as Fig.11 As shown in the figure, assuming that the message scheduling mechanism consists of 4 queues, the time slot length T = 10us, and the port rate is 10Gbps, then the bit capacity that can be carried in each T is 100000bit. The control plane sends configuration information to each node on the forwarding plane, including parameters: enable the squeeze scheduling mode, and the maximum allowed scheduling capacity of the message is 300000bit.

[0095] Fig.12 is a schematic diagram of scheduling mode configuration parameters of the control plane according to an embodiment of the present invention, such as Fig.12 As shown, it is assumed that the control plane sends squeeze scheduling mode parameters through Netconf.

[0096] Assume that the packets buffered in the queues are as follows: queue 0 is 230000 bits, queue 1 is 50000 bits, queue 2 is 50000 bits, and queue 3 is 60000 bits.

[0097] The message volume of queue 0 is 230000 bits < 300000 bits, and the messages in queue 0 are allowed to be emptied. When the messages in queue 0 are emptied, the messages are squeezed into time slot 2. According to the message scheduling mechanism of this application, the scheduling can be started from the next queue 1 after the empty queue 0, such as Fig.11 As shown in the figure, the messages in queue 0 are squeezed into time slot 2. At this time, there are 80,000 bits of resources left in time slot 2. You can choose to start scheduling from queue 1, and then continue to schedule queue 2 to cache messages. Similarly, the messages in queue 2 will be squeezed into time slot 3 for continued transmission, thereby ensuring the sequential transmission and determinism of the messages.

[0098] The message scheduling method of this example can improve bandwidth utilization while ensuring 2T jitter. It is independent of the precise arrangement of the control plane and can be used in products.

[0099] Through the description of the above implementation methods, those skilled in the art can clearly understand that the method according to the above embodiment can be implemented by means of software plus a necessary general hardware platform, and of course can also be implemented by hardware, but in many cases the former is a better implementation method. Based on such an understanding, the technical solution of the present invention, or the part that contributes to the prior art, can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, a magnetic disk, or an optical disk), and includes a number of instructions for enabling a terminal device (which can be a mobile phone, a computer, a server, or a network device, etc.) to execute the methods described in each embodiment of the present invention.

[0100] In this embodiment, a forwarding device is also provided, which is used to implement the above-mentioned embodiments and preferred implementation modes, and the descriptions that have been made will not be repeated. As used below, the term "module" can implement a combination of software and / or hardware of a predetermined function. Although the devices described in the following embodiments are preferably implemented in software, the implementation of hardware, or a combination of software and hardware, is also possible and conceivable.

[0101] Fig.13 is a structural block diagram of a forwarding device according to an embodiment of the present invention. Fig.13 As shown, the forwarding device includes a plurality of cache queues, each of which is associated with a scheduled time slot, and the device includes:

[0102] A first scheduling module 1301, configured to schedule messages in an associated cache queue in a time slot round-robin manner;

[0103] The second scheduling module 1302 is used to squeeze the remaining messages in the currently scheduled cache queue after the associated time slot scheduling ends to the next time slot for scheduling when the messages in the currently scheduled cache queue exceed the scheduling amount of the associated time slot, and carry the number of the currently scheduled cache queue in the remaining messages.

[0104] In an exemplary embodiment, it also includes:

[0105] A judging module, used to judge whether the difference between the message carrying the number of the currently scheduled cache queue and the current time slot number is greater than 1;

[0106] A third scheduling module, configured to schedule the message in the cache queue associated with the current time slot when the difference between the message carrying the number of the currently scheduled cache queue and the current time slot number is not greater than 1;

[0107] The fourth scheduling module is used to schedule the message in the next non-empty queue of the currently scheduled cache queue when the difference between the message carrying the number of the currently scheduled cache queue and the current time slot number is greater than 1.

[0108] In an exemplary embodiment, the second scheduling module 1302 includes:

[0109] An acquisition submodule, configured to acquire, when the number of messages in the currently scheduled cache queue exceeds the scheduling amount of the associated time slot, message scheduling configuration information set by the control plane, wherein the message scheduling configuration information includes a squeeze scheduling mode parameter;

[0110] The first scheduling submodule is used to squeeze the remaining messages in the currently scheduled cache queue after the associated time slot scheduling ends to the next time slot for scheduling when the squeeze scheduling mode parameter is turned on, and carry the number of the currently scheduled cache queue in the remaining messages.

[0111] In an exemplary embodiment, the second scheduling module 1302 further includes:

[0112] The second scheduling submodule is used to squeeze the remaining messages in the currently scheduled cache queue after the associated time slot scheduling ends into the next time slot for scheduling when the messages in the currently scheduled cache queue exceed the scheduling amount of the associated time slot and do not exceed twice the scheduling amount of the associated time slot.

[0113] In an exemplary embodiment, the message scheduling configuration information further includes a maximum allowed scheduling amount of messages, and the second scheduling module 1302 further includes:

[0114] The third scheduling submodule is used to squeeze the remaining messages in the currently scheduled cache queue after the next time slot scheduling ends to the next time slot scheduling when the messages in the currently scheduled cache queue exceed twice the scheduling amount of the associated time slot and do not exceed the maximum allowed squeezing amount of the messages.

[0115] In an exemplary embodiment, it is characterized by further comprising:

[0116] The discarding module is used to discard the messages in the buffer queue currently scheduled when the messages in the buffer queue currently scheduled exceed the maximum allowed scheduling amount of the messages.

[0117] It should be noted that the above modules can be implemented by software or hardware. For the latter, it can be implemented in the following ways, but not limited to: the above modules are all located in the same processor; or the above modules are located in different processors in any combination.

[0118] An embodiment of the present invention further provides a computer-readable storage medium, in which a computer program is stored, wherein the computer program is configured to execute the steps of any of the above method embodiments when running.

[0119] In an exemplary embodiment, the computer-readable storage medium may include, but is not limited to, various media that can store computer programs, such as a USB flash drive, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk or an optical disk.

[0120] An embodiment of the present invention further provides an electronic device, including a memory and a processor, wherein a computer program is stored in the memory, and the processor is configured to run the computer program to execute the steps in any one of the above method embodiments.

[0121] In an exemplary embodiment, the electronic device may further include a transmission device and an input / output device, wherein the transmission device is connected to the processor, and the input / output device is connected to the processor.

[0122] For specific examples in this embodiment, reference may be made to the examples described in the above embodiments and exemplary implementation modes, and this embodiment will not be described in detail herein.

[0123] Obviously, those skilled in the art should understand that the above modules or steps of the present invention can be implemented by a general computing device, they can be concentrated on a single computing device, or distributed on a network composed of multiple computing devices, they can be implemented by a program code executable by a computing device, so that they can be stored in a storage device and executed by the computing device, and in some cases, the steps shown or described can be executed in a different order than here, or they can be made into individual integrated circuit modules, or multiple modules or steps therein can be made into a single integrated circuit module for implementation. Thus, the present invention is not limited to any specific combination of hardware and software.

[0124] The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. For those skilled in the art, the present invention may have various modifications and variations. Any modification, equivalent replacement, improvement, etc. made within the principle of the present invention shall be included in the protection scope of the present invention.

Claims

1. A method for scheduling messages, characterized in that: Applied to a forwarding device, the forwarding device includes a plurality of cache queues, each of the cache queues is associated with a scheduled time slot, and the method includes: Scheduling the messages in the associated cache queue in a time slot round-robin manner; When the messages in the currently scheduled cache queue exceed the scheduling amount of the associated time slot, the messages remaining in the currently scheduled cache queue after the scheduling of the associated time slot is completed are squeezed into the next time slot for scheduling, and the number of the currently scheduled cache queue is carried in the remaining messages.

2. The method according to claim 1, characterized in that After the remaining messages in the currently scheduled cache queue after the associated time slot scheduling is completed are squeezed into the next time slot for scheduling, and the number of the currently scheduled cache queue is carried in the remaining messages, the method further includes: Determine whether the difference between the message carrying the number of the currently scheduled cache queue and the current time slot number is greater than 1; When the difference between the message carrying the number of the currently scheduled cache queue and the number of the current time slot is not greater than 1, scheduling the message in the cache queue associated with the current time slot; When the difference between the message carrying the number of the currently scheduled buffer queue and the current time slot number is greater than 1, the message in the next non-empty queue of the currently scheduled buffer queue is scheduled.

3. The method according to claim 1, characterized in that When the messages in the currently scheduled cache queue exceed the scheduling amount of the associated time slot, the remaining messages in the currently scheduled cache queue after the associated time slot ends are squeezed into the next time slot for transmission, and the number of the currently scheduled cache queue is carried in the remaining messages, including: When the number of messages in the currently scheduled cache queue exceeds the scheduling amount of the associated time slot, obtaining message scheduling configuration information set by the control plane, wherein the message scheduling configuration information includes a squeeze scheduling mode parameter; When the squeeze scheduling mode parameter is turned on, the remaining messages in the currently scheduled cache queue after the associated time slot scheduling is completed are squeezed into the next time slot for scheduling, and the number of the currently scheduled cache queue is carried in the remaining messages.

4. The method according to claim 3, characterized in that In the case where the messages in the currently scheduled cache queue exceed the scheduling amount of the associated time slot, the messages remaining in the currently scheduled cache queue after the scheduling of the associated time slot is completed are squeezed into the next time slot for scheduling, and further comprising: When the messages in the currently scheduled cache queue exceed the scheduling amount of the associated time slot but do not exceed twice the scheduling amount of the associated time slot, the messages remaining in the currently scheduled cache queue after the scheduling of the associated time slot ends are squeezed into the next time slot for scheduling.

5. The method according to claim 4, characterized in that The message scheduling configuration information also includes a maximum allowed scheduling amount of messages, and when the messages in the currently scheduled cache queue exceed the scheduling amount of the associated time slot, the messages remaining in the currently scheduled cache queue after the scheduling of the associated time slot ends are squeezed into the next time slot for scheduling, and also includes: When the messages in the currently scheduled cache queue exceed twice the scheduling amount of the associated time slot and do not exceed the maximum allowed squeezing amount of the messages, the messages remaining in the currently scheduled cache queue after the next time slot scheduling ends are squeezed into the next time slot scheduling.

6. The method according to claim 5, characterized in that Also includes: In the case that the number of messages in the currently scheduled buffer queue exceeds the maximum allowed scheduling amount of messages, the number of messages in the currently scheduled buffer queue exceeding the maximum allowed scheduling amount of messages is discarded.

7. A forwarding device, characterized in that: The forwarding device includes a plurality of cache queues, each of which is associated with a scheduled time slot, and the device includes: A first scheduling module, used for scheduling the messages in the associated cache queue in a time slot round-robin manner; The second scheduling module is used to squeeze the remaining messages in the currently scheduled cache queue after the associated time slot scheduling ends into the next time slot for scheduling when the messages in the currently scheduled cache queue exceed the scheduling amount of the associated time slot, and carry the number of the currently scheduled cache queue in the remaining messages.

8. The device according to claim 7, characterized in that Also includes: A judging module, used to judge whether the difference between the message carrying the number of the currently scheduled cache queue and the current time slot number is greater than 1; A third scheduling module, configured to schedule the message in the cache queue associated with the current time slot when the difference between the message carrying the number of the currently scheduled cache queue and the current time slot number is not greater than 1; The fourth scheduling module is used to schedule the message in the next non-empty queue of the currently scheduled cache queue when the difference between the message carrying the number of the currently scheduled cache queue and the current time slot number is greater than 1.

9. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, wherein the computer program implements the steps of the method described in any one of claims 1 to 6 when executed by a processor.

10. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the steps of the method described in any one of claims 1 to 6 are implemented.

Citation Information

Cited By

  • Message scheduling method and forwarding device

    EP4794294A1