Device and method for routing flows in time-sensitive networks
The method addresses the inefficiencies in current TSN routing by calculating paths based on latency and pre-configured Qbv planning, introducing a tolerance interval for flexible time slot allocation, and using Yen's algorithm to find the k shortest paths, ensuring timely packet delivery and accommodating dynamic network changes.
Patent Information
- Application Number
- FR2022004878
- Authority / Receiving Office
- FR · FR
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-05-20
- Publication Date
- 2025-06-06
- Estimated Expiration
- 2042-05-20
AI Technical Summary
Current routing methods in Time-Sensitive Networks (TSN) fail to efficiently consider latency constraints and dynamic reconfigurations, leading to complexity and potential impossibility in planning the transmission of certain flows, especially in open systems like Industry 4.0 and 5G/6G core networks.
A method that calculates routing paths in deterministic networks by considering pre-configured Qbv planning and latency metrics, introducing a tolerance interval to provide flexibility in time slot allocation, and using Yen's algorithm to find the k shortest paths.
This approach ensures that packets arrive just in time at their destinations, minimizing latency and accommodating dynamic changes in network configurations, thereby enhancing the reliability and efficiency of TSN networks in industrial and 5G/6G scenarios.
Smart Images

Figure 00000020_0000 
Figure 00000021_0000 
Figure 00000021_0001
Abstract
Description
Title of the invention: Device and method for routing flows in time-sensitive networks Field of invention
[0001] The present invention is in the field of telecommunications networks, and relates more particularly to a method for routing multi-QoS flows in deterministic networks or time-sensitive networks (TSN) "Time Sensitive Networking". State of the Art
[0002] TSN is a set of standards, defined by the IEEE 802.1 working group, that extend the Ethernet network to meet the stringent requirements of real-time communications.
[0003] This type of network is intended to be used primarily in industrial networks, intra-vehicular networks, 5G / 6G core networks. By extending and adapting existing Ethernet standards, TSN creates a convergence between information technology (IT) and industrial operations technology (OT) in industrial networks. This means that critical real-time data and data-intensive applications can be implemented over a common Ethernet cable without interfering with each other.
[0004] TSN specifications provide deterministic services, enabling real-time transmission of data in a predictable framework, within a known time frame, in industrial environments, such as machine control applications in production processes, from sensor to cloud. TSN offers guaranteed latency (the time required for a data packet to travel from source to destination across a network) and quality of service with time synchronization.
[0005] The various documents in the TSN standard provide a complete real-time communication solution when used together in a concerted manner. Each standard specification is self-contained and can be used alone. The specifications can be grouped into three categories: - Time synchronization corresponding to the IEEE 802.1AS standard, where all devices participating in real-time communication must have a common understanding of time. - Planning or scheduling corresponding to the IEEE 802.1Qbv standard for TSN traffic shaping, where all devices participating in real-time communication follow the same rules in the processing and transmission of communication packets. - Routing or selection of communication paths, path reservations and fault tolerance, where all devices participating in real-time communication follow the same rules in selecting communication paths and in reserving bandwidth and schedules, possibly using multiple simultaneous paths to achieve fault tolerance.
[0006] The TSN traffic control mechanism can then be considered from two aspects: (1) Qbv scheduling or planning (“scheduling” according to the adapted Anglicism), which makes it possible to define which frame of a flow to send and when to send it; and (2) routing corresponding to the selection for each flow, of a path from the source to the destination.
[0007] For the implementation of the scheduling, certain formulas or restrictions meeting the time requirements are introduced. They are generally solved as optimization problems by applying Integer Linear Programming (ILP) or as decision problems by applying Satisfiability Modulo Theories (SMT). Thus, the search for a scheduling method amounts to solving a problem of “NP-hard” complexity.
[0008] As a result, it becomes too complex to meet the computational time limit of large-scale networks to attempt to jointly resolve both aspects of scheduling and routing.
[0009] A typical solution is to solve the routing problem first, and then the scheduling problem.
[0010] In a common approach, routing is calculated according to the shortest path in terms of number of hops. Then, once the routes are determined, the Qbv planning is calculated based on these routes.
[0011] This approach is not optimal in the sense that the route calculation does not take into consideration the constraints of the flows in terms of latency, nor the fact that Qbv planning is in progress on the switches constituting the TSN network.
[0012] Qbv scheduling provides a mechanism to ensure bounded latencies. It allows switches in a TSN to control traffic in queues of switch output ports, according to a predefined transmission schedule (the IEEE 802.1 Qbv time-based scheduler), and thus to guarantee the quality of priority traffic. The IEEE 802.1 Qbv time-based scheduler is designed to separate communication on the Ethernet network into repeated time cycles of fixed length. Within these cycles, different time slots can be configured and be assigned to one or more of the eight Ethernet priorities.
[0013] Switches serve as intermediaries between data stream transmitting terminals (Talker(s)) and receiving terminals (Listener(s)), by managing the multiplexing of the data, i.e. their reception, processing and retransmission.
[0014] [Fig.l] schematically and simplifiedly illustrates a TSN network composed of a plurality of source devices (Tl, T2, T3) and a destination device (Ll) connected to switches (SI, S2, S3, S4, S5) via Ethernet links.
[0015] In this example, it is considered that three TSN flows (ST3, ST4, ST5) going towards the same destination (L1) have latency constraints for example a maximum latency of 200ps for the ST3 flow (Maxlatency3= 200ps), a maximum latency of 10ms for the ST4 flow (Maxlatency4= 10ms) and a maximum latency of 500ps for the ST5 flow (Maxlatency5= 500ps).
[0016] According to the aforementioned common approach, these three flows will take the same route (i.e. the shortest path, for example via switches S2 and S3), then the scheduler will decide a new cycle integrating three time slots for these three flows. However, when the cycle (calculated on the output port of switch S3 connected to the destination terminal L1) could not include all the flows, because it becomes complete, as illustrated in [Fig.l] where the cycle distributes remaining time slots for flows STI to ST4 and can no longer take into account flow ST5, the scheduler (i.e. the planning module) could decide (i.e. produce the result or information) of the non-feasibility of the system configuration.
[0017] Thus, in this simplified example, it emerges that using the current approach, the fact of considering only the number of hops (the shortest path) in the calculation of the routes can lead to the selection of the same route for all the flows, and as a result can lead to complexity in the calculation of the Qbv planning, or even an impossibility of planning the transmission of certain flows.
[0018] Furthermore, this common approach is not suitable for new scenarios envisaged such as reconfigurable production lines in Industry 4.0, having a 5G core based on a TSN network. Indeed, in these types of scenarios, the system is said to be open because the flows are not all known in advance before the deployment of the network, and the Qbv planning mechanism is then subject to reconfigurations to be able to satisfy the application requirements of the critical flows. In these systems, in order to guarantee the precision of a manufacturing process and minimize any defects, devices such as robots, actuators and sensors must communicate with each other quickly because they must react very quickly depending on the command and control system, or depending on certain unexpected events.
[0019] Also, to be able to respond to scenarios envisaged in Industry 4.0 where production lines are reconfigurable (which implies dynamics in the industrial network), or to respond to the scenario of integrating TSN technology in the 5G / 6G core where the flows are not known in advance, there is the need for algorithms that meet the strict requirements of real-time communications.
[0020] There are a few approaches that partially address these issues.
[0021] The IEEE 802.1Qcc standard provides two main approaches (centralized and distributed) to configure TSN mechanisms (IEEE, “IEEE Standard for Local and Metropolitan Area Networks - Bridges and Bridged Networks Amendment 31: Stream Reservation Protocol (SRP) Enhancements and Performance Im-provements”, IEEE 802.1Qcc-2018. In this standard, it is emphasized that the centralized approach is the most favored to ensure the configuration of 1TEEE 802.1Qbv. However, this standard does not provide the algorithms that allow to decide the routes and generate the configuration of the Gate Configuration Lists (GCL) to be deployed in the network.
[0022] In the literature, the main approach is generally based on engineering tools: simulation tools such as "RTaW-Pegase" or mathematical optimization tools such as ILP formulations ("Integer Linear Programming") or SMT solvers ("Satisfiability modulo Theories").
[0023] However, these engineering tools do not allow for the aspect of the dynamics expected by all the new scenarios envisaged in the future, such as that of open systems in which the arrival of flows is not known in advance.
[0024] For example, the article by Nayak, NG, Duerr, F., & Rothermel, K. (2018), Routing algorithms for IEEE802. IQbv networks, ACM SIGBED Review, 15(3), 13-18, proposes a routing algorithm based on the ILP technique that aims to reduce the number of flows to be scheduled in each switch. However, the main drawback of this type of technique is the execution time which is not suitable for managing and configuring a TSN network in a dynamic way.
[0025] The articles by Singh, S. (2017), Routing algorithms for time sensitive networks (Master's thesis), and Ojewale, MA, & Yomsi, PM (2020), Routing heuristics for load-balanced transmission in TSN-based networks, ACM Sigbed Review, 16(4), 20-25, have proposed heuristics for routing which consider as the route calculation metric, the maximum amount of traffic to be scheduled ("Maximum scheduled traffic load MSTL"). Then for the scheduling of flows, Singh, S. relies on the satisfiable modular theory (SMT solver). The routing algorithm aims to minimize this metric to find the path for each of the flows.
[0026] The disadvantage of the routing algorithms proposed in the literature is that they decide the routes only on the basis of the amount of traffic to be scheduled, without take into account the latency constraints associated with these flows. Thus, with this type of routing algorithm, flows with strict latency constraints could still take longer paths and therefore their latency constraints would not be respected.
[0027] Another known approach is described in the article by Huang, K., Wu, J., Jiang, X., Xiong, D., Huang, K., Yao, H.,... & Liu, Z. (2020), A period-aware routing method for IEEE 802.1 Qbv TSN networks, Electronics, 10(1), 5, which proposes a routing algorithm that takes into account the period of the flows. Firstly, the algorithm makes it possible to organize the flows according to a flow combinability metric, which reflects the ability of the flows to come together on the same schedule. Secondly, the routing algorithm is based on a cost metric calculated according to the following equation:
[0028] Cost = MSOW + K*hops , where the parameter 'MSOW' is a metric invented by the authors to measure the combinability of flows, the parameter 'hops' represents the path length, and the parameter 'K' is a weight defined by the user to penalize the path length with respect to the parameter 'MSOW'. The disadvantage of this solution lies in the choice of the parameter 'K' which depending on its value can impact the performance of the algorithm. Moreover, this algorithm does not take into consideration the constraints of the flows in terms of latency.
[0029] Also, there is no known routing algorithm solution for time-sensitive networks, which takes into account the latency constraints of the flows while respecting the application requirements of these flows, such as the requirement for just-in-time arrival.
[0030] The present invention meets these different needs. Summary of the invention
[0031] An object of the present invention is a method and a device for its implementation, making it possible to calculate the routing of flows in deterministic networks.
[0032] Advantageously, the method of the invention, in addition to considering the Qbv planning which is already configured in the switches forming part of the paths, considers the latencies of the data flows as metrics for determining the routing paths.
[0033] Unlike known routing methods, the proposed solution introduces a tolerance interval which will give more flexibility to the scheduler to determine time slots to allocate to the flows, when a Qbv schedule is already configured on the switches.
[0034] The present invention can be implemented in industrial networks (fields of the factory of the future, industry 4.0 / highly reconfigurable factories), intra-vehicular networks (domains of vehicles of all types: cars, trucks, buses, trains, boats, etc.), or even in the heart of the 5G / 6G network (to carry real-time communications).
[0035] To obtain the desired results, a method is proposed for routing a data flow in a time-sensitive deterministic network, for routing the packets of a data flow from a sending terminal to a receiving terminal, the network comprising switches for transmitting the packets, said switches being configured to implement a predefined transmission schedule over repeated time cycles having time slots of fixed length, the method being computer-implemented and comprising steps consisting of:
[0036] - generate, taking into account a path latency parameter, a set of 'k' shortest paths between the sending terminal and the receiving terminal;
[0037] - for a path 'm' among the 'k' paths:
[0038] - calculate for each switch of this path, a tolerance interval on the cycle duration, the tolerance interval defining a duration during which the packets of said data flow can remain at said switch before being transmitted, without exceeding a deadline for arrival at the receiving terminal;
[0039] - determine whether a time slot can be reserved on the predefined cycle for each switch, and if so select that path to route said data flow; or
[0040] - if there are one or more switches that do not have a time slot that can be reserved, determine whether a time slot can be available within the calculated tolerance interval for each switch, and if so select this path to route said data flow, or if not iterate the previous steps of calculating the tolerance interval and determining the time slot for another path 'm+1' among the 'k' paths.
[0041] The invention may be implemented according to alternative or combined embodiments, where:
[0042] - the step of generating the 'k' shortest paths consists of implementing an al Yen's algorithm.
[0043] - the path latency parameter is calculated from the propagation delay and the average packet residence time at a switch.
[0044] - the tolerance interval is calculated on the basis of an equitable distribution between all the path switches.
[0045] - the tolerance interval is calculated based on the load of each switch of the path, and consisting of assigning a larger tolerance interval to the more loaded switches.
[0046] - the method comprises steps of delaying the sending of packets for the more loaded switches, and to speed up packet sending for less loaded switches.
[0047] - the method comprises a step of canceling slot reservations of times made on switches preceding a switch for which there is no available time slot within the tolerance interval.
[0048] - the method comprises a preliminary step of synchronizing all the com transformers and all terminals connected to the TSN network between them.
[0049] The invention also relates to a device for routing data flows in a time-sensitive deterministic network, for routing the packets of a data flow from a transmitting terminal to a receiving terminal, the network comprising switches for transmitting the packets, said switches being configured to implement a predefined transmission schedule on repeated time cycles having time slots of fixed length, the device comprising means for implementing the steps of the method of the invention.
[0050] Advantageously, the method of the present invention can be implemented in the two network management infrastructures presented in the IEEE 802.1Qcc standard, namely, the centralized infrastructure and the distributed infrastructure.
[0051] In one embodiment for the centralized approach, the method is executed at the central CNC controller (Central Network Controller).
[0052] In one embodiment for the distributed approach, each switch in a TSN network determines the allocation of time slots and advertises this allocation to its neighbors.
[0053] The invention also relates to a computer program product which comprises code instructions making it possible to carry out the steps of the method of the invention, when the program is executed on a computer. Description of the figures
[0054] [Fig. 1] is a simplified example to illustrate the problem of routing in a TSN network.
[0055] Other characteristics and advantages of the invention will appear with the aid of the following description and the figures of the appended drawings in which:
[0056] [Fig.2] illustrates the measurement of the propagation delay between two nodes of a TSN network;
[0057] [Fig.3] illustrates the exchanges between nodes of a TSN network to synchronize the clocks;
[0058] [Fig.4] illustrates the identification of available time slots within a tolerance interval, according to one embodiment of the invention;
[0059] [Fig.5] illustrates, in a simplified example, the implementation of the routing method of the invention in a TSN network;
[0060] [Fig.6a] and [Fig.6b] are a flowchart of the steps of the method for determining a routing path according to one embodiment of the invention;
[0061] [Fig.7a] illustrates a TSN network environment according to a centralized IEEE 802.1Qcc approach, making it possible to implement the method of the invention;
[0062] [Fig.7b] illustrates a TSN network environment according to a distributed IEEE 802.1Qcc approach, making it possible to implement the method of the invention. Detailed description of the invention
[0063] The detailed description is made for a deterministic TSN network environment according to the IEEE 802.1 standard and associated standards. In the description, the various terms used with an acronym such as Qbv, Qcc, AS, etc., must be understood as designating said term according to the corresponding standard for the IEEE 802.1 standard. Thus, for example, the Qbv cycle means the cycle as defined by the IEEE 802.1 Qbv standard.
[0064] It should be noted that the expressions 'time range', 'time slot', 'time slots' are used interchangeably to designate a duration of allocation of time resources.
[0065] In order for the planning to ensure the bounded latencies required in the context of deterministic networks, all TSN switches as well as terminals connected to a TSN network are considered perfectly synchronized with each other, in particular by following the IEEE 802.1AS standard.
[0066] According to the TSN principles known to those skilled in the art, a node of the network plays the role of master (GM), the “GrandMaster” according to the established anglicism, the other nodes playing the role of slave node “Slave”. The election of the GM can be carried out by a human or by an algorithm such as for example the “Best Master Clock Algorithm” (BMCA).
[0067] The IEEE 802.1AS standard allows TSN devices (i.e., the TSN network) to synchronize their clocks with the reference clock of a GM. The well-known protocol "Precision Time Protocol" (PTP) and its improved version, the protocol (gPTP) "Generalized Precision Time Protocol", are used to synchronize the clocks. The objective of this protocol is to ensure that the application need in terms of time synchronization is met. Its role is to synchronize the terminals and switches belonging to the same domain.
[0068] This protocol is established according to the principle of master clock and slave clocks. The master clock serving as a time reference is called the “reference clock” and its time can be possibly synchronized (via GPS, NTP, etc.) on a clock called global clock.
[0069] The GM announces its presence regularly. It sends its clock to the slaves at a configured frequency so that they can synchronize their clock with that of the GM. The operation of the standard is based on the exchange of synchronization information such as timestamps for sending and receiving gPTP (or PTP) type messages.
[0070] To ensure precise time synchronization, the IEEE 802.1AS standard proposes to measure the propagation delay between two nodes of a TSN network in the following manner, illustrated in [Fig.2]:
[0071] The master port of a first system of the TSN network ('Time-aware System 1') sends a delay request message 'Pdelay_Req', while capturing the sending timestamp 'tl'.
[0072] The term “Time-aware System” is defined in English in the IEEE 802.1AS standard as being “a device that contains one or more PTP Instances and / or PTP services (eg, Common Mean Link Delay Service).” This definition means that it is then a device that is capable of participating in time synchronization as defined in the IEEE 802.1AS standard, that is to say a device capable of doing “Hardware Timestamping” and exchanging time messages with its neighbors.
[0073] Upon receipt of the 'Pdelay_Req' message, the slave port of a second system in the TSN network ('Time-aware System 2') retrieves the reception timestamp 't2' of the message.
[0074] The slave port of the second system “Time-aware System 2” sends a response message 'Pdelay_Resp' containing the reception timestamp 't2', and retrieves the sending timestamp 't3' from this response message 'Pdelay_Resp'.
[0075] The master port of the first system "Time-aware System 1" receives the response message 'Pdelay_Resp' and captures the reception timestamp 't4'.
[0076] The slave port of the second system "Time-aware System 2" sends a follow-up message 'Pdelay_Resp_Follow_Up' containing the sending timestamp 't3' of the previous response message 'Pdelay_Resp'.
[0077] At the end of this exchange of three messages, the first system "Time-aware System 1" has the four Timestamps (tl, t2, t3, t4), which will allow the calculation of an average propagation delay 'D', according to the following equation:
[0078] D_
[0079] The master-slave delay 't4-t3' and the slave-master delay 't2-tl ' which are determined as the differences between the respective timestamps make it possible to calculate an average delay from which the slave knows the difference between its clock and the clock of the master, which then allows him to set his own clock.
[0080] The IEEE 802.1AS standard includes a second phase of protocol exchange that complements the first phase and allows clocks to be synchronized between several systems in a time-sensitive network. [Fig.3] illustrates this exchange on three systems (i-1, i, i+1).
[0081] The master port of the first system 'i-1' ('Time-aware System i-1') sends a synchronization message 'Sync' to a slave port of a second system 'i' ('Time-aware System i'), while capturing the sending timestamp 't(s,il)'.
[0082] The slave port of the second system 'i' ('Time-aware System i') receives the synchronization message 'Sync' and captures the corresponding reception timestamp 't(r,i)'.
[0083] The master port of the first system 'i-1' ("Time-aware System i-1") sends to the slave port of the second system 'i' a follow-up message 'Follow_Up' containing the sending timestamp 't(s,il)' of the previous synchronization message.
[0084] A master port of the second system 'i' ('Time-aware System i') can in turn send the synchronization message 'Sync' to a slave port of a third system 'i+1' ('Time-aware System i+1'), while capturing the corresponding sending timestamp 't(s,i)'.
[0085] The slave port of the third system 'i+1' ('Time-aware System i+1') receives the synchronization message 'Sync' and captures the corresponding reception timestamp 't(r,i+l)'.
[0086] The master port of the second system 'i' ("Time-aware System i") sends to the slave port of the third system 'i+1' the follow-up message 'Follow_Up' containing the sending timestamp 't(s,i-1)' of the first synchronization message sent by the first system 'i-1'.
[0087] In this way, the second system 'i' and the third system 'i+1' can synchronize to the reference clock of the first system 'i-1'.
[0088] As indicated previously, the routing method of the invention considers that all the TSN switches as well as the terminals connected to the TSN network are considered perfectly synchronized with each other, to ensure the “Just-in-Time” property required by certain flows.
[0089] By the time synchronization implemented, the switches can then recover information on the latencies of the routes or paths (by recovering the propagation delays and the average stay delay of the packets at the level of the switches to determine the latency of each route or path).
[0090] The routing method of the invention aims to ensure the arrival of packets at their destination "just in time", i.e. not before or after the deadline. Indeed, for example for closed-loop systems, the messages sent by a sensor must arrive just at the moment when a controller needs to check if there is a message received from this sensor.
[0091] The deadline is a predefined parameter to meet the application needs of the flows of the application concerned, and it can be set by the operator or the designer of the application. For example, for a loop of the “sensor / PLC controller / actuator” type which requires a maximum latency not to be exceeded, data which will be recorded at the sensor level must imperatively arrive at the end of a precise time at the PLC controller level. The deadline parameter can also be configured at the PLC controller level which contains a loop to allow it to check the arrival of new data emitted by the sensor.
[0092] The general principle of the routing method of the invention is to exploit information on the network topology as well as data coming from the IEEE 802.1AS protocol, in order to calculate and choose the routes which make it possible to minimize the latencies for each flow.
[0093] The data coming from the IEEE 802.1 AS protocol will in particular be a propagation time between nodes, an average residence time of the packets at the level of a switch.
[0094] The routing method of the invention uses the latency of a path as a metric to select or not this path. The method makes it possible to calculate the k shortest paths between a transmitting terminal and a receiving terminal, then for each path, the method determines for each hop of the route (i.e. for each switch located on this path) a tolerance interval.
[0095] The tolerance interval of a switch will make it possible to define for how long the packets of a flow which has its own latency constraint, can wait at the level of the switch (i.e. not be retransmitted upon arrival) before being transferred to the next node of the route, without exceeding the arrival deadline of each packet of the flow at the destination ("deadline").
[0096] Thus a tolerance interval jy / for a flow STj at a switch SW {, is calculated taking into account the deadline for the flow, the latency of the path and the number of hops (i.e. switches) on this path.
[0097] Advantageously, the calculation of a tolerance interval for each switch of a path provides latitude to the planning module for the choice of time slots to be reserved for each flow.
[0098] Indeed, if a time slot that must be reserved for a flow STj at a switch>SW(, is not available, the planning algorithm then takes into account the tolerance interval that was calculated for this switch, and checks whether it can select another time slot while remaining within the tolerance interval.
[0099] [Fig.4] illustrates over the duration of a cycle, an identification of available time slots within a tolerance interval.
[0100] In TSN networks, to allocate a time slot to a given flow, the scheduling algorithms generally determine a time slot available over the entire Qbv cycle (excluding the time slots 402 dedicated for network control traffic exchanged between the switches), and allocate, i.e. reserve, this slot for the flow.
[0101] In [Fig.4], it is illustrated in hatching that two time slots 404 which are calculated by the scheduling algorithm to be reserved for a flow are already occupied, i.e. reserved for another flow. According to the principle of the invention, the scheduling algorithm takes into account the tolerance interval 406 calculated for this switch during routing, to determine whether other time slots are free while remaining within the range covered by the tolerance interval. In the example of [Fig.4], new subsequent time slots can thus be allocated from among the existing available time slots 408 on the tolerance interval 406.
[0102] The routing method of the invention makes it possible, for each flow to be transmitted from a transmitting terminal to a receiving terminal within a TSN network, to calculate at least two possible paths using the latency of each path as a metric, then makes it possible to verify the possibility of reserving available time slots in the tolerance interval which is calculated for each switch located on a path.
[0103] [Fig.5] illustrates an example of the implementation of the routing method of the invention in a simplified TSN network consisting of four TSN access switches (S1, S2, S3, S4). A receiver terminal L1 which is connected to the TSN network is subscribed to three transmitter terminals (T1, T2, T3) which are themselves connected to the TSN network. The receiver terminal receives streams (i.e. data packets) from each transmitter via different paths, the streams passing through different switches.
[0104] As illustrated, an STI stream transmitted by transmitter T1 is transmitted to receiver L1 via switches S1 and S3, an ST2 stream transmitted by transmitter T2 is transmitted to receiver L1 via switches S2 and S3, and an ST3 stream transmitted by transmitter T3 is transmitted to receiver L1 via switches S2 and S3.
[0105] The transmitter T3 must transmit a new stream ST4 to the receiver LL. The implementation of the routing method of the invention makes it possible to determine the routing path for this new stream ST4.
[0106] According to the example, the flow ST4 cannot take the same path (S2 / S3 / L1) as the path calculated for the flow ST3 coming from the same transmitter terminal T3 and cannot take the same path (S2 / S3 / L1) as the path calculated for the flow ST2 from the transmitter terminal T2, because there are no more time slots available in the cycle for this switch S3 (shown in the top cycle diagram).
[0107] Also, the routing method of the invention, after having determined that the first calculated path (S2 / S3 / L1) is not reservable for the flow ST4, will calculate an alternative path to look for another switch than S3 having available time slots, while respecting the tolerance interval.
[0108] In the illustrated example, the switch S4 has available time slots that can be allocated to the flow ST4 (illustrated in the bottom cycle diagram). The method then makes it possible to determine that the routing of the new flow ST4 can be done from the transmitter terminal T3 to the receiver terminal L1 by successively passing through the switch S2 then the switch S4 according to a route (T3 / S2 / S4 / L1).
[0109] Those skilled in the art understand that [Fig.5] is taken to illustrate in a simplified manner the principle of the method of the invention, but that the latter can be implemented on a TSN network comprising a plurality of transmitter terminals, receiver terminals, switches, and for numerous flows to be routed.
[0110] [Fig.6a] and [Fig.6b] illustrate in a flowchart, an embodiment of steps of the routing method 600 of the invention, applied to the routing of a new flow.
[0111] Step 602: in an initial step, the method makes it possible to establish or recover the configuration of the network, in the form of a graph G identifying the source node (src: transmitting terminal), the destination node (dst: receiving terminal), the intermediate nodes (the switches that can connect the source to the destination), and the links between the nodes. The method makes it possible in this initial step to define the number k of shortest paths to be calculated, and to define the latency of the path as a metric for the calculation. This metric can be calculated from the propagation delay and the average residence time of the packets at the switch, values that can be provided by the IEEE 802.1AS standard.
[0112] Step 604: in a following step, the method makes it possible to calculate for this graph, the 'k' shortest paths taking into account the latency metric.
[0113] In one embodiment, the well-known Yen algorithm is used to find the 'k' shortest paths.
[0114] The method then enters a computation loop for each path 'm' among the 'k' shortest paths.
[0115] Step 606: the method makes it possible to calculate tolerance intervals associated with each switch of the path 'm'.
[0116] In one embodiment, the tolerance interval is calculated based on a re fair partition between all switches that are on a path between a transmitter and a receiver, of a “global budget” of latency tolerated (by the application flows).
[0117] The tolerance interval for an STj flow at a SW switch is calculated according to the following equation:
[0118] TIJ; deadline ST f-latency of the STj path number of jumps
[0119] In another embodiment, the distribution of the overall tolerated latency budget may be done in a non-equitable manner, and be allocated according to different criteria, for example depending on the load of each switch in the path.
[0120] In this embodiment, the tolerance interval can be calculated according to the following equation:
[0121] deadline STjdateuee of the path STj \ where ai represents the load coefficient of the switch
[0122] The load coefficient can be calculated according to the following equation:
[0123] a _ nbFluxj where nbFluXi represents the number of incoming flows in the com- mnx(nbFluxd SW mutator and max(nbFlli.X() represents the load of a path as a function of number of incoming flows to the switches that are part of this path.
[0124] In a scenario where a first switch on a route that has been calculated for sending a flow (as being a route of the 'k' shortest paths) is quite loaded, the method makes it possible to assign to this first switch a tolerance interval larger than those of the other switches. Thus, the first switch can be configured to delay sending the packets of the flow concerned, while the rest of the switches will be configured to accelerate the sending of these packets in order not to add latencies on the path.
[0125] Step 608: The next step is to identify a time slot to be reserved for the new flow in each switch SW™ of the path 'm'.
[0126] Step 610: the method makes it possible to determine whether a time slot is available and reservable in each switch SW™ of the path 'm'.
[0127] Step 612: if there is no time slot available on the switch SW™, the method makes it possible to check whether a time slot can be available by considering the tolerance interval which has been calculated for this switch.
[0128] Step 614: if it is not possible to reserve on the switch SW™ a time slot within the tolerance interval, the path 'm' is then not a route allowing the flow considered to be routed, and the method allows the reservations of time slot made on previous switches.
[0129] Step 616: the method allows moving to the next path “m = m + 1” in the list of 'k' shortest paths.
[0130] Step 618: The method checks whether all 'k' paths have been processed. If paths have not yet been processed, the method returns to step 606 to calculate tolerance intervals for each switch associated with the next path to be processed.
[0131] Step 620: If all paths have been processed, and it has not been possible to reserve time slots to route the new flow, the method ends by indicating that no path is available to process the new flow.
[0132] Step 622: returning to step 610, if a time slot is available on the switch SW™ of path 'm', the method makes it possible to reserve this time slot.
[0133] Step 624: The method proceeds to the next switch on path 'm'.
[0134] Step 626: the method makes it possible to check whether all the switches of the path 'm' in analysis course have been processed. If not all switches in path 'm' have been processed, the method loops back to step 610 to determine whether it is possible to reserve time slots in the next switch, and continues with the steps described.
[0135] Step 628: If all switches have been processed, meaning that it was possible to allocate time slots in all switches of path 'm', the method ends by indicating the path selected to process the new flow.
[0136] In one embodiment, step 608 for identifying whether time slots are reservable in a switch is done according to the method described in the Applicant's patent application FR 2112233.
[0137] In order to ensure the configuration and management of TSN networks, the IEEE 802.1Qcc standard mainly proposes two approaches: a centralized approach and a distributed approach. The described method can be implemented in each of these two configurations.
[0138] Centralized approach:
[0139] The centralized approach provided by the IEEE 802.1Qcc standard is illustrated by [Fig.7a], where all the TSN switches in the network are controlled, managed and configured by a centralized CNC entity ("Centralized Network Configuration"). The terminals (Speakers / Listeners) that are going to use the TSN network provide the characteristics of their flow to a CUC entity ("Centralized User Configuration") using third-party software ("middleware") such as OPC UA, ROS, DDS.... The CUC entity has the role of grouping the requests from the terminals / applications to use the TSN network and providing them to the CNC entity. The requests are analyzed by the CNC while having information on the current capacities of the TSN network. If the reservation of resources for new flows is possible, the CNC responds to the CUC that these terminals / applications can use the network. The CNC can also provide these terminals / applications with the slot to use (i.e. when to start using the network). For example, it can ask an application to start sending its data in x milliseconds. In the case where resource reservation is impossible for some flows, the CNC rejects the requests associated with these flows. In this approach, the method of the invention can be implemented and implemented at the CNC level.
[0140] Distributed approach:
[0141] In the case of distributed network management, as illustrated in [Fig.7b], an initial phase is necessary where the TSN access switches must exchange messages between them in order to converge towards a distribution of time slots. Once convergence is obtained, each of the access switches allocates a time slot for the new flow among the time slots associated with it, and then it propagates this information towards the TSN core network switches so that they integrate this new reservation.
Claims
Claims
1. A method of routing a data stream in a time-sensitive deterministic network, for routing packets of a data stream from a sending terminal to a receiving terminal, the network comprising switches for transmitting the packets, said switches being configured to implement a predefined transmission schedule over repeated time cycles having time slots of fixed length, the method being computer-implemented and comprising steps of: generating (602, 604) taking into account a path latency parameter, a set of 'k' shortest paths between the transmitting terminal and the receiving terminal; for a path 'm' among the 'k' paths: - calculating (606) for each switch of this path, a tolerance interval over the duration of the cycle, the tolerance interval defining a duration during which the packets of said data flow can remain at said switch before being transmitted, without exceeding a deadline for arrival at the receiving terminal; - determining (608, 610, 622, 624, 626) whether a time slot can be reserved on the predefined cycle for each switch, and if so selecting (628) this path to route said data flow; or - if there are one or more switches not having a time slot that can be reserved, determining (612, 614, 616, 618) whether a time slot can be available in the tolerance interval calculated for each switch, and if so selecting (620) this path to route said data flow, or if not iterating the previous steps of calculating the tolerance interval and determining the time slot for another path 'm+1' among the 'k' paths.
2. The method of claim 1 wherein the step of generating the 'k' shortest paths comprises implementing a Yen.
3. The method of claim 1 or 2 wherein the path latency parameter is calculated from the propagation delay and the average residence time of packets at a switch.
4. The method of any one of claims 1 to 3 wherein the tolerance interval is calculated based on an equitable distribution among all switches in the path.
5. The method of any one of claims 1 to 3 wherein the tolerance interval is calculated based on the load of each switch in the path, and assigning a larger tolerance interval to more loaded switches.
6. The method of claim 5 comprising steps of delaying sending packets for more loaded switches, and speeding up sending packets for less loaded switches.
7. The method of any one of claims 1 to 6 comprising a step of canceling time slot reservations made on switches preceding a switch for which there is no available time slot within the tolerance interval.
8. The method according to any one of claims 1 to 7 comprising a preliminary step of synchronizing all the switches and all the terminals connected to the TSN network with each other.
9. A computer program product, said computer program comprising code instructions for carrying out the steps of the method according to any one of claims 1 to 8, when said program is executed on a computer.
10. A data flow routing device in a time-sensitive deterministic network, for routing packets of a data flow from a sending terminal to a receiving terminal, the network comprising switches for transmitting the packets, said switches being configured to implement a predefined transmission schedule over repeated time cycles having time slots of fixed length, the device comprising means for implementing the steps of the method according to any one of claims 1 to 8.
11. Use of the device according to claim 10 in a time-sensitive network implementing a centralized network architecture.
12. Use of the device according to claim 10 in a network time-sensitive implementing a distributed network architecture.
13. Use of the device according to claim 10 in a time-sensitive deterministic network TSN implementing a centralized or distributed network architecture by means defined according to the specifications of the IEEE 802.1 Qcc standard.