Method, entity and program for transmitting communication signal frames
11095759 · 2021-08-17
Assignee
Inventors
Cpc classification
H04L47/36
ELECTRICITY
International classification
Abstract
The invention relates to a method implemented by a communicating entity in a packet-switched network, comprising at least one port for transmitting communication signal frames comprising a first type of frames, intended to be transmitted in a plurality of streams for which a traffic shaping is defined, and a second type of frames, for which no traffic shaping is defined, each frame being able to be fragmented so as to transmit a fragment only of a frame of said second type. The communicating entity stores a plurality of first queues of frames of the first type, the first queues being associated respectively to said plurality of streams, and at least one second queue for frames of the second type. The entity further schedules transmissions of first type frames, and between at least two first type frames, transmission of at least a fragment of at least one second type frame.
Claims
1. A method implemented by computer means of a communicating entity in a packet-switched network, said communicating entity comprising at least one port for transmitting communication signal frames, said frames comprising: a first type of frames (SF), intended to be transmitted in a plurality of streams for which a traffic shaping is defined, and a second type of frames (UF), for which no traffic shaping is defined, each frame being able to be fragmented so as to transmit a fragment only of a frame of said second type, wherein the communicating entity: stores: a plurality of first queues of frames of the first type, said first queues (Qi) being associated respectively to said plurality of streams, and at least one second queue (Qu) for frames of the second type, and schedules: transmissions of the first type frames, and between at least two first type frames, transmission of at least a fragment of at least one second type frame, and wherein, for deciding to transmit a fragment only of a second type frame, the communicating entity determines: whether the size of the fragment to be transmitted is greater than a threshold (MinFragSize), and whether the size of a remaining fragment of said second type frame is greater than said threshold, and otherwise prevents from fragment transmission, wherein each of said first and second queues is stored in a first-in-first-out type buffer (BUFF), and wherein a queue to which a first type frame is assigned is determined according to the stream to which said first type frame belongs, depending on features of said first type frame, and wherein a frame belonging to a shaped stream is selected for transmission by comparing scheduled transmission times (TTTi) of frames placed at the head of each first queue, the frame associated to the smallest scheduled transmission time (miniTTTi) being selected as a next candidate for transmission.
2. The method of claim 1, wherein said features of said first type frame include a frame length and a current rate of the stream to which said first type frame belongs, and wherein a time taken for the transmission of each first type frame in its queue is calculated and respective transmission times are scheduled for said first type frames according to said respective times taken for the transmissions of the first type frames.
3. The method of claim 1, wherein the communicating entity performs a time counting for determining a current time (T) and implements transmission of said next candidate if: the scheduled transmission time (TTTk.) associated to said next candidate is smaller or equal to the current time (T), and if no other first type frame is currently being transmitted, and if no second type frame or fragment is currently being transmitted.
4. The method according to claim 1, wherein the communicating entity determines whether a second type frame or frame fragment is being transmitted, and if yes whether said second type frame or frame fragment can be further fragmented for interrupting a transmission of said second type frame or frame fragment, and allowing thereby a transmission of said next candidate.
5. The method of claim 4, wherein the communicating entity implements a fragmentation of said second type frame or frame fragment: if the size of said second type frame or frame fragment which transmission is to be interrupted is greater than said threshold (MinFragSize), and if the size of a frame fragment to remain in said second queue after the interruption is greater than said threshold.
6. A communicating entity, comprising at least one port for transmitting communication signal frames in a packet-switched network, and further comprising a computer circuit for performing the method according to claim 1.
7. A non-transitory computer readable medium having stored there on a program comprising instructions for performing the method as claimed in claim 1, when run by a processor.
8. A method implemented by computer means of a communicating entity in a packet-switched network, said communicating entity comprising at least one port for transmitting communication signal frames, said frames comprising: a first type of frames (SF), intended to be transmitted in a plurality of streams for which a traffic shaping is defined, and a second type of frames (UF), for which no traffic shaping is defined, each frame being able to be fragmented so as to transmit a fragment only of a frame of said second type, wherein the communicating entity: stores: a plurality of first queues of frames of the first type, said first queues (Qi) being associated respectively to said plurality of streams, and at least one second queue (Qu) for frames of the second type, and schedules: transmissions of the first type frames, and between at least two first type frames, transmission of at least a fragment of at least one second type frame, and wherein, for deciding to transmit a fragment only of a second type frame, the communicating entity determines: whether the size of the fragment to be transmitted is greater than a threshold (MinFragSize), and whether the size of a remaining fragment of said second type frame is greater than said threshold, and otherwise prevents from fragment transmission, wherein the communicating entity performs a time counting for determining a current time and implements a second type frame fragmentation in view of fragment transmission: if no first type frame is currently being transmitted, and if no first type frame placed at a first queue head has a scheduled transmission time (TTTi) smaller or equal to the current time (T).
9. The method according to claim 1, wherein said communicating entity inserts a probe frame (PF) at the head of at least one of the first queues comprising said next candidate for transmission, so as to avoid any latency of transmission of said next candidate.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
DESCRIPTION OF EMBODIMENTS
(13) The implementation of the invention makes it possible to limit the latency experienced by the shaped streams in the successive multiplexing stages encountered in the network. For that purpose, it takes advantage of a time-based scheduling mechanism used to dynamically define the transmission opportunities dedicated to the shaped streams in conjunction with pre-emption applied to the unshaped streams. The timing information provided by the time-based scheduling mechanism enables determining the size of frames or fragments candidate for transmission between shaped stream transmission opportunities.
(14) Hereafter, express frames as defined in standard IEEE802.3br are frames belonging to shaped streams.
(15) Normal frames as defined in standard IEEE 802.3br are frames belonging to unshaped streams (that typically support a so-called “Best Effort” transport service).
(16) Normal frames can be segmented in fragments as per the standard IEEE802.3br.
(17) The multiplexing scheme and involved parameters are described below with reference to
(18) Each shaped stream i is associated with a transmission rate Ri, and a queue Qi in an egress port of each communicating entity of the packet-switched network. In an embodiment, a communicating entity can be a multiplexing node through which the stream passes. In an alternative embodiment, a communicating entity can be a terminal transmitting received frames in a peer-to-peer communication configuration, and/or simply emitting its own frames.
(19) The aforesaid transmission rate Ri is expressed in bit per second. For all shaped streams i, the sum of Ri is less than the total link (or port) transmission rate ρ. Furthermore, a packet to transmit is supposed to be made of octets, each octet corresponding to 8 bits, and this explains the value “8” which appears later in the drawings (for example test S35 of
(20) Ri is reserved in the successive nodes traversed by stream i by means of signalling or network administration.
(21) Packets of stream i are stored in memory buffers organized as FIFO (First In First Out), defining an order in queue Qi.
(22) Time is represented by a variable T that is incremented every bit transmission time (at the link rate) and is usually the same for all links and ports of a node.
(23) Each shaped stream i is associated with a stream context SCi that contains the variables required for the shaping mechanism, e.g.:
(24) The status of the associated shaped transmit queue in the output port, Stat(Qi), which can take the values empty (0) or not empty (1);
(25) A Theoretical Transmission Time of the frame stored at the head of the associated shaped transmit queue, noted hereafter TTTi
(26) For the sake of simplification here, all unshaped streams are allocated with a single dedicated queue: the unshaped transmit queue Qu that stores the frames in FIFO order.
(27) A queue context is associated with the unshaped transmit queue, UC, containing three variables:
(28) The status of the unshaped queue, Stat(Qu), which can take the values empty (0) or not empty (1);
(29) The size of the frame or remaining fragment stored at the head of the unshaped queue: sizeofQuHead;
(30) The number of bytes transmitted since the beginning of the current unshaped frame or fragment transmission: sizeofCurrFrag, updated upon the transmission of each byte.
(31) Considering the transmission of frames belonging to unshaped streams, a fragment cannot be shorter than a defined minimum fragment size MinFragSize. Typically, a frame fragment shall include at least: a header, an indication of a position of the fragment (at least first fragment, or intermediate fragment, or last fragment of a frame), a CRC code at the end of the fragment, and hopefully data in between.
(32) In fact, the minimum size MinFragSize cannot be less than a size corresponding to these requirements, but more generally cannot be less than the minimum size of an Ethernet frame (e.g. 64 bytes as previously indicated).
(33) The transmission of a shaped frame is indicated by the ShapedTxBusy flag, set to 1 during the transmission, and reset to 0 otherwise.
(34) The transmission of an unshaped frame or fragment is indicated by the UnshapedTxBusy flag, set to 1 during the transmission, and reset to 0 otherwise. The StopUnshapedTx flag is used to trigger the interruption of the transmission of an unshaped frame when a shaped frame transmission time is due.
(35) These operations can be implemented by a communicating entity 100 (node of a network, or terminal device in a peer-to-peer network, etc.), schematically shown in
(36)
(37) In a first step S0, the stream to which received frames belong is identified in the input port in order to determine whether the received frames are shaped frames or rather unshaped frames (step S1) and further in which transmit queue(s) the received frames have to be forwarded to. This identification uses information contained in the frame header and/or payload to determine:
(38) The destination output port (step S2), and
(39) The destination transmit queue Q within the selected output port (step S3).
(40) The operation in the transmit ports 14 is now disclosed with reference to
(41) In case of receiving a shaped frame (arrow Y at output of test S4) and upon storing that frame in the shaped transmit queue Qi the following operations are performed: At test S5, if Stat(Qi)=0, then test S6 is performed and if T>TTTi, then TTTi=T at step S7; then TTTi value is injected in a sorting function at step S8 (as explained in details below); then the value Stat(Qi) is set to Stat(Qi)=1 (step S9).
(42) It is added here that regarding the unshaped stream, upon storing a frame in the unshaped transmit queue Qu (arrow N from test S4) Stat(Qu) is set to not empty (=1), in step S10.
(43) Now is disclosed the transmission of a frame belonging to a shaped stream.
(44) The frame belonging to a shaped stream to be transmitted is selected by comparing all TTTi (using thus the aforesaid sorting function). The frame associated to the smallest TTTi value (as determined in step S10) is determined in step S11 as the next candidate for transmission. For this purpose, the sorting function maintains the smallest TTTi, with i such that Stat(Qi)=1 (i.e. for which the queue is not empty). That smallest TTTi being noted hereafter minTTTi.
(45) If Stat(Qi) equals 0 for all streams i (i.e. all the shaped queues are empty, as determined in step S12) then minTTTi takes the null value in step S13.
(46) If an unshaped frame (or fragment) is currently being transmitted as shown in
(47) If both these two conditions are not met together, the normal transmission of unshaped frame (or fragment) continues as usual without further fragmentation, as shown in
(48) Otherwise, as shown in
(49) Therefore, a shaped frame is effectively transmitted mainly when:
(50) TTTi is due, i.e. the current time T is greater or equal TTTi,
(51) There is no frame belonging to another shaped stream currently being transmitted,
(52) There is no frame or fragment belonging to an unshaped stream currently being transmitted.
(53) Referring again to
(54) Then, updates are performed for the next time T. In step S21, the parameter ShapedTxBusy is updated to “1” for size(frame)*8/ρ. In step S22, the TTTk value is also updated to TTTk=TTTk+size(frame)*8/Rk, as well as Stat(Qk) in step S23. Moreover, at test S24, if Stat(Qk) is not null, than TTTk is injected in the sorting function again at step S25.
(55) For the purpose of transmission and fragmentation of a frame belonging to an unshaped stream, details are now given hereafter while referring to
(56) No frame belonging to a shaped stream is currently being transmitted,
(57) If no frame stored in one of the shaped queues has a transmission time which is due already (current time T greater or equal to its TTTi).
(58) The theoretical transmission time of the next-to-be-transmitted frame belonging to a shaped stream is therefore used to check if the unshaped frame can be transmitted, or fragmented.
(59) Finally, a first fragment of the unshaped frame is transmitted only if both its length and the length of the fragment remaining in Qu are greater or equal to MinFragSize.
(60) If not, no transmission occurs from the unshaped queue.
(61) Indeed, as seen before, in case where a new shaped frame must be transmitted while an unshaped frame transmission is pending, the transmission of the unshaped frame can be interrupted only if:
(62) the length of the fragment transmitted up to the interruption is greater or equal MinFragSize,
(63) and the length of the fragment to remain in the unshaped queue after the interruption is greater or equal MinFragSize.
(64) If anyone of the above conditions is not met, the transmission of the unshaped frame cannot be interrupted, as shown in
(65) Referring to
(66) If UnshapedTxBusy=1 (test S26), and if StopTxUnshaped=1 (test S27), and if (sizeofQuHead≥MinFragSize and sizeofCurrFrag≥MinFragSize) in test S28, then the current frame transmission is stopped at step S29. Then, updates are performed and UnshapedTxBusy is set to null (step S30) and StopUnshapedTx is set to null (step S31).
(67) Time T is incremented by ‘1’ (step S14) for a next run.
(68) Otherwise, referring now to
[(minTTTi−T)≥MinFragSize*8/ρ] and [size(frame)−(minTTTi−T)*ρ/8≥MinFragSize](test S35),
(69) then the current frame or fragment is transmitted at the head of queue Qu in step S36,
(70) and the parameter UnshapedTxBusy is set to 1 at step S37 during the minimum value between: (minTTTi−T) and size(frame)*8/ρ (to that end, a corresponding temporisation can be provided).
(71) However, in test S34 (arrow N), if min.sub.i TTTi=null, then in step S38, it is time to transmit the frame or fragment at the head of Qu and in step S39 to set UnshapedTxBusy to 1 during a time corresponding to size(frame)*8/ρ.
(72) Then, the next run is implemented when time T is incremented in step S14.
(73) It should be noted that residual latency can be eliminated by the provision of a “probe” frame PF inserted in the shaped stream as explained hereafter. Such a probe frame PF can be inserted at the head of each shaped stream queue. In fact, when typically a frame of a shaped stream is transmitted after a period of silence for example, it may happen the case where the transmission of an unfragmentable unshaped frame or fragment cannot be aborted (due to the size of the produced fragments for example), and it cannot be given a way to the immediate transmission of a shaped frame instead, as shown in
(74) More generally, the invention is targeted at packet-switched networks capable of forwarding preemption, and can provide low latency data transfer to time-critical applications that are transported on non-cyclic rate-controlled streams. Typically, it can be applied in embedded control networks such as industrial or automotive networks.