Method, computer program and apparatus implemented in a packet-switched network for scheduling the transmission of ethernet frames - Patents.com
Patent Information
- Application Number
- JP2023574888
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-05-31
- Filing Date
- 2021-12-10
- Publication Date
- 2025-03-07
- Estimated Expiration
- 2041-12-10
Smart Images

Figure 0007642103000003 
Figure 0007642103000004 
Figure 0007642103000005
Abstract
Description
[Technical field]
[0001] The present invention relates to managing networks, such as industrial automation (IA) networks. [Background technology]
[0002] The IEC / IEEE 60802 joint standard specifies a Time Sensitive Network (TSN) profile for Industrial Automation (IA) networks by defining selected features from a set of IEEE 802.1 and IEEE 802.3 standards.
[0003] This choice is justified by the need to support the various types of traffic encountered in IA networks. These traffic types and their basic performance are described in the following subsections.
[0004] Below we discuss some IEC / IEEE 60802 traffic type categories.
[0005] To facilitate the mapping of application-related traffic types to TSN streams, we first define four traffic type categories that characterize the communications found in Industrial Automation (IA) networks.
[0006] Figure 1 shows the following diagram from top to bottom: IA time-aware stream, IA Stream, IA Traffic Engineering Non-Stream, IA non-stream, The characteristics of this are shown below.
[0007] Next, the IEC / IEEE60802 traffic types will be explained.
[0008] The first type concerns isochronous traffic. It is an IA time-aware stream type of traffic transmitted periodically with time-triggered transmission. The listeners have individual deadline requirements. The cycle times are usually in the range of microseconds to tens of milliseconds. The frame size is usually less than 500 octets. The talker-listener pair is synchronized to a working clock. The network is designed to have zero congestion loss for this traffic type. This type of traffic is usually used in control loop tasks.
[0009] The second type of traffic is cycle-synchronous, which refers to IA time-aware stream traffic that is transmitted periodically with time-triggered transmissions. Talker-listener pairs have individual latency requirements. Cycle times are typically in the range of 100 microseconds to 100 milliseconds. There are no constraints on frame size. Talker-listener pairs are synchronized to an operational clock. The network is designed to have zero congestion loss for this traffic type.
[0010] The third type of traffic is cycle-asynchronous, transmitted periodically and limited by the application clock, and concerns IA stream type traffic. Talker-listener pairs have individual latency requirements. Cycle times are typically in the range of milliseconds to seconds. There are no constraints on frame size. Data exchange between talker-listener pairs is typically independent of a running clock. This traffic type is typically tolerant of congestion losses. Networks are designed to handle this traffic type without losses up to a certain number of frames or data sizes.
[0011] The fourth type of traffic is for managing alarms and events, an IA traffic engineered non-stream type that is sent aperiodically. Bounded latency is expected for this traffic, with retransmission times ranging from milliseconds to hundreds of milliseconds. The alarm or event sender typically limits the bandwidth allocated to this traffic. There are no constraints on frame size. Retransmissions are expected to reduce frame loss. The network is designed to handle these frames, including bursts of frames, up to a certain number of frames or data size over a defined period of time.
[0012] The fifth type of traffic corresponds to IA traffic engineered non-stream types, transmitted aperiodically for configuration and diagnostics. Bounded latency is expected for this traffic, up to a few seconds, including retransmission time. The source of the configuration or diagnostic frames typically limits the bandwidth allocated to this traffic. There are no constraints on frame size. Retransmissions are expected to reduce frame loss. The network is designed to handle these frames, including bursts of frames, up to a certain number of frames or data size, over a defined period of time.
[0013] The sixth type is IA Traffic Engineered Non-Stream, which is for network control and can be sent periodically or aperiodically. Bounded latency is expected for this traffic, including retransmission time. There are no constraints on frame size. The network is designed to handle these frames, including bursts of frames, up to a certain number of frames or data size, over a defined period of time. This type includes network control frames. Examples include time synchronization, loop prevention, and topology detection.
[0014] Finally, the seventh type of traffic is scheduled as "best effort" and is an IA non-stream type: the network is designed to ensure that these frames do not interfere with other traffic types.
[0015] The IEC / IEEE 60802 standard proposes the following mapping between traffic types, traffic type categories and priorities available in an Ethernet network: [Table 1]
[0016] The network mechanisms for IA networks selected in the IEC / IEEE 60802 standard are primarily those defined in the various TSN standards specified in IEEE 802.1. As far as quality of service is concerned, these mechanisms are defined almost exclusively for bridges, and not for end stations.
[0017] However, through their network access, end stations must generate traffic that conforms to and potentially extends the mechanisms provided within the network.
[0018] In particular, the general per-traffic-class queuing model used in the IEEE 802.1Q standard is not sufficient to fully describe the behavior associated with the different timing requirements of TSN streams supporting the different traffic types described above: per-stream queues and per-frame-time transmission control must be introduced.
[0019] The combination of these standards and additional mechanisms provides a method to support controlled network access for all traffic classes.
[0020] To overcome this situation, OPC UA FLC proposed an end-station model that incorporates per-stream queuing and time-aware offset control. ("OPC" stands for "Open Platform Communications," "UA" stands for "Unified Architecture," and "FLC" stands for "Field Level Communications.")
[0021] These additional features allow the decoupling of middleware and applications from the Ethernet interface while supporting different Quality of Service (QoS) requirements. Figure 2 shows a summary of this model.
[0022] In practice, an end station can be a source of multiple TSN streams, with data for the different streams being generated by applications or middleware running on the end station. In this model, the different streams are mapped to different per-stream queues, as shown in Figure 2.
[0023] As long as the data frames are added to the respective per-stream queues before the transmission time, the time-aware offset control can release the data frames to the per-traffic class queues, which can then be processed by standardized IEEE 802.1Q mechanisms, some of which are described below.
[0024] Frames from the per-stream queues and frames from non-time aware traffic are queued at the end station output port (see IEEE 802.1Q-2018, Clause 8.6.8). The end station output port has eight queues to manage the traffic flow. Each of the per-stream queues and non-TSN stream queues is mapped to one of the eight per-traffic-class queues. And the usage of the per-traffic-class queues is based on the Priority Code Point (PCP) field in the VLAN-Tag (traffic-class-priority mapping). The PCP value is associated with the traffic class of the stream or the non-time aware traffic / frame. The mapping between the PCP field and the queues is handled by the network management function.
[0025] The transmission selection algorithm stage applies a per-traffic-class transmission selection algorithm to select frames to be transmitted from the corresponding queue. The strict priority transmission selection algorithm defined in Section 8.6.8.1 of IEEE 802.1Q-2018 is used.
[0026] Non-time aware data frames are also mapped to different traffic class queues. Depending on the type and level of QoS required, data frames of a TSN stream can use different traffic class queues than non-time aware traffic.
[0027] Additionally, the gate control list describes the transmit gate behavior for each traffic class queue. Each of the eight traffic class queues is scheduled to a known timescale so that IEEE 802.1Q-2018 clause 8.6.8.4 (ex-802.1Qbv) can control the timing and rate at which data frames are transmitted. In the model shown in Figure 2, a single transmit gate is used per traffic class queue. In 802.1Q, there can be up to eight traffic classes, and therefore up to eight transmit gates, which need to be controlled by the gate control list.
[0028] With transmit selection, available frames can be selected and delivered to either the preemptible MAC or the express MAC based on a transmit selection algorithm and a gate control list. Available data frames are selected according to their traffic class rank. This process is described in IEEE 802.1Q-2018, section 8.6.8. Transmit selection in a TSN talker works similarly to that in a bridge (from this point of view, a TSN talker can be viewed as if it were a single-port bridge).
[0029] MAC Control ("MAC" stands for "Medium Access Control"), together with Preemptible MAC (pMAC), Express MAC (eMAC) and MAC Merge sublayers, are used to support frame preemption functionality at the output ports of end stations. The MAC Merge sublayer supports distributing express traffic with preemptible traffic by adding eMAC and pMAC to a single Coordination Sublayer (RS) service (see IEEE 802.1Q-2018 clause 6.7.1 and IEEE 802.3 clause 99.4) using the MAC Merge sublayer.
[0030] If frame preemption is supported, each PCP value is assigned a preemption status that indicates whether the preemptibility value is "express" or "preemptible" (see Section 6.7.2 of IEEE 802.1Q-2018).
[0031] A frame having a PCP value corresponding to express preempts an ongoing transmission of a preemptible frame, allowing the express frame to avoid the latency associated with waiting for the completion of the transmission of the preemptible frame.
[0032] The model of output port behavior in an end station capable of supporting the different traffic types defined in the IEC / IEEE 60802 standard relies on the stacking of different mechanisms specified in the IEEE 802.1Q and OPC UA FLC standards.
[0033] However, this scheduling architecture, while modular in its initial approach, can ultimately add complexity and lead to inefficient implementations, especially in hardware. Summary of the Invention
[0034] The present invention aims to improve the above situation.
[0035] To that end, the present invention provides a method implemented in a packet-switched network for scheduling the transmission of Ethernet frames, comprising the steps of: a) determining a priority level of an Ethernet frame based on an identification information of data relating to the stream to which the Ethernet frame belongs, provided in each Ethernet frame to be transmitted, whereby the data frames belonging to a stream transmitted in successive periodic bursts and having a first priority level; a frame belonging to a rate controlled stream and having a second priority level; a frame belonging to a non-time-critical traffic stream and having a third priority level lower than the first priority level and the second priority level; To distinguish between b) determining, from among the frames having the highest priority level, a candidate frame having the closest next time point for the frame to be transmitted; c) estimating the end time of the transmission of the candidate, checking whether a frame having a higher priority than the candidate has a next transmission time occurring before the end time of the transmission of the candidate, and finally transmitting the candidate; The present invention proposes a method including:
[0036] Thus, the invention allows a fair scheduling of different types of frames, e.g. frames belonging to streams transmitted in periodic bursts ("CB stream bursts") as shown in dark and light grey in Fig. 7 described below, while other types of frames (RC, for "rate controlled" frames, and "best effort" frames (EF)) can be transmitted when periodic bursts are not being transmitted. Such is performed by the assignment of a priority level to each type of stream.
[0037] In one embodiment, after b), the closest next transmission time point mentioned above ("MinNextTxTime" in FIG. 11 described below) is p If the next nearest transmission time (called "p") is later than the current time (T) given by the common clock of the packet-switched network (step S4), then b) is repeated using the priority level resulting from the decrement of the highest priority level (p=p-1) as long as the nearest next transmission time determined in b) is later than the current time (T).
[0038] Therefore, it is required to transmit frames (or fragments of frames when non-time-critical traffic is preemptible) of lower priority levels, and usually the third priority level (the lowest), as long as the transmission time of the candidate frame has not expired.
[0039] Indeed, if the transmission time of a candidate frame with a higher priority level is about to expire, a frame belonging to a non-time-critical traffic (e.g., a best-effort "EF" stream) can be fragmented to transmit only a fragment of such a frame. Typically, such a frame is fragmented up to a minimum size fragment, thereby the duration of the transmission of such a frame (or frame fragment), and then, the time of the end of said transmission for carrying out step c), as defined above; It is possible to determine
[0040] This reasoning can potentially also be applied to rate controlled streams, if they are preemptible.
[0041] Thus, in one embodiment as shown in FIG. 11 (test S3), a frame belonging to a non-time-critical traffic stream and therefore having the lowest (third) priority level is identified as belonging to preemptible traffic and can be transmitted whenever no frames of the first and second priority levels are transmitted. Thus, the nearest next transmission time (MinNextTxTime p ) is after the current point in time (T) (S4), it is determined whether the candidate is a frame with a third priority level (arrow OK from test 3) and finally the candidate is defined as one which is at least partially transmitted (i.e. at least a fragment of the candidate)
[0042] In one embodiment shown in FIG. 12, before transmission, Ethernet frames can be stacked in a FIFO queue depending on the priority level of the Ethernet frame, so that each queue corresponds to one priority level, and has a priority level p and a nearest next transmission time (minNextTxTime p ) can be defined as the next candidate frame for transmission among all frames of priority level p.
[0043] So far, the frames belong to periodic burst streams (hereafter referred to as "CB frames"), so in order to implement b) with CB frames belonging to streams transmitted in successive periodic bursts (each CB stream having its own predefined burst transmission duration), the next transmission instant of the CB frame can be calculated based on the predefined burst transmission duration of the respective stream to which the CB frame pertains in order to determine the closest next transmission instant as mentioned above.
[0044] Indeed, periodic burst streams are transmitted at certain scheduled times and cannot tolerate any latency, hence their frames have the highest priority level.
[0045] Therefore, the schedule of their transmission should follow strict timing.
[0046] To this end, in one embodiment, the basic period of a network cycle (CyclePer as shown in FIG. 7) is determined as the greatest common denominator among the burst transmission periods of the streams to which the CB frames relate, and the next transmission time of a CB frame belonging to each stream having a different burst transmission period is determined relative to the start of one network cycle or successive network cycles.
[0047] Furthermore, the transmission of a burst of CB frames should not suffer from any interference from the transmission of other frames.
[0048] To that end, in one embodiment, at least one CB frame is selected as a candidate for the next CB frame transmission if the current time has not yet reached the estimated end of transmission of the burst to which the at least one CB frame belongs.
[0049] Thus, in this embodiment, for a CB frame candidate, the transmission end time of the next CB frame is calculated based on a given length of the next CB frame and compared with the estimated burst transmission end of the burst to which the CB frame candidate belongs, and the CB frame candidate is transmitted only if the transmission end time of the CB frame candidate occurs before the estimated burst transmission end.
[0050] The CB stream has the highest priority level: even if the queue of the CB stream is empty, a time window corresponding to the transmission duration of a burst of that CB stream is reserved in each period cycle of that CB stream.
[0051] As indicated above, CB frames have the highest priority level, therefore an intermediate (second) priority level (lower than the first) can be assigned to rate controlled traffic frames (hereafter referred to as RF frames).
[0052] In one embodiment, for an RC frame belonging to an express rate control stream and having a second priority level, before transmitting the RC frame, a transmission end time of the RC frame is calculated based on a given length of the RC frame, and the RC frame is determined to be transmitted only if the transmission end time occurs before the earliest of the nearest next times determined for any frame having a higher priority level than the RC frame.
[0053] The above-mentioned transmission end point of the RC frame is calculated based on the given length of the RC frame divided by the transmission rate of the network, thereby defining the duration of the transmission of the RC frame until the transmission end point.
[0054] In one embodiment, when transmitting this RC frame, the next transmission instant of the next RC frame of the same stream as the RC frame being transmitted is calculated based on the given length of the RC frame being transmitted.Then, the determination of the closest next instant is updated by taking into account the calculated next transmission instant.Here, in one embodiment, it can be chosen to calculate the next transmission instant of the RC frame based on the given length of the RC frame being transmitted divided by the transmission rate of the stream to which this RC frame belongs.
[0055] Typically, the frame length parameter (or directly, the frame transmission duration) may be indicated in the frame descriptor field of the frame. More generally, in one embodiment: The type of stream, the period of the periodic burst stream, Frame length, At least one of is derivable from the data presented in each frame, which data defines the stream content.
[0056] Typically, for example, source and destination addresses in the frame fields make it possible to identify a stream and assign an index to this stream. By analysis of new incoming frames, it is possible to look up such addresses and determine the associated stream context (such as periodic burst transmission or rate-controlled traffic). If a periodic timing of the transmission of frames in successive bursts is observed, it is also possible to determine the duration of a periodic burst stream.
[0057] The invention also relates to a computer program comprising instructions which, when executed by a processing circuit, cause the processing circuit to carry out a method as defined above. The invention also relates to a non-transitory computer storage medium storing instructions for such a computer program.
[0058] 6, 8, 9, 10 and 11 are flow charts which can typically show the overall algorithm of such a program.
[0059] The present invention also provides a processing circuit (PROC, MEM as presented in the example of FIG. 3 below) configured to implement the method defined above; a communications interface (COM, EGP) connected to a packet-switched network and configured to be operated by the processing circuitry for transmitting Ethernet frames when the transmission of the Ethernet frames is scheduled by the processing circuitry; The present invention also aims at an apparatus comprising:
[0060] Further details and advantages of the invention will become apparent from the detailed possible and optional embodiments and from the accompanying drawings. [Brief description of the drawings]
[0061] [Figure 1] FIG. 1 illustrates the characteristics of streams in an industrial automation network. [Diagram 2] A diagram illustrating the decoupling of middleware and applications running in end stations while supporting different QoS requirements. [Diagram 3] FIG. 2 illustrates an example of a device according to an embodiment of the present invention. [Figure 4] FIG. 2 illustrates different frames in a FIFO (first in, first out) queue and associated descriptor fields. [Diagram 5] FIG. 2 illustrates parameters that define a stream context for various types of frames. [Figure 6] 1 is an example of a flowchart of an algorithm for performing transmission of CB stream frames. [Figure 7] A diagram showing an example of the shape of each of two subsequent CB streams that do not have the same period of periodic burst transmission. [Figure 8] 13 is a flowchart of an example of an algorithm implemented for Express RC Stream frame transmission. [Figure 9] 13 is a flowchart of an example of an algorithm implemented for preemptible RC stream frame transmission. [Figure 10] 1 is a flowchart of an example of an algorithm implemented for EF (best effort) stream frame transmission. [Figure 11] 13 is a flow chart of an example of an algorithm implemented to schedule the transmission of frames with different types BC, RC and EF. [Figure 12] FIG. 1 illustrates queues per stream grouped by priority level. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0062] As presented in the following embodiments, the present invention allows centralizing in a single scheduling engine all the functionality required to support various standard traffic types, e.g.: Various IEC / IEEE60802 traffic types Compatibility with TSN standard QoS mechanisms implemented in IA network bridges; ○ 802.1Q clause 8.6.8.4, Improvements for Scheduled Traffic ○802.1Q clause 37, Extended Transmission Selection - Compatibility with frame preemption / fragmentation ○802.1Q Section 6.7.2, 802.3 Section 99.4 Optimal occupancy of transmission multiplexing
[0063] The proposed mechanism implements a frame transmission mechanism for shaping traffic emitted by industrial end stations conforming to the IEC / IEEE 60802 standard (TSN Profile for Industrial Automation Networks). It relies on a single scheduler that orders both stream transmission opportunities and individual frame transmissions based on a combination of fundamental characteristics of the streams.
[0064] The basic characteristics of a stream can typically be: Temporal behavior parameters: shape type and rate or period, and Priority for accessing transmission resources.
[0065] Instead of steering streams into traffic classes grouped as typically considered in the IEEE 802 standard, the scheduler exploits the limited number of streams handled by an end station and handles streams individually based on the above characteristics derived from the application requirements.
[0066] The proposed scheduler is a single stream shaping function capable of generating traffic shapes according to the various IEEE 802.1 standards (credit based shaping, scheduled traffic enhancement, enhanced transmit selection, asynchronous traffic shaping) instead of having resources to separate the functions implementing each of the various IEEE 802.1 standards.
[0067] This scheduler may optionally cooperate with a frame preemption function provided by the MAC layer of the end station network interface.
[0068] As shown in Fig. 3, the end station DEV may comprise a processing circuit CIR including a processor PROC and a memory MEM for storing at least instruction data of a computer program according to the invention. The processor PROC is able to access the memory MEM to read and execute the instructions stored therein. Furthermore, the end station DEV further comprises at least a communication interface COM having an output port EGP and a clock CLK for enabling the processor PROC to operate in synchronization with the clock of the network NTW to which the interface COM is connected. The clock CLK ensures the use of a time synchronization protocol such as IEEE 802.1AS.
[0069] Furthermore, the end station is capable of transmitting streams belonging to eight traffic classes defined in IEEE802.1Q, depending on the configuration of the output port EGP and the processing circuit CIR.
[0070] The end station is further configured to support frame preemption per IEEE 802.3 clause 99.4 and 802.1Q clause 6.7.2. Additionally, the end station supports enhanced transmit selection per IEEE 802.1Q clause 37, and stream identification per IEEE 802.1CB and 802.1CBdb.
[0071] Frames belonging to the various streams transmitted by an end station are queued on a per-stream basis, ie at least one queue is provided per stream.
[0072] Hereafter, the expression "stream shape" defines the temporal behavior of the transmission of the frames of a stream. The stream shape y can be of different types, as listed below: Periodic Burst (CB): CB stream frames are transmitted back and forth in groups. Each group of back and forth frames is called a "burst". Bursts are transmitted periodically according to a period defined per stream and cannot be longer than the maximum burst size defined for the stream. Transmission opportunities are reserved for CB streams in every cycle whenever needed to achieve their configured bitrate. CB stream bursts are subject to the minimum transmission jitter. Rate Controlled (RC): RC stream frames are transmitted one by one at a rate that cannot be faster than the maximum bit rate defined for the stream. If periodic (asynchronous, i.e., its cycle is not directly synchronized to the network clock) communication is mapped onto an RC stream, the RC stream may suffer from transmission jitter (at a minimal rate compared to the stream cycle period). Elastic Fair (EF): EF stream frames are transmitted one at a time to ensure that every EF stream gets its fair share of the total bandwidth allocated to it.
[0073] To be consistent with the traffic class priority levels defined in IEEE802.1Q and IEC / IEEE60802, eight stream priority levels can be defined.
[0074] The "stream rate" of a stream is defined using various parameters depending on the stream shape.
[0075] For a CB stream, the stream rate is defined by the burst cycle and the maximum allowable burst size. These parameters can be translated into the maximum bit rate of the stream.
[0076] For RC streams, the stream rate is used to determine the minimum gap between the transmission of two consecutive frames based on their respective lengths. This is the theoretical maximum bit rate of the stream and may be exceeded while the stream is idle or when the activity of other streams drops off leaving more available resources.
[0077] For EF streams, the way to define the stream rate is to assign a percentage of the overall bitrate allocated to all EF streams. The share of bandwidth allocated to each EF stream is weighted according to this percentage, and is actually allocated when all EF streams are active. For example, an EF stream may get more than its fair share of resources when some of the other EF streams are idle.
[0078] The "synchronicity" of a stream refers to whether the transmission time of its frames is synchronized with the network clock or with any local or application clock.
[0079] "Stream preemptibility" is Whether the stream is preemptive (or express), i.e., frames are sent through the express MAC (eMAC), or it is preemptible, i.e. the frame is transmitted through a preemptible MAC (pMAC) and possibly fragmented before transmission to transmit only one or a few fragments of the frame; Shows.
[0080] Thus, streams supporting different traffic types defined in IEC / IEEE60802 can be characterized by a combination of: ·shape, Priority level, ·rate, Synchronicity, Preemptibility
[0081] The table below lists the combinations associated with each IEC / IEEE 60802 traffic type. [Table 2]
[0082] Frames of a given stream are stored in FIFO order in a per-stream queue. A stream and its queue are uniquely identified by an identifier obtained by applying one of the stream identification functions defined in IEEE 802.1CB-2017 and IEEE 802.1CBdb-2021.
[0083] A flag is associated with each queue that indicates whether the queue is empty or not.
[0084] A frame descriptor is associated with each frame stored in the queue. This frame descriptor contains the following information: The frame length in bytes (specified by a variable hereafter called "FrameLength"); Frame duration (specified by a variable hereafter called "FrameDur") expressed in bit times. A bit time is the duration of the transmission of one bit on the transmission link. The frame duration represents the actual occupancy of the transmission link required by the transmission of a frame and its associated MAC and physical layer overhead as defined for the transmission medium used.
[0085] These parameters are shown in Figure 4. The second can be derived from the first with knowledge of the transmission rate of the stream to which the frame pertains.
[0086] As shown in FIG. 12, the queues for each stream are grouped by priority level.
[0087] Hereinafter, a "network cycle" is defined by a basic period (represented by a variable called "CyclePer" hereafter), which may be, for example, 200 μs if periodic burst transmissions have to be scheduled every 200 μs, 800 μs and 600 μs, respectively.
[0088] Hereafter, the variable "TCycle" designates, at any instant in time, the start of the current network cycle, which is the integer part of the current instant "T" divided by the variable CyclePer (the period of the basic network cycle, as presented above).
[0089] When the remainder of the division is equal to zero, the corresponding value of T marks the start of a new network cycle.
[0090] The stream context contains the following parameters: Type: A parameter indicating whether the stream is CB, RC, or EF. Rate: A parameter that can take the following form: For CB streams, the period between two bursts expressed in bits, For RC and EF streams, the bit rate of the stream expressed in bits / second (e.g., Gb / s), Offset: For CB streams only, a parameter indicating the time position of the CB stream burst relative to the start of the cycle, BurstLength: for CB streams only, a parameter indicating the maximum duration of a CB stream burst; NextTxTime: A parameter indicating the next burst transmission time for a CB stream, or the next frame transmission time for an RC or EF stream.
[0091] These parameters are shown in FIG.
[0092] For CB streams, NextTxTime is initialized with the value of TCycle+Period+Offset, where TCycle is the value of T that indicates the start of the current cycle once the network interface has (re)acquired cycle synchronization. The parameter "Period" refers to the CB frames (transmitted consecutively after a fixed period for periodic streams) as shown in Figures 5, 6 and 7 (where "Period" is the offset). i " refers to Stream i).
[0093] NextTxTime is initialized with the value "0". Whenever the RC Stream Queue status transitions from empty to non-empty, NextTxTime is updated with the current value of T if T is greater than NextTxTime; otherwise, NextTxTime remains unchanged.
[0094] What is referred to hereafter as "stream configuration" is configured by the act of mapping application communication requirements to the parameters of a given stream (as presented below). CB streams are assumed to be configured such that the transmission opportunities of different bursts do not overlap.
[0095] The stream configuration results in stream context parameters, not all of which are necessarily detailed herein.
[0096] The mechanism for selecting the next stream to transmit a frame works as follows. For each priority level p, the minimum NextTxTime (minNextTxTime p That is, if the queue associated with a stream with priority p is empty, the NextTxTime parameter for that stream is determined to be minNextTxTime. p is not used to determine
[0097] If all queues of all streams of priority level p are empty, then no streams of that priority level are candidates for transmission and the minNextTxTime p has the value "null".
[0098] When p is the priority level associated with a CB stream, it is assumed that the CB stream never has an empty queue, and thus minNextTxTime p Note that never takes on the value "null".
[0099] An example of such a queue is shown in FIG.
[0100] minNextTxTime p The queue head frame of the stream associated with is the next candidate frame for transmission among all streams with priority p.
[0101] MinNextTxTime p is evaluated each time: A frame of stream i with priority level p is transmitted and the queue of stream i is not empty when the frame is transmitted. In this case, the updated value NextTxTime(i) is added to the set of NextTxTime values, whereas MinNextTxTime p is calculated, or The frame is added to an empty queue associated with a stream of priority level p, or The end of a burst for a CB stream of priority level p is reached.
[0102] MinNextTxTime is set at the initialization of the scheduling process, or when no frames are being transmitted, or at the end of a CB burst. p The list of values is scanned in descending order of precedence level, for example if eight precedence levels are defined, it will be scanned starting at precedence level 7 down to level 0.
[0103] In step S1, MinNextTxTime p If p is equal to "null" (the corresponding FIFO queue is normally empty), the process is restarted with the next lower priority level p←p-1.
[0104] In step S2, MinNextTxTime p MinNextTxTime if value is different from 'null' p The stream context associated with is read.
[0105] If in step S3 the Type parameter is set to CB or RC then the following step S4 is performed, otherwise the following step S5 is executed.
[0106] In step S4, T is MinNextTxTime p If so, the above sequence of tests (steps S1 to S4) is reiterated for the next lower priority level (p←p−1). Otherwise, operation continues in step S5 below.
[0107] In step S5, MinNextTxTime p The transmission process for the stream associated with is started.
[0108] An example of an embodiment for implementing such an algorithm is shown in Figure 11. In this example, if the next frame to be transmitted is not related to the CB or RC stream (arrow NOK from test S3), the frame to be transmitted is an EF preemptible frame and can be transmitted according to the mechanisms specific to that kind of preemptible traffic (i.e. by fragmentation if the output port is idle).
[0109] Furthermore, if the network time T is less than MinNextTxTime pAs long as it is not yet reached (tested in step S4), a possible frame transmission is sought that has: lower priority level (decremented by p=p-1), The previously determined MinNextTxTime p The next transmission time that occurs before.
[0110] Instead, T is MinNextTxTime p If so, then the next transmission instant with the smallest transmission time (and which has expired) CB or RC frame (or a fragment of the RC frame, if the RC frame to which it belongs is preemptible) is transmitted in step S5.
[0111] In the following, i represents the identifier of the stream selected for transmission, i.e., MinNextTxTime p The parameters stored in the stream context attached to stream i are identified using the notation index "i".
[0112] An example of an algorithm implemented for the transmission of CB stream frames can be represented by the flow chart shown in FIG.
[0113] NextTxTime(i) is incremented by Period(i) (step S21), resulting in minNextTxTime p is re-evaluated (step S22).
[0114] The burst end time BurstTxEnd(i) is calculated by adding BurstLength(i) to the current value of T (step S23).
[0115] If the queue associated with stream i is not empty, the transmission end time of each frame is evaluated before its transmission (S25). The frame transmission end time is calculated by adding the frame duration of the frame (FrameDur, given by the frame descriptor) to the current value of T. If the frame transmission end time is after BurstTxEnd(i), the frame is not transmitted and an error indication is generated (and the queue is possibly flushed). If the frame transmission end time is before BurstTxEnd(i), the frame is transmitted.
[0116] If the queue associated with stream i is empty, no transmission occurs until BurstTxEnd(i) is reached, even for other types of frames such as RC or EF frames. If a frame is added to the queue for stream i before BurstTxEnd(i) is reached, it may be transmitted if its transmission end time is before BurstTxEnd(i). Otherwise, an error indication is generated and the queue is possibly flushed.
[0117] When BurstTxEnd(i) is reached (test S24), the selection of the next transmission candidate stream is performed (e.g. another CB stream, or a frame or frame fragment of the RC or EF stream as presented below), whereby in Figures 6, 8, 9 and 10 the expression "selection of a transmission candidate stream" relates generally to the selection of the next stream to select as a transmission candidate.
[0118] An example of the shape of each of two subsequent CB streams that do not have the same period (Period1 is different from Period2) is shown in Figure 7. Note that in Figure 7, the CyclePer parameter can be interpreted as the greatest common denominator between Period1 and Period2, in one embodiment.
[0119] Now, for Express RC Stream frame transmission, an example of an algorithm implemented can be represented by the flow chart shown in FIG.
[0120] The Express RC stream has a lower priority level than the CB stream.
[0121] Before transmitting an Express RC frame, its transmission end time is calculated by adding the frame duration FrameDur, indicated in the frame descriptor, to the current value of T, to avoid interference with future transmissions of frames of higher priority level. In step S31, the transmission end time of the frame is calculated by adding the frame duration FrameDur, indicated in the frame descriptor, to the current value of T. k>p (minNextTxTime k ), the frame is not transmitted and the minTxTime p is not updated.
[0122] Otherwise, the frame is sent through the express MAC.
[0123] In step S32, upon (completion of) the transmission of a frame, NextTxTime(i) is incremented by FrameLength / Rate(i) (expressed in bit times). If Queue(i) is not empty, NextTxTime(i) is incremented by minNextTxTime p (step S33), and the selection of the next transmission candidate stream is performed.
[0124] An example of an algorithm implemented for the transmission of preemptible RC stream frames can be represented by the flow chart shown in FIG.
[0125] The Preemptible RC stream has a lower priority level than the Express RC stream.
[0126] The preemptible RC stream frame transmission operation is largely similar to the express RC stream frame transmission operation, except that a candidate RC frame transmission is transmitted even if its transmission would interfere with a future transmission of a higher priority level frame. In that case, the interference is avoided by implementing frame preemption. That is, a frame can be cut into smaller fragments so that it is transmitted consecutively up to a minimum size fragment. This will not be detailed here, as the implementation of the frame preemption mechanism itself is not within the scope of this specification.
[0127] Now, if the preemptible MAC (pMAC) is available for transmission, i.e., it does not hold a preemptible frame or frame fragment, then the preemptible RC stream frame is forwarded to pMAC and NextTxTime(i) is incremented by FrameLength / Rate(i) (expressed in bit times). Under the same conditions, if Queue(i) is not empty, NextTxTime(i) is incremented by minTxTime p , and the next candidate stream for transmission is selected.
[0128] If the preemptible MAC is not available for transmission, i.e., if it holds a preemptible frame or frame fragment, then the preemptible RC stream frame is not forwarded to the pMAC. In that case, NextTxTime(i) is not updated and minNextTxTime p is not reevaluated.
[0129] An example of an algorithm implemented for the transmission of EF stream frames (best effort) can be represented by the flow chart shown in FIG.
[0130] The EF stream has a lower priority level than one of the preemptible RC streams.
[0131] The selection of the EF Stream frame to be transmitted is determined by the minTxTime, as described below. p Based solely on the stream identifier associated with
[0132] The EF stream frame transmission operation is identical to the preemptible RC stream frame transmission operation.
[0133] If a preemptible MAC (pMAC) is available for transmission, i.e., it does not hold a preemptible frame or frame fragment, the EF stream frame is forwarded to the pMAC and NextTxTime(i) is incremented by FrameLength / Rate(i). Under the same conditions, if Queue(i) is not empty, NextTxTime(i) is incremented by minNextTxTime p , and the next candidate stream for transmission is selected.
[0134] If the preemptible MAC is not available for transmission, i.e., if it holds a preemptible frame or frame fragment, then the EF stream frame is not forwarded to the pMAC. In that case, NextTxTime(i) is not updated and minNextTxTime p is not re-evaluated and the selection of the next candidate stream for transmission is performed.
[0135] Embodiments of the present invention may be targeted at packet-switched networks supporting a mix of time-critical and non-time-critical traffic, such as may be encountered in industrial automation networks.
[0136] This simplifies the design of Ethernet TSN network interfaces in industrial automation end-station devices.
Claims
1. 1. A method implemented in a packet-switched network for scheduling transmission of Ethernet frames, the method comprising: a) determining a priority level of each Ethernet frame based on an identification of data relating to the stream to which said Ethernet frame belongs, said data being provided in said Ethernet frame, said data thereby being frames belonging to a stream transmitted in successive periodic bursts and having a first priority level; a frame belonging to a rate controlled stream and having a second priority level lower than said first priority level; frames belonging to a non-time-critical traffic stream and having a third priority level lower than the first priority level and the second priority level; To distinguish between b) determining, among frames having a predetermined priority level, a candidate frame for transmission that has the closest next time point for said frame to be transmitted; c) estimating a transmission end time of the frame of the transmission candidate, checking whether a frame having a higher priority level than the frame of the transmission candidate has a next transmission time occurring before the transmission end time of the frame of the transmission candidate, and finally transmitting the frame of the transmission candidate if the transmission end time is before the next transmission time; Including, A method according to claim 1, wherein after b), if the nearest next transmission time is later than a current time given by a common clock of the packet-switched network, b) is repeated using the priority level resulting from the decrement of the priority level (p=p-1) as long as the nearest next transmission time determined in b) is later than the current time.
2. frames belonging to a non-time-critical traffic stream and having the third priority level are identified as belonging to preemptible traffic and can be transmitted whenever frames of the first priority level and frames of the second priority level are not being transmitted; 2. The method of claim 1, wherein before testing whether the nearest next transmission time point is after the current time point, it is determined whether the transmission candidate frame is a frame having the third priority level, and if the transmission candidate frame is a frame having the third priority level, finally, the transmission candidate frame is defined as being at least partially transmitted.
3. 3. The method according to claim 1 or 2, wherein before transmission, the Ethernet frames are stacked in one FIFO queue depending on the priority level of the Ethernet frame, the FIFO queue having a priority level p, and the head frame of the queue having the closest next transmission time among frames having the same priority level p is the next candidate frame for transmission among all frames of priority level p.
4. A method according to any one of claims 1 to 3, wherein for implementing b) using CB frames belonging to streams transmitted in successive periodic bursts, each stream having a predefined burst transmission duration, the next transmission instant of the CB frame is calculated based on the predefined burst transmission duration of each of the streams to which the CB frame pertains in order to determine the closest next transmission instant.
5. 5. The method of claim 4, wherein the basic period of a cycle of the packet-switched network is determined as the greatest common denominator of the burst transmission periods of the streams to which the CB frames relate, and the next transmission time of a CB frame belonging to each stream having a respective different burst transmission period is determined relative to the start of one network cycle or successive network cycles.
6. The method according to claim 4 or 5, wherein at least one CB frame is selected as a candidate for the next CB frame transmission if the current time has not yet reached the estimated end of transmission of the burst to which the at least one CB frame belongs.
7. 7. The method of claim 6, wherein for a CB frame candidate, a transmission end time of the next CB frame is calculated based on a given length of the next CB frame and compared with the estimated end of burst transmission of the burst to which the CB frame candidate belongs, and the CB frame candidate is transmitted only if the transmission end time of the CB frame candidate occurs before the estimated end of burst transmission.
8. 8. The method according to claim 1, wherein, for an RC frame belonging to an express rate control stream and having the second priority level, before transmitting the RC frame, a transmission end time of the RC frame is calculated based on a given length of the RC frame, and the RC frame is determined to be transmitted only if the transmission end time occurs before the earliest of the nearest subsequent times determined for any frame having a higher priority level than the RC frame.
9. 9. The method of claim 8, wherein the transmission end point is calculated based on a given length of the RC frame divided by a transmission rate of the packet-switched network, thereby defining a duration of transmission of the RC frame until the transmission end point.
10. 10. The method according to claim 8 or 9, wherein, when transmitting the RC frame, a next transmission instant of a next RC frame of the same stream as the RC frame being transmitted is calculated based on the given length of the RC frame being transmitted, and the determination of the closest next instant is updated taking into account the calculated next transmission instant.
11. The type of stream, a burst transmission period of the periodic burst stream; Frame length, A method according to any preceding claim, wherein at least one of: is derivable from data presented in each frame, said data defining the stream content.
12. A computer program comprising instructions which, when executed by a processing circuit, cause said processing circuit to carry out a method according to any one of claims 1 to 11.
13. A processing circuit configured to carry out the method according to any one of claims 1 to 11; a communications interface coupled to the packet-switched network and configured to be operated by the processing circuitry to transmit the Ethernet frame when transmission of the Ethernet frame is scheduled by the processing circuitry; Equipment comprising:
Citation Information
Patent Citations
Time-triggered based airborne optical network simulation system
CN105245301A
Method for traffic shaping of data frames in network and its device and computer program product
JP2017532870A
Method, entity and program for transmitting communication signal frames
JP2020507245A
Message scheduling method, scheduler, network device and network system
WO2020155185A1