WO2023123102A1 - 一种调度周期调整方法及网络设备 - Google Patents

一种调度周期调整方法及网络设备 Download PDF

Info

Publication number
WO2023123102A1
WO2023123102A1 PCT/CN2021/142635 CN2021142635W WO2023123102A1 WO 2023123102 A1 WO2023123102 A1 WO 2023123102A1 CN 2021142635 W CN2021142635 W CN 2021142635W WO 2023123102 A1 WO2023123102 A1 WO 2023123102A1
Authority
WO
WIPO (PCT)
Prior art keywords
scheduling
scheduling period
duration
network device
target
Prior art date
Application number
PCT/CN2021/142635
Other languages
English (en)
French (fr)
Inventor
郭道荣
Original Assignee
新华三技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 新华三技术有限公司 filed Critical 新华三技术有限公司
Priority to CN202180004325.5A priority Critical patent/CN116686353A/zh
Priority to PCT/CN2021/142635 priority patent/WO2023123102A1/zh
Priority to JP2023574667A priority patent/JP2024521222A/ja
Priority to EP21969470.0A priority patent/EP4340495A1/en
Publication of WO2023123102A1 publication Critical patent/WO2023123102A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/087Jitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations

Definitions

  • the present application relates to the technical field of communications, and in particular to a scheduling cycle adjustment method and network equipment.
  • DetNet Deterministic Network, deterministic network
  • TSN Time Sensitive Networking, time-sensitive network
  • CQF Cyclic Queuing and Forwarding, periodic queuing and forwarding
  • a service flow with deterministic service functions (such as delay, packet loss rate, etc.) transmitted in a deterministic network is called a deterministic flow.
  • the best-effort forwarding mode may be used. Therefore, other service flows different from the deterministic flow are called best-effort flows.
  • the present application provides a scheduling cycle adjustment method, which is applied to the first network device, including: after receiving the message sent by the second network device, determining the sending scheduling cycle of the message on the second network device, and determining The receiving scheduling period of the message on the first network device; determining the target scheduling period corresponding to the sending scheduling period on the first network device; wherein, the period corresponding to the message and the target scheduling period Queue CQ corresponds; if it is determined based on the number of interval periods between the receiving scheduling period and the target scheduling period that the initial duration of the scheduling period needs to be adjusted, then the actual duration of the scheduling period on the first network device Adjust from the initial duration to the target duration.
  • the present application provides a network device, including: a processor and a machine-readable storage medium, where the machine-readable storage medium stores machine-executable instructions that can be executed by the processor; Instructions to implement the scheduling period adjustment method disclosed in the above-mentioned embodiments of the present application.
  • message transmission of the deterministic network is realized based on CSQF (Cycle Specified Queuing and Forwarding, specified period queuing and forwarding), by adjusting the actual duration of the scheduling period of the deterministic network (that is, from the initial The duration is adjusted to the target duration), so as to dynamically control the scheduling cycle of the deterministic network, which can make CSQF not rely on strict frequency synchronization, and can adapt to the change of link transmission delay, thus greatly enhancing the adaptability of CSQF in the wide area network.
  • CSQF Car Specified Queuing and Forwarding, specified period queuing and forwarding
  • Fig. 1 is a schematic diagram of the working principle of CSQF in an embodiment of the present application
  • Fig. 2 is the comparative schematic diagram of CSQF and CQF in one embodiment of the present application
  • 3A-3C are schematic diagrams of the mapping relationship of the scheduling period in an embodiment of the present application.
  • FIG. 4 is a schematic flow diagram of a scheduling period adjustment method in an embodiment of the present application.
  • FIG. 5A and FIG. 5B are schematic diagrams of the division of the CSQF scheduling period in an embodiment of the present application.
  • 6A-6C are schematic diagrams of a scheduling period in an implementation manner of the present application.
  • FIGS. 7A-7F are schematic diagrams of the structure and processing flow of a network device in an implementation manner of the present application.
  • TSN is a deterministic network based on a local area network.
  • CQF is used to ensure deterministic transmission at the forwarding level, thereby providing deterministic service functions for bearer services.
  • CQF is just an example of providing deterministic services, and other methods can also be used to ensure deterministic transmission at the forwarding level, which is not limited.
  • CQF is a technology close to CSQF, and this embodiment takes CQF as an example.
  • the basic working principle of CQF is: the outbound interface of each network device is associated with two queues, and the time domain is divided into two cycles, and the two queues send and receive alternately in these two cycles.
  • these two queues are recorded as queue Q1 and queue Q2, and these two cycles are recorded as T0 cycle and T1 cycle.
  • T0 cycle the queue Q1 sends and the queue Q2 receives (the receiving of the queue Q1 is turned off, The reception of queue Q2 is on, the transmission of queue Q1 is on, and the transmission of queue Q2 is off).
  • T1 period queue Q1 receives and queue Q2 transmits.
  • queue Q1 and queue Q2 can be alternately performed according to the odd-even cycle.
  • the CQF requires each hop to transmit a cycle, the message is received in a certain cycle of a network device, sent out in the next cycle, and the next network device receives the message in the next cycle, and so on.
  • the transmission delay (end-to-end transmission delay) of the message on the path is definite
  • the minimum value of the transmission delay is (H-1)*T.
  • the maximum value of the delay is (H+1)*T
  • H is the number of hops, indicating the total number of network devices passing through the path.
  • CQF is a technology based on LAN, it cannot be realized in WAN.
  • CSQF Car Specified Queuing and Forwarding, specified cycle queuing and forwarding
  • CSQF combines SR (Segment Routing, segment routing) ) application or SRv6 application to realize deterministic transmission of wide area network.
  • the SR may be an SR based on MPLS (Multi-Protocol Label Switching, Multi-Protocol Label Switching), and the SRv6 may be an SRv6 based on IPV6.
  • the controller 10 is used to collect information of each network device, such as transmission capability, interface, number of cycles, maximum jitter within a node, and the like. For the deterministic transmission requirements between the sender and the receiver, after calculation, the controller 10 finds that there are enough transmission resources, then allocates the transmission path, and sends the information of the transmission path to the edge node, as shown in Fig. 1 As shown, the transmission path between the sender and the receiver may be: network device 11-network device 12-network device 13-network device 14, and the edge node (ie the first network device) of the transmission path is network device 11.
  • the information of each network device in the transmission path is added to the message, such as the node identifier of the network device in the path (such as the SID (Segment identifier, SID) of SRv6 Locator (position) in the segment identifier), the sending interface of the network device, and the cycle that needs to be sent in the network device.
  • the network device can retrieve the corresponding interface and cycle information, and then store the message in a queue corresponding to the cycle.
  • the messages in each queue can be sent according to a certain cycle, that is, each queue corresponds to a cycle, and the messages in the queue can be sent within this cycle. Since the cycle of the network device is fixed mode, therefore, in the network device 11, the specified period for each message of the sender is constant, and the period for forwarding the message from the sender to the receiver is determined in each network device, so the period of the message The entire delay is also deterministic, enabling deterministic transmission.
  • CSQF requires at least 3 queues (such as 3, 6, 8, 9, 10, 12, 15 queues, etc.) , only one queue is in the sending state in each cycle, while the other queues are in the receiving state.
  • CQF the cycle cycle of each network device is required to be strictly synchronized, including the need for phase synchronization.
  • CSQF only the frequency synchronization of the cycle cycle is required, and phase synchronization is not required.
  • the transmission delay of a certain hop cannot be completed within one cycle.
  • FIG. 2 it is a schematic diagram of the comparison between CSQF and CQF.
  • the network device 11 sends the message in cycle 1
  • the network device 12 receives the message in cycle 1.
  • the network device 12 sends the message in cycle 2
  • network device 13 receives the message in cycle 2
  • network device 13 sends the message in cycle 3
  • network device 14 receives the message in cycle 3
  • network device 14 sends the message in cycle 4 message.
  • network device 11 sends the message in cycle 1
  • network device 12 receives the message in cycle 1 or cycle 2
  • the network The device 12 sends the message in cycle 3
  • the network device 13 receives the message in cycle 3
  • the network device 13 sends the message in cycle 4
  • the network device 14 receives the message in cycle 4 or cycle 5
  • the network device 14 Send the message in cycle 6.
  • each network device divides the time slice with a fixed length as the cycle, and performs unified traffic scheduling on the deterministic service flow, so that it can be determined within a certain time slice forwarded within.
  • the sending time is limited to a specific time slice, so that the delay and jitter of the message on this network device are determined. No matter how many network devices are added, the jitter of the previous network device will not change. It will increase the jitter delay of the next network device.
  • the total packet forwarding delay will also increase. When the distance traveled by the packet increases, the total packet forwarding delay may also increase.
  • the message is only received and sent within a certain time slice, that is, the jitter range of the message on the last network device is limited to a certain time slice.
  • CSQF can realize the deterministic transmission of the WAN and provide deterministic service functions for bearer services, however, there is no reasonable solution in related technologies on how each network device should implement CSQF.
  • FIG. 3A it is a schematic diagram of accumulative errors generated by frequency asynchronization. Assume that there is an independent clock source between network device 1 and network device 2, and there is no SyncE (Synchronous Ethernet) mechanism and PTP (Precision Time Synchronization Protocol) between network device 1 and network device 2 Hardware support, that is, clock synchronization cannot be performed between network device 1 and network device 2.
  • SyncE Synchronous Ethernet
  • PTP Precision Time Synchronization Protocol
  • the length of broadband copper wires can also vary by as much as 20% in the midday and evening temperatures when the link is subject to thermal expansion (also known as dangling wire sag), resulting in
  • the transmission delay between network devices changes, and this change may also cause a change in the mapping relationship of the scheduling period, which eventually shows a delay jump, resulting in relatively large jitter.
  • the scheduling period a0 of network device 1 has a mapping relationship with the scheduling period b3 of network device 2, that is, the network device 1 sends in the scheduling period a0 message
  • the network device 2 may store the message in a CQ (Cyclic Queuing, cyclic queue) corresponding to the scheduling cycle b3.
  • CQ Cyclic Queuing, cyclic queue
  • the frequency of the scheduling cycle between network device 1 and network device 2 is not synchronized and accumulates continuously, after a period of time, as shown in Figure 3C, when the message sent by network device 1 in scheduling cycle a0 reaches network device 2 , the network device 2 is currently being scheduled for the scheduling period b4, then the packet cannot be stored in the CQ corresponding to the scheduling period b3, that is, the above mapping relationship is unreasonable, and the mapping relationship between the scheduling period a0 and the scheduling period b3 is invalid.
  • the accumulation of errors may cause the scheduling cycle between network device 1 and network device 2 to fail to correspond, resulting in large jitter or even congestion and packet loss, which makes the realization of CSQF fail to achieve the theoretical effect, and even makes CSQF unavailable.
  • the CSQF queue can include SQ (Sending Queue, sending queue), RQ (Receiving Queue, receiving queue) and TQ (Tolerating Queue, tolerance queue), SQ is the queue being sent in CSQF, RQ It is the receiving queue in CSQF. Due to jitter and other reasons, when the received packets cannot enter the RQ normally, such packets enter the TQ.
  • SQ, RQ, and TQ may be referred to as CQ, that is, the scheduling period corresponds to CQ.
  • the scheduling period may also be called a scheduling time slot.
  • each of the above scheduling periods may be a scheduling time slot, which is not limited.
  • this embodiment uses the scheduling period as an example for illustration.
  • the embodiment of this application proposes a method based on CSQF to realize wide-area deterministic network, which can avoid the invalid mapping relationship between scheduling cycles, and enable CSQF not to rely on strict frequency synchronization, and can adapt to The delay of link transmission changes, which greatly enhances the adaptability of CSQF in the wide area network, and can also provide deterministic transmission capabilities by implementing CSQF.
  • a scheduling cycle adjustment method is proposed, which can be applied to a system using CSQF to implement a deterministic network, and the system can include multiple network devices (network devices can also be called network nodes or forwarding nodes), Two adjacent network devices are referred to as a first network device and a second network device, and the second network device sends a message to the first network device.
  • FIG. 4 it is a schematic flowchart of a method for adjusting a scheduling period, which can be applied to a first network device, and the method includes:
  • Step 401 After receiving the message sent by the second network device, determine the sending scheduling period of the message on the second network device, and determine the receiving scheduling period of the message on the first network device.
  • the sending scheduling period of the message on the second network device it means that the message is sent by the second network device within the sending scheduling period, for example, the second network device sends the message in a certain scheduling period
  • this scheduling cycle can be referred to as a sending scheduling cycle.
  • the receiving scheduling period of the message on the first network device it means that the message is received by the first network device within the receiving scheduling period.
  • the first network device receives the message sent by the second network device in a certain scheduling period.
  • this scheduling period can be called the receiving scheduling period.
  • the second network device sends the packet in a specified scheduling period, and the first network device determines that the packet sending scheduling period on the second network device is the specified scheduling period.
  • the second network device is fixed to send packets in the scheduling period a0 (sends packets only in the scheduling period a0), and the designated scheduling period of the second network device is the scheduling period a0.
  • the first network device determines the The transmission scheduling period is the scheduling period a0.
  • the second network device may add period information (such as a period identifier) of the sending scheduling period to the message, and the first network device determines that the sending scheduling period of the message on the second network device is the period The scheduling period corresponding to the information.
  • the period information of the scheduling period a0 may be added to the message.
  • the first network device determines that the sending scheduling period is the scheduling period corresponding to the period information. Period a0.
  • the first network device determines the scheduling cycle being executed on the first network device, and this scheduling cycle is also the receiving scheduling cycle of the message on the first network device . For example, when the first network device receives the packet, assuming that the scheduling period b2 is being executed on the first network device, it may determine that the receiving scheduling period is the scheduling period b2.
  • Step 402 Determine the target scheduling period corresponding to the sending scheduling period on the first network device; wherein, the message corresponds to the CQ corresponding to the target scheduling period, such as being stored in the CQ corresponding to the target scheduling period.
  • the mapping relationship between the scheduling period of the second network device and the scheduling period of the first network device may be pre-configured.
  • the scheduling period a0 of the second network device has a mapping relationship with the scheduling period b3 of the first network device, indicating that 2.
  • the first network device determines the sending scheduling period of the message on the second network device, it can determine the target scheduling period corresponding to the sending scheduling period. For example, if the sending scheduling period is the scheduling period a0, then the target scheduling period is the scheduling period b3.
  • the first network device may maintain a session information table, and the session information table may include a node identifier (such as a unique identifier of a network device), outbound interface information (such as an outbound interface identifier of the first network device) And the mapping relationship between the associated scheduling period, the associated scheduling period is the associated scheduling period corresponding to the specified scheduling period of the network device corresponding to the node identifier, that is, the message sent for the specified scheduling period, this message should be stored in The CQ corresponding to the associated scheduling period.
  • a node identifier such as a unique identifier of a network device
  • outbound interface information such as an outbound interface identifier of the first network device
  • the first network device can obtain the node identifier of the second network device and the outbound interface information corresponding to the message (indicating that the outbound interface corresponding to the outbound interface information interface to send the message), for example, parse out the node identifier and the outbound interface information from the message.
  • the first network device queries the configured session information table based on the node identifier and the outgoing interface information, and obtains the associated scheduling period corresponding to the specified scheduling period of the second network device. For example, since the session information table includes the node identifier, outgoing interface The mapping relationship between the information and the associated scheduling period, therefore, by querying the session information table, the associated scheduling period can be obtained.
  • the first network device determines a target scheduling period corresponding to the sending scheduling period on the first network device.
  • the number of interval periods between the sending scheduling period and the designated scheduling period may be equal to the number of interval periods between the target scheduling period and the associated scheduling period. For example, if the specified scheduling period of the second network device is the scheduling period a0, and the associated scheduling period of the first network device is the scheduling period b3, then, if the second network device sends a message in the scheduling period a0, that is, the sending scheduling period is Scheduling period a0, the number of interval periods between the sending scheduling period and the specified scheduling period is 0, then the target scheduling period is the scheduling period b3.
  • the target scheduling period is the scheduling period b4.
  • the message may be a test message or a data message belonging to a deterministic flow, if the message is a data message , then the data packet can be stored in the CQ corresponding to the target scheduling period; within the target scheduling period, the data packet in the CQ corresponding to the target scheduling period is sent to the external device.
  • packets can be exchanged between the second network device and the first network device, for example, the second network device can send a data packet belonging to a best-effort flow to the first network device , may also send the data packet belonging to the deterministic flow to the first network device.
  • the data packets belonging to the best-effort flow will not be described in detail in this embodiment.
  • the first network device after receiving the data message, the first network device can store the data message in the CQ corresponding to the target scheduling period; The data packet in the CQ is sent to the external device.
  • the adjustment process of the scheduling period may be triggered based on the data message, that is, the adjustment of the scheduling period may be performed by using the flow chart shown in FIG. 4 .
  • the second network device may send a test message to the first network device, and the first network device triggers the adjustment process of the scheduling cycle based on the test message, that is, the method shown in Figure 4 As shown in the flow chart, the adjustment of the scheduling cycle is performed.
  • the first network device does not need to store the test message in the CQ corresponding to the target scheduling cycle, nor will it send the test message to the external device, and the test message only triggers the scheduling cycle on the first network device adjustment process.
  • Step 403 If it is determined based on the number of interval periods between the receiving scheduling period and the target scheduling period that the initial duration of the scheduling period needs to be adjusted, adjust the actual duration of the scheduling period on the first network device from the initial duration to the target Duration, that is, the actual duration is updated to the target duration.
  • the number of interval periods between the receiving scheduling period and the target scheduling period may be determined, and based on the number of interval periods, it is determined whether the initial duration of the scheduling period needs to be adjusted. If yes, the initial duration can be adjusted to the target duration, that is, the actual duration of the scheduling cycle is updated from the initial duration to the target duration; if not, the initial duration of the scheduling cycle remains unchanged, that is, the actual duration of the scheduling cycle remains the initial duration constant.
  • the receiving scheduling period is located in front of the target scheduling period, and the number of interval periods is greater than the first number threshold, it is determined that the initial duration of the scheduling period needs to be adjusted; if the receiving scheduling period is located in front of the target scheduling period, and If the number of interval periods is not greater than the first number threshold, it is determined that the initial duration of the scheduling period does not need to be adjusted. If the receiving scheduling period is located behind the target scheduling period, and the number of interval periods is greater than the second number threshold, it is determined that the initial duration of the scheduling period needs to be adjusted; if the receiving scheduling period is located behind the target scheduling period, and the number of interval periods is not greater than the second quantity threshold, it is determined that the initial duration of the scheduling period does not need to be adjusted.
  • first quantity threshold and the second quantity threshold may be the same, and the first quantity threshold and the second quantity threshold may also be different.
  • the first quantity threshold may be 0, 1, 2, etc., and there is no limitation on the first quantity threshold.
  • the second quantity threshold may be 0, 1, 2, etc., and there is no limitation on the second quantity threshold.
  • the first number threshold is 1 and the second number threshold is 1.
  • the initial duration is adjusted to the target duration
  • the receiving scheduling period is ahead of the target scheduling period
  • the initial duration is reduced and adjusted based on the configured duration adjustment amount (which can be configured according to experience), and the adjusted Target duration.
  • the receiving scheduling period is behind the target scheduling period, the initial duration is increased and adjusted based on the duration adjustment amount to obtain the adjusted target duration.
  • the receiving scheduling period is the scheduling period b2 and the target scheduling period is the scheduling period b3, then the interval period number is 1, and the receiving scheduling period is located in front of the target scheduling period, since the interval period number 1 is not greater than the first number threshold 1 , therefore, there is no need to adjust the initial duration of the scheduling period.
  • the receiving scheduling period is the scheduling period b1 and the target scheduling period is the scheduling period b3, then the number of interval periods is 2, and the receiving scheduling period is located in front of the target scheduling period. Since the interval period number 2 is greater than the first number threshold 1, Therefore, the initial duration of the scheduling period needs to be adjusted.
  • the initial duration can be reduced and adjusted based on the duration adjustment amount to obtain the adjusted target duration, that is to say, the target duration can be the initial duration and The difference between this duration adjustment.
  • the receiving scheduling period is scheduling period b4 and the target scheduling period is scheduling period b3, then the number of interval periods is 1, and the receiving scheduling period is located behind the target scheduling period, since the number of interval periods 1 is not greater than the second number threshold 1 , therefore, there is no need to adjust the initial duration of the scheduling period.
  • the receiving scheduling period is the scheduling period b5 and the target scheduling period is the scheduling period b3, then the number of interval periods is 2, and the receiving scheduling period is located behind the target scheduling period, since the number of interval periods 2 is greater than the second number threshold 1, Therefore, the initial duration of the scheduling period needs to be adjusted.
  • the initial duration can be adjusted based on the duration adjustment amount to obtain the adjusted target duration, that is to say, the target duration can be the initial duration and The sum value between the duration adjustments.
  • the actual duration of the scheduling period on the first network device is the initial duration
  • the first network device includes the scheduling period b1, the scheduling period b2, the scheduling period b3, ... in sequence
  • the end time of the scheduling period b1 The interval between the start time of the scheduling cycle b1 and the start time of the scheduling cycle b1 is the initial duration
  • the interval between the end time of the scheduling cycle b2 and the start time of the scheduling cycle b2 is the initial duration, and so on.
  • the interval between the end time of the scheduling period b1 and the start time of the scheduling period b1 is the target duration
  • the end time of the scheduling period b2 is the same as the scheduling period b2
  • the interval between the start moments of is the target duration, and so on.
  • the total adjustment quantity K of the scheduling period may be determined based on the first clock count quantity corresponding to the initial duration, the configured duration adjustment amount, and the number of interval periods, and the actual number of K consecutive scheduling periods on the first network device
  • the duration is updated to the target duration (that is, the initial duration is updated to the target duration).
  • the actual duration of the scheduling cycle on the first network device may also be updated to the initial duration (that is, the target duration is updated to the initial duration).
  • K number of counts of the first clock*number of interval periods/time length adjustment.
  • the above formula is just an example and is not limited thereto.
  • the actual duration of K consecutive scheduling periods can be updated as the target duration.
  • the first network device includes scheduling period b1, scheduling period b2, scheduling period b3, ... in sequence
  • the actual duration of the scheduling period b1 is the initial duration.
  • the duration is adjusted, and the initial duration is adjusted to the target duration.
  • the actual duration of the scheduling cycle b2 is the target duration
  • the actual duration of the scheduling cycle b3 is the target duration, and so on.
  • FIG. 5A it is a schematic diagram of the division of the scheduling cycle of CSQF.
  • SQ is the sending queue, which corresponds to the scheduling cycle b0
  • RQ is the receiving queue, which corresponds to the scheduling cycle b1
  • TQ is a tolerance queue, which corresponds to the scheduling period b2
  • the scheduling period b2 is immediately behind the scheduling period b1.
  • the mapping relationship of the scheduling period may become invalid.
  • the scheduling period a0 of the second network device corresponds to the scheduling period b1 of the first network device
  • the first network device receives within the scheduling period b0
  • the message may be stored in the RQ corresponding to the scheduling period b1.
  • the first network device receives the message within the scheduling period b2
  • it cannot store the message in the RQ corresponding to the scheduling period b1 thus causing the invalidation of the mapping relationship between the scheduling period a0 and the scheduling period b1.
  • the actual duration of the scheduling cycle is adjusted to avoid the failure of the mapping relationship of the scheduling cycle.
  • Figure 5B is a schematic diagram of the division of the CSQF scheduling cycle.
  • 10 queues correspond to 10 scheduling cycles
  • the 10 scheduling cycles of the second network device are called scheduling cycle a0, scheduling cycle a1, scheduling cycle a2, ..., scheduling cycle a9
  • the first The 10 scheduling cycles of a network device are called scheduling cycle b0, scheduling cycle b1, scheduling cycle b2, ..., scheduling cycle b9
  • the number of CSQF queues can be more or less, as long as the number of queues is greater than or equal to 3 .
  • the scheduling period for sending packets on the second network device is the scheduling period a0
  • the target scheduling period corresponding to the scheduling period a0 on the first network device is the scheduling period b3
  • the scheduling period a0 and the scheduling period b3 has a mapping relationship
  • the above mapping relationship is just an example, and there is no limitation on this.
  • the target scheduling period is recorded as Anchor, that is, Anchor is the scheduling period b3.
  • a certain range back and forth as a reasonable jitter interval For example, extend the scheduling cycle of the first threshold value forward, and set the first threshold value as Jitter1.
  • the value of Jitter1 can be 1, and extend the second amount backward.
  • Threshold scheduling period set the second quantity threshold as Jitter2, for example, the value of Jitter2 may be 1, therefore, reasonable jitter intervals are scheduling period b2, scheduling period b3 and scheduling period b4.
  • the first network device After a period of time, if the message sent by the second network device to the first network device reaches the first network device, the first network device is scheduling the scheduling period b2, the scheduling period b3 or the scheduling period b4, it means that the initial duration of the scheduling period does not need to be adjusted. If when the message arrives at the first network device, the first network device is scheduling the scheduling cycle b1, which means that the scheduling cycle of the packet arrival is earlier, and the initial duration of the scheduling cycle needs to be adjusted, such as reducing the scheduling cycle The initial duration enables the scheduling period of packet arrival to be located in scheduling period b2, scheduling period b3 or scheduling period b4.
  • the first network device is scheduling the scheduling cycle b5, the scheduling cycle b6, and the scheduling cycle b7, which means that the scheduling cycle of the packet arrival is relatively late, and the initial duration of the scheduling cycle needs to be adjusted. Make adjustments, such as increasing the initial duration of the scheduling period, so that the scheduling period of the packet arrival can be located in the scheduling period b2, the scheduling period b3, or the scheduling period b4.
  • the area where these scheduling periods are located may be called the forward adjustment interval, which is set as Area1.
  • the area where these scheduling periods are located can be called a backward adjustment interval, which can be set as Area2.
  • an asymptotic adjustment method can be used to adjust the initial duration of the scheduling cycle, that is, to determine the total number of adjustments K of the scheduling cycle, and after K The scheduling period completes the adjustment of the initial duration.
  • the initial duration of the scheduling cycle is C
  • the unit is ticks (clock counting unit)
  • the number of interval cycles between the receiving scheduling cycle and the target scheduling cycle is TsNum
  • the ticks (time length adjustment amount) that needs to be adjusted in each scheduling cycle is Jitter_Adjustment.
  • Adjust_Counter C*TsNum/
  • each tick is 1ns, which means that a clock signal is generated every 1ns (that is, each tick)
  • the initial duration of the scheduling cycle is 30us
  • counting 30000 ticks corresponds to one time Scheduling cycle, therefore, C is 30000, and C represents the number of counts of the first clock corresponding to the initial duration.
  • the receiving scheduling period is the scheduling period b1 and the target scheduling period is the scheduling period b3, then the number of interval periods between the receiving scheduling period and the target scheduling period is 2, that is, TsNum is 2.
  • the initial duration can be reduced and adjusted based on the duration adjustment amount Jitter_Adjustment, such as shortening the initial duration of the scheduling period, that is, reducing the timing
  • the counter counts ticks, assuming that the Jitter_Adjustment for each adjustment is -1000, and "-" indicates that the initial duration is reduced and adjusted. Then, when the initial duration corresponds to 30,000 ticks, the adjusted target duration corresponds to 29,000 ticks.
  • Adjust_Counter C*TsNum/
  • the adjustment process of the scheduling cycle Extended to 1.74ms, each scheduling period is reduced by 1000ns, which is almost imperceptible macroscopically. Therefore, the packet jitter caused by the change of the scheduling period can be ignored.
  • the receiving scheduling period is scheduling period b5 and the target scheduling period is b3, then the number of interval periods between the receiving scheduling period and the target scheduling period is 2, that is, TsNum is 2.
  • the initial duration can be adjusted based on the duration adjustment amount Jitter_Adjustment, such as lengthening the initial duration of the scheduling cycle, that is, increasing the timing
  • the counter counts ticks, assuming that the Jitter_Adjustment for each adjustment is +1000, and "+" indicates that the initial duration is increased and adjusted. Then, when the initial duration corresponds to 30,000 ticks, the adjusted target duration corresponds to 31,000 ticks.
  • Adjust_Counter C*TsNum/
  • the adjustment process of the scheduling cycle Extended to 1.86ms, each scheduling period increases by 1000ns, which is almost imperceptible macroscopically. Therefore, the packet jitter caused by the change of the scheduling period can be ignored.
  • the receiving scheduling period of the first network device can be adjusted to the reference point Anchor (that is, target scheduling period), that is, to maintain a reasonable jitter range interval.
  • FIG. 6A is a schematic diagram of a normal scheduling cycle
  • the sending time of the CPU for deterministic flow scheduling only takes 2 time units
  • each sending scheduling cycle takes 16 time units
  • the sending time of deterministic flow in the port takes 8 time units
  • the sending time of the best-effort flow in the port occupies 8 time units.
  • Figure 6B which is a schematic diagram of adjusting the scheduling cycle forward by 1 time unit. The forward adjustment is equivalent to shortening the length of the scheduling cycle, that is, reducing the packets of deterministic flows forwarded in the scheduling cycle, but it does not function It will cause packets of incomplete deterministic flows to be sent within the scheduling period.
  • the second network device is an upstream node
  • the first network device is a downstream node
  • the second network device sends a packet to the first network device.
  • a test packet is taken as an example.
  • the second network device sends the test message at a certain period, and the second network device sends the test message at a fixed scheduling period a0, that is, at each scheduling period a0, the test message is sent to the first network device.
  • the first network device After receiving the test message, the first network device determines that the scheduling period for sending the test message on the second network device is the scheduling period a0. The first network device determines the target scheduling period corresponding to the scheduling period a0 on the device, which is denoted as Anchor, for example, the target scheduling period is the scheduling period b3. The first network device may also determine the receiving scheduling period of the test message on the device, and record the receiving scheduling period as Current.
  • the Current can be compared with the Anchor. If the Current exceeds the reasonable jitter range of the Anchor, it is determined that the initial duration of the scheduling cycle needs to be adjusted. If the Current does not exceed the reasonable jitter range of the Anchor, it is determined that there is no need to adjust the scheduling The initial duration of the cycle is adjusted.
  • the number of scheduling cycles is d (d>7), that is, there are d CQs in total, and d scheduling cycles correspond to d CQs one-to-one.
  • the target scheduling cycle is Anchor, and the reasonable jitter range is 3 scheduling cycles.
  • the receiving scheduling period is Current.
  • Step S12 if Adjust is greater than d/2, determine that the adjustment direction of the initial duration is forward adjustment, and determine that the adjustment amount is (d-Adjust) scheduling cycles; if Adjust is not greater than d/2, determine the adjustment of the initial duration The direction is backward adjustment, and the adjustment amount is determined as Adjust scheduling cycles.
  • the forward adjustment means reducing the initial duration of the scheduling period the adjustment amount is represented by (d-Adjust) scheduling periods, and the number of interval periods TsNum is d-Adjust.
  • the backward adjustment means to increase the initial duration of the scheduling cycle, the adjustment amount is represented by Adjust scheduling cycles, and the number of interval cycles TsNum is Adjust.
  • Step S13 setting the value of the duration adjustment amount Jitter_Adjustment, the absolute value of Jitter_Adjustment can be set globally, such as 1000 and so on.
  • the positive or negative of Jitter_Adjustment can be determined based on the adjustment direction. For example, if the adjustment direction of the initial duration is forward adjustment, that is, when the initial duration of the scheduling cycle needs to be reduced, the Jitter_Adjustment is a negative number, that is, the symbol is "-". The direction is backward adjustment, that is, when the initial duration of the scheduling cycle needs to be increased, Jitter_Adjustment is a positive number, that is, the sign is "+".
  • Step S14 Determine the total adjustment quantity Adjust_Counter of the scheduling period based on the number of interval periods TsNum and the duration adjustment quantity Jitter_Adjustment. For the determination method, refer to the above example, and details will not be repeated here.
  • the structure and function of the network device in this embodiment, the structure and function of the first network device is taken as an example, The structure and function of other network devices are similar), and the following methods can be used:
  • the first network device may include a hardware timer and a deterministic forwarding unit, and the deterministic forwarding unit may include a forwarding module, a session management module, and a scheduling period management module.
  • the hardware timer is used to receive the clock input signal, and the hardware timer determines the cumulative number of clock signals based on the clock input signal; when the cumulative number of clock signals reaches the second clock count corresponding to the target duration, a trigger signal is generated, which The generation time of the trigger signal is used as the end time of the current scheduling cycle, and the generation time of the trigger signal is used as the start time of the next scheduling cycle of the current scheduling cycle.
  • the interval between two adjacent trigger signals generated by the hardware timer is the target duration.
  • Session management module The session management module is used to establish a session with the second network device.
  • the function of this session is that the second network device regularly sends a test message to the first network device through the session.
  • the sending period T of the test message is based on the speed of error accumulation. There is no restriction on this, and the scheduling period adjustment process of the deterministic network is triggered by the test message.
  • the data packets belonging to the deterministic flow can also be used to trigger the scheduling period adjustment process of the deterministic network.
  • the session management module may receive scheduling cycle information from the forwarding module, and the scheduling cycle information may include but not limited to: Temp_CSQF_Jiffies, node identifier, and CSQF parameters when the forwarding module receives the test message.
  • Temp_CSQF_Jiffies represents the value of the global count of the scheduling period (CSQF_Jiffies), which is used to determine the current scheduling period of the first network device. For example, when Temp_CSQF_Jiffies is 1, it indicates the first scheduling period, such as scheduling period b0, when Temp_CSQF_Jiffies is 2 , indicating the second scheduling cycle, such as scheduling cycle b1, and so on.
  • the node identifier represents the node identifier of the second network device.
  • the CSQF parameter may include outbound interface information, that is, outbound interface information corresponding to the test message.
  • the session management module can maintain a session information table, which includes but not limited to: the mapping relationship among UpNodeId, InterfaceId and Anchor.
  • UpNodeId represents the node identifier of the second network device, which may be manually set by the user, or may be a unique device identifier, such as an IP address, as long as it is unique.
  • InterfaceId represents the interface identifier of the first network device, which can be manually set by the user.
  • Anchor represents the identifier of the scheduling period, and is used to indicate the associated scheduling period corresponding to the specified scheduling period of the second network device, that is, the message sent by the second network device in the specified scheduling period, and this message reaches the first network device After that, the message should be stored in the CQ corresponding to the associated scheduling period.
  • mapping relationship between the designated scheduling period and the associated scheduling period that is, the mapping relationship between the scheduling period of the second network device and the scheduling period of the first network device
  • the mapping relationship may be pre-configured, or a certain Algorithm determination, there is no restriction on the way to obtain this mapping relationship.
  • the specified scheduling period of the second network device is the scheduling period a0
  • the associated scheduling period of the first network device is the scheduling period b3.
  • the Anchor in the session information table represents the identifier of the scheduling period b3, That is to say, the scheduling period b3 can be known through the value of the Anchor.
  • the session management module After the session management module receives the scheduling period information from the forwarding module, it can query the session information table by using the node ID and outgoing interface information as an index to obtain the value of the Anchor, and determine the associated scheduling period based on the value of the Anchor. If the Anchor represents the identifier of the scheduling period b3, it is determined that the associated scheduling period is the scheduling period b3, and the scheduling period b3 corresponds to the scheduling period a0 of the second network device.
  • the target scheduling period corresponding to the sending scheduling period on the first network device can be determined.
  • the number of interval periods between the sending scheduling period and the specified scheduling period may be equal to the number of interval periods between the target scheduling period and the associated scheduling period.
  • the sending scheduling period of the second network device is the scheduling period a0, that is, the test message is sent in the scheduling period a0, it means that the sending scheduling period of the second network device is the same as the specified scheduling period, therefore, it is determined that the first network device
  • the target scheduling period of is the same as the associated scheduling period, that is, the target scheduling period is the scheduling period b3.
  • the session management module can determine the target scheduling period, such as the scheduling period b3.
  • the session management module After the session management module receives the scheduling cycle information from the forwarding module, it can also determine the receiving scheduling cycle of the first network device according to Temp_CSQF_Jiffies in the scheduling cycle information, and record the receiving scheduling cycle as Current, indicating that the first network device is in the receiving scheduling cycle. A test packet is received within the period.
  • the session management module uses steps S11 to S14 to determine parameters such as the number of adjustment periods Adjust, the adjustment direction, the number of interval periods TsNum, the duration adjustment amount Jitter_Adjustment, and the total number of adjustments Adjust_Counter. repeat.
  • the hardware timer is a high-precision hardware timer inside the CPU, which can generate trigger signals according to configuration parameters.
  • the input of the hardware timer is the clock input signal of the system clock. If the frequency of the system clock is 1G, that is, every tick is 1ns, which means that a clock input signal is generated every 1ns. Then, the hardware timer can receive a clock every 1ns. Input the signal, and determine the cumulative quantity of the clock signal based on the clock input signal, that is, add 1 to the cumulative quantity of the clock signal each time the clock input signal is received.
  • the scheduling cycle management module can send the configuration parameters (such as the count value) to the hardware timer.
  • the first clock count corresponding to the initial duration is used as the count value, such as the first clock
  • the number of counts is 30,000.
  • the hardware timer will generate a trigger signal, and output the trigger signal to the scheduling cycle management module. Since the trigger signal is generated based on the first clock count, the interval between two adjacent trigger signals matches the first clock count, that is, the interval between two adjacent trigger signals is the initial duration.
  • the second clock count corresponding to the target duration can be used as the count value, for example, the second clock count is 29000 or 31000.
  • the hardware timer will generate a trigger signal, and output the trigger signal to the scheduling period management module. Since the trigger signal is generated based on the second clock count, the interval between two adjacent trigger signals is the target duration.
  • the generation time of the trigger signal is used as the end time of the current scheduling cycle, and the generation time of the trigger signal is used as the start time of the next scheduling cycle of the current scheduling cycle.
  • the trigger signal may be an interrupt signal or other types of signals, and there is no limitation on this, as long as the start time and end time of the scheduling period are determined based on the trigger signal.
  • the forwarding module is used to receive the test message sent by the second network equipment, and obtain the node identification and the CSQF parameter (such as the corresponding outgoing interface information of the test message) of the second network equipment from the test message, and from the scheduling
  • the period management module obtains Temp_CSQF_Jiffies, forms the scheduling period information of the node identifier, the CSQF parameter and Temp_CSQF_Jiffies, and sends the scheduling period information to the session management module, and the session management module determines parameters such as Adjust_Counter and Jitter_Adjustment based on the scheduling period information, specifically For the process, refer to the related functions of the session management module.
  • the scheduling cycle management module is used to receive the trigger signal generated by the hardware timer, and update Temp_CSQF_Jiffies each time the trigger signal is received. When the trigger signal is received for the first time, Temp_CSQF_Jiffies is updated to 2, indicating the second scheduling cycle, and so on.
  • the scheduling cycle management module obtains parameters such as Jitter_Adjustment and Adjust_Counter from the session management module, and determines configuration parameters (such as count values) based on Jitter_Adjustment and Adjust_Counter, and sends the count value to the hardware timer to adjust the count value of the hardware timer.
  • the scheduling cycle management module sends the count value 30000 to the hardware timer.
  • the scheduling period management module After updating the actual duration of the scheduling period to the target duration, if the Jitter_Adjustment is "+1000", the scheduling period management module will send the count value 31000 to the hardware timer; if the Jitter_Adjustment is "-1000", the scheduling period management module will The count value 29000 is sent to the hardware timer.
  • the scheduling cycle management module After sending the updated count value of 31000 or count value of 29000 to the hardware timer, assuming that the Adjust_Counter is 60, then, after the scheduling cycle management module receives 60 trigger signals consecutively, the actual duration of the scheduling cycle is updated to the initial duration, And the scheduling cycle management module sends the count value 30000 to the hardware timer again, until the actual duration of the scheduling cycle is updated next time.
  • Step S21 if the Adjust_Counter is 0, execute step S27, otherwise execute step S22.
  • Step S22 if Jitter_Adjustment is 0, execute step S24, otherwise execute step S23.
  • Step S23 Write the count value of the hardware timer into C+Jitter_Adjustment to adjust the actual duration of the scheduling cycle, that is, update the actual duration of the scheduling cycle from the initial duration to the target duration.
  • the Jitter_Adjustment here can be positive or negative.
  • the Jitter_Adjustment can be set to 0, and step S26 is executed.
  • step S26 is performed instead of step S24.
  • Step S24 if the Adjust_Counter is greater than 1, go to step S26, otherwise go to step S25.
  • Step S25 write the register of the hardware timer into Jitter_Adjustment, restore the scheduling period, execute step S26, that is, restore the actual duration to the initial duration, and write the count value of the hardware timer into C.
  • Step S26 decrement Adjust_Counter by 1, and return to step S21.
  • Step S27 perform other processing of the timer interrupt service.
  • the first network device may include a hardware module (taking a hardware timer as an example of a hardware module) and a deterministic forwarding unit, and the deterministic forwarding unit includes a forwarding module, a session management module and a scheduling period management module .
  • the hardware module may include a register, and the hardware module is used for receiving the clock input signal. Each time the hardware module receives the clock input signal, it determines the accumulated number of clock signals based on the clock input signal, and stores the accumulated number of clock signals through the register of the hardware module.
  • the forwarding module determines the target number of clock signals in the current scheduling period based on the second clock count quantity corresponding to the target duration; the forwarding module queries the cumulative number of clock signals from the register, and if the cumulative number of clock signals found reaches If the clock signal target quantity is determined, the current scheduling period is determined to be over, and the next scheduling period of the current scheduling period is updated as the current scheduling period.
  • Hardware timer The input of the hardware timer is the clock input signal of the system clock. If the frequency of the system clock is 1G, the hardware timer can receive a clock input signal every 1ns. Each time the hardware timer receives a clock input signal, it determines the cumulative number of clock signals based on the clock input signal, that is, every time it receives a clock input signal, it adds 1 to the cumulative number of clock signals. Each time a clock input signal is received, the accumulated number of the clock signal can be stored through the register of the hardware timer.
  • the hardware timer only stores the cumulative number of clock signals in the register, but does not generate a trigger signal, and outputs the trigger signal to the scheduling cycle management module, and the scheduling cycle management module does not need to
  • the configuration parameters (such as count value) are sent to the hardware timer.
  • the session management module receives scheduling cycle information from the forwarding module, and the scheduling cycle information includes but not limited to: Temp_CSQF_Jiffies, node identifier, and CSQF parameters.
  • the session management module queries the session information table based on the scheduling cycle information, obtains the associated scheduling cycle, and determines the target scheduling cycle.
  • the session management module determines the receiving scheduling period according to Temp_CSQF_Jiffies. Based on the target scheduling period and the receiving scheduling period, parameters such as the adjustment period number Adjust, the adjustment direction, the interval period number TsNum, the duration adjustment amount Jitter_Adjustment, and the total adjustment number Adjust_Counter are determined.
  • the forwarding module is used to receive the test message sent by the second network device, and obtain the node identification and CSQF parameters of the second network device from the test message, and obtain Temp_CSQF_Jiffies from the scheduling cycle management module, and the node identification, the CSQF
  • the parameter and Temp_CSQF_Jiffies constitute the scheduling period information, and send the scheduling period information to the session management module.
  • the forwarding module can determine the current scheduling period Number of clock signal targets. For example, when the actual duration of the scheduling period is the initial duration, the forwarding module determines the first clock count number corresponding to the initial duration, such as 30000, and uses the sum of the initial number x and the first clock count number as the clock of the current scheduling cycle Number of signal targets.
  • the forwarding module determines the second clock count number corresponding to the target duration, such as 29000 or 31000, and uses the sum of the initial number x and the second clock count number as the clock of the current scheduling cycle Number of signal targets.
  • the forwarding module Based on the target number of clock signals in the current scheduling period, the forwarding module queries the accumulated number of clock signals from the register of the hardware timer. If the accumulated number of clock signals found does not reach the target number of clock signals, the current scheduling period is maintained. If the queried accumulated number of clock signals reaches the target number of clock signals, it is determined that the current scheduling cycle has ended, and the next scheduling cycle of the current scheduling cycle is updated as the current scheduling cycle, and the target number of clock signals is used as the clock of the scheduling cycle Initial number of signals x.
  • the scheduling cycle management module can send the configuration parameters to the forwarding module, such as sending the first clock count corresponding to the initial duration or the second clock count corresponding to the target duration to the forwarding module, and the forwarding module will transmit the configuration parameters based on the configuration parameter Determines the target number of clock ticks for the current scheduling cycle.
  • the forwarding module when the forwarding module determines that the cumulative number of clock signals reaches the target number of clock signals, it can generate a trigger signal and output the trigger signal to the scheduling cycle management module.
  • the generation time of the trigger signal is taken as the end time of the current scheduling period, and the generation time of the trigger signal is taken as the start time of the next scheduling period of the current scheduling period.
  • the scheduling period management module is used to receive the trigger signal generated by the forwarding module, and can update Temp_CSQF_Jiffies each time the trigger signal is received.
  • the scheduling cycle management module obtains parameters such as Jitter_Adjustment and Adjust_Counter from the session management module, and can determine configuration parameters based on Jitter_Adjustment and Adjust_Counter, and sends the configuration parameters to the forwarding module.
  • parameters such as Jitter_Adjustment and Adjust_Counter from the session management module, and can determine configuration parameters based on Jitter_Adjustment and Adjust_Counter, and sends the configuration parameters to the forwarding module.
  • the first network device may include a period adjustment unit and a deterministic forwarding unit, and the deterministic forwarding unit may include a forwarding module, a session management module, and a scheduling period management module.
  • the cycle adjustment unit may include control logic (such as FPGA, CPLD, ASIC), a first register, a second register and a third register.
  • the control logic is used to receive the clock input signal, the first register is used to store the first clock count number corresponding to the initial duration, the second register is used to store the duration adjustment amount Jitter_Adjustment, and the third register is used to store the total adjustment amount Adjust_Counter of the scheduling period.
  • the highest bit can be a sign bit, 1 means "-", 0 means "+”, and the other bits except the highest bit of the second register indicate
  • the control logic determines the second clock count number corresponding to the target duration based on the first clock count number and the duration adjustment amount; determines the clock signal accumulation number based on the clock input signal; when the clock signal accumulation number reaches the second clock count number , the trigger signal can be generated; wherein, the generation time of the trigger signal is taken as the end time of the current scheduling period, and the generation time of the trigger signal is taken as the start time of the next scheduling period of the current scheduling period.
  • the control logic After the control logic generates Adjust_Counter trigger signals based on the second clock count number, it continues to determine the clock signal accumulation number based on the clock input signal, and generates a trigger signal when the clock signal accumulation number reaches the first clock count number corresponding to the initial duration.
  • Session management module receives scheduling cycle information from the forwarding module, and the scheduling cycle information includes but not limited to: Temp_CSQF_Jiffies, node identifier, and CSQF parameters.
  • the session management module queries the session information table based on the scheduling cycle information, obtains the associated scheduling cycle, and determines the target scheduling cycle.
  • the session management module determines the receiving scheduling period according to Temp_CSQF_Jiffies. Based on the target scheduling period and the receiving scheduling period, parameters such as the adjustment period number Adjust, the adjustment direction, the interval period number TsNum, the duration adjustment amount Jitter_Adjustment, and the total adjustment number Adjust_Counter are determined.
  • the session management module may write Jitter_Adjustment into the second register in the period adjustment unit, and write Adjust_Counter into the third register in the period adjustment unit.
  • the forwarding module is used to receive the test message sent by the second network device, and obtain the node identification and CSQF parameters of the second network device from the test message, and obtain Temp_CSQF_Jiffies from the scheduling cycle management module, and the node identification, the CSQF
  • the parameter and Temp_CSQF_Jiffies constitute the scheduling period information, and send the scheduling period information to the session management module.
  • the scheduling period management module is used to receive the trigger signal generated by the control logic, and update Temp_CSQF_Jiffies each time the trigger signal is received.
  • the scheduling cycle management module determines the first clock count corresponding to the initial duration, and writes the first clock count into the first register.
  • Control logic The input of the control logic is the clock input signal of the system clock. If the frequency of the system clock is 1G, a clock input signal is received every 1ns, and the cumulative number of clock signals is determined based on the clock input signal, that is, each time the clock input signal is received When , add 1 to the cumulative number of clock signals.
  • the actual duration of the scheduling cycle is the initial duration
  • the first register stores the first clock count number
  • the second register and the third register are empty, based on this, when the cumulative number of clock signals reaches the first clock count number each time , the control logic will generate a trigger signal, and output the trigger signal to the scheduling cycle management module, and the interval between two adjacent trigger signals generated by the control logic is the initial duration.
  • the session management module When the actual duration of the scheduling cycle is updated to the target duration, the session management module writes the Adjust_Counter to the third register, and writes the Jitter_Adjustment to the second register.
  • a register reads the first clock count quantity, reads Jitter_Adjustment from the second register, and determines a second clock count quantity corresponding to the target duration based on the first clock count quantity and Jitter_Adjustment. Based on this, when the cumulative number of clock signals reaches the second clock count number each time, the control logic will generate a trigger signal, and output the trigger signal to the scheduling cycle management module, and the interval between two adjacent trigger signals generated by the control logic for the target duration.
  • the generation time of the trigger signal is used as the end time of the current scheduling cycle, and the generation time of the trigger signal is used as the start time of the next scheduling cycle of the current scheduling cycle.
  • the trigger signal may be an interrupt signal or other types of signals, and there is no limitation on this, as long as the start time and end time of the scheduling period are determined based on the trigger signal.
  • the control logic can read Adjust_Counter from the third register, and after the Adjust_Counter trigger signals are generated based on the second clock count quantity, the actual duration of the scheduling cycle is updated to the initial duration, that is, the target duration is restored to the initial duration, so , the control logic reads the first clock count number from the first register, and generates a trigger signal based on the first clock count number, for example, when the cumulative number of clock signals reaches the first clock count number each time, the control logic generates a trigger signal , and output the trigger signal to the scheduling period management module, and the interval between two adjacent trigger signals is the initial duration.
  • the processing flow of the control logic may include the following steps:
  • Step S31 after power-on initialization, write the first clock count number into the first register, and the control logic initializes AdjustEvent (adjustment event) to 0.
  • the control logic reads the number of counts of the first clock from the first register and writes it into CounterValue (count value), and uses CounterValue to generate a trigger signal.
  • the trigger signal can be an interrupt signal or other types of signals. The interrupt signal is used as an example later.
  • Step S32 during operation, the control logic judges whether a write operation to the second register occurs. If not, continue to determine whether a write operation to the second register occurs, and so on. If so, the control logic modifies the AdjustEvent to 1. Wherein, the session management module can write Jitter_Adjustment into the second register, and write Adjust_Counter into the third register, so the control logic can capture the write operation on the second register. Wherein, the session management module may perform the write operation of the second register first, and then perform the write operation of the third register after the completion of the write operation of the second register.
  • Step S33 the control logic judges whether the AdjustEvent is 1 when an interrupt signal is generated. If it is 1, set AdjustEvent to 0, and execute step S34. If not 1, execute step S36.
  • Step S34 the control logic reads Adjust_Counter from the third register, and writes Adjust_Counter into AdjustCount (adjustment quantity).
  • the control logic reads the first clock count quantity BaseCounter from the first register, reads Jitter_Adjustment from the second register, and executes step S35.
  • Step S35 if the highest bit of Jitter_Adjustment is 1, then the control logic can write the value obtained by subtracting the highest bit from BaseCounter from Jitter_Adjustment as the second clock count number into CounterValue. If the highest bit of Jitter_Adjustment is 0, the value of BaseCounter plus Jitter_Adjustment minus the highest bit can be used as the second clock count number and written into CounterValue.
  • Step S36 if the AdjustCount is not 0, the control logic generates an interrupt signal based on the CounterValue (that is, an interrupt signal is generated when the cumulative number of clock signals reaches the value in the CounterValue), and decreases the AdjustCount by one. If the AdjustCount is 0, the control logic reads the number of counts of the first clock from the first register and writes it into CounterValue, and uses CounterValue to generate a trigger signal.
  • the first network device may include a hardware module (taking the control logic as the hardware module as an example) and a deterministic forwarding unit, the control logic may include a register, and the control logic is used to receive the clock input signal.
  • the clock signal accumulation quantity is determined based on the clock input signal, and the clock signal accumulation quantity is stored through the register.
  • the implementation of the mode 4 is similar to that of the mode 2, and the hardware timer can be replaced with the control logic, which will not be repeated here.
  • the message transmission of the deterministic network is realized based on CSQF, and the deterministic control is dynamically controlled by adjusting the actual duration of the scheduling cycle of the deterministic network (that is, adjusting from the initial duration to the target duration).
  • the scheduling period of the network can make CSQF not depend on strict frequency synchronization, and can adapt to the change of link transmission delay, thus greatly enhancing the adaptability of CSQF in the wide area network, and can provide deterministic transmission capability by implementing CSQF, which is suitable for ongoing The transmission service performed is not affected.
  • a mechanism is established to adjust the accumulated difference, so that the adjustment process of the accumulated difference is smooth, and when the accumulated error reaches a certain threshold, the accumulated error is converted into a value that needs to be adjusted
  • the amount can be used to adjust the duration of multiple scheduling cycles in a smooth manner. When the adjustment amount is reached, the duration of the scheduling cycle will return to the initial length.
  • the embodiment of the present application proposes a network device, the network device may include: a processor and a machine-readable storage medium, the machine-readable storage medium stores information that can be read by the processor Executed machine-executable instructions; the processor is configured to execute the machine-executable instructions to implement the method for adjusting the scheduling period disclosed in the above-mentioned examples of the present application.
  • the embodiment of the present application also provides a machine-readable storage medium, on which several computer instructions are stored, and when the computer instructions are executed by a processor, the present invention can be realized. Apply the scheduling period adjustment method disclosed in the above example.
  • the above-mentioned machine-readable storage medium may be any electronic, magnetic, optical or other physical storage device, which may contain or store information, such as executable instructions, data, and so on.
  • the machine-readable storage medium can be: RAM (Radom Access Memory, random access memory), volatile memory, non-volatile memory, flash memory, storage drive (such as hard disk drive), solid state drive, any type of storage disk (such as CD, DVD, etc.), or similar storage media, or a combination of them.
  • a typical implementing device is a computer, which may take the form of a personal computer, laptop computer, cellular phone, camera phone, smart phone, personal digital assistant, media player, navigation device, e-mail device, game control device, etc. desktops, tablets, wearables, or any combination of these.
  • embodiments of the present application may be provided as methods, systems, or computer program products. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, embodiments of the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein.
  • computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
  • these computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture comprising instruction means,
  • the instruction means implements the functions specified in one or more procedures of the flowchart and/or one or more blocks of the block diagram.
  • These computer program instructions can also be loaded on a computer or other programmable data processing equipment, so that a series of operational steps are performed on the computer or other programmable equipment to produce computer-implemented processing, so that the information executed on the computer or other programmable equipment
  • the instructions provide steps for implementing the functions specified in the flow chart or blocks of the flowchart and/or the block or blocks of the block diagrams.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

本申请提供一种调度周期调整方法及网络设备,该方法包括:在接收到第二网络设备发送的报文后,确定报文在第二网络设备上的发送调度周期,确定报文在第一网络设备上的接收调度周期;确定第一网络设备上与发送调度周期对应的目标调度周期;其中,所述报文与目标调度周期对应的CQ对应;若基于所述接收调度周期与所述目标调度周期之间的间隔周期数量,确定需要对调度周期的初始时长进行调整,则将所述第一网络设备上的调度周期的实际时长从所述初始时长调整为目标时长。通过本申请的技术方案,动态控制确定性网络的调度周期,能够使得CSQF不依赖严格的频率同步,并能够适应链路传输时延变化,增强了CSQF在广域网中的适应性。

Description

一种调度周期调整方法及网络设备 技术领域
本申请涉及通信技术领域,尤其涉及一种调度周期调整方法及网络设备。
背景技术
DetNet(Deterministic Network,确定性网络)可以在一个网络域内为承载业务提供确定性业务功能,这些确定性业务功能可以包括时延、丢包率等。TSN(Time Sensitive Networking,时间敏感型网络)是基于局域网实现的确定性网络,在TSN中,通过采用CQF(Cyclic Queuing and Forwarding,周期排队转发)确保转发层面的确定性传输,从而为承载业务提供确定性业务功能。为便于描述,确定性网络中传输的具有确定性业务功能(如时延、丢包率等)的业务流称为确定性流。针对不同于确定性流的其它业务流,可以按照尽力而为转发的方式,因此,将不同于确定性流的其它业务流称为尽力而为流。
发明内容
本申请提供一种调度周期调整方法,应用于第一网络设备,包括:在接收到第二网络设备发送的报文后,确定所述报文在第二网络设备上的发送调度周期,并确定所述报文在第一网络设备上的接收调度周期;确定所述第一网络设备上与所述发送调度周期对应的目标调度周期;其中,所述报文与所述目标调度周期对应的周期队列CQ对应;若基于所述接收调度周期与所述目标调度周期之间的间隔周期数量,确定需要对调度周期的初始时长进行调整,则将所述第一网络设备上的调度周期的实际时长从所述初始时长调整为目标时长。
本申请提供一种网络设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现本申请上述实施例公开的调度周期调整方法。
由以上技术方案可见,本申请实施例中,基于CSQF(Cycle Specified Queuing and Forwarding,指定周期排队转发)实现确定性网络的报文传输,通过调整确定性网络的调度周期的实际时长(即从初始时长调整为目标时长),从而动态控制确定性网络的调度周期,能够使得CSQF不依赖严格的频率同步,并能够适应链路传输时延变化,从而大大增强了CSQF在广域网中的适应性,可以通过实现CSQF来提供确定性传输能力,对正在进行的传输服务不产生影响。
附图说明
图1是本申请一种实施方式中的CSQF的工作原理示意图;
图2是本申请一种实施方式中的CSQF和CQF的对比示意图;
图3A-图3C是本申请一种实施方式中的调度周期的映射关系示意图;
图4是本申请一种实施方式中的调度周期调整方法的流程示意图;
图5A和图5B是本申请一种实施方式中的CSQF的调度周期的划分示意图;
图6A-图6C是本申请一种实施方式中的调度周期的示意图;
图7A-图7F是本申请一种实施方式中的网络设备的结构及处理流程示意图。
具体实施方式
TSN是基于局域网实现的确定性网络,在TSN中,通过采用CQF确保转发层面的确定性传输,从而为承载业务提供确定性业务功能。当然,CQF只是提供确定性业务的示例,还可以采用其它方式确保转发层面的确定性传输,对此不做限制。CQF作为与CSQF接近的技术,本实施例以CQF为例。CQF的基本工作原理是:每个网络设备的出接口关联2个队列,并将时域划分为2个周期,这2个队列在这两个周期内交替发送和接收。比如说,将这2个队列记为队列Q1和队列Q2,将这2个周期记为T0周期和T1周期,在T0周期内,队列Q1进行发送,队列Q2进行接收(队列Q1的接收关,队列Q2的接收开,队列Q1的发送开,队列Q2的发送关),在T1周期内,队列Q1进行接收,队列Q2进行发送,以此类推,队列Q1和队列Q2可以按照奇偶周期交替进行。
CQF要求每一跳传输一个周期,报文在某个网络设备的某一个周期内接收,在下一个周期内发送出去,而下一个网络设备就在下一个周期内接收到该报文,以此类推。这样,当周期T为确定值,则报文在路径上的传输时延(端到端的传输时延)就是确定的,该传输时延的最小值为(H-1)*T,该传输时延的最大值为(H+1)*T,H为跳数,表示路径上经过的网络设备的总数量。
由于CQF是基于局域网的技术,在广域网中无法实现,为了实现广域网的确定性传输,基于CQF提出了CSQF(Cycle Specified Queuing and Forwarding,指定周期排队转发),CSQF结合SR(Segment Routing,分段路由)应用或者SRv6应用,实现广域网的确定性传输。其中,SR可以是基于MPLS(Multi-Protocol Label Switching,多协议标签交换)的SR,SRv6可以是基于IPV6的SRv6。
参见图1所示,为CSQF的工作原理示意图,控制器10用于收集各网络设备的信息,如发送能力、接口、周期数、节点内最大抖动等。针对发送者到接收者之间的确定性传输需求,控制器10经过计算后,若发现有足够的传输资源,则分配传输路径,并将传输路径的信息下发给边缘节点,参见图1所示,发送者到接收者之间的传输路径可以是:网络设备11-网络设备12-网络设备13-网络设备14,该传输路径的边缘节点(即首个网络设备)是网络设备11。网络设备11在接收到需要转发的报文(packet)后,在报文中添加传输路径中每个网络设备的信息,如网络设备在路径中的节点标识(如SRv6的SID(Segment identifier,分段标识)中的Locator(位置)等)、网络设备的发送接口、网络设备中需要发送的周期。这样,报文到达某网络设备后,该网络设备可以取出相应的接口和周期信息,然后,将该报文存储到与该周期对应的队列。针对每个网络设备,可以按照一定周期循环对各队列中的报文进行发送,即每个队列对应一个周期,可以在该周期内发送该队列中的报文,由于网络设备的周期循环以固定模式进行,因此,在网络设备11中,对发送者的每个报文的指定周期不变,发送者到接收者的报文在每个网络设备转发的周期是确定的,因此,报文的整个时延也是确定的,从而实现确定性传输。
综上可以看出,CSQF的实现过程和CQF的实现过程类似,CSQF和CQF的区别可以在于:CSQF至少需要3个队列(如3、6、8、9、10、12、15个队列等),每一个周期内只有一个队列处于发送状态,而其它队列均处于接收状态。对于CQF,要求各网络设备的循环周期严格同步,包括需要相位同步,对于CSQF来说,只要求循环周期的频率同步,不需要相位同步,同时对于某跳传输时延无法在一个周期内完成的情况,还可以指定下一个周期传输的队列,通过此方式来适应广域网的不同网络设备的传输时延。
参见图2所示,为CSQF和CQF的对比示意图,对于CQF来说,针对报文的传输过程,网络设备11在周期1发送该报文,网络设备12在周期1接收该报文,网络设备12在周期2发送该报文,网络设备13在周期2接收该报文,网络设备13在周期3发送该报文,网络设备14在周期3接收该报文,网络设备14在周期4发送该报文。对于 CSQF来说,以CSQF需要3个队列为例,针对某个报文的传输过程,网络设备11在周期1发送该报文,网络设备12在周期1或者周期2接收该报文,且网络设备12在周期3发送该报文,网络设备13在周期3接收该报文,且网络设备13在周期4发送该报文,网络设备14在周期4或者周期5接收该报文,且网络设备14在周期6发送该报文。
在CSQF的实现过程,能够保证报文的整个时延确定,原因在于:每个网络设备划分以固定长度为周期的时间片,对确定性的业务流进行统一流量调度,使其在确定时间片内进行转发。在传输路径上的每个网络设备,发送时间被限制在特定时间片内,使得报文在该网络设备的时延抖动均是确定的,无论增加多少个网络设备,前一网络设备的抖动不会增加后面一个网络设备的抖动时延。当然,当网络设备的总数量增加时,报文转发总延时也会增加。当报文经过路径的距离增加时,报文转发总延时也可能会增加。
对于最后一个网络设备来说,报文只在确定的时间片内进行接收和发送,即报文在最后一个网络设备的抖动范围被限制在一个确定时间片内。
虽然CSQF能够实现广域网的确定性传输,为承载业务提供确定性业务功能,但是,各网络设备应该如何实现CSQF,相关技术中并没有合理的解决方案。
比如说,CSQF的调度周期需要满足频率同步,否则会随着时间推移,产生积累误差,导致上下游网络设备之间的调度周期失败。参见图3A所示,为频率不同步产生积累误差的示意图。假设网络设备1和网络设备2之间各自有独立时钟源,并且网络设备1和网络设备2之间没有SyncE(Synchronous Ethernet,同步以太网)机制和PTP(Precision Time Synchronization Protocol,精确时间同步协议)硬件支持,即在网络设备1和网络设备2之间无法进行时钟同步,在此基础上,若网络设备1和网络设备2之间存在频率差异,则会导致使用各自时钟源实现CSQF的调度周期时,网络设备1和网络设备2的调度周期长度不同,虽然这种相差很小,但随着时间推移和误差积累,也会引起调度周期的映射关系发生变化,最终表现出时延跳变,从而出现比较大的抖动。
此外,当链路受到热膨胀(也称为悬垂线下垂)的影响时,宽带铜线(如电缆网络)的长度也会受到中午和晚上的温度影响,发生可能多达20%的变化,从而导致网络设备之间的传输时延发生变化,这种变化也可能引起调度周期的映射关系发生变化,最终表现出时延跳变,从而出现比较大的抖动。
参见图3B所示,是网络设备之间的调度周期的映射关系,网络设备1的调度周期a0与网络设备2的调度周期b3具有映射关系,也就是说,网络设备1在调度周期a0发送的报文,网络设备2可以将报文存储到调度周期b3对应的CQ(Cyclic Queuing,周期队列)。假设网络设备1在调度周期a0发送的报文,这个报文到达网络设备2时,网络设备2当前正在被调度的是调度周期b2,那么,可以将报文存储到调度周期b3对应的CQ,即上述映射关系是合理的。
由于网络设备1和网络设备2之间的调度周期的频率不同步,且不断积累,在经过一段时间后,参见图3C所示,网络设备1在调度周期a0发送的报文到达网络设备2时,网络设备2当前正在被调度的是调度周期b4,那么,无法将报文存储到调度周期b3对应的CQ,即上述映射关系不合理,调度周期a0与调度周期b3之间的映射关系失效。综上所述,积累误差可能导致网络设备1和网络设备2之间的调度周期无法对应,产生较大抖动甚至拥塞丢包,使得CSQF的实现达不到理论效果,甚至导致CSQF不可用。
示例性的,对于CSQF队列来说,可以包括SQ(Sending Queue,发送队列)、RQ(Receiving Queue,接收队列)和TQ(Tolerating Queue,容忍队列),SQ是CSQF中正在被发送的队列,RQ是CSQF中正在接收的队列,由于抖动等原因,导致接收的报文无法正常进入RQ时,这样的报文进入TQ。为了方便描述,本实施例中,可以将SQ、 RQ和TQ称为CQ,即调度周期对应的是CQ。
示例性的,调度周期也可以称为调度时隙,如上述各调度周期均可以是调度时隙,对此不做限制,为了方便描述,本实施例以调度周期为例进行说明。
针对映射关系失效的问题,本申请实施例中提出一种基于CSQF实现广域确定性网络的方法,可以避免调度周期之间的映射关系失效,能够让CSQF不依赖严格的频率同步,并能够适应链路传输的时延变化,从而大大增强了CSQF在广域网中的适应性,也可以通过实现CSQF来提供确定性传输能力。
本申请实施例中提出一种调度周期调整方法,该方法可以应用于采用CSQF实现确定性网络的系统中,且系统可以包括多个网络设备(网络设备也可以称为网络节点或转发节点),将相邻两个网络设备称为第一网络设备和第二网络设备,且第二网络设备将报文发送给第一网络设备。参见图4所示,为调度周期调整方法的流程示意图,该方法可以应用于第一网络设备,该方法包括:
步骤401、在接收到第二网络设备发送的报文后,确定报文在第二网络设备上的发送调度周期,并确定报文在第一网络设备上的接收调度周期。
示例性的,针对报文在第二网络设备上的发送调度周期,表示该报文在该发送调度周期内被第二网络设备发送,比如说,第二网络设备在某个调度周期发送该报文时,为了区分方便,就可以将这个调度周期称为发送调度周期。针对报文在第一网络设备上的接收调度周期,表示该报文在该接收调度周期内被第一网络设备接收,比如说,第一网络设备在某个调度周期接收到第二网络设备发送的报文时,为了区分方便,就可以将这个调度周期称为接收调度周期。
示例性的,第二网络设备在指定调度周期发送报文,第一网络设备确定报文在第二网络设备上的发送调度周期是指定调度周期。比如说,第二网络设备固定在调度周期a0发送报文(只在调度周期a0发送报文),第二网络设备的指定调度周期就是调度周期a0,在此基础上,第一网络设备确定该发送调度周期是调度周期a0。或者,第二网络设备在发送报文时,可以在报文中添加发送调度周期的周期信息(如周期标识),第一网络设备确定报文在第二网络设备上的发送调度周期是该周期信息对应的调度周期。比如说,第二网络设备在调度周期a0发送报文时,可以在报文中添加调度周期a0的周期信息,在此基础上,第一网络设备确定该发送调度周期是该周期信息对应的调度周期a0。
示例性的,第一网络设备在接收到第二网络设备发送的报文后,确定第一网络设备上正在执行的调度周期,这个调度周期也就是报文在第一网络设备上的接收调度周期。比如说,第一网络设备在接收到报文时,假设第一网络设备上正在执行的是调度周期b2,那么,可以确定接收调度周期是调度周期b2。
步骤402、确定第一网络设备上与该发送调度周期对应的目标调度周期;其中,报文与目标调度周期对应的CQ对应,如存储到目标调度周期对应的CQ。
示例性的,可以预先配置第二网络设备的调度周期与第一网络设备的调度周期的映射关系,如第二网络设备的调度周期a0与第一网络设备的调度周期b3具有映射关系,表示第二网络设备通过调度周期a0发送报文时,报文需要存储到调度周期b3对应的CQ。在此基础上,第一网络设备确定报文在第二网络设备上的发送调度周期之后,就可以确定与该发送调度周期对应的目标调度周期。比如说,若发送调度周期是调度周期a0,则目标调度周期是调度周期b3。
在一种可能的实施方式中,第一网络设备可以维护会话信息表,该会话信息表可以包括节点标识(如网络设备的唯一标识)、出接口信息(如第一网络设备的出接口标识) 以及关联调度周期之间的映射关系,该关联调度周期是与该节点标识对应的网络设备的指定调度周期对应的关联调度周期,即针对该指定调度周期发送的报文,这个报文应该存储到这个关联调度周期对应的CQ。
在此基础上,第一网络设备在接收到第二网络设备发送的报文后,可以获取第二网络设备的节点标识和该报文对应的出接口信息(表示通过这个出接口信息对应的出接口发送该报文),比如说,从该报文中解析出该节点标识和该出接口信息。第一网络设备基于该节点标识和该出接口信息查询已配置的会话信息表,得到与第二网络设备的指定调度周期对应的关联调度周期,比如说,由于会话信息表包括节点标识、出接口信息及关联调度周期之间的映射关系,因此,通过查询该会话信息表,可以得到关联调度周期。
第一网络设备基于发送调度周期、关联调度周期和指定调度周期,确定第一网络设备上与该发送调度周期对应的目标调度周期。其中,发送调度周期与指定调度周期之间的间隔周期数量,可以等于目标调度周期与关联调度周期之间的间隔周期数量。比如说,若第二网络设备的指定调度周期是调度周期a0,第一网络设备的关联调度周期是调度周期b3,那么,若第二网络设备在调度周期a0发送报文,即发送调度周期是调度周期a0,发送调度周期与指定调度周期之间的间隔周期数量是0,则目标调度周期是调度周期b3。又例如,若第二网络设备在调度周期a1发送报文,即发送调度周期是调度周期a1,发送调度周期与指定调度周期之间的间隔周期数量是1,则目标调度周期是调度周期b4。
在一种可能的实施方式中,针对第二网络设备向第一网络设备发送的报文,该报文可以为测试报文或者属于确定性流的数据报文,若该报文为数据报文,那么,可以将该数据报文存储到目标调度周期对应的CQ;在目标调度周期内,将该目标调度周期对应的CQ中的数据报文发送给外部设备。
比如说,针对确定性网络的报文传输过程,第二网络设备与第一网络设备之间可以交互报文,如第二网络设备可以向第一网络设备发送属于尽力而为流的数据报文,也可以向第一网络设备发送属于确定性流的数据报文。关于属于尽力而为流的数据报文,本实施例中不再赘述。关于属于确定性流的数据报文,第一网络设备在接收到该数据报文后,可以将该数据报文存储到目标调度周期对应的CQ;在目标调度周期内,将该目标调度周期对应的CQ中的数据报文发送给外部设备。在此基础上,本实施例中,可以基于该数据报文触发调度周期的调整过程,即采用图4所示流程图执行调度周期的调整。
又例如,为了对调度周期进行调整,本实施例中,第二网络设备可以向第一网络设备发送测试报文,第一网络设备基于该测试报文触发调度周期的调整过程,即采用图4所示的流程图,执行调度周期的调整。在该情况下,第一网络设备不需要将测试报文存储到目标调度周期对应的CQ,也不会将测试报文发送给外部设备,这个测试报文只在第一网络设备上触发调度周期的调整过程。
步骤403、若基于接收调度周期与目标调度周期之间的间隔周期数量,确定需要对调度周期的初始时长进行调整,则将第一网络设备上的调度周期的实际时长从该初始时长调整为目标时长,即实际时长更新为目标时长。
示例性的,在确定接收调度周期和目标调度周期之后,可以确定接收调度周期与目标调度周期之间的间隔周期数量,并基于该间隔周期数量确定是否需要对调度周期的初始时长进行调整。如果是,则可以将该初始时长调整为目标时长,即调度周期的实际时长从初始时长更新为目标时长,若否,则保持调度周期的初始时长不变,即调度周期的实际时长保持初始时长不变。
示例性的,若接收调度周期位于目标调度周期的前面,且该间隔周期数量大于第一数量阈值,则确定需要对调度周期的初始时长进行调整;若接收调度周期位于目标调度 周期的前面,且该间隔周期数量不大于第一数量阈值,则确定不需要对调度周期的初始时长进行调整。若接收调度周期位于目标调度周期的后面,且该间隔周期数量大于第二数量阈值,则确定需要对调度周期的初始时长进行调整;若接收调度周期位于目标调度周期的后面,且该间隔周期数量不大于第二数量阈值,则确定不需要对调度周期的初始时长进行调整。其中,第一数量阈值和第二数量阈值可以相同,第一数量阈值和第二数量阈值也可以不同。第一数量阈值可以是0、1、2等,对此第一数量阈值不做限制。第二数量阈值可以是0、1、2等,对此第二数量阈值不做限制。为了方便描述,在后续实施例中,以第一数量阈值是1,且第二数量阈值是1为例。
示例性的,在将初始时长调整为目标时长时,若接收调度周期位于目标调度周期的前面,则基于已配置的时长调整量(可以根据经验配置)对初始时长进行降低调整,得到调整后的目标时长。若接收调度周期位于目标调度周期的后面,则基于该时长调整量对初始时长进行增加调整,得到调整后的目标时长。
比如说,若接收调度周期是调度周期b2,目标调度周期是调度周期b3,则间隔周期数量是1,且接收调度周期位于目标调度周期的前面,由于间隔周期数量1不大于第一数量阈值1,因此,不需要对调度周期的初始时长进行调整。
又例如,若接收调度周期是调度周期b1,目标调度周期是调度周期b3,则间隔周期数量是2,且接收调度周期位于目标调度周期的前面,由于间隔周期数量2大于第一数量阈值1,因此,需要对调度周期的初始时长进行调整。
在该情况下,由于接收调度周期位于目标调度周期的前面,因此,可以基于时长调整量对该初始时长进行降低调整,得到调整后的目标时长,也就是说,目标时长可以是该初始时长与该时长调整量之间的差值。
又例如,若接收调度周期是调度周期b4,目标调度周期是调度周期b3,则间隔周期数量是1,且接收调度周期位于目标调度周期的后面,由于间隔周期数量1不大于第二数量阈值1,因此,不需要对调度周期的初始时长进行调整。
又例如,若接收调度周期是调度周期b5,目标调度周期是调度周期b3,则间隔周期数量是2,且接收调度周期位于目标调度周期的后面,由于间隔周期数量2大于第二数量阈值1,因此,需要对调度周期的初始时长进行调整。
在该情况下,由于接收调度周期位于目标调度周期的后面,因此,可以基于时长调整量对该初始时长进行增加调整,得到调整后的目标时长,也就是说,目标时长可以是该初始时长与该时长调整量之间的和值。
示例性的,在第一网络设备上的调度周期的实际时长是初始时长时,假设第一网络设备依次包括调度周期b1、调度周期b2、调度周期b3、…,那么,调度周期b1的结束时刻与调度周期b1的开始时刻之间的间隔是该初始时长,调度周期b2的结束时刻与调度周期b2的开始时刻(调度周期b2的开始时刻也就是调度周期b1的结束时刻)之间的间隔是该初始时长,以此类推。
在第一网络设备上的调度周期的实际时长是目标时长时,则调度周期b1的结束时刻与调度周期b1的开始时刻之间的间隔是该目标时长,调度周期b2的结束时刻与调度周期b2的开始时刻之间的间隔是该目标时长,以此类推。
示例性的,可以基于初始时长对应的第一时钟计数数量、已配置的时长调整量和间隔周期数量确定调度周期的调整总数量K,并将第一网络设备上的连续K个调度周期的实际时长更新为目标时长(即从初始时长更新为目标时长)。在将连续K个调度周期的实际时长更新为目标时长之后,还可以将第一网络设备上的调度周期的实际时长更新为 初始时长(即从目标时长更新为初始时长)。
比如说,可以采用如下公式确定调整总数量K:K=第一时钟计数数量*间隔周期数量/时长调整量,当然,上述公式只是示例,对此不做限制。在得到调整总数量K之后,就可以将连续K个调度周期的实际时长更新为目标时长。
比如说,假设第一网络设备依次包括调度周期b1、调度周期b2、调度周期b3、…,调度周期b1的实际时长是初始时长,基于此,假设在调度周期b1确定出需要对调度周期的初始时长进行调整,且将初始时长调整为目标时长,那么,调度周期b2的实际时长是目标时长、调度周期b3的实际时长是目标时长、以此类推,在连续K个调度周期(即从调度周期b2开始的K个调度周期)的实际时长是目标时长之后,将第K+1个调度周期的实际时长更新为初始时长,各调度周期的实际时长均是初始时长,直到下次确定出需要对调度周期的初始时长进行调整,且将该初始时长调整为目标时长,以此类推。
以下结合具体应用场景,对调度周期的调整过程进行说明。
参见图5A所示,为CSQF的调度周期的划分示意图,针对第一网络设备,SQ为发送队列,该发送队列对应调度周期b0,RQ为接收队列,该接收队列对应调度周期b1,调度周期b1紧接在调度周期b0的后面,TQ为容忍队列,该容忍队列对应调度周期b2,调度周期b2紧接在调度周期b1的后面。
在上述应用场景下,可能会由于抖动等原因,导致调度周期的映射关系失效。比如说,第二网络设备的调度周期a0与第一网络设备的调度周期b1对应时,针对第二网络设备在调度周期a0内发送的报文,若第一网络设备在调度周期b0内接收到该报文,则可以将该报文存储到调度周期b1对应的RQ。但是,若第一网络设备在调度周期b2内接收到该报文,则无法将该报文存储到调度周期b1对应的RQ,从而导致调度周期a0与调度周期b1的映射关系失效。
针对上述发现,本申请实施例中,通过对调度周期的实际时长进行调整,从而避免调度周期的映射关系失效,参见图5B所示,为CSQF的调度周期的划分示意图,在该应用场景下,以CSQF包括10个队列为例,10个队列对应10个调度周期,将第二网络设备的10个调度周期称为调度周期a0、调度周期a1、调度周期a2、…,调度周期a9,将第一网络设备的10个调度周期称为调度周期b0、调度周期b1、调度周期b2、…,调度周期b9,当然,CSQF的队列数量可以更多或更少,只要队列数量大于或等于3即可。
在该应用场景下,假设报文在第二网络设备上的发送调度周期是调度周期a0,第一网络设备上与调度周期a0对应的目标调度周期是调度周期b3,即调度周期a0与调度周期b3具有映射关系,当然,上述映射关系只是示例,对此不做限制。为区分方便,将目标调度周期记为Anchor,即Anchor为调度周期b3。
以Anchor为基准,前后延伸一定范围作为合理的抖动区间,如向前延伸第一数量阈值的调度周期,将第一数量阈值设为Jitter1,如Jitter1的值可以为1,向后延伸第二数量阈值个调度周期,将第二数量阈值设为Jitter2,如Jitter2的值可以为1,因此,合理的抖动区间是调度周期b2、调度周期b3和调度周期b4。
当经过一段时间后,针对第二网络设备向第一网络设备发送的报文,若该报文到达第一网络设备时,第一网络设备正在调度的是调度周期b2、调度周期b3或调度周期b4,则表示不需要对调度周期的初始时长进行调整。若该报文到达第一网络设备时,第一网络设备正在调度的是调度周期b1,则表示报文到达的调度周期比较靠前,需要对调度周期的初始时长进行调整,如降低调度周期的初始时长,使得报文到达的调度周期能够位于调度周期b2、调度周期b3或调度周期b4。若该报文到达第一网络设备时,第一网络设备正在调度的是调度周期b5、调度周期b6、调度周期b7,则表示报文到达的调度周 期比较靠后,需要对调度周期的初始时长进行调整,如增加调度周期的初始时长,使得报文到达的调度周期能够位于调度周期b2、调度周期b3或调度周期b4。
其中,针对位于合理的抖动区间之前的调度周期,如调度周期b0和调度周期b1等,可以将这些调度周期所在区域称为向前调整区间,设为Area1。针对位于合理的抖动区间之后的调度周期,如调度周期b5、调度周期b6和调度周期b7等,可以将这些调度周期所在区域称为向后调整区间,设为Area2。
为了避免剧烈调整引起相邻报文间的抖动过大,本实施例中,可以采用渐近式调节方式,对调度周期的初始时长进行调整,即确定调度周期的调整总数量K,经过K个调度周期完成初始时长的调整。假设调度周期的初始时长为C,单位为ticks(时钟计数单位),接收调度周期与目标调度周期之间的间隔周期数量为TsNum,每个调度周期需要调整的ticks(时长调整量)为Jitter_Adjustment。当需要增加调度周期的初始时长时,Jitter_Adjustment为正数值,当需要降低调度周期的初始时长时,Jitter_Adjustment为负数值。基于此,将调度周期的调整总数量记为Adjust_Counter,则Adjust_Counter=C*TsNum/|Jitter_Adjustment|。
假设产生调度周期的定时器的时钟频率为1G,即每个tick为1ns,表示每隔1ns(即每个tick)产生一个时钟信号,调度周期的初始时长为30us,则计数30000个ticks对应一次调度周期,因此,C为30000,C表示初始时长对应的第一时钟计数数量。如果接收调度周期为调度周期b1,目标调度周期为调度周期b3,则接收调度周期与目标调度周期之间的间隔周期数量为2,即TsNum为2。
由于接收调度周期位于目标调度周期的前面,且间隔周期数量2大于第一数量阈值1,因此,可以基于时长调整量Jitter_Adjustment对初始时长进行降低调整,如缩短调度周期的初始时长,也就是减少定时器计数ticks,假设每次调整的Jitter_Adjustment为-1000,“-”表示对初始时长进行降低调整,那么,初始时长对应30000个ticks时,降低调整后的目标时长对应29000个ticks。
示例性的,基于Jitter_Adjustment、C和TsNum,采用如下方式确定调度周期的调整总数量Adjust_Counter:Adjust_Counter=C*TsNum/|Jitter_Adjustment|=30000*2/1000=60。综上所述,可以将每个调度周期从初始时长30us调整为目标时长(30us-1us),在经过60次调整时,一共调整的时长是29us*60=1.74ms,将调度周期的调整过程延展到1.74ms中,每个调度周期减少1000ns,宏观上几乎感知不到,因此,调度周期的变化引起的报文抖动可以忽略不计。
如果接收调度周期为调度周期b5,目标调度周期为调度周期b3,则接收调度周期与目标调度周期之间的间隔周期数量为2,即TsNum为2。
由于接收调度周期位于目标调度周期的后面,且间隔周期数量2大于第二数量阈值1,因此,可以基于时长调整量Jitter_Adjustment对初始时长进行增加调整,如加长调度周期的初始时长,也就是增加定时器计数ticks,假设每次调整的Jitter_Adjustment为+1000,“+”表示对初始时长进行增加调整,那么,初始时长对应30000个ticks时,增加调整后的目标时长对应31000个ticks。
示例性的,基于Jitter_Adjustment、C和TsNum,采用如下方式确定调度周期的调整总数量Adjust_Counter:Adjust_Counter=C*TsNum/|Jitter_Adjustment|=30000*2/1000=60。综上所述,可以将每个调度周期从初始时长30us调整为目标时长(30us+1us),在经过60次调整时,一共调整的时长是31us*60=1.86ms,将调度周期的调整过程延展到1.86ms中,每个调度周期增加1000ns,宏观上几乎感知不到,因此,调度周期的变化引起的报文抖动可以忽略不计。
通过上述调度周期的调整过程,针对第二网络设备在调度周期a0发送的报文,在该报文到达第一网络设备时,第一网络设备的接收调度周期能够被调节到基准点Anchor(即目标调度周期)附近,即保持合理的抖动范围区间。
下面分析调度周期调整过程的有效性和约束。参见图6A所示,为正常调度周期的示意图,CPU进行确定性流调度的发送时间只占2个时间单位,每个发送调度周期占16个时间单位,确定性流在端口中发送时间占8个时间单位,尽力而为流在端口中发送时间占8个时间单位。参见图6B所示,为调度周期向前调整1个时间单位的示意图,向前调整相当于缩短调度周期长度,即减小调度周期内转发的确定性流的报文,但从功能上并不会引起在调度周期内发送不完确定性流的报文,具体理由如下:每个调度周期的调整量非常小;为了保证转发的确定性,为每个调度周期分配的确定性流量会留有余量;因为调节引入,积累误差不会单向持续积累。参见图6C所示,为调度周期向后调整1个时间单位的示意图,向后调整相当于增加调度周期长度,即增加调度周期内转发的确定性流的报文,但从功能上并不会引起在调度周期内发送不完确定性流的报文。综上所述,无论向前调整还是向后调整都不会影响周期性调度转发的功能。
在一种可能的实施方式中,第二网络设备为上游节点,第一网络设备为下游节点,第二网络设备向第一网络设备发送报文,本实施例中以测试报文为例。第二网络设备以一定周期发送测试报文,且第二网络设备固定以调度周期a0发送测试报文,也就是说,在每个调度周期a0,向第一网络设备发送测试报文。
第一网络设备在接收到测试报文之后,确定测试报文在第二网络设备上的发送调度周期是调度周期a0。第一网络设备确定本设备上与调度周期a0对应的目标调度周期,记为Anchor,如目标调度周期是调度周期b3。第一网络设备还可以确定测试报文在本设备上的接收调度周期,将接收调度周期记为Current。
在此基础上,可以将Current与Anchor进行比较,若Current超出Anchor的合理抖动范围,则确定需要对调度周期的初始时长进行调整,若Current未超出Anchor的合理抖动范围,则确定不需要对调度周期的初始时长进行调整。
比如说,假设调度周期的数量为d(d>7),即一共存在d个CQ,d个调度周期与d个CQ一一对应,目标调度周期为Anchor,合理抖动范围为3个调度周期,接收调度周期为Current,在此基础上,可以采用如下步骤确定初始时长的调整方向(即对初始时长进行增加调整,或者对初始时长进行降低调整)和调整量(即接收调度周期与目标调度周期之间的间隔周期数量TsNum):
步骤S11、计算调整周期数量Adjust=(Current+d-Anchor)mod d。
步骤S12、如果Adjust大于d/2,则确定初始时长的调整方向是前向调整,并确定调整量为(d-Adjust)个调度周期;如果Adjust不大于d/2,则确定初始时长的调整方向是后向调整,并确定调整量为Adjust个调度周期。
其中,前向调整表示降低调度周期的初始时长,调整量为(d-Adjust)个调度周期表示,间隔周期数量TsNum为d-Adjust。后向调整表示增加调度周期的初始时长,调整量为Adjust个调度周期表示,间隔周期数量TsNum为Adjust。
步骤S13、设置时长调整量Jitter_Adjustment的取值,Jitter_Adjustment的绝对值可以全局设定,如1000等。Jitter_Adjustment的正负性可以基于调整方向确定,例如,若初始时长的调整方向是前向调整,即需要降低调度周期的初始时长时,Jitter_Adjustment为负数,即符号为“-”,若初始时长的调整方向是后向调整,即需要增加调度周期的初始时长时,Jitter_Adjustment为正数,即符号为“+”。
步骤S14、基于间隔周期数量TsNum和时长调整量Jitter_Adjustment确定调度周期的调整总数量Adjust_Counter,确定方式参见上述示例,在此不再赘述。
在一种可能的实施方式中,为了支持上述确定性网络的调度周期调整功能,本实施例中,关于网络设备的结构和功能(本实施例中以第一网络设备的结构和功能为例,其它网络设备的结构和功能类似),可以采用如下几种方式:
方式1、参见图7A所示,第一网络设备可以包括硬件定时器和确定性转发单元,该确定性转发单元可以包括转发模块、会话管理模块和调度周期管理模块。在该方式下,硬件定时器用于接收时钟输入信号,且硬件定时器基于时钟输入信号确定时钟信号累积数量;在时钟信号累积数量达到目标时长对应的第二时钟计数数量时,产生触发信号,该触发信号的产生时刻作为当前调度周期的结束时刻,且该触发信号的产生时刻作为当前调度周期的下一个调度周期的开始时刻。其中,硬件定时器产生的相邻两个触发信号之间的间隔为目标时长。
1、会话管理模块。会话管理模块用于与第二网络设备建立会话,这个会话的功能是,第二网络设备通过该会话定时向第一网络设备发送测试报文,该测试报文的发送周期T根据误差积累快慢情况进行设置,对此不做限制,通过该测试报文触发确定性网络的调度周期调整过程。当然,在实际应用中,也可以使用属于确定性流的数据报文触发确定性网络的调度周期调整过程。
会话管理模块可以从转发模块接收调度周期信息,该调度周期信息可以包括但不限于:转发模块接收到测试报文时的Temp_CSQF_Jiffies、节点标识、CSQF参数。其中,Temp_CSQF_Jiffies表示调度周期全局计数(CSQF_Jiffies)的数值,用于确定第一网络设备的当前调度周期,比如说,Temp_CSQF_Jiffies为1时,表示第一个调度周期,如调度周期b0,Temp_CSQF_Jiffies为2时,表示第二个调度周期,如调度周期b1,以此类推。节点标识表示第二网络设备的节点标识。CSQF参数可以包括出接口信息,即测试报文对应的出接口信息。
会话管理模块可以维护会话信息表,该会话信息表包括但不限于:UpNodeId、InterfaceId和Anchor之间的映射关系。其中,UpNodeId表示第二网络设备的节点标识,可以由用户手动设定,也可以是设备唯一标识,如IP地址等,只要具有唯一性即可。InterfaceId表示第一网络设备的接口标识,可以由用户手动设定。
Anchor表示调度周期的标识,用于表示与第二网络设备的指定调度周期对应的关联调度周期,也就是说,第二网络设备在指定调度周期发送的报文,这个报文到达第一网络设备后,应该将该报文存储到该关联调度周期对应的CQ。
其中,指定调度周期和关联调度周期之间的映射关系,也就是第二网络设备的调度周期与第一网络设备的调度周期之间的映射关系,该映射关系可以是预先配置,或者采用某种算法测定,对此映射关系的获取方式不做限制。
本实施例中,假设第二网络设备在指定调度周期是调度周期a0,第一网络设备的关联调度周期是调度周期b3,在此基础上,会话信息表中的Anchor表示调度周期b3的标识,也就是说,通过Anchor的取值就可以获知调度周期b3。
会话管理模块从转发模块接收到调度周期信息之后,可以通过节点标识和出接口信息为索引,查询会话信息表,从而得到Anchor的取值,并基于Anchor的取值确定关联调度周期。若Anchor表示调度周期b3的标识,则确定关联调度周期是调度周期b3,且调度周期b3与第二网络设备的调度周期a0对应。
基于第二网络设备的发送调度周期、第二网络设备的指定调度周期、第一网络设备 的关联调度周期,可以确定第一网络设备上与该发送调度周期对应的目标调度周期。比如说,发送调度周期与指定调度周期之间的间隔周期数量,可以等于目标调度周期与关联调度周期之间的间隔周期数量。比如说,若第二网络设备的发送调度周期是调度周期a0,即测试报文在调度周期a0发送,则表示第二网络设备的发送调度周期与指定调度周期相同,因此,确定第一网络设备的目标调度周期与关联调度周期相同,即目标调度周期是调度周期b3。
综上所述,会话管理模块可以确定出目标调度周期,如调度周期b3。
会话管理模块从转发模块接收到调度周期信息之后,还可以根据调度周期信息中的Temp_CSQF_Jiffies确定第一网络设备的接收调度周期,将该接收调度周期记为Current,表示第一网络设备在该接收调度周期内接收到测试报文。
基于目标调度周期Anchor和接收调度周期Current,会话管理模块采用步骤S11-步骤S14确定调整周期数量Adjust、调整方向、间隔周期数量TsNum、时长调整量Jitter_Adjustment、调整总数量Adjust_Counter等参数,在此不再赘述。
2、硬件定时器。硬件定时器是CPU内部高精度硬件定时器,可以根据配置参数产生触发信号。硬件定时器的输入是系统时钟的时钟输入信号,若系统时钟的频率为1G,即每tick为1ns,表示每隔1ns产生一个时钟输入信号,那么,硬件定时器每隔1ns可以接收到一个时钟输入信号,并基于时钟输入信号确定时钟信号累积数量,即每次接收到时钟输入信号时,将时钟信号累积数量加1。
调度周期管理模块可以将配置参数(如计数值)下发给硬件定时器,在调度周期的实际时长是初始时长时,则将初始时长对应的第一时钟计数数量作为计数值,如第一时钟计数数量为30000,在此基础上,当时钟信号累积数量每次达到第一时钟计数数量时,硬件定时器会产生触发信号,将触发信号输出给调度周期管理模块。由于基于第一时钟计数数量产生触发信号,则相邻两个触发信号之间的间隔与第一时钟计数数量匹配,即相邻两个触发信号之间的间隔为初始时长。此外,在调度周期的实际时长是目标时长时,则可以将目标时长对应的第二时钟计数数量作为计数值,如第二时钟计数数量为29000或31000,在此基础上,当时钟信号累积数量每次达到第二时钟计数数量时,硬件定时器会产生触发信号,将触发信号输出给调度周期管理模块。由于基于第二时钟计数数量产生触发信号,则相邻两个触发信号之间的间隔为目标时长。
示例性的,对于硬件定时器产生的触发信号,该触发信号的产生时刻作为当前调度周期的结束时刻,且该触发信号的产生时刻作为当前调度周期的下一个调度周期的开始时刻。触发信号可以是中断信号,也可以是其它类型的信号,对此不做限制,只要基于触发信号确定调度周期的开始时刻和结束时刻即可。
3、转发模块。转发模块用于接收第二网络设备发送的测试报文,并从该测试报文中获取第二网络设备的节点标识和CSQF参数(如该测试报文对应的出接口信息等),并从调度周期管理模块获取Temp_CSQF_Jiffies,将该节点标识、该CSQF参数和Temp_CSQF_Jiffies构成调度周期信息,并将该调度周期信息发送给会话管理模块,由会话管理模块基于该调度周期信息确定Adjust_Counter和Jitter_Adjustment等参数,具体过程参见会话管理模块的相关功能。
4、调度周期管理模块。调度周期管理模块用于接收硬件定时器产生的触发信号,每次接收到触发信号时更新Temp_CSQF_Jiffies,例如,第一次接收到触发信号时将Temp_CSQF_Jiffies更新为1,表示第一个调度周期,第二次接收到触发信号时将Temp_CSQF_Jiffies更新为2,表示第二个调度周期,以此类推。
调度周期管理模块从会话管理模块获取Jitter_Adjustment和Adjust_Counter等参 数,并基于Jitter_Adjustment和Adjust_Counter确定配置参数(如计数值),并将计数值下发给硬件定时器,对硬件定时器的计数值进行调整。
比如说,假设初始时长对应的第一时钟计数数量为30000,在调度周期的实际时长是初始时长时,调度周期管理模块将计数值30000下发给硬件定时器。
将调度周期的实际时长更新为目标时长后,若Jitter_Adjustment是“+1000”,则调度周期管理模块将计数值31000下发给硬件定时器,若Jitter_Adjustment是“-1000”,则调度周期管理模块将计数值29000下发给硬件定时器。
在将更新后的计数值31000或者计数值29000下发给硬件定时器之后,假设Adjust_Counter是60,那么,调度周期管理模块连续接收到60个触发信号之后,调度周期的实际时长更新为初始时长,且调度周期管理模块重新将计数值30000下发给硬件定时器,一直到下次对调度周期的实际时长进行更新。
示例性的,关于计数值的调整过程,参见图7B所示,可以采用如下步骤:
步骤S21、如果Adjust_Counter为0,则执行步骤S27,否则执行步骤S22。
步骤S22、如果Jitter_Adjustment为0,则执行步骤S24,否则执行步骤S23。
步骤S23、将硬件定时器的计数值写入C+Jitter_Adjustment,调整调度周期的实际时长,即将调度周期的实际时长从初始时长更新为目标时长。注意,这里的Jitter_Adjustment可以是正值,也可以是负值。在将硬件定时器的计数值写入C+Jitter_Adjustment之后,可以将Jitter_Adjustment设为0,并执行步骤S26。
根据实际情况,调度周期的调整过程可以延展到多个调度周期,而不是只调整一个调度周期,因此,在调整第一个调度周期之后,不会马上恢复调度周期,因此,将Jitter_Adjustment设为0之后,执行步骤S26,而不是执行步骤S24。
步骤S24、如果Adjust_Counter大于1,则执行步骤S26,否则执行步骤S25。
步骤S25、将硬件定时器的寄存器写入Jitter_Adjustment,恢复调度周期,执行步骤S26,即实际时长恢复为初始时长,将硬件定时器的计数值写入C。
步骤S26、将Adjust_Counter减1,并返回步骤S21。
步骤S27、进行定时器中断服务的其它处理。
方式2、参见图7C所示,第一网络设备可以包括硬件模块(以硬件定时器作为硬件模块为例)和确定性转发单元,确定性转发单元包括转发模块、会话管理模块和调度周期管理模块。硬件模块可以包括寄存器,硬件模块用于接收时钟输入信号,硬件模块每次接收到时钟输入信号时,基于时钟输入信号确定时钟信号累积数量,并通过硬件模块的寄存器存储时钟信号累积数量。在当前调度周期开始时,转发模块基于目标时长对应的第二时钟计数数量确定当前调度周期的时钟信号目标数量;转发模块从寄存器中查询时钟信号累积数量,若查询到的时钟信号累积数量达到该时钟信号目标数量,则确定当前调度周期已结束,并将当前调度周期的下一个调度周期更新为当前调度周期。
1、硬件定时器。硬件定时器的输入是系统时钟的时钟输入信号,若系统时钟的频率为1G,则硬件定时器每隔1ns可以接收到一个时钟输入信号。硬件定时器每次接收到时钟输入信号时,基于时钟输入信号确定时钟信号累积数量,即每次接收到时钟输入信号时,将时钟信号累积数量加1。每次接收到时钟输入信号时,可以通过硬件定时器的寄存器存储该时钟信号累积数量。
与方式1相比,在方式2中,硬件定时器只是将时钟信号累积数量存储到寄存器中,而不会产生触发信号,将触发信号输出给调度周期管理模块,调度周期管理模块 也不需要将配置参数(如计数值)下发给硬件定时器。
2、会话管理模块。会话管理模块从转发模块接收调度周期信息,该调度周期信息包括但不限于:Temp_CSQF_Jiffies、节点标识、CSQF参数。会话管理模块基于调度周期信息查询会话信息表,得到关联调度周期,并确定目标调度周期。会话管理模块根据Temp_CSQF_Jiffies确定接收调度周期。基于目标调度周期和接收调度周期,确定调整周期数量Adjust、调整方向、间隔周期数量TsNum、时长调整量Jitter_Adjustment、调整总数量Adjust_Counter等参数。
3、转发模块。转发模块用于接收第二网络设备发送的测试报文,并从该测试报文中获取第二网络设备的节点标识和CSQF参数,并从调度周期管理模块获取Temp_CSQF_Jiffies,将该节点标识、该CSQF参数和Temp_CSQF_Jiffies构成调度周期信息,并将该调度周期信息发送给会话管理模块。
针对当前调度周期,在当前调度周期开始时,假设时钟信号初始数量是x(表示硬件定时器的寄存器中存储的时钟信号累积数量为x),在此基础上,转发模块可以确定当前调度周期的时钟信号目标数量。比如说,在调度周期的实际时长是初始时长时,则转发模块确定初始时长对应的第一时钟计数数量,如30000,并将初始数量x与第一时钟计数数量之和作为当前调度周期的时钟信号目标数量。在调度周期的实际时长更新为目标时长时,则转发模块确定目标时长对应的第二时钟计数数量,如29000或者31000,并将初始数量x与第二时钟计数数量之和作为当前调度周期的时钟信号目标数量。
基于当前调度周期的时钟信号目标数量,转发模块从硬件定时器的寄存器查询时钟信号累积数量,若查询到的时钟信号累积数量未达到该时钟信号目标数量,则保持当前调度周期。若查询到的时钟信号累积数量达到该时钟信号目标数量,则确定当前调度周期已结束,将当前调度周期的下一个调度周期更新为当前调度周期,且该时钟信号目标数量作为该调度周期的时钟信号初始数量x。
其中,调度周期管理模块可以将配置参数下发给转发模块,如将初始时长对应的第一时钟计数数量或者目标时长对应的第二时钟计数数量下发给转发模块,由转发模块基于该配置参数确定当前调度周期的时钟信号目标数量。
其中,转发模块确定时钟信号累积数量达到时钟信号目标数量时,可以产生触发信号,并将触发信号输出给调度周期管理模块。其中,对于转发模块产生的触发信号,该触发信号的产生时刻作为当前调度周期的结束时刻,且该触发信号的产生时刻作为当前调度周期的下一个调度周期的开始时刻。
4、调度周期管理模块。调度周期管理模块用于接收转发模块产生的触发信号,在每次接收到触发信号时,可以更新Temp_CSQF_Jiffies。调度周期管理模块从会话管理模块获取Jitter_Adjustment和Adjust_Counter等参数,并能够基于Jitter_Adjustment和Adjust_Counter确定配置参数,并将配置参数下发给转发模块,调度周期管理模块的实现方式可以参见方式1,在此不再重复赘述。
方式3、参见图7D所示,第一网络设备可以包括周期调节单元和确定性转发单元,确定性转发单元可以包括转发模块、会话管理模块和调度周期管理模块。周期调节单元可以包括控制逻辑(如FPGA、CPLD、ASIC)、第一寄存器、第二寄存器和第三寄存器。控制逻辑用于接收时钟输入信号,第一寄存器用于存储初始时长对应的第一时钟计数数量,第二寄存器用于存储时长调整量Jitter_Adjustment,第三寄存器用于存储调度周期的调整总数量Adjust_Counter。其中,对于第二寄存器来说,最高位可以为符号位,1表示“-”,0表示“+”,而第二寄存器的最高位之外的其余位表示|Jitter_Adjustment|。
在该方式下,控制逻辑基于第一时钟计数数量和时长调整量确定目标时长对应 的第二时钟计数数量;基于时钟输入信号确定时钟信号累积数量;在时钟信号累积数量达到第二时钟计数数量时,可以产生触发信号;其中,触发信号的产生时刻作为当前调度周期的结束时刻,且触发信号的产生时刻作为当前调度周期的下一个调度周期的开始时刻。控制逻辑在基于第二时钟计数数量产生Adjust_Counter个触发信号之后,继续基于时钟输入信号确定时钟信号累积数量,在时钟信号累积数量达到初始时长对应的第一时钟计数数量时,产生触发信号。
1、会话管理模块。会话管理模块从转发模块接收调度周期信息,该调度周期信息包括但不限于:Temp_CSQF_Jiffies、节点标识、CSQF参数。会话管理模块基于调度周期信息查询会话信息表,得到关联调度周期,并确定目标调度周期。会话管理模块根据Temp_CSQF_Jiffies确定接收调度周期。基于目标调度周期和接收调度周期,确定调整周期数量Adjust、调整方向、间隔周期数量TsNum、时长调整量Jitter_Adjustment、调整总数量Adjust_Counter等参数。
示例性的,会话管理模块可以将Jitter_Adjustment写入到周期调节单元中的第二寄存器,并将Adjust_Counter写入到周期调节单元中的第三寄存器。
2、转发模块。转发模块用于接收第二网络设备发送的测试报文,并从该测试报文中获取第二网络设备的节点标识和CSQF参数,并从调度周期管理模块获取Temp_CSQF_Jiffies,将该节点标识、该CSQF参数和Temp_CSQF_Jiffies构成调度周期信息,并将该调度周期信息发送给会话管理模块。
3、调度周期管理模块。调度周期管理模块用于接收控制逻辑产生的触发信号,每次接收到触发信号时更新Temp_CSQF_Jiffies。调度周期管理模块确定初始时长对应的第一时钟计数数量,并将第一时钟计数数量写入到第一寄存器。
4、控制逻辑。控制逻辑的输入是系统时钟的时钟输入信号,若系统时钟的频率为1G,则每隔1ns接收到一个时钟输入信号,并基于时钟输入信号确定时钟信号累积数量,即每次接收到时钟输入信号时,将时钟信号累积数量加1。
在初始状态下,调度周期的实际时长是初始时长,第一寄存器存储第一时钟计数数量,第二寄存器和第三寄存器为空,基于此,当时钟信号累积数量每次达到第一时钟计数数量时,控制逻辑会产生触发信号,并将触发信号输出给调度周期管理模块,控制逻辑产生的相邻两个触发信号之间的间隔为初始时长。
当调度周期的实际时长更新为目标时长时,会话管理模块将Adjust_Counter写入到第三寄存器,将Jitter_Adjustment写入到第二寄存器,控制逻辑获知第二寄存器和第三寄存器写入数据后,从第一寄存器读取第一时钟计数数量,从第二寄存器读取Jitter_Adjustment,并基于第一时钟计数数量和Jitter_Adjustment确定目标时长对应的第二时钟计数数量。基于此,当时钟信号累积数量每次达到第二时钟计数数量时,控制逻辑会产生触发信号,并将触发信号输出给调度周期管理模块,控制逻辑产生的相邻两个触发信号之间的间隔为目标时长。
示例性的,对于控制逻辑产生的触发信号,该触发信号的产生时刻作为当前调度周期的结束时刻,且该触发信号的产生时刻作为当前调度周期的下一个调度周期的开始时刻。触发信号可以是中断信号,也可以是其它类型的信号,对此不做限制,只要基于触发信号确定调度周期的开始时刻和结束时刻即可。
示例性的,控制逻辑可以从第三寄存器中读取Adjust_Counter,在基于第二时钟计数数量产生Adjust_Counter个触发信号之后,调度周期的实际时长更新为初始时长,即从目标时长恢复为初始时长,因此,控制逻辑从第一寄存器读取第一时钟计数数量,并基于第一时钟计数数量产生触发信号,比如说,当时钟信号累积数量每次达到第一时 钟计数数量时,控制逻辑会产生触发信号,并将触发信号输出给调度周期管理模块,相邻两个触发信号之间的间隔为初始时长。
示例性的,参见图7E所示,关于控制逻辑的处理流程,可以包括以下步骤:
步骤S31、在上电初始化之后,将第一时钟计数数量写入第一寄存器,控制逻辑将AdjustEvent(调整事件)初始化为0。控制逻辑从第一寄存器中读取第一时钟计数数量写入CounterValue(计数值),用CounterValue产生触发信号,该触发信号可以是中断信号,也可以是其它类型信号,后续以中断信号为例。
步骤S32、在运行过程中,控制逻辑判断是否发生针对第二寄存器的写操作。若否,则继续判断是否发生针对第二寄存器的写操作,以此类推。若是,则控制逻辑将AdjustEvent修改为1。其中,会话管理模块可以将Jitter_Adjustment写入到第二寄存器,将Adjust_Counter写入到第三寄存器,因此,控制逻辑能够捕获到针对第二寄存器的写操作。其中,会话管理模块可以先进行第二寄存器的写操作,在第二寄存器的写操作完成之后,才进行第三寄存器的写操作。
步骤S33、控制逻辑在产生中断信号时,判断AdjustEvent是否为1。若为1,则将AdjustEvent设置为0,并执行步骤S34。若不为1,则执行步骤S36。
步骤S34、控制逻辑从第三寄存器中读取Adjust_Counter,将Adjust_Counter写入到AdjustCount(调整数量)。控制逻辑从第一寄存器中读取第一时钟计数数量BaseCounter,从第二寄存器中读取Jitter_Adjustment,并执行步骤S35。
步骤S35、若Jitter_Adjustment的最高位为1,则控制逻辑可以将BaseCounter减去Jitter_Adjustment去掉最高位后的值作为第二时钟计数数量,写入CounterValue。若Jitter_Adjustment的最高位为0,则可以将BaseCounter加上Jitter_Adjustment去掉最高位后的值作为第二时钟计数数量,写入CounterValue。
步骤S36、若AdjustCount不为0,则控制逻辑基于CounterValue产生中断信号(即时钟信号累积数量达到CounterValue中的数值时产生中断信号),并将AdjustCount减一。若AdjustCount为0,则控制逻辑从第一寄存器中读取第一时钟计数数量写入CounterValue,用CounterValue产生触发信号。
方式4、参见图7F所示,第一网络设备可以包括硬件模块(以控制逻辑作为硬件模块为例)和确定性转发单元,控制逻辑可以包括寄存器,控制逻辑用于接收时钟输入信号,每次接收到时钟输入信号时,基于时钟输入信号确定时钟信号累积数量,并通过寄存器存储时钟信号累积数量。方式4的实现方式与方式2类似,将硬件定时器替换为控制逻辑即可,在此不再重复赘述。
由以上技术方案可见,本申请实施例中,基于CSQF实现确定性网络的报文传输,通过调整确定性网络的调度周期的实际时长(即从初始时长调整为目标时长),从而动态控制确定性网络的调度周期,能够使得CSQF不依赖严格的频率同步,并能够适应链路传输时延变化,从而大大增强了CSQF在广域网中的适应性,可以通过实现CSQF来提供确定性传输能力,对正在进行的传输服务不产生影响。通过感知并量化相邻网络设备之间的周期映射积累差异,建立一种机制对积累差异进行调整,使得积累差异的调整过程平滑,当积累误差达到一定阈值时,将积累误差转化为需要调整的量,以平滑的方式实现多个调度周期的时长调整,当调整量达到后,调度周期的时长恢复到初始时长。
基于与上述方法同样的申请构思,本申请实施例中提出一种网络设备,该网络设备可以包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现本申请上 述示例公开的调度周期调整方法。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的调度周期调整方法。
其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (11)

  1. 一种调度周期调整方法,其特征在于,应用于第一网络设备,包括:
    在接收到第二网络设备发送的报文后,确定所述报文在第二网络设备上的发送调度周期,并确定所述报文在第一网络设备上的接收调度周期;
    确定所述第一网络设备上与所述发送调度周期对应的目标调度周期;其中,所述报文与所述目标调度周期对应的周期队列CQ对应;
    若基于所述接收调度周期与所述目标调度周期之间的间隔周期数量,确定需要对调度周期的初始时长进行调整,则将所述第一网络设备上的调度周期的实际时长从所述初始时长调整为目标时长。
  2. 根据权利要求1所述的方法,其特征在于,所述确定所述第一网络设备上与所述发送调度周期对应的目标调度周期,包括:
    获取所述第二网络设备的节点标识和所述报文对应的出接口信息;
    基于所述节点标识和所述出接口信息查询已配置的会话信息表,得到与所述第二网络设备的指定调度周期对应的关联调度周期;其中,所述会话信息表包括节点标识、出接口信息以及关联调度周期之间的映射关系;
    基于所述发送调度周期、所述关联调度周期和所述指定调度周期,确定所述第一网络设备上与所述发送调度周期对应的目标调度周期。
  3. 根据权利要求1所述的方法,其特征在于,
    所述基于所述接收调度周期与所述目标调度周期之间的间隔周期数量,确定需要对调度周期的初始时长进行调整,包括:
    若所述接收调度周期位于所述目标调度周期的前面,且所述间隔周期数量大于第一数量阈值,则确定需要对调度周期的初始时长进行调整;
    若所述接收调度周期位于所述目标调度周期的后面,且所述间隔周期数量大于第二数量阈值,则确定需要对调度周期的初始时长进行调整。
  4. 根据权利要求1所述的方法,其特征在于,所述将所述第一网络设备上的调度周期的实际时长从所述初始时长调整为目标时长,包括:
    若所述接收调度周期位于所述目标调度周期的前面,则基于已配置的时长调整量对所述初始时长进行降低调整,得到调整后的目标时长;
    若所述接收调度周期位于所述目标调度周期的后面,则基于该时长调整量对所述初始时长进行增加调整,得到调整后的目标时长。
  5. 根据权利要求1所述的方法,其特征在于,所述将所述第一网络设备上的调度周期的实际时长从所述初始时长调整为目标时长,包括:
    基于所述初始时长对应的第一时钟计数数量、已配置的时长调整量和所述间隔周期数量确定调度周期的调整总数量K,将所述第一网络设备上的连续K个调度周期的实际时长更新为所述目标时长;
    所述将所述第一网络设备上的连续K个调度周期的实际时长更新为所述目标时长之后,所述方法还包括:将所述第一网络设备上的调度周期的实际时长从所述目标时长更新为所述初始时长。
  6. 根据权利要求1-5任一项所述的方法,其特征在于,所述第一网络设备包括硬件定时器,所述硬件定时器用于接收时钟输入信号;所述将所述第一网络设备上的调度周期的实际时长从所述初始时长调整为目标时长,包括:
    所述硬件定时器基于所述时钟输入信号确定时钟信号累积数量;在所述时钟信号累积数量达到所述目标时长对应的第二时钟计数数量时,产生触发信号;
    其中,所述触发信号的产生时刻作为当前调度周期的结束时刻,且所述触发信号的产生时刻作为当前调度周期的下一个调度周期的开始时刻。
  7. 根据权利要求1-5任一项所述的方法,其特征在于,
    所述第一网络设备包括控制逻辑、第一寄存器和第二寄存器,所述控制逻辑用于接收时钟输入信号,所述第一寄存器用于存储所述初始时长对应的第一时钟计数数量,所述第二寄存器用于存储已配置的时长调整量;所述将所述第一网络设备上的调度周期的实际时长从所述初始时长调整为目标时长,包括:
    所述控制逻辑基于所述第一时钟计数数量和所述时长调整量确定所述目标时长对应的第二时钟计数数量;基于所述时钟输入信号确定时钟信号累积数量;在所述时钟信号累积数量达到所述第二时钟计数数量时,产生触发信号;
    其中,所述触发信号的产生时刻作为当前调度周期的结束时刻,且所述触发信号的产生时刻作为当前调度周期的下一个调度周期的开始时刻。
  8. 根据权利要求7所述的方法,其特征在于,所述第一网络设备包括第三寄存器,所述第三寄存器用于存储调度周期的调整总数量K,所述方法还包括:
    所述控制逻辑基于所述第二时钟计数数量产生K个触发信号之后,继续基于所述时钟输入信号确定时钟信号累积数量,在所述时钟信号累积数量达到所述初始时长对应的所述第一时钟计数数量时,则产生触发信号。
  9. 根据权利要求1-5任一项所述的方法,其特征在于,所述第一网络设备包括硬件模块和转发模块,所述硬件模块用于接收时钟输入信号;所述将所述第一网络设备上的调度周期的实际时长从所述初始时长调整为目标时长,包括:
    所述硬件模块在每次接收到时钟输入信号时,基于时钟输入信号确定时钟信号累积数量,并通过所述硬件模块的寄存器存储所述时钟信号累积数量;
    在当前调度周期开始时,所述转发模块基于所述目标时长对应的第二时钟计数数量确定当前调度周期的时钟信号目标数量;
    所述转发模块从所述寄存器中查询时钟信号累积数量,若查询到的时钟信号累积数量达到所述时钟信号目标数量,则确定当前调度周期已结束,并将当前调度周期的下一个调度周期更新为当前调度周期。
  10. 根据权利要求1-5任一项所述的方法,其特征在于,所述报文为测试报文或属于确定性流的数据报文,若所述报文为数据报文,所述方法还包括:
    将所述数据报文存储到所述目标调度周期对应的CQ;在所述目标调度周期内,将所述目标调度周期对应的CQ中的数据报文发送给外部设备。
  11. 一种网络设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现权利要求1-10任一所述的方法步骤。
PCT/CN2021/142635 2021-12-29 2021-12-29 一种调度周期调整方法及网络设备 WO2023123102A1 (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202180004325.5A CN116686353A (zh) 2021-12-29 2021-12-29 一种调度周期调整方法及网络设备
PCT/CN2021/142635 WO2023123102A1 (zh) 2021-12-29 2021-12-29 一种调度周期调整方法及网络设备
JP2023574667A JP2024521222A (ja) 2021-12-29 2021-12-29 スケジューリングサイクルを調整する方法およびネットワークデバイス
EP21969470.0A EP4340495A1 (en) 2021-12-29 2021-12-29 Scheduling cycle adjustment method and network device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/142635 WO2023123102A1 (zh) 2021-12-29 2021-12-29 一种调度周期调整方法及网络设备

Publications (1)

Publication Number Publication Date
WO2023123102A1 true WO2023123102A1 (zh) 2023-07-06

Family

ID=86996906

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/142635 WO2023123102A1 (zh) 2021-12-29 2021-12-29 一种调度周期调整方法及网络设备

Country Status (4)

Country Link
EP (1) EP4340495A1 (zh)
JP (1) JP2024521222A (zh)
CN (1) CN116686353A (zh)
WO (1) WO2023123102A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180035442A1 (en) * 2015-09-02 2018-02-01 Kabushiki Kaisha Toshiba Scheduling algorithm and method for time slotted channel hopping (tsch) mac
JP2020205617A (ja) * 2020-09-02 2020-12-24 オッポ広東移動通信有限公司Guangdong Oppo Mobile Telecommunications Corp., Ltd. 情報伝送方法及び装置
WO2021051368A1 (zh) * 2019-09-20 2021-03-25 华为技术有限公司 功率控制方法、装置及设备
CN112583510A (zh) * 2019-09-30 2021-03-30 华为技术有限公司 一种报文转发方法、设备及系统
CN112585914A (zh) * 2020-11-27 2021-03-30 新华三技术有限公司 报文转发方法、装置以及电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180035442A1 (en) * 2015-09-02 2018-02-01 Kabushiki Kaisha Toshiba Scheduling algorithm and method for time slotted channel hopping (tsch) mac
WO2021051368A1 (zh) * 2019-09-20 2021-03-25 华为技术有限公司 功率控制方法、装置及设备
CN112583510A (zh) * 2019-09-30 2021-03-30 华为技术有限公司 一种报文转发方法、设备及系统
JP2020205617A (ja) * 2020-09-02 2020-12-24 オッポ広東移動通信有限公司Guangdong Oppo Mobile Telecommunications Corp., Ltd. 情報伝送方法及び装置
CN112585914A (zh) * 2020-11-27 2021-03-30 新华三技术有限公司 报文转发方法、装置以及电子设备

Also Published As

Publication number Publication date
CN116686353A (zh) 2023-09-01
JP2024521222A (ja) 2024-05-28
EP4340495A1 (en) 2024-03-20

Similar Documents

Publication Publication Date Title
US11245634B2 (en) Time-sensitive networking (TSN) packet forwarding
US11303374B2 (en) Time determination of distributed events without distribution of reference time, phase, or frequency
JP5228714B2 (ja) 時刻同期方法および中継装置
US10623123B2 (en) Virtual HDBaseT link
JP2010527193A (ja) ネットワークコンポーネントのクロックを別のネットワークコンポーネントのクロックに同期させる方法及びネットワークコンポーネント
CN112385183B (zh) 执行phy级硬件时间戳和时间同步的装置、方法和微控制器
JP4987346B2 (ja) ネットワークを介した時間同期化システムおよび方法
US11552871B2 (en) Receive-side timestamp accuracy
WO2023283902A1 (zh) 一种报文传输方法及装置
JPWO2005067227A1 (ja) 負荷分散方法、ノード及び制御プログラム
JPWO2005067227A6 (ja) 負荷分散方法、ノード及び制御プログラム
CN103155488A (zh) 延迟测量系统和延迟测量方法以及延迟测量设备和延迟测量程序
US9307298B2 (en) System and method for video statistical multiplexing adapting to internet protocol networks
JP2012222833A (ja) 揺らぎの蓄積を克服して大きなネットワーク上で精密なクロック分配を達成するシステムおよび方法
KR100740731B1 (ko) 다수의 패킷 네트워크 상의 클록의 정렬 방법
WO2023123102A1 (zh) 一种调度周期调整方法及网络设备
JP2009206777A (ja) クロック同期システム、クロック同期方法、プログラム、及び記録媒体
CN102571561A (zh) 一种pwe3装置及其在抖动缓存读写数据的方法
WO2023123104A1 (zh) 一种报文传输方法及网络设备
US20070058564A1 (en) Method and device for managing data flow in a synchronous network
JP6827607B2 (ja) 中継装置、中継方法及び中継プログラム
Melvin et al. Time, Frequency and Phase Synchronisation for Multimedia—Basics, Issues, Developments and Opportunities
Qian et al. Awakening power of physical layer: High precision time synchronization for industrial Ethernet
Steiner Deterministic Ethernet for real-time and critical applications
WO2024016175A1 (zh) 确定性流传输方法、系统及电子设备

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 202180004325.5

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21969470

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023574667

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2021969470

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2021969470

Country of ref document: EP

Effective date: 20231214