A computer-implemented method for solving time-sensitive network scheduling problems.

A method for time-sensitive network scheduling in complex systems reduces computational complexity by estimating stream transformations and using an ATP prover to configure deterministic Ethernet networks, addressing scalability issues and ensuring real-time communication.

JP2025542560AActive Publication Date: 2025-12-25MITSUBISHI ELECTRIC R&D CENTRE EUROPE BV
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2025557948
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-03-29
Filing Date
2024-01-30
Publication Date
2025-12-25
Estimated Expiration
2044-01-30

AI Technical Summary

Technical Problem

Existing time-sensitive network scheduling methods struggle to handle large-scale critical systems due to scalability issues with conventional SMT solvers, which are overwhelmed by the numerous variables and constraints in complex industrial applications, rendering them impractical for real-time communication in critical systems.

Method used

A computer-implemented method that involves obtaining a deterministic Ethernet network topology, estimating stream transformations, generating an automated theorem proving (ATP) problem, and configuring the network using an ATP prover to satisfy real-time constraints by reducing the number of constraints through selective stream transformations.

Benefits of technology

This approach allows for efficient identification of a network configuration that meets time-sensitive requirements in complex networks within reasonable computational resources, overcoming the limitations of conventional methods by significantly reducing the number of constraints and computational demands.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025542560000001_ABST
    Figure 2025542560000001_ABST
Patent Text Reader

Abstract

The present invention relates to a computer-implemented method including: obtaining a topology of a deterministic Ethernet network; and a set of important streams to instantiate within the network, each important stream defined by at least a path, a duration, a maximum tolerable end-to-end latency, and a set of packets, each packet associated with a size; estimating a number of constraints implied by a number of stream transform sets of the important stream set, each stream transform modifying a stream while maintaining or increasing a bit rate between a sending node of the stream and one or more receiving nodes of the stream; selecting a stream transform set based on the number of constraints; applying the selected stream transform set to obtain a transformed important stream set; generating from the transformed important stream set an automated theorem proving (ATP) problem, the problem including equations expressing constraints that transmission of packets of the streams must comply with and variables that define a configuration of the network; running an ATP prover to solve the ATP problem and obtain values ​​of the variables that define the configuration of the network that satisfy the set of equations; and, if execution of the ATP prover is successful, configuring the network according to the obtained values ​​that define the configuration of the network.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to the field of time-sensitive networks, and more particularly to the field of solving time-sensitive network scheduling problems. [Background technology]

[0002] Ethernet™ networks provide a solution for carrying out communication between components of a system. For example, Ethernet networks can be implemented in systems such as automobiles, airplanes, medical equipment, etc. to provide support for sending and receiving messages between components of the system. For example, in an automobile, a central computer receives messages from various sensors and sends them over the Ethernet network to actuators (e.g., brakes, motors, etc.) to control the vehicle.

[0003] If such a system is critical, real-time communication is necessary. For example, in a car, the in-vehicle network must use real-time communication because messages need to be delivered to the electronic power unit (EPU), which is responsible for controlling the brakes or regulating the speed. Regular Ethernet networks lack real-time communication capabilities and cannot be used for such purposes. Even if Ethernet offers reasonable mechanisms to ensure fairness between communication streams—for example, quality of service (QoS), which introduces message prioritization to prioritize important messages—standard Ethernet networks do not offer any guarantees regarding strict deadlines. Therefore, in a standard Ethernet network, some important messages may not reach their destination by the expected deadline. This situation is unacceptable for critical systems.

[0004] Time Sensitive Networking (TSN) is designed to provide real-time mechanisms for Ethernet. In standard TSN, a switch can be forced to transmit packets from a given class at a given time. Switches are set up with a Gate Control List (GCL) for each port, which defines the moment at which packets of a given class are transmitted. Therefore, one of the general goals of TSN is to calculate the GCL in such a way that the end-to-end delay of critical streams is taken into account. This calculation can be done statically.

[0005] In practice, such TSN setup calculations must always be performed for all gates. Because streams may not share the same period, a complete scheduling for all streams must be statically found by considering the hyperperiod, i.e., the least common multiple (lcm) of the periods. In fact, the scheduling problem must be solved for every interleaving of stream periods. Solving the TSN scheduling problem yields variables for each tuple: stream, switch in the stream's path, packets to be sent during the stream's period, and the occurrence of the period during the hyperperiod. In real industrial applications, a large number of variables and associated constraints typically arise, which may hinder the solution of the scheduling problem.

[0006] Non-Patent Document 1 proposes a logical formalization of the TSN scheduling problem. The variables in this problem are timestamps corresponding to the time at which a switch sends a given packet from a given stream (also called a gate). The constraints are described using a mathematical formula where the variables are the opening and closing times of the gates of the network switches, and the problem is solved using SMT (Satisfiability Modulo Theories). This formalization expresses the problem as constraints in the SMT-lib language. These constraints can then be submitted to any SMT solver (e.g., Z3, Alt-Ergo, CVC4...) which finds a solution.

[0007] The approach proposed by [1] provides a practical tool for solving TSN scheduling problems. The main challenge of this approach is scalability. In practice, despite the effectiveness of SMT solvers, they are unable to solve real industrial applications. The formalization of such applications usually involves too many variables and constraints (e.g., 10 10 10 constraints and 5 gates), cannot be handled directly by this technique. Therefore, the approach in Non-Patent Document 1 cannot be practically used to perform TSN scheduling in real complex critical systems. [Prior art documents] [Non-patent literature]

[0008] [Non-Patent Document 1] Craciunas, S.S., Oliver, R.S., & Ag, T., "An overview of scheduling mechanisms for time-sensitive networks," Proceedings of the Real-time summer school LEcole dEte Temps Reel (ETR), 1551-3203 (2017). Summary of the Invention [Problem to be solved by the invention]

[0009] Therefore, there is a need for a method that can perform time-sensitive network scheduling that adheres to hard real-time constraints on networks in large-scale critical systems.

[0010] The present disclosure improves this situation. [Means for solving the problem]

[0011] A computer-implemented method is proposed that includes obtaining a topology of a deterministic Ethernet network and a set of important streams to instantiate within the network, each important stream defined by at least a path, a duration, a maximum tolerable end-to-end latency, and a set of packets, each packet associated with a size; estimating a number of constraints implied by a set of stream transforms of the set of important streams, each stream transform modifying a stream while maintaining or increasing a bit rate between a sending node of the stream and one or more receiving nodes of the stream; selecting a stream transform set based on the number of constraints; applying the selected stream transform set to obtain a transformed set of important streams; generating from the transformed set of important streams an automated theorem proving (ATP) problem that includes equations expressing constraints that transmission of packets of the streams must comply with and variables that specify a configuration of the network; running an ATP prover to solve the ATP problem and obtain values ​​of the variables that specify the configuration of the network that satisfy the set of equations; and, if execution of the ATP prover is successful, configuring the network according to the obtained values ​​that specify the configuration of the network.

[0012] "Ethernet network topology" refers to the set of attributes that define the network, including nodes (switches and end nodes), links, and the flow rate of each link.

[0013] A "deterministic Ethernet network" refers to an Ethernet network that can implement real-time behavior for at least some of the communications within the network. Examples of deterministic Ethernet networks include TTEthernet or networks conforming to the Time-Sensitive Networking (TSN) framework. A deterministic Ethernet network may be obtained, among other things, by implementing fault-tolerant clock synchronization mechanisms (under standard IEEE 802.1ASrev, defined by the Institute of Electrical and Electronics Engineers, "Time-Sensitive Networking Task Group," http: / / www.ieee802.org / 1 / pages / tsn.html, 2016 (accessed July 6, 2016)) and / or network-wide references and mechanisms that define end-to-end timing of communication streams (under standard IEEE 802.1Qbv, defined by the Institute of Electrical and Electronics Engineers, "802.1Qbv - Enhancements for Scheduled Traffic," http: / / www.ieee802.org / 1 / pages / 802.1bv.html, 2016, draft 3.1).

[0014] A "stream" refers to a periodic transmission of data from a sending node (also known as a talker) to one or more receiving nodes (also known as listeners).

[0015] A "critical stream" refers to a stream that must adhere to the end-to-end latency in each period.

[0016] A "stream path" or "stream route" refers to the sequence of nodes in a network through which a stream flows.

[0017] "Constraints" refers to real-time constraints that are applied to the stream. Examples of such constraints include: Frame constraints: Such constraints typically include constraints on the transmission of packets within a time frame, for example the order in which packets are transmitted by a stream. Link constraints. Such constraints typically include constraints on link size and data rate. Stream transmission constraints. These types of constraints include constraints that describe the sending and receiving of packets, such as that a packet must be received at a switch from a first link and then transmitted on a second link, or that two packets cannot be sent simultaneously on the same link. End-to-end constraints. Such constraints may represent, for example, the maximum delay between the transmission of a packet and its reception.

[0018] "Estimate the number of constraints implied by a set of rate-equivalent stream transformations" refers to calculating the number of constraints formulated by the transformed streams to satisfy the time requirements of each significant stream.

[0019] A "stream transform set" refers to a set of one or more stream transforms that are applied to one or more significant streams in a significant stream set. A stream transform set can include a variable number of transforms, from a single transform on a single stream to multiple transforms on each stream.

[0020] "Stream transformation" or "rate-equivalent stream transformation" refers to the transformation of one or more characteristics of a stream, such as path, duration, maximum tolerable end-to-end latency, set of packets, or size of packets, while maintaining or increasing the bit rate between a sending node and one or more receiving nodes of the stream.

[0021] "Sender" refers to a node that transmits packets of a stream.

[0022] "Receiver" refers to a node that receives packets of a stream.

[0023] In other words, stream conversion is the modification of the characteristics of a stream without modifying the sender and one or more receivers of the stream, such that the flow rate of the modified stream is at least equal to the bit rate of the original stream. Stream conversion therefore ensures that at least the same data rate can be transmitted between the sender and one or more receivers of the stream. Stream conversion therefore does not change the characteristics of the data transferred through the stream. Even if the duration and packets defining the stream are modified, each receiver receives the same amount of data, at the same rate, and in compliance with the same end-to-end delay.

[0024] Therefore, such rate-equivalent stream conversion can be tested without affecting the operation of the network.

[0025] An "Automated Theorem Proving (ATP) problem" refers to an automated reasoning and mathematical logic problem that involves multiple equations depending on the values ​​of variables. Proving an ATP problem involves identifying a solution, i.e., a set of variable values, that satisfies all mathematical or logical formulas. An ATP problem may be, for example, a "Satisfiability Modulo Theory (SMT) instance," which is a representation in the SMT language of formulas and variables that can be fed to an SMT solver. The present invention is not limited to a particular ATP or SMT language; for example, the SMT-lib language or the CVC language may be used.

[0026] "Expression" refers to a first-order logic or mathematical formula belonging to a branch of mathematics, such as the theory of linear integer arithmetic, linear real arithmetic, etc. For example, (x>2 and x<1) or (2+x=2-x) is a mathematical formula that is satisfied by the instantiation x=0.

[0027] "Generating a set of mathematical equations that express constraints that the network must comply with" refers to defining mathematical equations that are equivalent to the constraints implied by the transformed set of important streams in order to comply with the real-time requirements of the streams. Each mathematical equation may be, for example, an equality or inequality, and represents a constraint imposed by two packets of two different streams. Generating mathematical equations from a set of streams is described, for example, in Non-Patent Document 1.

[0028] The "variables that define the network configuration" refer to variables that define the operation of the switches in the network, for example, the gate states of the switches at each point in time during the hyper period of the stream set.

[0029] An "ATP prover" refers to a computer-implemented tool configured to prove an ATP problem, i.e., to demonstrate whether a solution (e.g., a set of variable values ​​that satisfy all constraints) exists for the ATP problem. If the ATP problem is an SMT instance, the ATP prover may be an SMT solver such as Z3, CVC4, Alt-Ergo, or VeriT, or another ATP prover such as Vampire or iProver.

[0030] "Solving the ATP problem" refers to identifying the values ​​of variables that satisfy all mathematical equations. "Network configuration" refers to the set of rules that the switches in the network must follow. For example, if the network complies with the TSN framework, the set of rules would be the times that each gate on each switch opens and closes.

[0031] A "network configuration" refers to the set of rules that the switches in the network must follow. For example, if the network complies with the TSN framework, the set of rules is the time that each gate on each switch opens and closes.

[0032] "Configuring a network" refers to setting values ​​of variables that define the configuration, e.g., configuring switches in the network. According to various embodiments of the invention, this can be performed, for example, by one or more of the following: Configuring an existing network, for example, setting the values ​​of variables that control the operation of the switches that control the network's operation. This includes setting the GCL value for each switch to define when the gate opens and closes. Changing the topology of the network, including, for example, changing the speed of links and / or changing the architecture of the network. Generate a network according to the topology and configure the generated network.

[0033] The computational power required to estimate the number of constraints implied by a transformed stream set is much more limited than to actually generate the constraints.

[0034] Therefore, to reduce the number of constraints implied by the transformed stream set compared to the initial stream set, a transformation set can be selected from a large number of possible transformations depending on the number of constraints involved. Thus, constraints can be generated and the ATP prover can be run based on as limited a number of constraints as possible.

[0035] Because estimating the number of constraints requires significantly less computing resources than actually generating the constraints and running the ATP prover, the time and resources required to identify an appropriate configuration for the network can be significantly reduced.

[0036] Furthermore, as mentioned above, in many practical cases the computing resources required to run an ATP prover far exceed those available in conventional computational means, making it simply impossible to run an ATP prover unless the number of constraints is reduced.

[0037] Thus, by allowing the number of constraints to be significantly reduced at limited computational cost, the present invention makes it possible to run ATP provers on complex networks whose solutions were previously incomputably unfeasible.

[0038] Thus, a configuration of the network that ensures that the time constraints of important streams are met, where possible, can be identified within a reasonable time using conventional computational means.

[0039] In another aspect, computer software is proposed, comprising instructions for implementing at least part of the methods defined herein when the software is executed by a processor.

[0040] In another aspect, a non-transitory computer readable storage medium is proposed having recorded thereon software for implementing the methods defined herein when the software is executed by a processor.

[0041] The following features can optionally be implemented separately or in combination with others.

[0042] Advantageously, the step of selecting a transformation set comprises selecting the transformation set associated with the smallest number of constraints of the plurality of numbers of constraints.

[0043] This allows us to select the set of transformations that are most likely to lead to a viable solution and require the least amount of resources to run the SMT solver.

[0044] Advantageously, the computer-implemented method includes, if execution of the ATP prover is unsuccessful, selecting another transform set from the plurality of stream transform sets and returning to the step of applying the selected transform set.

[0045] This allows further transformation sets to be selected until a transformation set gives a successful solution to the ATP prover.

[0046] Advantageously, the set of transforms comprises multiple transforms for multiple streams.

[0047] Running multiple transformations simultaneously on multiple different streams increases the likelihood that the number of constraints can be significantly reduced.

[0048] Advantageously, the transform set includes multiple instances of the same transform applied respectively to multiple streams that share at least one common characteristic.

[0049] "Multiple streams sharing at least one common characteristic" refers to multiple streams that have the same characteristic or the same parameter value. For example, this may be: Streams with the same duration, and / or Streams with the same number of packets, and / or Streams with the same priority, etc.

[0050] Applying the same transformation to streams that share common characteristics reduces the number of constraints.

[0051] Advantageously, the set of transformations includes multiple instances of the same duration change applied to multiple streams having the same duration, respectively.

[0052] When the same transformation that changes the duration of a stream is applied to streams with the same duration, the transformed streams also have the same changed duration. Therefore, constraints between these streams need only be evaluated for the single changed duration, rather than for different overlapping durations. This reduces the number of overlapping durations over which constraints must be verified, as well as the network hyper-duration.

[0053] Advantageously, the set of transformations includes at least one division of a period of the stream into a plurality of smaller periods and is associated with the division of packets for transmission between the plurality of smaller periods.

[0054] This reduces the number of packets, reducing the number of packets in each small period, which may further reduce the hyper period of the transformed streams compared to the original streams, significantly reducing the number of constraints to comply with.

[0055] Advantageously, the division is chosen to divide the duration of a stream into smaller periods that are equal to or a multiple of the greatest common denominator of the durations of the set of streams, and do not increase to the hyper-period of the set of streams.

[0056] The "hyper period" refers to the minimum duration for which the same pattern of stream periods can be repeated. In practice, the hyper period is calculated as the least common multiple (LCM) of all the periods of the streams.

[0057] This allows selecting a period division that does not increase the hyper period of the stream set, and therefore does not increase the number of constraints that must be complied with.

[0058] Advantageously, the set of transformations includes at least one modification of the duration of a stream to reduce the hyper duration of the set of streams.

[0059] Reducing the hyperperiod of the transformed stream set compared to the initial stream set significantly reduces the number of constraints that must be complied with, as the constraints are evaluated over a shorter hyperperiod, which can be achieved with minimal changes to the periods of one or fewer streams.

[0060] Advantageously, the computer-implemented method includes displaying proposed changes to a period of the stream, receiving input relating to approval or rejection of the changes, and if the input relates to approval of the changes, adding the changes to the transformation set.

[0061] Aligning the period of one stream to the period of another stream may significantly reduce the hyper period of the stream set, but may also affect the functionality of the network, so this requires that the validity of the change be confirmed by the user (e.g., an expert user or the network designer).

[0062] Advantageously, the modification consists in making the duration of the stream that has the lowest greatest common denominator with the durations of the other streams of the set of streams equal to the duration of at least one other stream of the set of streams.

[0063] Changing the duration of the stream that has the lowest greatest common denominator with the durations of the other streams in the set to be equal to the duration of another stream significantly reduces the hyper-duration of the stream set, thereby reducing the number of constraints.

[0064] Advantageously, the set of transformations includes at least one division of at least one packet of the stream into a plurality of smaller packets.

[0065] Splitting packets into smaller packets allows more flexibility for routing the packets, in particular allowing the small packets to be interleaved with packets from other streams, which is especially useful for larger packets that can be difficult to interleave.

[0066] Advantageously, the division is further associated with a division of the duration of the stream.

[0067] Dividing the duration of a stream further reduces the hyper duration of the stream set.

[0068] Advantageously, the set of transformations includes at least one grouping of multiple packets of a stream into a single packet.

[0069] This reduces the number of packets and therefore the number of constraints that need to be considered. This is particularly useful for grouping small packets together, so that the number of constraints is reduced, but the single packets are not too large and interleaving issues do not occur.

[0070] Other features, details and advantages are set forth in the following detailed description and in the figures. [Brief explanation of the drawings]

[0071] [Figure 1] 1 is a diagram of a first example of a time-sensitive network for scheduling in which the present invention can be implemented, according to an embodiment; [Figure 2] FIG. 2 is a diagram of a first example of a method according to an embodiment. [Figure 3] FIG. 2 is a diagram of a second example of a method according to an embodiment. [Figure 4] FIG. 2 is a diagram of a first example of stream conversion according to an embodiment. [Figure 5] FIG. 10 is a diagram of a second example of stream conversion according to an embodiment. [Figure 6] FIG. 10 is a diagram of a third example of stream conversion according to an embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0072] Please refer to Figure 1.

[0073] FIG. 1 shows a first example of a time-sensitive network for scheduling in which the present invention can be implemented, according to an embodiment.

[0074] The network Net1 comprises: 14 end nodes N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14. 9 switch nodes, or "switches", SW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8, SW9. ·27 links L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13, L14, L15, L16, L17, L18, L19, L20, L21, L22, L23, L24, L25, L26, L27.

[0075] Each link allows direct transmission of packets between two nodes, e.g. Some links allow direct transmission of packets between end nodes and switches. For example, link L2 allows direct transmission of packets between end node N2 and switch SW2. Some links allow direct transmission of packets between two switches. For example, link L3 allows direct transmission of packets between switch SW1 and switch SW2.

[0076] Each end node represents an element of the system. For example, if the network Net1 is implemented on a ground vehicle, the end nodes represent computers, sensors, actuators, etc. Thus, packets represent messages exchanged between these elements.

[0077] The list of nodes, switches, and links, and the flow rate of each link, defines the topology of the network.

[0078] Network Net1 is configured so that streams flow between nodes, with each stream representing communication between at least two end nodes.

[0079] A switch is statically configured to allow or block packets of a particular stream from passing through "gates," which are then opened or closed to allow or block packets from passing through. Configuration of a switch can be performed through a "gate control list" (GCL), which defines the gates of the switch and the times during the network hyperperiod when each gate opens and closes.

[0080] A stream can be defined between a first end node, referred to as the "sender" (or "talker"), and one or more end nodes, referred to as "receivers" (or "listeners"), and is defined by at least the following: Path. This specifies the list of links and nodes that a stream follows from a sender to one or more receivers. Various paths can be specified between senders and receivers. For example, if a stream is specified from sender N3 to receiver N8, it can follow the path N3, L26, SW3, L7, SW7, L15, N8, or the path N3, L26, SW3, L6, SW4, L12, SW8, L18, N8. Period, which defines the period within which the transmission of the packet must be repeated. Maximum tolerable end-to-end latency, which specifies the maximum tolerable time between sending and receiving a packet. A set of packets to send, each specified by a size.

[0081] Thus, a stream specifies the periodic transmission of packets. A sending node periodically sends packets of a specified size to one or more receiving nodes. Packets must be sent exactly at or before the end-to-end latency. This formalization specifies the interactions that occur between components of the system. For example, a stream may represent measurements sent by sensors to a central controller over a period of time, the maximum tolerable latency for the central controller to receive sensor measurements, instructions sent from the central controller to actuators over a period of time, the maximum tolerable latency for the actuators to receive instructions from the central controller, etc.

[0082] Therefore, the switch configuration must allow each stream to adhere to its maximum tolerable latency for each period so that the real-time requirements of each stream are adhered to. Determining the configuration of the network to meet these needs is referred to as the "TSN scheduling problem."

[0083] Next, refer to Figure 2.

[0084] FIG. 2 shows a first example of a method according to an embodiment.

[0085] Method P2 is a computer-implemented method including a first step S1 of obtaining a topology of a deterministic Ethernet network and a set of important streams to instantiate in the network, each important stream defined by at least a path, a duration, a maximum tolerable end-to-end latency, and a set of packets, each packet associated with a size.

[0086] Thus, at the output of the first step S1, the topology of the network and the streams to instantiate are known.

[0087] The method P2 further comprises a second step S2 of estimating a number of constraints implied by a set of stream transformations of the above-mentioned critical stream set, each of which modifies the stream while maintaining or increasing the bit rate between the sending node and one or more receiving nodes of the stream.

[0088] As mentioned above, even if the duration and packets defining the stream are changed, upon conversion each receiver receives the same amount of data at the same rate and adhering to the same end-to-end delay, and stream conversion does not affect the operation of the network. Thus, the converted stream should adhere to any time constraints implied by the original stream.

[0089] In other words, step S2 consists in considering a number of different stream transformation sets and estimating the number of constraints respectively implied by each stream transformation set.

[0090] The stream transformations can be obtained in various ways. For example, all possible transformations can be considered. The possible transformations can also be filtered. For example, transformations that are expected to increase the number of constraints, such as transformations that increase the hyperperiod of the stream set, can be removed from the stream transformation set.

[0091] According to some embodiments of the present invention, a transform set may comprise a single transform for a single stream, or multiple transforms for multiple streams.

[0092] When a transform set includes multiple transforms for multiple streams, the transform set may include multiple instances of the same transform applied respectively to multiple streams that share at least one common characteristic.

[0093] For example, the same transformation can be applied to streams with the same duration, number of packets, same priority, etc.

[0094] For example, the same transformation may be applied to streams within a group of streams having the same duration and number of packets.

[0095] This allows increasing the number of streams that have the same characteristics when a set of transformations is applied, and therefore reduces the number of constraints.

[0096] In particular, applying the same duration modification to streams that already have the same duration allows the transformed streams to maintain the same duration, thereby reducing the number of partially overlapping periods over which constraints are calculated.

[0097] According to various embodiments of the present invention, all paths of the streams can be maintained, or conversely, the path of at least one stream can be changed. However, changing the path of a stream does not change the sender or receiver of the stream. For example, if an initial stream flows from node N3 through nodes SW3 and SW7 to node N8, changing the path of the stream is to change the stream so that it flows from node N3 through nodes SW3, SW4, and SW8 to node N8.

[0098] Then, step S2 includes a substep of estimating the number of constraints implied by each stream transform set. In other words, the number of constraints implied by the important stream set is estimated when applying each transform set belonging to the multiple stream transform sets.

[0099] Estimating the number of runtime constraints for a set of stream transformations can be done in a fast and simple manner.

[0100] For example, the number of constraints can be increased for each pair of streams that share a link. The number of packets in each stream can also be taken into consideration. For example, if the number of packets in two streams that share the same link is m and n, respectively, m*n constraints can be added. The relative durations of streams that share the same link can also be taken into consideration. For example, inter-packet constraints can be calculated for each pair of overlapping periods of the streams. Thus, m*n constraints can be added for each link shared by two streams and for each overlapping period of the streams.

[0101] Constraints can also be generated for each stream independently of other streams, allowing us to express the fact that packets of a stream must follow the stream's path. For example, in addition to constraints arising from links shared by multiple streams, we can count a number of constraints per stream equal to the number of periods * the number of constraints * the number of links in the path.

[0102] It is therefore clear that step S2 makes it possible to determine the number of constraints between each pair of packets of two different streams that need to be taken into account to ensure that all time constraints of the network are met.

[0103] The method P2 further comprises the step S3 of selecting a set of stream transformations based on the plurality of constraints.

[0104] Therefore, step S3 consists in selecting a stream transform set based on a number of constraints respectively associated with the plurality of stream transform sets.

[0105] In general, the selection may aim to minimize the number of constraints after applying the stream transformations in order to increase the likelihood of resolving the constraints, reducing the amount of resources required to find resolving the constraints.

[0106] The selection can be performed in various ways, for example: · Select any set of transformations that implies a number of constraints that is less than the constraints implied by the input set of the stream. Randomly select a set of transformations from the subset of transformations that implies the fewest number of constraints. For example, this could be: From among the set of transformations that imply a number of constraints below a threshold, e.g., a predetermined percentage of the number of constraints implied by the input set of the stream. For example, the set of constraints may be selected from among those that imply 10%, 1%, or 0.1% of the constraints implied by the input set of the stream. From among a predetermined percentage of the set of transformations that imply the fewest number of constraints, for example from among 10%, 1%, or 0.1% of the set of transformations that imply the fewest number of constraints. · Select the set of transformations that implies the fewest number of constraints. Transformation sets that imply a large number of disjunctions of constraints (i.e., alternative "or" constraints) can be discarded, since such disjunctions require the prover to make a choice, and if that choice does not solve the problem, it must make another choice, increasing the number of cases to consider.

[0107] The method P2 further comprises a fourth step S4 of applying the selected set of stream transformations to obtain a transformed set of significant streams.

[0108] Step S4 consists in applying the stream transformation set selected in step S3 to obtain a transformed stream set.

[0109] Method P2 further includes a fifth step S5 of generating an ATP problem from the transformed set of important streams, the ATP problem including equations expressing constraints that the transmission of packets of the streams must comply with and variables that define the configuration of the network.

[0110] In other words, step S5 consists in formulating an ATP problem, where the variables are expressions that solve the prescribed constraints implied by the configuration of the network, in particular the GCLs of the switches, as well as the various streams and packets. The formulation of such a problem is described, for example, by [1], on the example of an SMT problem, which is a particular type of ATP problem.

[0111] Some concrete illustrative examples of constraint formulations are given below.

[0112] In the first example, it would look like this: S1 and S2 are two streams whose paths traverse the L3 link. L1 is what comes before L3 in the path of S1. L2 is what comes before L3 in the path of S2. · Pe1 and Pe2 are the indices of the periods of S1 and S2, respectively, within the hyper period, and the corresponding periods of S1 and S2 overlap. · Pa1 and Pa2 are the packet indexes of S1 and S2, respectively.

[0113] Then, the constraint on the queue of the switch where link L3 originates can be formulated as follows: ((ΦS1,L1,Pa1,Pe1+TL1,S1<ΦS2,L2,Pa2,Pe2+TL2,S2) and (ΦS1,L3,Pa1,Pe1<ΦS2,L3,Pa2,Pe2)) or ((ΦS2,L2,Pa2,Pe2+TL2,S2<ΦS1,L1,Pa1,Pe1+TL1,S1) and (ΦS2,L3,Pa2,Pe2<ΦS1,L3,Pa1,Pe1)) where: ΦS,L,Pa,Pe are variables representing gates corresponding to the passage of packet Pa of stream S on link L during period Pe. ·TL,S is the packet transmission time of size associated with stream S on link L.

[0114] This constraint actually means the following rule: "A packet from S1 arrives before a packet from S2 and departs before a packet from S2, or vice versa." This kind of constraint can actually be formulated for each pair of streams sharing a link in each overlapping period to ensure that packets are transmitted successfully.

[0115] The second example uses the same notation. · S is a stream, and L1 and L2 are two consecutive links on S's path.

[0116] Then, for each packet index Pa, and each period index Pe: ΦS,L1,Pa,Pe+TL1,S<ΦS,L2,Pa,Pe

[0117] This constraint can actually mean the following rule: "A packet must arrive before it leaves the L2 link."

[0118] In a third example, the end-to-end constraint (i.e., the constraint on the end-to-end delay of the stream) can be formulated as follows: ΦS,L2,Pa,Pe+TL2,S-ΦS,L1,Pa,Pe <E2E_delay(S) where L1 and L2 are the first and last links in the path of stream S, and E2E_delay(S) is the end-to-end delay of S.

[0119] The examples of constraint formulations given above are given as non-limiting examples; in fact, a person skilled in the art can imagine all the constraints that can be formulated in a particular case. Thus, the rules for automatic generation of constraints can be applied to each stream for each overlapping period and to each pair of streams whose paths share at least one link or switch. The constraints can be generated in the language of the ATP prover or SMT solver used.

[0120] This step S5 allows the network scheduling problem to be formulated as a mathematical problem.

[0121] In fact, if a solution to the problem can be found, the values ​​of the variables define a configuration of the network that guarantees that all constraints are satisfied, i.e., a configuration of the network in which all timing requirements of all important streams are complied with.

[0122] On the other hand, if a solution to the problem cannot be found, then it is not possible to identify a configuration of the network that allows compliance with all constraints.

[0123] Method P2 further includes a sixth step S6 of running the ATP prover to solve the ATP problem and obtain values ​​of the above variables that define a configuration of the network that satisfies the set of equations.

[0124] In a seventh step S7, method P2 verifies whether the ATP prover executed successfully. If the execution was successful, it means that the ATP prover was able to identify values ​​of the variables that allow all equations to be satisfied, and therefore that configuring the network according to the values ​​of the variables can guarantee that all time constraints of the streams are satisfied.

[0125] On the other hand, if the ATP prover does not run successfully, it means that no solution to the problem can be identified, and therefore no configuration of the network can guarantee that all the timing constraints of the streams are complied with.

[0126] The method P2 further comprises an eighth step S8 of configuring the network in accordance with the obtained values ​​defining the configuration of the network if the execution of the ATP prover is successful.

[0127] Step S8 includes, for example, configuring the GCL for each switch according to values ​​specified by the ATP prover so that the gates of each switch open and close at times that ensure the time constraints of each stream are met.

[0128] If the network already exists, configure it. If the network does not yet exist, create and configure it.

[0129] Therefore, in method P2, the ATP prover in step S6 is run on a significantly reduced number of constraints compared to the number of constraints implied by the initial stream set. Therefore, the amount of resources required to run the ATP prover is much less than if it were run with the initial stream set. While the ATP prover is easy to run in many complex cases, if the number of constraints implied by the initial stream set is too large, it becomes impossible to run it based on those number of constraints.

[0130] Since estimating the number of constraints is significantly less complex than actually running the ATP prover, obtaining the configuration is much less complex than if it were run on the initial stream set, and is easily feasible even in the most complex cases.

[0131] Next, refer to Figure 3.

[0132] Method P3 is a second example of a method according to an embodiment.

[0133] Method P3 includes all of the steps of method P2, and additionally includes step S9, in which, if the ATP prover is not successful, the method returns to step S4, selecting another transform set from the plurality of stream transform sets and applying the selected transform set.

[0134] In other words, a new set of transformations is repeatedly selected and applied until a suitable solution is found.

[0135] The selection in step S9 can be performed in various ways. For example, the same selection rules as in step S3 can be applied to a reduced list of transformation sets, with each transformation set being removed from its reduced list as it is tested. Thus, with each iteration, the number of transformation sets in the list of candidate transformation sets is reduced.

[0136] For example, sets of transformations can be tested successively in order of increasing number of constraints until a solution is found.

[0137] Thus, starting with the one that shows the greatest likelihood of leading to a good solution, new sets of transformations can be tested until a solution is found.

[0138] Next, refer to Figure 4.

[0139] FIG. 4 shows a first example of stream conversion according to an embodiment.

[0140] By convention, in Figures 4, 5 and 6 the transformations are represented according to a horizontal line in time, with the pre-transformed stream shown above the line and the post-transformed stream shown below the line.

[0141] The transformation T4, called "period division", involves dividing the period of the stream into several smaller periods and is associated with separating the packets sent among the several smaller periods.

[0142] For example, in Figure 4, an initial stream transmits a number of packets Pkt41, Pkt42, Pkt43, Pkt44, Pkt45, Pkt46, Pkt47...Pkt4n during period Per41. Transformation T4 transforms the stream into a transformed stream for sub-period Per42. In the example of Figure 4, the transformed stream transmits a single packet PktPer42. However, this example is not limiting and the transformed stream may transmit multiple packets.

[0143] The cumulative size of packets transmitted by the transformed stream during period Per42 is greater than or equal to the cumulative size of packets transmitted by the first stream during period Per41 multiplied by the ratio of the second period Per42 divided by the first period Per41.

[0144] For example, the second period Per42 is obtained by dividing the first period Per41 by an integer n. Therefore, the cumulative size of packets transmitted during period Per42 (in the example of FIG. 4, the size of packet PktPer2) is equal to or greater than the cumulative size of packets transmitted during period Per41 (in the example of FIG. 4, the sum of the sizes of packets Pkt41, Pkt42, ..., Pkt4n) divided by n. Therefore, the flow rate of the converted stream is at least equal to the flow rate of the initial stream.

[0145] On the other hand, the period considered to verify the constraints after the transformation is period Per42 instead of period Per41. Therefore, the number of packets that need to be considered is reduced. Furthermore, the hyper period of the transformed stream set may be reduced, which significantly reduces the number of constraints that must be complied with.

[0146] The division may be selected in a variety of ways.

[0147] For example, the division may be chosen to divide the duration of a stream into smaller periods that are equal to or a multiple of the greatest common denominator of the durations of the set of streams, but do not increase to the hyper-period of the set of streams.

[0148] This therefore ensures that the period splitting does not increase the hyperperiod of a stream. Indeed, as mentioned above, the hyperperiod of a stream is an important factor in the complexity of the scheduling problem, since the larger the hyperperiod, the greater the number of overlapping period combinations to examine. Therefore, reducing the hyperperiod is generally a desirable objective of the transformation.

[0149] Collectively, the set of transformations may include at least one change in the duration of a stream to reduce the hyper duration of the set of streams.

[0150] Such a transformation can be determined by performing prime factorization of the duration and hyperperiod of each stream and comparing the prime factors of the duration of each stream with the prime factors of the hyperperiod. For example, if the duration of a single stream is expressed in base time units and has a prime factor of "7", then the duration division can be performed by dividing the duration division of this stream by 7, and the hyperperiod of the stream set can be divided by 7.

[0151] Of course, this example can be generalized as follows: Apply the same period division to groups of streams with the same prime factor, e.g., divide the periods of all streams with "7" as a prime factor by 7, divide the periods of all streams with "5" as a prime factor by 5, etc. Apply division by powers of prime factors. For example, if the duration of a single stream is 49(7 2 ), and the duration of the other stream is not a multiple of 7, then the hyper period of the stream set can be divided by 49 by dividing the duration of this stream by 49. · Combine the divisions by powers of a prime factor into groups of all streams whose duration is a multiple of a power of a prime factor.

[0152] It can be seen that such period decomposition significantly reduces the complexity of the scheduling problem, since the reduction of hyperperiods significantly reduces the complexity of the problem.

[0153] In some cases, the transformation may be a period change that is not a division. More specifically, the transformation may be a period change to reduce the hyper period of the stream set.

[0154] For example, if the duration of a stream, expressed in base time units, is a prime number, 97, and that stream is the only stream with this duration, then this stream alone will multiply the hyper duration of the stream set by 97. On the other hand, if we slightly change the duration of the stream to 96 instead of 97, the situation changes dramatically. In fact, 96 is 2 5*3 and is therefore divisible by 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, and 96. Many other streams may be divisible by one or more of these numbers. Therefore, slightly changing the stream periods can significantly reduce the hyperperiod of the stream set and therefore the complexity of the scheduling problem.

[0155] Such a transformation can be automatically suggested when the duration of the stream is a large prime number or is divisible by a large prime number, in which case it can be suggested to replace the large prime number with a nearby non-prime number.

[0156] For example, the transformation may be to make the duration of the stream with the lowest common denominator with the durations of the other streams in the set of streams equal to the duration of at least one other stream in the set of streams.

[0157] In this way, the hyper period is divided by as large a number as possible. Such changes can be proposed iteratively for multiple streams to obtain the greatest reduction in the hyper period.

[0158] However, it should be noted that, as opposed to the splitting described above, changing the duration without splitting may change the functionality of the stream, since packets are not sent in the same period. Such changes may be validated by a user, for example, an expert user who is the network designer.

[0159] To this effect: A proposal to change the period can be displayed to the user, for example, via a screen. Input regarding approval or rejection of the changes may be received through a user interface, such as a mouse and keyboard. · Changes in duration can be made to a conversion only if the input is for approval of the change.

[0160] This therefore allows for a large reduction in the hyper-period of the stream set that would not be possible using period splitting alone, while ensuring that network functionality is maintained.

[0161] Change validation can be proposed repeatedly for multiple period changes.

[0162] Validation of a period change can also be proposed only if the period change belongs to a set of transformations that imply a large reduction in the number of constraints.

[0163] Next, refer to Figure 5.

[0164] FIG. 5 shows a transformation T5 that involves splitting at least one packet of the stream into multiple smaller packets at least once.

[0165] In the example of Figure 5, the first stream transmits a single large initial packet Pkt51, split into three subsequent packets Pkt52, Pkt53, and Pkt54, each one-third the size of packet Pkt51. More generally, packet splitting refers to splitting an initial packet into n subsequent packets, where n >= 2. The total size of the subsequent packets is equal to or greater than the size of the initial packet. For example, each subsequent packet may have a size equal to or greater than the size of the initial packet divided by n. The subsequent packets may be the same size or different sizes.

[0166] Thus, the total size of the data carried by subsequent packets is at least equal to the size of the data carried by the first packet, but splitting the packet into smaller packets provides more flexibility for routing the packets, in particular allowing small packets to be interleaved with packets from other streams. This is especially useful for large packets that may be difficult to interleave. Packet splitting therefore provides more flexibility for identifying an appropriate solution to solve the scheduling problem.

[0167] In some embodiments of the present invention, the division of packets is further associated with the division of periods of said streams.

[0168] For example, if a single packet is sent in the first stream, the packet size and the duration of the stream can both be divided by the same integer.

[0169] For example, in the example of Figure 5, the packet size and the stream period are both divided by 3. Instead of transmitting large packet Pkt51 during period Per51, the converted stream transmits small packet Pkt52, which is one-third the size of packet Pkt51, during period Per52, which is one-third of period Per51. Packets Pkt53 and Pkt54 shown in Figure 5 actually represent packet Pkt52 being repeatedly transmitted following period Per52.

[0170] This therefore allows the benefits of packet splitting to be obtained while reducing the hyper period of the stream set.

[0171] Next, refer to FIG.

[0172] Figure 6 shows an example of transformation T6, which groups multiple packets of a stream into a single packet. In the example of Figure 6, packets Pkt61, Pkt62, Pkt63, Pkt64, Pkt65, Pkt66, Pkt67...Pkt6n are grouped into packet PktGrp6. Therefore, the size of packet PktGrp6 is equal to the total size of packets Pkt61, Pkt62, Pkt63, Pkt64, Pkt65, Pkt66, Pkt67...Pkt6n.

[0173] According to various embodiments of the present invention, all or a subset of the packets of a stream may be grouped into a single packet.

[0174] Transformation T6 reduces the number of packets and therefore the number of constraints that need to be considered. This is especially useful when grouping small packets together, so that the number of constraints is reduced, but the single packets are not too large and interleaving issues do not occur.

[0175] The examples shown in Figures 4, 5 and 6 show how stream transformation can reduce the number of constraints that need to be considered to solve a network scheduling problem.

[0176] However, these are only examples of transformations that can be implemented by the present invention. Furthermore, all transformations that are not mutually exclusive can be combined. For example, packet grouping can be associated with period division or period modification, and packet division can be associated with period division or period modification. Some transformations may be applied separately to different packets of the same stream. For example, if a stream transmits a large packet followed by several very small packets, the large packet can be divided into several medium packets and the several very small packets can be modified into a single medium packet. Thus, in this example, a large packet followed by many very small packets is transformed into a few medium packets, thereby benefiting from the advantages of the two transformations.

[0177] It is also clear that it is difficult to a priori determine the combination of transformations that will result in the greatest reduction in the number of constraints and, therefore, the complexity of the TSN scheduling problem. Therefore, by estimating the number of constraints for multiple transformation sets in step S2 and selecting the transformation set to apply in step S3 accordingly, it is possible to select a transformation set that actually significantly reduces the number of constraints.

[0178] The present disclosure is not limited to the methods, apparatus, and computer programs described herein, which are merely examples, and the present invention encompasses all alternatives that would occur to one skilled in the art upon reading this document.

Claims

1. 1. A computer-implemented method comprising: Deterministic Ethernet network topology and a set of important streams to instantiate within the network, each important stream defined by at least a path, a duration, a maximum tolerable end-to-end latency, and a set of packets, each packet associated with a size; and estimating a number of constraints implied by a set of stream transforms of the set of significant streams, each of the stream transforms modifying a stream while maintaining or increasing a bit rate between a sending node and one or more receiving nodes of the stream; selecting a stream transformation set based on the plurality of constraint numbers; applying the selected set of stream transformations to obtain a transformed set of nontrivial streams; and generating an ATP (Automated Theorem Proving) problem from the transformed set of important streams, the problem including equations expressing the constraints that the transmission of packets of the streams must comply with and variables that define the configuration of the network; running an ATP prover to solve the ATP problem and obtain values ​​of the variables that define a configuration of the network that satisfies the set of equations; if execution of the ATP prover is successful, configuring the network according to the obtained values ​​defining the configuration of the network; 11. A computer-implemented method comprising:

2. The computer-implemented method of claim 1 , wherein selecting the stream transform set comprises selecting the stream transform set associated with a smallest number of constraints among the plurality of numbers of constraints.

3. 3. The computer-implemented method of claim 1, further comprising: if execution of the ATP prover is unsuccessful, selecting another stream transform set from the plurality of stream transform sets and returning to the step of applying the selected stream transform set.

4. The computer-implemented method of any one of claims 1 to 3, wherein the set of stream transforms includes multiple transforms for multiple streams.

5. The computer-implemented method of any one of claims 1 to 4, wherein the set of stream transforms comprises multiple instances of the same transform applied to multiple streams that share at least one common characteristic.

6. The computer-implemented method of any one of claims 1 to 5, wherein the set of stream transformations includes multiple instances of the same duration modification applied to multiple streams having the same duration, respectively.

7. 7. The computer-implemented method of claim 1, wherein the set of stream transformations includes at least one division of a period of a stream into a plurality of smaller periods associated with separating and transmitting the packets between the plurality of smaller periods.

8. 8. The computer-implemented method of claim 1, wherein the dividing divides the duration of a stream into smaller durations that are equal to or a multiple of the greatest common denominator of the durations of the set of streams and are selected not to increase to a hyper duration of the set of streams.

9. The computer-implemented method of any one of claims 1 to 8, wherein the set of stream transformations includes at least one modification of a duration of the stream to reduce a hyper duration of the set of streams.

10. Displaying suggested changes to the duration of the stream; receiving input related to approval or rejection of said changes; if the input concerns approval of the change, adding the change to the stream transformation set; The computer-implemented method of any one of claims 1 to 9, comprising:

11. 11. The computer-implemented method of claim 9 or 10, wherein the modification consists in making the duration of the stream having the least greatest common denominator with the durations of other streams of the set of streams equal to the duration of at least one other stream of the set of streams.

12. The computer-implemented method of any one of claims 1 to 11, wherein the set of stream transformations includes at least one division of at least one packet of a stream into multiple smaller packets.

13. The computer-implemented method of any one of claims 1 to 12, wherein said dividing is further associated with dividing a duration of said stream.

14. The computer-implemented method of any one of claims 1 to 13, wherein the set of stream transformations includes at least one grouping of multiple packets of a stream into a single packet.

15. Computer software comprising instructions for implementing at least part of the method of any one of claims 1 to 14 when said computer software is executed by a processor.

Citation Information

Patent Citations

  • Gating scheduling method for periodic messages of various priorities in time-sensitive network

    CN115834511A

  • Method for scheduling TSN flow, communication system and centralized network configuration entity

    CN117063453A

  • Apparatus and method for supporting class-based scheduling in time-sensitive networking (TSN) network

    JP2022167764A

  • Method for scheduling TSN flows, communication system and central network configuration entity

    JP2024501088A

  • Method for scheduling TSN flows, communication system, and central network configuration entity

    US20240205166A1