Computer implementation method for solving time-sensitive network scheduling problems

The method addresses scalability and computational complexity in TSN scheduling by reducing constraints and resources through deterministic Ethernet topology estimation and automated theorem-proving, enabling effective network configuration in large-scale critical systems.

JP7876733B2Active Publication Date: 2026-06-19MITSUBISHI ELECTRIC R&D CENTRE EUROPE BV

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
MITSUBISHI ELECTRIC R&D CENTRE EUROPE BV
Filing Date
2024-01-30
Publication Date
2026-06-19

Smart Images

  • Figure 0007876733000001
    Figure 0007876733000001
  • Figure 0007876733000002
    Figure 0007876733000002
  • Figure 0007876733000003
    Figure 0007876733000003
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] This disclosure relates to the field of time-sensitive networks. More specifically, it relates to the field of solving time-sensitive network scheduling problems.

Background Art

[0002] Ethernet (trademark) networks provide solutions for performing communication between components of a system. For example, an Ethernet network can be introduced into a system such as an automobile, an airplane, a medical device, etc. to obtain 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 transmits messages to actuators (e.g., brakes, motors...) through an Ethernet network to control the vehicle.

[0003] When such a system is a critical system, real-time communication is required. For example, in an automobile, the in-vehicle network needs to use real-time communication. This is because it is necessary to deliver messages to an electronic power unit (EPU) responsible for brake control or speed adjustment. A standard Ethernet network does not have a real-time communication function and thus cannot be used for such purposes. Even if Ethernet provides a reasonable mechanism for ensuring fairness between communication streams, such as a quality of service (QoS) that introduces a message priority order that can prioritize important messages, a standard Ethernet network cannot obtain any guarantee regarding strict deadlines. Therefore, in a standard Ethernet network, some important messages may not reach the destination by the expected deadline. Such a situation is unacceptable in a critical system.

[0004] Time-sensitive networks (TSNs) are designed to provide a real-time mechanism for Ethernet. A standard TSN can compel a switch to send packets from a given class at a given time. The switch is set up using a gate control list (GCL) for each port, which defines the moment when packets of a given class are sent. Therefore, one common purpose of a TSN is to compute the GCL so that the end-to-end delay of critical streams is taken into account. This computation can be performed statically.

[0005] In practice, such TSN setup calculations must always be performed for every gate. Since streams may not share the same duration, a hyper-duration, i.e., the least common multiple (lcm) of the durations, must be considered, and a complete scheduling for all streams must be found statically. In fact, the scheduling problem must also be solved for any interleaves in the duration of the streams. Solving the TSN scheduling problem yields variables for each tuple of the stream, the switches in the stream's path, the packets to be sent during the duration of the stream, and the occurrence of the duration during the hyper-duration. In real-world industrial applications, there are generally so many variables and so many associated constraints that solving the scheduling problem can be hindered.

[0006] Non-patent document 1 proposes a logical formalization of the TSN scheduling problem. In this problem, the variables are timestamps corresponding to the time a switch transmits a given packet from a given stream (also called a gate). The constraints are described using a mathematical formula in which the variables are the open / close times of the network switch gates, 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 sent to some SMT solver (e.g., Z3, Alt-Ergo, CVC4...) that finds a solution.

[0007] The approach proposed in Non-Patent Document 1 provides a practical tool for solving the TSN scheduling problem. The main challenge with this approach is scalability. In practice, despite the effectiveness of the SMT solver, it cannot solve real-world industrial applications. This is usually because the formalization of such applications involves too many variables and constraints (e.g., 10 10 Individual constraints and 10 5 (The number of gates) cannot be processed directly by this technology. Therefore, the approach described in Non-Patent Document 1 cannot be used in practice to perform TSN scheduling in actual complex critical systems. [Prior art documents] [Non-patent literature]

[0008] [Non-Patent Document 1] Craciunas, SS, Oliver, RS, & 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). [Overview of the Initiative] [Problems that the invention aims to solve]

[0009] Therefore, there is a need for a method that can perform time-sensitive network scheduling while complying with the strict real-time constraints on networks in large-scale, critical systems.

[0010] This disclosure aims to improve this situation. [Means for solving the problem]

[0011] A computer implementation method is proposed, which includes obtaining a deterministic Ethernet network topology and a set of critical streams to be instantiated within the network, each critical stream being defined by at least a path, duration, maximum allowable end-to-end latency, and a set of packets, each packet being associated with a size; estimating a number of constraints implied by a set of stream transformations of the critical stream set, each stream transformation modifying the stream while maintaining or increasing the bitrate between the stream's transmitting node and one or more receiving nodes; selecting a set of stream transformations based on the number of constraints; applying the selected set of stream transformations to obtain a transformed critical stream set; generating an automated theorem-proving "ATP" problem from the transformed critical stream set, including an expression representing constraints that the transmission of stream packets must comply with, and variables defining the network configuration; running an ATP prover to solve the ATP problem and obtain values ​​for the variables defining the network configuration that satisfy a set of expressions; and, if the ATP prover is successful, configuring the network according to the obtained values ​​defining the network configuration.

[0012] "Ethernet network topology" refers to a set of attributes that define a 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 operation for at least some of the communications within the network. Examples of deterministic Ethernet networks include networks that conform to the TTEthernet or Time-Sensitive Network (TSN) framework. A deterministic Ethernet network may be achieved in particular by implementing a fault-tolerant clock synchronization mechanism (under the IEEE 802.1ASrev standard defined in the IEEE, “Time-Sensitive Networking Task Group” http: / / www.ieee802.org / 1 / pages / tsn.html, 2016 (retrieved July 6, 2016)) and / or a network-wide reference and mechanism that defines the end-to-end timing of communication streams (under the IEEE 802.1Qbv standard defined in the IEEE, “802.1Qbv-Enhancements for Scheduled Traffic” http: / / www.ieee802.org / 1 / pages / 802.1bv.html, 2016, draft 3.1).

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

[0015] A "critical stream" refers to a stream that must comply with end-to-end latency standards for each period.

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

[0017] "Constraints" refer to real-time constraints applied to the stream. Examples of such constraints include the following: · Frame constraints. Such constraints usually include constraints related to the transmission of packets within a time frame, for example, the order of packet transmission by a stream. · Link constraints. Such constraints usually include constraints related to the size and data rate of a link. · Stream transmission constraints. Such types of constraints include, for example, constraints representing the sending and receiving of packets. Here, for example, there are constraints such as a packet being received from a first link at a switch and then transmitted on a second link, and the constraint that two packets cannot be transmitted simultaneously on the same link. · End-to-end constraints. Such constraints may, for example, represent the maximum delay between the transmission and reception of a packet.

[0018] "Estimating the number of constraints implied by a rate-equivalent stream conversion set" means calculating the number of constraints formulated by a stream that has been converted to meet the time requirements of each important stream.

[0019] "Stream conversion set" refers to a set of one or more stream conversions applied to one or more important streams among an important set of streams. A stream conversion set can include various numbers of conversions, from a single conversion of a single stream to multiple conversions of each stream.

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

[0021] "Transmitting side" refers to the node that transmits the packets of a stream.

[0022] "Receiving side" refers to the node that receives the packets of a stream.

[0023] Put another way, stream conversion is to change the characteristics of a stream without changing the sending side and one or more receiving sides of the stream, and the flow rate of the changed stream is at least equal to the bit rate of the original stream. Therefore, stream conversion ensures that data can be transmitted between the sending side and one or more receiving sides of the stream at least at the same data rate. Therefore, the characteristics of the data transferred through the stream are not changed by stream conversion. Even if the period defining the stream and the packets are changed, each receiving side receives the same amount of data at the same rate and conforms to 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 a problem of automated inference and mathematical logic that includes a plurality of equations depending on the values of variables. Proving an ATP problem means identifying a solution that satisfies all mathematical formulas or logical expressions, that is, a set of values of variables. An ATP problem may be, for example, a "Satisfiability Modulo Theories (SMT) instance". This is a representation in the SMT language of formulas and variables that can be supplied to an SMT solver. The present invention is not limited to a specific ATP or SMT language, and for example, the SMT-lib language or the CVC language can be used.

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

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

[0028] "Network configuration variables" refer to variables that define the operation of network switches, such as the gate state of the switches at each point in time during the hyperperiod of a stream set.

[0029] An "ATP prover" refers to a computer implementation tool configured to prove an ATP problem, that is, to demonstrate whether a solution (e.g., a set of variable values ​​that satisfy all constraints) exists for an ATP problem. If the ATP problem is an SMT instance, the ATP prover is 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" means identifying the values ​​of the variables that satisfy all the equations. 。

[0031] "Network configuration" refers to the set of rules that network switches must follow. For example, if a network conforms to the TSN framework, the set of rules would be the time each gate of each switch should be open or closed.

[0032] "Configuring a network" means setting the values ​​of variables that define the configuration, for example, configuring a network switch. According to various embodiments of the present invention, this can be done, 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 switches that control the network's operation. This includes setting GCL values ​​for each switch to define the time the gates are open and closed. • Changing the network topology. This includes, for example, changing the link speed and / or changing the network architecture. • To generate a network according to a topology and to configure the generated network.

[0033] The computational power required to estimate the number of constraints implied by the transformed stream set is far more limited than if the constraints were actually generated.

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

[0035] Since the amount of computing resources required to estimate the number of constraints is significantly less than the actual generation of constraints and execution of the ATP Proofer, the time and resources required to determine the appropriate network configuration can be greatly reduced.

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

[0037] Therefore, by enabling a significant reduction in the number of constraints with limited computational cost, the present invention makes it possible to run ATP provers on complex networks for which solutions were previously unsolvable.

[0038] Therefore, if possible, a network configuration that ensures the time constraints of important streams are met can be identified within a reasonable time using conventional computing methods.

[0039] In another embodiment, we propose computer software comprising instructions for implementing at least a portion of the methods specified herein when the software is executed by a processor.

[0040] In another embodiment, we propose a computer-readable non-temporary recording medium on which software for implementing the method defined herein is recorded when the software is executed by a processor.

[0041] The following features can be implemented separately or in combination with others, at the discretion of the user.

[0042] Advantageously, the step of selecting a set of transformations involves selecting a set of transformations associated with the fewest number of constraints among multiple sets of transformations.

[0043] This allows us to select the transformation set that is most likely to lead to a solvable solution and requires the least amount of resources to run the SMT solver.

[0044] Advantageously, this computer implementation method includes, if the execution of the ATP certificate fails, selecting another set of transformations belonging to the above set of stream transformations and returning to the step of applying the selected set of transformations.

[0045] This allows for the selection of further conversion sets until the ATP prover can be successfully resolved by the current conversion set.

[0046] Advantageously, a set of transformations includes multiple transformations for multiple streams.

[0047] Performing multiple transformations simultaneously on multiple different streams is likely to significantly reduce the number of constraints.

[0048] Advantageously, a set of transformations includes multiple instances of the same transformation that are applied to multiple streams, each sharing at least one common feature.

[0049] "Multiple streams sharing at least one common feature" refers to multiple streams having the same feature or the same parameter values. For example, this could be: • Streams having 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 features reduces the number of constraints.

[0051] Advantageously, a transformation set contains multiple instances of the same duration change that are applied to multiple streams, each having the same duration.

[0052] When the same transformation that modifies the duration of a stream is applied to a stream that has the same duration, the transformed stream will also have the same modified duration. Therefore, constraints between these streams need to be evaluated only on a single modified duration, rather than on different durations that partially overlap. This reduces the number of constraints to be validated, as it reduces the number of partially overlapping durations to validate and the network's hyperduration.

[0053] Advantageously, the conversion set involves dividing the duration of the stream into several smaller durations at least once, and is associated with splitting packets for transmission between these smaller durations.

[0054] This reduces the number of packets, and the number of packets in each small period. This may further reduce the hyperperiod of multiple transformed streams compared to the initial multiple streams, and significantly reduce the number of constraints to comply with.

[0055] In favor of the split, the split is chosen to divide the duration of the stream into smaller durations that are equal to or multiples of the greatest common divisor of the durations of the stream set, so as not to increase to the hyperduration of the stream set.

[0056] A "hyperperiod" is the shortest duration during which a stream period of the same pattern can be repeated. In practice, the hyperperiod is calculated as the least common multiple (LCM) of all the periods in the stream.

[0057] This allows us to choose a time partition that does not increase the hyperduration of the stream set, thus not increasing the number of constraints that need to be complied with.

[0058] Advantageously, the transformation set includes at least one modification to the duration of the streams in order to reduce the hyperduration of the stream set.

[0059] Reducing the hyperduration of the transformed stream set compared to the original stream set significantly reduces the number of constraints to comply with, because constraints are evaluated over shorter hyperdurations. This can be achieved with minimal changes to the duration of one or fewer streams.

[0060] Advantageously, this computer implementation method includes displaying a proposal to change the duration of a stream, receiving an input relating to the approval or rejection of the change, and, if the input relates to the approval of the change, adding the change to the transformation set.

[0061] Matching the duration of one stream to the duration of another stream may significantly shorten the hyperduration of a stream set, but it could also affect network functionality. Therefore, the effectiveness of such changes should be confirmed by the user (e.g., a professional user or network designer).

[0062] The advantage of the change is that the duration of a stream that has the smallest greatest common divisor with the durations of the other streams in the stream set is equal to the duration of at least one other stream in the stream set.

[0063] By changing the duration of a stream that has the smallest greatest common divisor with the durations of other streams in the set to be equal to the duration of another stream, the hyperduration of the stream set is significantly reduced, thus reducing the number of constraints.

[0064] Advantageously, the translation set includes splitting at least one packet of the stream into multiple smaller packets at least once.

[0065] Dividing packets into smaller packets increases flexibility in routing, particularly by allowing smaller packets to be interleaved with packets from other streams. This is especially useful for larger packets, which can be difficult to interleave.

[0066] Advantageously, the split is further associated with the splitting of the stream into time periods.

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

[0068] Advantageously, the conversion set involves grouping multiple packets of a stream into a single packet at least once.

[0069] This reduces the number of packets, and therefore the number of constraints to consider. This is particularly effective for grouping small packets, so the number of constraints is reduced, but individual packets are not too large, and interleaving issues do not arise.

[0070] Other features, details, and advantages are shown in the detailed description and diagrams below. [Brief explanation of the drawing]

[0071] [Figure 1] This figure shows a first example of a time-sensitive network for scheduling that can implement the present invention according to an embodiment. [Figure 2] This is a diagram of a first example of the method according to an embodiment. [Figure 3] This is a diagram of a second example of the method according to an embodiment. [Figure 4] This is a diagram of a first example of stream transformation according to an embodiment. [Figure 5] This is a diagram of a second example of stream transformation according to an embodiment. [Figure 6] This is a diagram of a third example of stream transformation according to an embodiment. [Modes for carrying out the invention]

[0072] Refer to Figure 1.

[0073] Figure 1 shows a first example of a time-sensitive network for scheduling that can implement the present invention according to an embodiment.

[0074] Network Net1 includes the following: • 14 end nodes N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14. • Nine 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 for the direct transmission of packets between two nodes. For example, Some links allow direct packet transmission between end nodes and switches. For example, link L2 allows direct packet transmission between end node N2 and switch SW2. Some links allow direct packet transmission between two switches. For example, link L3 allows direct packet transmission between switch SW1 and switch SW2.

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

[0077] The network topology is defined by a list of nodes, switches, and links, as well as the flow rate of each link.

[0078] Network Net1 is configured so that streams flow between nodes. Each stream represents 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 a "gate," and the "gate" is opened or closed to allow or block packets from passing through. Switch configuration can be performed through a "gate control list" (GCL) that defines the gates of the switch and the time each gate is open or closed during the network's hyperperiod.

[0080] A stream can be defined between a first end node called the "sender" (or "talker") and one or more end nodes called the "receiver" (or "listener"), and is defined by at least the following: • Path. This defines a list of links and nodes that a stream from the sender to one or more receivers will follow. Various paths can be defined between the sender and receivers. For example, if a stream is defined from sender N3 to receiver N8, it can follow a path such as N3, L26, SW3, L7, SW7, L15, N8, or a path such as N3, L26, SW3, L6, SW4, L12, SW8, L18, N8. • Duration. This specifies the period during which packets must be sent repeatedly. • Maximum allowable end-to-end latency. This specifies the maximum allowable time between sending and receiving a packet. • A set of packets to be sent. Each packet is defined by its size.

[0081] Therefore, a stream defines the periodic transmission of packets. A transmitting node periodically sends packets of a specified size to one or more receiving nodes. The packets must be sent exactly at or before the end-to-end latency. This formalization defines the interactions that occur between the components of the system. For example, a stream could represent measurements sent by a sensor to a central controller during a period, the maximum allowable latency for the central controller to receive the sensor measurements, commands sent from the central controller to an actuator during a period, the maximum allowable latency for the actuator to receive the commands from the central controller, and so on.

[0082] Therefore, the switch configuration must ensure that each stream adheres to its maximum allowable latency for each period, so that the real-time requirements of each stream are met. Determining the network configuration that satisfies these needs is known as the "TSN scheduling problem."

[0083] Next, refer to Figure 2.

[0084] Figure 2 shows a first example of the method according to the embodiment.

[0085] Method P2 is a computer implementation method comprising a first step S1 of obtaining a deterministic Ethernet network topology and a set of critical streams to be instantiated within the network, where each critical stream is defined by at least a path, duration, maximum allowable end-to-end latency, and a set of packets, each packet being associated with a size.

[0086] Therefore, in the output of the first step S1, the network topology and the streams to be instantiated are known.

[0087] Method P2 further involves estimating a number of constraints implied by a set of stream transforms of the above important set of streams, each stream transform comprising a second step S2 of modifying the stream while maintaining or increasing the bitrate between the stream's sending node and one or more receiving nodes.

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

[0089] In other words, step S2 involves considering several different sets of stream transformations and estimating the number of constraints implied by each set of stream transformations.

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

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

[0092] If a set of transformations includes multiple transformations for multiple streams, the set of transformations may include multiple instances of the same transformation that apply to multiple streams that share at least one common feature.

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

[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 us to increase the number of streams that share the same characteristics when the transformation set is applied, and therefore reduce the number of constraints.

[0096] In particular, applying the same duration change to a stream that already has the same duration reduces the number of partially overlapping durations used to calculate constraints, because the same duration can be maintained in the transformed stream.

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

[0098] Next, step S2 includes a substep that estimates the number of constraints implied by each set of stream transformations. In other words, this means that the number of constraints implied by important sets of streams is estimated when applying each transformation set belonging to multiple sets of stream transformations.

[0099] The number of runtime constraints for a stream transformation set can be estimated quickly and simply.

[0100] For example, the number of constraints can be increased for each pair of streams sharing a link. The number of packets in each stream can also be considered. For example, if two streams sharing the same link have m and n packets respectively, m*n constraints can be added. The relative duration of streams sharing the same link can also be considered. For example, constraints between packets can be calculated for each pair of overlapping stream durations. Therefore, m*n constraints can be added for each link shared by two streams and for each overlapping stream duration.

[0101] It is also possible to generate constraints for each stream independently of other streams. This allows us to express the fact that packets in a stream must follow the stream's path. For example, in addition to the constraints arising from links shared by multiple streams, a number of constraints equal to the number of durations * number of constraints * number of links in the path can be counted for each stream.

[0102] Therefore, it is clear that step S2 allows us to determine the number of constraints between each pair of packets from two different streams, which must be considered in order to ensure that all network time constraints are met.

[0103] Method P2 further includes step S3 of selecting a set of stream transformations based on the number of constraints mentioned above.

[0104] Therefore, step S3 involves selecting a set of stream transformations based on the number of constraints associated with each of the multiple stream transformation sets.

[0105] In general, the selection may aim to minimize the number of constraints after applying the stream transformation and reduce the amount of resources required to find a way to resolve the constraints, thereby increasing the likelihood of resolving them.

[0106] Selection can be performed in various ways, such as the following: Select any set of transformations that implies fewer constraints than those implied by the input set of the stream. • Randomly select a set of transformations from the subset of transformations that imply the fewest constraints. For example, this would look like this: ○ A predetermined percentage of the number of constraints implied by the stream's input set, for example, from a set of transformations that imply the number of constraints below a threshold. For example, the set of constraints is selected from those that imply 10%, 1%, or 0.1% of the constraints implied by the stream's input set. ○ From a predetermined proportion of the transformation set that implies the fewest number of constraints, for example, from 10%, 1%, or 0.1% of the transformation set that implies the fewest number of constraints. Select the set of transformations that implies the fewest number of constraints. • Transformation sets that imply a logical OR of multiple constraints (i.e., "or" choice constraints) can be discarded. This is because such ORs require the prover to perform a choice, and if that choice does not lead to solving the problem, it must perform another choice, increasing the number of cases to consider.

[0107] Method P2 further includes a fourth step S4 in which the selected stream transformation set described above is applied to obtain the transformed critical stream set.

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

[0109] Method P2 further includes a fifth step S5 in which, from the above transformed set of important streams, a fifth step S5 is generated of an ATP problem that includes an expression representing the constraints that the transmission of stream packets must comply with, and variables that define the network configuration.

[0110] In other words, step S5 is to formulate the ATP problem, where the variables are equations that resolve the defined constraints implied by the network configuration, particularly the GCL of the switches, as well as the various streams and packets. The formulation of such a problem is illustrated, for example, in Non-Patent Document 1, in the example of the SMT problem, which is a specific type of ATP problem.

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

[0112] In the first example, it would look like this: S1 and S2 are two streams whose paths pass through the L3 link. L1 is the one that precedes L3 in the path of S1. L2 is the one that precedes L3 in the path of S2. Pe1 and Pe2 are indices for the periods of S1 and S2 within the hyper period, respectively, with the corresponding periods of S1 and S2 overlapping. Pa1 and Pa2 are the packet indices for S1 and S2, respectively.

[0113] Next, the constraints on the switch queues where Link L3 occurs 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)) Here, ΦS,L,Pa,Pe are variables that represent the gates corresponding to the paths of packets Pa in 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 essentially 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 type of constraint can actually be formulated for each pair of streams sharing a link during 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 the path of S.

[0116] Next, the following applies to 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: "The packet must arrive before it leaves the L2 link."

[0118] In the 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) Here, 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 example of constraint formulation shown above is a non-limiting example; in practice, a person skilled in the art can imagine all constraints that can be formulated in specific cases. Therefore, the rules for automatic constraint generation can be applied to each stream for each partially 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 being used.

[0120] Step S5 allows us to formalize the network scheduling problem as a mathematical problem.

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

[0122] On the other hand, if a solution to the problem cannot be found, it is impossible to identify a network configuration that would allow all constraints to be met.

[0123] Method P2 further includes a sixth step S6 in which an ATP prover is run to solve the ATP problem and obtain the values ​​of the above variables that define the network configuration satisfying the set of formulas.

[0124] In the seventh step S7, method P2 verifies whether the execution of the ATP prover was successful. If the execution is successful, it means that the ATP prover was able to identify the values ​​of the variables that would satisfy all the expressions, and therefore it is possible to guarantee that all the time constraints of the stream will be satisfied by configuring the network according to the values ​​of the variables.

[0125] On the other hand, if the ATP prover fails to run, it means that a solution to the problem cannot be identified, and therefore there is no network configuration that can guarantee compliance with all time constraints of the stream.

[0126] Method P2 further includes an eighth step S8 in which, if the execution of the ATP certifier is successful, the network is configured according to the obtained values ​​that define the network configuration.

[0127] Step S8 includes configuring GCLs for each switch according to values ​​identified by the ATP certifier, for example, so that the gates of each switch are opened and closed 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 is executed in step S6 for a number of constraints that is significantly reduced compared to the number of constraints implied by the initial stream set. Consequently, the amount of resources required to execute the ATP prover is far less than when executed for the initial stream set. While executing the ATP prover is straightforward even in many complex cases, execution based on the number of constraints implied by the initial stream set becomes impossible if the number of constraints is too large.

[0130] Since estimating the number of constraints is not significantly more complex than the actual execution of the ATP prover, obtaining the configuration is far less complex than when performed for the initial set of streams, and is easily achievable even at its most complex.

[0131] Next, refer to Figure 3.

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

[0133] Method P3 includes all the steps of Method P2. In addition, if the execution of the ATP Proofer is unsuccessful, Method P3 includes step S9, which returns to step S4, where another transformation set belonging to one of the multiple stream transformation sets is selected and the selected transformation set is applied.

[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, and each transformation set is removed from that reduced list during testing. Thus, with each iteration, the number of transformation sets in the list of candidate transformation sets is reduced.

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

[0137] Therefore, we can start with the one that shows the highest probability of leading to the correct solution and test new sets of transformations until a solution is found.

[0138] Next, refer to Figure 4.

[0139] Figure 4 shows a first example of stream transformation according to the embodiment.

[0140] By convention, in Figures 4, 5, and 6, the transformation is represented along a horizontal line of time, with the stream before transformation shown above the horizontal line and the stream after transformation shown below the horizontal line.

[0141] Transformation T4, also known as "time division," involves dividing the duration of a stream into several smaller periods and is associated with separating packets transmitted between these smaller periods.

[0142] For example, in Figure 4, the initial stream sends a number of packets Pkt41, Pkt42, Pkt43, Pkt44, Pkt45, Pkt46, Pkt47...Pkt4n during period Per41. Translator T4 transforms the stream into a transformed stream with a lower period Per42. In the example in Figure 4, the transformed stream sends a single packet PktPer42. However, this example is not limited, and the transformed stream may send multiple packets.

[0143] The cumulative size of packets transmitted by the converted 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 to 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 (the size of packet PktPer2 in the example in Figure 4) is greater than or equal to the cumulative size of packets transmitted during period Per41 (the sum of the sizes of packets Pkt41, Pkt42...Pkt4n in the example in Figure 4) divided by n. Thus, the flow rate of the transformed stream is at least equal to the flow rate of the first stream.

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

[0146] The division can be done in various ways.

[0147] For example, the partition divides the duration of a stream into smaller durations that are equal to or multiples of the greatest common divisor of the durations of the stream set, and is chosen so as not to increase to the hyperduration of the stream set.

[0148] Therefore, this ensures that the hyperduration of the stream does not increase due to the time partitioning. In fact, as mentioned earlier, the hyperduration of a stream is a crucial factor in the complexity of scheduling problems because a larger hyperduration means a greater number of overlapping time combinations to examine. Therefore, reducing the hyperduration is generally a desirable objective of the transformation.

[0149] Overall, the transformation set may include modifying the duration of the streams at least once to reduce the hyperduration of the stream set.

[0150] Such transformations can be identified by performing prime factorization of the duration and hyperduration of each stream and comparing the prime factors of the duration for each stream with the prime factors of the hyperduration. For example, if the duration of a single stream is expressed in basic time units and has "7" as a prime factor, then the duration partition of this stream can be performed by dividing the duration partition by 7, and the hyperduration of the stream set can be divided by 7.

[0151] Naturally, this example can be generalized as follows. Apply the same time partitioning to groups of streams that share the same prime factor. For example, divide the time of all streams with the prime factor "7" by 7, divide the time of all streams with the prime factor "5" by 5, and so on. • Apply partitioning by exponentiation of prime factors. For example, if the duration of a single stream is 49(7 2 If the duration of the other streams is a multiple of 7, then the hyperduration of the stream set can be divided by 49 by dividing the duration of this stream by 49. Combine a partition by a power of a prime factor with every group of streams whose duration is a multiple of a power of a prime factor.

[0152] Since reducing the hyperperiod significantly reduces the complexity of the problem, it can be seen that such a period division greatly reduces the complexity of the scheduling problem.

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

[0154] For example, if the duration of a stream is expressed in base time units and it is the prime number 97, and that stream is the only stream with this duration, then this stream alone will increase the hyperduration of the stream set by 97 times. On the other hand, if we slightly change the duration of the stream from 97 to 96, the situation changes dramatically. In fact, 96 is 2 5It is equal to *3, and 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 duration of a stream can significantly reduce the hyperduration of a set of streams, and thus significantly reduce the complexity of scheduling problems.

[0155] Such a transformation can be automatically suggested if the duration of the stream is a large prime number or divisible by a large prime number. In this case, it can be suggested to replace the large prime number with a nearby nonprime number.

[0156] For example, the transformation may be such that the duration of the stream with the smallest greatest common divisor among the durations of the other streams in the stream set is equal to the duration of at least one other stream in the stream set.

[0157] In this way, the hyperperiod is divided by the largest possible number. Such changes can be repeatedly proposed for multiple streams to maximize the reduction in the hyperperiod.

[0158] However, unlike the splitting described above, it should be noted that changing the time period without splitting may alter the stream's functionality because packets will not be sent during the same period. Such changes may be validated by users, such as network designers or other expert users.

[0159] In this regard: • Suggestions for changing the duration can be displayed to the user, for example, through the screen. Input regarding the approval or rejection of changes can be received, for example, through a user interface such as a mouse and keyboard. • Only if the input concerns approval of the change can a change in duration be added to the conversion.

[0160] Therefore, this allows for a significant reduction in the hyperperiod of stream sets, which would not be possible if only period partitioning were used, while ensuring that network functionality is maintained.

[0161] The validity of the changes can be repeatedly proposed for changes over multiple periods.

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

[0163] Next, refer to Figure 5.

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

[0165] In the example in Figure 5, the first stream transmits a single large initial packet Pkt51, divided into three subsequent packets Pkt52, Pkt53, and Pkt54, each one-third the size of packet Pkt51. More generally, packet splitting is the division of an initial packet into n subsequent packets (n≧2). The sum of the sizes of the subsequent packets will be equal to or greater than the size of the initial packet. For example, each subsequent packet may be larger than or equal to the size of the initial packet divided by n. The subsequent packets may be the same size or different sizes.

[0166] Therefore, the total size of data carried by subsequent packets will be at least equal to the size of data carried by the initial packet, but by splitting packets into smaller packets, flexibility for routing packets is increased, in particular, as it becomes possible to interleave smaller packets with packets from other streams. This is especially effective for large packets, which can be difficult to interleave. Thus, packet splitting increases flexibility in identifying appropriate solutions for scheduling problems.

[0167] In some embodiments of the present invention, packet splitting is further associated with splitting the duration of the stream.

[0168] For example, if you send a single packet in the initial stream, you can divide both the packet size and the stream duration by the same integer.

[0169] For example, in the example in Figure 5, both the packet size and the stream duration are divided by 3. Instead of sending a large packet Pkt51 during duration Per51, the transformed stream sends a smaller packet Pkt52, which is one-third the size of packet Pkt51, during duration Per52, which is one-third the duration of duration Per51. Packets Pkt53 and Pkt54 shown in Figure 5 actually represent packets Pkt52 that are sent repeatedly following duration Per52.

[0170] Therefore, this allows us to benefit from packet splitting while reducing the hyperperiod of the stream set.

[0171] Next, refer to Figure 6.

[0172] Figure 6 shows an example of a transformation T6 that groups multiple packets in a stream into a single packet. In the example in 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 sum of the sizes of packets Pkt61, Pkt62, Pkt63, Pkt64, Pkt65, Pkt66, Pkt67...Pkt6n.

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

[0174] Transition T6 reduces the number of packets, and therefore the number of constraints to consider. This is particularly effective when grouping small packets. This reduces the number of constraints, but the individual packets are not too large, and interleaving issues do not occur.

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

[0176] However, these are merely examples of transformations that can be implemented by the present invention. Furthermore, all non-mutually exclusive transformations can be combined. For example, packet grouping can be associated with time division or time modification, and packet division can be associated with time division or time modification. Some transformations may be applied separately to different packets in 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-sized packets, and the several very small packets can be changed into a single medium-sized packet. Thus, in this example, a large packet followed by many very small packets is changed into a few medium-sized packets, thereby benefiting from the advantages of both transformations.

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

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

Claims

1. A computer implementation method, Deterministic Ethernet network topology and, A set of important streams instantiated within the network, each of which is defined by at least a path, duration, maximum allowable end-to-end latency, and a set of packets, each packet being associated with a size, and the set of important streams, To obtain, The calculation involves calculating a number of constraints implied by a set of stream transforms of the aforementioned important stream set, wherein each stream transform modifies the stream while maintaining or increasing the bitrate between the stream's transmitting node and one or more receiving nodes, and the calculation includes adding constraints to each pair of packets belonging to two different streams that share the same link over a period of time. Selecting the stream transformation set associated with the smallest of the aforementioned multiple determinants, Apply the selected stream transformation set to obtain the important transformed stream set, From the transformed set of important streams, generate an ATP (Automated Theorem Proving) problem that includes an expression representing the constraints that the transmission of packets of the stream must comply with, and variables defining the configuration of the network. Execute the ATP certificate to solve the ATP problem and obtain the value of the variable that defines the network configuration satisfying the set of formulas, If the execution of the ATP certificate is successful, the network is configured according to the obtained value that defines the network configuration, Computer implementation methods, including those mentioned above.

2. If the execution of the ATP certificate fails, the computer implementation method according to claim 1, further comprising selecting another stream transformation set belonging to the plurality of stream transformation sets and returning to the step of applying the selected stream transformation set.

3. The computer implementation method according to claim 1 or 2, wherein the stream conversion set includes multiple conversions of multiple streams.

4. The computer implementation method according to claim 1 or 2, wherein the set of stream transformations includes multiple instances of the same transformation applied to multiple streams that share at least one common feature.

5. The computer implementation method according to claim 1 or 2, wherein the stream transformation set includes multiple instances of the same duration change applied to multiple streams having the same duration.

6. The computer implementation method according to claim 1 or 2, wherein the stream conversion set is associated with dividing the duration of a stream into a plurality of smaller durations at least once, and separating the packets and transmitting them between the plurality of smaller durations.

7. The computer implementation method according to claim 6, wherein the division is selected to divide the duration of the stream into smaller durations that are equal to or multiples of the greatest common divisor of the durations of the stream set, and that do not increase to the hyperduration of the stream set.

8. The computer implementation method according to claim 1 or 2, wherein the stream transformation set includes at least one modification of the duration of the stream in order to reduce the hyperduration of the stream set.

9. Display suggestions for changing the stream duration, Receiving input related to the approval or rejection of the aforementioned changes, If the input relates to the approval of the change, the change is added to the stream transformation set, A computer implementation method according to claim 1 or 2, including the method described in claim 1 or 2.

10. The computer implementation method according to claim 8, wherein the modification is to make the duration of a stream having the smallest greatest common divisor with the durations of the other streams in the stream set equal to the duration of at least one other stream in the stream set.

11. The computer implementation method according to claim 1 or 2, wherein the stream conversion set includes dividing at least one packet of the stream into a plurality of smaller packets at least once.

12. The computer implementation method according to claim 11, wherein the division is further associated with the division of the duration of the stream.

13. The computer implementation method according to claim 1 or 2, wherein the stream conversion set includes grouping multiple packets of a stream into a single packet at least once.

14. Computer software comprising instructions for implementing at least a part of the method according to claim 1 or 2 when the computer software is executed by a processor.