A precise conflict tracing incremental scheduling method suitable for time sensitive network

CN117459461BActive Publication Date: 2026-10-27深圳北航新兴产业技术研究院
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310694126.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-06-12
Publication Date
2026-10-27
Estimated Expiration
2043-06-12

AI Technical Summary

Technical Problem

但在案例规模较大、已完成调度流量较多时,如果单次增量不能完成求解,回溯所需时间往往较长

Benefits of technology

[0070]①本发明溯源增量式调度方法能够在调度过程中将产生冲突链路的流量进行具体化。对于单次求解失败的流量,能够生成报错文件对求解失败的原因进行分析,提取不满足时间约束条件的流量编号,针对这部分消息进行回溯,可以有效提高调度算法的求解效率。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117459461B_ABST
    Figure CN117459461B_ABST
Patent Text Reader

Abstract

The application discloses a precise conflict tracing incremental scheduling method suitable for a time-sensitive network, wherein in the incremental tracing process, conflict analysis positioning is adopted for searching to obtain a flow number list of single tracing. Compared with overall unified scheduling, the incremental scheduling method has good performance for scheduling scenes with large flow scale. However, when the case scale increases and the completed scheduling flow information is more, the tracing of the incremental scheduling often needs more time, and sometimes even cannot obtain a feasible solution within a solution time limit. The precise conflict tracing method of the application positions to the flow information causing the conflict from the flow constraint condition which cannot be met, and directly traces the conflict source, so that the scheduling algorithm solving time can be reduced, the performance of the solver can be better utilized, and on the basis of improving the solving speed, a larger schedulable flow number can be achieved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to an incremental scheduling method for precise conflict source tracing applicable to time-sensitive networks, and more particularly, to an incremental traffic scheduling method for traffic scheduling backtracking based on precise conflict source tracing. Background Technology

[0002] Integrated Modular Avionics (IMAs) are evolving towards deeper integration, placing higher demands on data transmission capacity, real-time performance, and reliability. Time-Sensitive Networking (TSN), as a current candidate protocol for "timely and accurate" end-to-end transmission, has attracted widespread attention in the aviation industry. Within the TSN protocol suite, the IEEE 802.1Qbv protocol proposes a time-aware shaper (TAS) flow control mechanism based on a gated list (GCL). This mechanism can ensure the transmission of high-priority scheduled traffic (ST) by controlling the opening and closing times of time windows for different priority traffic queues. Designing feasible traffic scheduling schemes and implementing GCLs have become prerequisites for applying the Qbv protocol. However, the switched interconnection and First-In-First-Out (FIFO) principle of TSN networks increase the complexity of traffic scheduling constraints, posing a significant challenge to scheduling design and solution.

[0003] Existing scheduling methods mostly employ constraint solving and intelligent optimization methods. Constraint solving methods combine network topology and traffic configuration, transforming constraints into mathematical logical expressions based on Satisfiability Modulo Theories (SMT) or Mixed Integer Linear Programming (MIP) for planning and solving. Their scheduling design often relies on time-consuming, intensive computation by the corresponding solver. Applying incremental scheduling to SMT and MIP methods for airborne network traffic scheduling can improve the solution speed to some extent and yield a larger number of schedulable flows. However, when the case scale is large and the already scheduled traffic is substantial, if a single incremental iteration cannot complete the solution, the backtracking time is often lengthy. Methods for precise conflict source tracing and traffic backtracking can improve this problem. Summary of the Invention

[0004] This invention aims to solve the large-scale traffic scheduling problem in TSN networks. Solving the traffic scheduling problem in TSN networks often results in excessively long solution times or even failure to solve the problem when the traffic volume increases. The introduction of an incremental scheduling method decomposes the large-scale traffic scheduling problem into a small number of incremental scheduling operations, using the link time occupied by already scheduled traffic as a constraint for subsequent traffic scheduling, which can accelerate the solution speed to some extent. For cases where the solution cannot be solved, a traffic backtracking strategy is adopted, resetting a portion of the scheduled traffic, clearing the time occupation of this portion of traffic, and having it participate in the next scheduling operation along with the traffic that was not solved in the current operation. The method of this invention uses a conflict source tracing method to analyze the constraints that cannot be met in a single failed solution, thereby determining the cause of the failure. Ordinary incremental scheduling methods use sequential backtracking, backtracking from the end to the beginning according to the scheduling order and the single backtracking step size, which may require a large amount of traffic backtracking to obtain a feasible solution. The conflict tracing and localization method of the present invention can accurately locate the number range of backtracking traffic, reduce the number of backtracking times and the amount of backtracking traffic, and improve scheduling performance while reducing the solution calculation time.

[0005] The present invention provides a precise conflict-based incremental scheduling method for time-sensitive networks, comprising the following steps:

[0006] Step 1: Initialize the network topology and obtain network traffic information;

[0007] Step 101: Set the node information in the network topology;

[0008] Import the node.json file of the IMA system into the network node configuration information, denoted as ICD_NODE;

[0009] Any node in ICD_NODE a This includes node number and node type category[ES,SW], where ES represents a network end system node and SW represents a network switch node;

[0010] Step 102: Set the link information in the network topology;

[0011] Import the link.json file from the IMA system into the network link configuration information, and denote it as ICD_LINK;

[0012] Any link in ICD_LINK b (src_node,des_node), where src_node represents the source node of the link and des_node represents the destination node of the link;

[0013] Step 103: Import network traffic information;

[0014] Import the network traffic configuration information into the message.json file of the IMA system, and denote it as ICD_MES;

[0015] Any traffic in ICD_MES m It consists of a quadruple of information, i.e., mes m <src,des,length,period> ; src represents the source node of the traffic, des represents the destination node of the traffic, length represents the length of the traffic, and period represents the period of the traffic.

[0016] Step 2: Complete traffic routing planning;

[0017] Step 201: Generate the adjacency list of network nodes;

[0018] Generate an adjacency list for network nodes based on the network node NODE and link information ICD_LINK;

[0019] Adjacency lists represent the connections between network nodes; adj[node a ][node a+1 ] = 0 indicates that there is no connection between the two nodes, and the corresponding adj[node] = 0. a ][node a+1 ] = 1 indicates that there is a connection between the two nodes;

[0020] Step 202: Generate traffic-transmission path;

[0021] For each traffic flow, the adjacency list is used to obtain all paths from the traffic source node src to the destination node des, thus obtaining the traffic-transmission path for each traffic flow.

[0022] Step 203, selecting the first route;

[0023] Initially, from the flow transmission path set Select the first transmission path And As traffic mes m The first route;

[0024] Step 204: Iteratively search for the optimal path using the load balancing strategy;

[0025] The number of iterations is denoted as β; the maximum number of iterations is the length of the transmission path.

[0026] For traffic mes m Iteratively find the flow mes m The current optimal transmission path To ensure lower link load and shorter paths; link load is related to the traffic period and traffic length, and the calculation results update the link bandwidth usage and are compared with the previous transmission path. This comparison is used to ensure that network traffic achieves load balancing.

[0027] Traffic mes m The preceding transmission path is denoted as

[0028] Network load balancing is limited by link bandwidth. b Bandwidth is

[0029] After iteration, a traffic transmission route that satisfies the overall network load balancing is finally obtained, with traffic mess. i For example, traffic mes i The final traffic transmission route is Represented as

[0030] Iterate through all traffic in ICD_MES to ensure network traffic achieves load balancing.

[0031] Step 3: Initialize the traffic scheduling state;

[0032] Step 301: Initialize the traffic scheduling state to unscheduled;

[0033] Iterate through the traffic in ICD_MES. For each traffic item, set its scheduling state to undone, indicating that no scheduling has been performed. This is represented as: mes i _state = undone;

[0034] Step 302, Initialize the flow bias timing;

[0035] The initial bias of the traffic is -1, indicating that it is not scheduled.

[0036] For traffic mes i Bias timing uses the mes array i _offset represents;

[0037] Iterate through the traffic in ICD_MES, and for each traffic entry, set an array mes i The _offset value is -1, indicating that no scheduling has been performed;

[0038] traffic mes i In link b The offset time of the uptransmission is denoted as

[0039] Step 303: Initialize the single-increment step size of the traffic;

[0040] Set the single-increment step size of traffic to 5;

[0041] Step 4: Solving the scheduling of a single incremental flow;

[0042] Step 401: Obtain the current flow rate number range and create a new logical variable for it;

[0043] The range of traffic numbers to be solved in this incremental scheduling is obtained from the single incremental step size and scheduling progress;

[0044] Iterate through the incremental traffic in this scheduling and set the scheduling status to doing;

[0045] Initialize the offset of each traffic entry as an integer variable, named message + traffic number + link + link number;

[0046] Step 402: Add new constraints to the solver;

[0047] After determining the incremental traffic to be added, the time slice occupied by the already scheduled traffic is considered, and the constraints of the new traffic are added to the solver.

[0048] The Gurobi solver can only accept constraints in the form of logical expressions, so the time constraints for flow scheduling need to be rewritten in the form of logical expressions.

[0049] Step 403: Call the solver to schedule the solution;

[0050] The ILP method is used, and the Gurobi solver is invoked;

[0051] Solve using the solver with the constraints already added and obtain the results;

[0052] Step 5: Update the link time occupancy status;

[0053] Step 501: Store the offset time of the completed scheduled traffic;

[0054] After a single scheduling solution is completed, the corresponding link time occupancy is updated based on the obtained traffic offset time and traffic length; the link time occupancy will be used as a constraint condition for traffic scheduling in the next incremental scheduling solution.

[0055] Step 502: Update the status of the scheduled traffic to "Scheduled";

[0056] Update the status of scheduled traffic to "done" to indicate that it has been scheduled, which is represented by "mess". i _state = done;

[0057] The scheduling status of traffic is the basis for determining whether scheduling has ended; when the status of all traffic is "done" or the calculation exceeds the preset maximum timeout, the calculation ends and step seven is executed.

[0058] Step six: Precise conflict tracing of traffic;

[0059] Step 601: Perform conflict tracing based on the exported files from the failed solution process;

[0060] After a single scheduling solution fails, the output model.ilp file in step four is parsed. This file stores the reasons for the solution failure, mainly including the constraints that cannot be met and the names of the variables that cannot be solved. The names of the variables that caused the problem are located, thereby determining the specific traffic flow that failed to schedule.

[0061] Step 602: Reset the status of the backtracking traffic to unscheduled, and solve it again along with the traffic that was not scheduled in this instance.

[0062] Read the model.ilp file and parse it.<Subj ect To> In this section, the flow rates appearing within the inequalities are all potential causes of solution failure; extract the flow rate numbers that appear at least once, and trace back these flow rates with the current incremental scheduling flow rates;

[0063] During the backtracking process, the time occupied by the backtracking traffic on the link is first cleared, and the traffic status is set to undone to indicate that it is not scheduled. Since the time occupied by the link changes, it affects the arrangement of the free time slices. At this time, the constraints that have been added in the solver are deleted, and new constraints are added in the next scheduling solution.

[0064] Read the model.ilp file and parse it.<Subj ect To> In this section, the flow rates appearing within the inequalities are all potential causes of solution failure; extract the flow rate numbers that appear at least once, and trace back these flow rates with the current incremental scheduling flow rates;

[0065] Step 7: Generate the scheduling Gantt chart and GCL gating list;

[0066] Step 701: Generate a scheduling timetable based on the scheduling results, and draw a Gantt chart to represent the link time occupancy status;

[0067] Step 702: Generate a GCL gating list based on the scheduling timetable and link port attribute conversion;

[0068] Configure the node's port information according to the actual case requirements; call the GCL_generate function to generate a GCL gating list represented by 0s and 1s.

[0069] Compared with traditional scheduling methods, the beneficial effects of the precise conflict-source-based incremental scheduling method for time-sensitive networks in this invention are as follows:

[0070] ① The source-tracing incremental scheduling method of this invention can specify the traffic of conflicting links during the scheduling process. For traffic that fails to solve in a single attempt, an error file can be generated to analyze the reasons for the failure, extract the traffic numbers that do not meet the time constraints, and backtrack on these messages, which can effectively improve the solution efficiency of the scheduling algorithm.

[0071] ② This invention's source-tracing incremental scheduling method achieves precise backtracking, improving the solution speed of incremental scheduling. Traditional incremental scheduling algorithms lack the principle of backtracking. When a single solution fails, the commonly used backtracking method is sequential backtracking, which may result in excessive backtracking time, ultimately leading to solution failure within the specified time. This invention proposes the principle of conflict localization and precise backtracking, which can greatly shorten the time occupied by the backtracking process in the solution.

[0072] ③ The incremental scheduling method of this invention can provide the reasons for scheduling failures in cases where scheduling cannot be completed. For more complex traffic flows that cannot be solved within the specified time, this invention can provide the reasons for the final solution failure, namely, that some traffic flows cannot meet the time constraints. Subsequently, in order to generate a feasible scheduling solution, these unmet constraints can be modified, and some constraints can be relaxed to obtain a feasible scheduling solution. Attached Figure Description

[0073] Figure 1 This is a flowchart of the traffic scheduling method for time-sensitive network conflict tracing applicable to this invention.

[0074] Figure 2 This is a network topology diagram in Embodiment 1 of the present invention.

[0075] Figure 2A This is a network topology diagram represented by node identities in Embodiment 1 of the present invention.

[0076] Figure 3 This is the scheduling Gantt chart obtained using the fast traffic scheduling method in Embodiment 1 of the present invention. Detailed Implementation

[0077] The present invention will now be described in further detail with reference to the accompanying drawings and embodiments.

[0078] The source-tracing incremental scheduling method of this invention was tested and verified on a Windows 7 or later operating system and in a Python 3.8 environment. The source-tracing incremental scheduling is performed by calling the Gurobi solver.

[0079] See Figure 1 As shown, the present invention provides an accurate conflict tracing incremental scheduling method for time-sensitive networks, wherein the tracing incremental scheduling includes the following steps:

[0080] Step 1: Initialize the network topology and obtain network traffic information;

[0081] Step 101: Set the node information in the network topology;

[0082] Import the node.json file from the IMA system into the network node configuration information, denoted as ICD_NODE, where ICD_NODE = {node1, node2, ..., node...} a ,…,node A}

[0083] node1 represents the first node.

[0084] node2 represents the second node.

[0085] node a This represents the a-th node, where the subscript 'a' indicates the node identifier.

[0086] node A This represents the last node, and the subscript A indicates the total number of nodes.

[0087] In this invention, any node a It includes node number and node type category [ES,SW], where ES represents network end system node and SW represents network switch node.

[0088] like Figure 2 , Figure 2A The network topology is shown in the `node.json` file, which stores a total of 9 nodes: `node1`, `node2`, `node3`, `node4`, `node5`, `node6`, `node7`, `node8`, and `node9`. Among these, nodes `node1`, `node2`, `node3`, `node4`, `node5`, and `node6` are end-system nodes, represented as... The node types of nodes 7, 8, and 9 are switches. Switch nodes are represented as follows:

[0089] Step 102: Set the link information in the network topology;

[0090] Import the link.json file from the IMA system into the network link configuration information, denoted as ICD_LINK, and set ICD_LINK = {link b (src_node,des_node)}, where the subscript b represents the link identifier.

[0091] In this invention, any link is denoted as link. b (src_node,des_node), where src_node represents the source node of the link and des_node represents the destination node of the link.

[0092] In this invention, network node NODE = {node1, node2, ..., node...} a ,…,node A} and link information ICD_LINK = {link b (src_node,des_node)} is the foundation of traffic scheduling, and routing planning, link time occupancy, etc. are all based on it.

[0093] like Figure 2 , Figure 2A The network topology shown contains 18 links whose information is stored in the link.json file. This link.json file stores information on these 18 links, connecting end systems to switches and switches to each other, thus creating pathways for traffic transmission. End system nodes With switch nodes Connection, end system node With switch nodes Connection, end system node With switch nodes Connection, switch node The two sides are connected in pairs to form a network topology, such as Figure 2 As shown in the figure. ES1 to ES6 represent SW1~SW3 represent

[0094] The link source node src_node is defined and assigned a value in the link.json file. Assigning values ​​to the destination node des_node node End systems and nodes The switches are connected. Therefore, the links are:

[0095] Step 103: Import network traffic information;

[0096] Import the message.json file from the IMA system into the network traffic configuration information, denoted as ICD_MES, and

[0097] mes1 represents the first traffic entry.

[0098] mes2 indicates the second traffic item.

[0099] mes i This represents the i-th traffic flow.

[0100] mes j This represents the j-th traffic flow.

[0101] mes m This indicates the m-th traffic entry, where the subscript m represents the traffic identifier.

[0102] mes M This indicates the last traffic entry, and the subscript M indicates the total number of traffic entries.

[0103] In this invention, any traffic flow mes m It consists of a quadruple of information, i.e., mes m <src,des,length,period> ; src represents the source node of the traffic, des represents the destination node of the traffic, length represents the length of the traffic (in bits), and period represents the period of the traffic (in μs).

[0104] For example, the message.json file stores the traffic information of Example 1, which contains 185 ST traffic entries. The source and destination nodes are randomly generated from the range of end system numbers, and the length and period are fixed.

[0105] For example, traffic

[0106] For example, traffic

[0107] For example, traffic

[0108] In this invention, network traffic information is the object of scheduling design. This method performs scheduling design on TSN network traffic, obtains traffic forwarding time, and converts it into a GCL gating list.

[0109] The transmission path of traffic, with its links connected end-to-end, forms a pathway connecting end systems; this is called the traffic-transmission path, denoted as . Each element Mess represents traffic m The set of traffic-transmission paths between the source node and the destination node, the traffic mesm It can be transmitted from the source node to the destination node along the path in the set.

[0110] For example: the transmission path set of traffic mes1

[0111] The transmission path set of traffic mes2

[0112] Traffic mes m transmission path set

[0113] Traffic mes A transmission path set

[0114] Mess represents the flow rate. m The first transmission path.

[0115] Mess represents the flow rate. m The second transmission path.

[0116] Mess represents the flow rate. m The βth transmission path.

[0117] Mess represents the flow rate. m The last transmission path.

[0118] Step 2: Complete traffic routing planning;

[0119] Step 201: Generate the adjacency list of network nodes;

[0120] Based on the network node NODE = {node1, node2, ..., node a ,…,node A} and link information ICD_LINK = {link b (src_node,des_node)} generates the adjacency list of network nodes.

[0121] An adjacency list represents the connections between network nodes.

[0122] For example, if the network has 9 nodes, the adjacency list `adj_list` is a 9x9 two-dimensional array (9 rows and 9 columns). Array elements indicate whether a link exists between two nodes. `adj[node ...` a ][node a+1 ] = 0 indicates that there is no connection between the two nodes, and the corresponding adj[node] = 0. a ][node a+1]=1 indicates that there is a connection between the two nodes, and traffic can be passed from one node to the other on the traffic-transmission path set.

[0123] For example, an adjacency list is a two-dimensional data structure with 9 columns and 9 rows.

[0124] 1 0 0 0 0 0 0 1 0 0 2 0 0 0 0 0 0 1 0 0 3 0 0 0 0 0 0 0 1 0 4 0 0 0 0 0 0 0 1 0 5 0 0 0 0 0 0 0 0 1 6 0 0 0 0 0 0 0 0 1 7 1 1 0 0 0 0 0 1 1 8 0 0 1 1 0 0 1 0 1 9 0 0 0 0 1 1 1 1 0

[0125] Step 202: Generate traffic-transmission path;

[0126] For each traffic flow, the adjacency list is used to obtain all paths from the source node src to the destination node des, thus obtaining the traffic-transmission path for each traffic flow.

[0127] In this invention, the traffic configuration information is traversed. For each traffic entry, the adjacency list is used to obtain all paths from the traffic source node (src) to the destination node (des), resulting in a traffic-adjacency list-transmission path set.

[0128] Step 203, selecting the first route;

[0129] Initially, from the flow mes m transmission path set Select the first transmission path And As traffic mes m The first route.

[0130] For example, The first route for traffic mes1 consists of three links: link2, link3, link4, and link5. 13 and link 11 The three links are connected end to end, forming the route for traffic mes1.

[0131] Step 204: Iteratively search for the optimal path using the load balancing strategy;

[0132] The number of iterations is denoted as β. The maximum number of iterations is the length of the transmission path.

[0133] For traffic mes m Iteratively find the flow mes m The current optimal transmission path To ensure lower link load and shorter path, the calculation results are used to update link bandwidth usage and are compared with the previous transmission path. Link load is related to the traffic period and traffic length. This comparison is used to ensure that network traffic achieves load balancing.

[0134] Traffic mes mThe preceding transmission path is denoted as

[0135] Network load balancing is limited by link bandwidth. b Bandwidth is denoted as link b _utilization, and Among them, mes m _length is mes m The length of the flow, mes m _period is for me m The flow cycle.

[0136] After iteration, a traffic transmission route that satisfies the overall network load balancing is finally obtained, with traffic mess. i For example, traffic mes i The final traffic transmission route is mes i _path, and

[0137] In this invention, traversal is completed. All traffic is used to ensure network traffic achieves load balancing.

[0138] Step 3: Initialize the traffic scheduling state;

[0139] Step 301: Initialize the traffic scheduling state to unscheduled;

[0140] Iterate through the traffic in ICD_MES. For each traffic item, set its scheduling state to "undone," indicating that no scheduling has been performed. This is represented as: mes i _state = undone. mes i _state represents mes i The scheduling status flag.

[0141] Step 302, Initialize the flow bias timing;

[0142] In this invention, the flow rate is mes i The initial bias time is denoted as mes. i _inject, and mes i The `_inject` parameter is set to -1, indicating that the data is not scheduled. The objective of this invention is to determine the bias time of the flow, using the time interval (mes) for the flow. i The bias timing is achieved using an array. Indicated, denoted as In the formula, n is the number of time intervals at the bias time; mes i _offset1 is the traffic (mes). i The first bias time; mesi _offset2 is the flow rate (mes). i The second bias time; mes i _offset n For traffic mes i The last bias moment;

[0143] Iterate through the traffic in ICD_MES. For each traffic entry, set an array for the offset timing, with the initial offset timing value being -1, indicating that no scheduling has been performed. That is:

[0144] For ease of representation, the traffic (mes) will be used. i In link b The offset time of the uptransmission is denoted as

[0145] Step 303: Initialize the single-increment step size of the traffic;

[0146] Set the single-increment step size of traffic to 5.

[0147] The increment step size can be adjusted appropriately based on the case size. The larger the case size, the larger the increment step size should be.

[0148] For example, set an appropriate increment step size based on the case size. The larger the case size, the larger the increment step size should be. In Example 1, the single increment step size for traffic is set to 5.

[0149] Step 4: Solving the scheduling of a single incremental flow;

[0150] Step 401: Obtain the current flow rate number range and create a new logical variable for it;

[0151] The range of traffic numbers for this incremental scheduling is obtained from the single incremental step size and scheduling progress. The traffic for this incremental scheduling is traversed, and the scheduling status is set to "doing". The offset of each traffic item is initialized as an integer variable, named "message" + traffic number + "link" + link number.

[0152] Step 402: Add new constraints to the solver;

[0153] After determining the incremental traffic to be added, the time slice occupied by the already scheduled traffic is considered, and the constraints of the new traffic are added to the solver.

[0154] The Gurobi solver only accepts constraints in logical expression form; therefore, the time constraints for flow scheduling need to be rewritten in logical expression form. The formula for the time constraints is as follows:

[0155] In this invention, the types of constraints include:

[0156] Basic constraint (abbreviated as bs): Considering the periodicity of the flow, the offset time of each hop of the flow should not exceed the difference between its period and length.

[0157]

[0158]

[0159] This represents the i-th flow marked by the basic constraint condition.

[0160] express The bias time.

[0161] express The flow cycle.

[0162] express The length of the flow.

[0163] No-contention constraint (nc): The basis of traffic scheduling constraints. Under this constraint, the sender will only forward traffic after the previous traffic has been received and processed.

[0164]

[0165] This represents the i-th flow with a no-conflict constraint.

[0166] This represents the flow of the j-th item marked with a flow-no-conflict constraint.

[0167] a nc Indicates flow rate The number of times to send repeatedly.

[0168] b nc Indicates flow rate The number of times to send repeatedly.

[0169] express The bias time.

[0170] express The bias time.

[0171] express The flow cycle.

[0172] express The flow cycle.

[0173] Bounded forwarding constraint (membound, abbreviated as mb): A constraint generated by hardware parameters, which states that the time interval between two consecutive hops of a traffic flow in the route has a maximum value.

[0174]

[0175]

[0176] This represents the i-th traffic item marked with bounded forwarding conditions.

[0177] express The offset time on the k-th hop of the path.

[0178] express The offset time at the (k+1)th hop of the path.

[0179] membound represents the threshold of the bounded forwarding constraint.

[0180] End-to-end delay constraint (dl): Based on the requirements of the actual application scenario of airborne network, the maximum value of end-to-end delay is limited.

[0181]

[0182]

[0183] This represents the i-th traffic item marked with an end-to-end delay condition.

[0184] express The final bias time.

[0185] express The initial bias time.

[0186] maxlatency represents the threshold of the end-to-end latency constraint.

[0187] p represents The final bias time is a marker.

[0188] q represents The initial bias time is a marker.

[0189] Traffic queue order constraint (od): Another form of frame isolation constraint in time-sensitive networks, which achieves frame isolation by the order in which traffic enters the queue.

[0190]

[0191]

[0192]

[0193]

[0194]

[0195]

[0196] This represents the i-th traffic item marked with the order condition in the traffic queue.

[0197] This represents the j-th traffic item marked with the order condition in the traffic queue.

[0198] link r This represents the r-th link.

[0199] link s This represents the s-th link.

[0200] link t This represents the t-th link.

[0201] Indicates flow rate The number of times to send repeatedly.

[0202] Indicates flow rate The number of times to send repeatedly.

[0203] δ represents the maximum synchronization error.

[0204] Indicates flow rate Transmission to link r The time.

[0205] Indicates flow rate Transmission to link t The time.

[0206] Indicates flow rate Transmission leaving link r The time.

[0207] Indicates flow rate Transmission leaving link t The time.

[0208] Indicates flow rate and traffic The least common multiple of the periods.

[0209] express In link r The bias time on.

[0210] express The flow cycle.

[0211] express The length of the flow.

[0212] express In link r Transmission delay.

[0213] express In link t The bias time on.

[0214] express The flow cycle.

[0215] express The length of the flow.

[0216] express In link t Transmission delay.

[0217] express In link s The bias time on.

[0218] express In link s The bias time on.

[0219] In this invention, the Gurobi solver calculates the flow offset time (mes) based on different constraint conditions. i _offset) and flow length (messages) i _length), which gives the time interval [mes] on the link in the traffic routing. i_offset,(mes i _offset+mes i [_length)] is the flow of mes i During this period of time, no other traffic can be transmitted. The link's time occupancy status is stored in a dictionary-type variable (mes_offset_storage), recording the link's time occupancy information as a constraint for subsequent traffic scheduling.

[0220] Step 403: Call the solver to schedule the solution;

[0221] The ILP method is used, and the Gurobi solver is invoked.

[0222] Solve using the solver with the constraints already added and obtain the results;

[0223] If the scheduling is completed, proceed to step five to update the link time occupancy status, and repeat step four to perform the next incremental solution.

[0224] If scheduling fails, the cause is determined to be a timeout or no solution.

[0225] If the solution times out, exit the solver and return a solution failure message;

[0226] If there is no solution, call the Gurobi solver function to output the "model.ilp" file and proceed to step six to locate the flow backtracking.

[0227] For example, the solver with added constraints is used to solve the problem and obtain the result. In Example 1, scheduling is performed in increments of 5 traffic flows. The first 35 scheduling iterations (out of 37) yield results quickly without requiring conflict tracing or backtracking. After a successful solution, step five updates the link time occupancy status, and then step four is repeated for the next scheduling iteration. Example 1 fails to solve the problem on the 36th and 37th scheduling iterations. In this case, step six, conflict tracing, is performed, the scheduling results of some traffic flows are rolled back, and these results are combined with the traffic flows that participated in the previous scheduling iteration and then re-executed in step four for the next scheduling iteration.

[0228] Step 5: Update the link time occupancy status;

[0229] Step 501: Store the offset time of the completed scheduled traffic;

[0230] After a single scheduling iteration is completed, the corresponding link time occupancy is updated based on the calculated traffic offset time and traffic length. Link time occupancy will then serve as a constraint for traffic scheduling in the next incremental scheduling iteration. Definition Store the bias time of the scheduled traffic, where:

[0231] This indicates that the offset time for the first item in the scheduled traffic has been completed. This indicates the first traffic item that has been scheduled.

[0232] This indicates that the offset time for the second item in the scheduled traffic has been completed. This indicates the second traffic item that has been scheduled.

[0233] This indicates the offset time of the last item in the scheduled traffic. This represents the ηth traffic item that has been scheduled.

[0234] Step 502: Update the status of the scheduled traffic to "Scheduled";

[0235] Update the status of scheduled traffic to "done" to indicate that it has been scheduled, denoted as mes i _state = done.

[0236] The scheduling status of traffic is the basis for determining whether scheduling has ended. When all traffic is in the "done" state or the solution exceeds the preset maximum timeout, the solution ends, and step seven is executed. If not, the scheduling status of the traffic determines whether to repeat step five or proceed to step six. If the solution is successful, step five is repeated for the next incremental solution; if the solution fails, step six is ​​executed to trace the source of traffic conflicts and rewind the scheduling progress, rescheduling a portion of the traffic.

[0237] Step six: Precise conflict tracing of traffic;

[0238] Step 601: Perform conflict tracing based on the exported files from the failed solution process;

[0239] After a single scheduling failure, the "model.ilp" file is output in step four. This file stores the reasons for the failure, mainly including the constraints that could not be met and the names of the variables that could not be solved. By locating the problematic variable names, the specific traffic flow that failed to schedule can be determined.

[0240] In this invention, the contents of the "model.ilp" file are as follows:

[0241] <Subject To> A system of inequalities is given that leads to contradictions and cannot be solved. The unsolvable combination of inequalities causes a single incremental scheduling attempt to fail. Different inequalities represent different constraints, where:

[0242] The basic constraint or end-to-end delay constraint is denoted as message_offset_M_link_A≤k. k is a constant related to the traffic length and period, or the end-to-end delay, and M represents the traffic number, which is the link number in the route of traffic M.

[0243] The bounded forwarding constraint is denoted as message_offset_M_link_A≥k′, where k′ is a constant related to forwarding delay, M represents the traffic number, and the link number in the route of traffic M is denoted as k′.

[0244] The conflict-free constraint is denoted as linkLmessageM_instA_messageN_instB, where L represents a link, M and N represent two traffic streams that contain that link in the route, and A and B represent the number of times the two traffic streams are repeatedly sent within the timeout period.

[0245] The queue order constraint is denoted as (queue_order_constraint_a_former_link_messageM_instA_messageN_instB), where constraint_a (or constraint_b) represents the branch condition in the queue order constraint, M and N represent two traffic streams that may be affected by the queue order constraint, and A and B represent the number of times the two traffic streams are repeatedly sent in the supercycle.

[0246] <bounds>The range of values ​​for the unsolvable variable is given. This range is given when the variable is defined and is only affected by the basic conditions. The format is as follows: -infinity≤message_offset_M_link_A≤k″.

[0247] <binaries>Some binary variables in the solver constraints are given. These binary variables begin with "decision_contention" or "decision_order" and represent decision variables introduced when adding conflict-free constraints and queue order constraints.

[0248] <generals>The names of variables that have no solution are listed. Since the variable to be solved by the scheduling task is the offset time of traffic forwarding on a certain link, the variable name format is as follows: M is the traffic number, A′ is the link number in the route of traffic M, and this variable represents the forwarding time of traffic M on link A′ in the route, denoted as message_offset_M_link_A′.

[0249] For example, in Example 1, the 36th and 37th incremental solutions failed. At this point, it is necessary to perform source tracing and traffic backtracking for rescheduling. The computeIIS function of the Gurobi solver is invoked to generate the solution information file "model.ilp".

[0250] Step 602: Reset the status of the backtracking traffic to unscheduled, and solve it again along with the traffic that was not scheduled in this instance.

[0251] Read the "model.ilp" file and parse it.<Subject To> In this section, the flow patterns appearing within the inequalities are all potential causes of solution failure. Extract the flow IDs that appear at least once and backtrack these flows against the current incremental scheduling flow.

[0252] During the backtracking process, the time occupancy of the backtracking traffic on the link is first cleared, and the traffic status is set to "undone" to indicate that it is not scheduled. Since the time occupancy of the link changes, affecting the arrangement of spare time slices, the constraints already added in the solver are deleted, and new constraints are added in the next scheduling solution.

[0253] Read the "model.ilp" file and parse it.<Subject To> In this section, the flow patterns appearing within the inequalities are all potential causes of solution failure. Extract the flow IDs that appear at least once and backtrack these flows against the current incremental scheduling flow.

[0254] In Example 1, the 36th scheduling attempt (traffic numbers 175-179) failed, and the backtracked traffic numbers were: mes1, mes4, mes 14 ,...,mes 177 A total of 41 traffic entries.

[0255] In Example 1, the 37th scheduling attempt (traffic numbers 180-184) failed, and the backtracked traffic numbers were: mes3, mes6, mes 20 ,...,mes 181 A total of 39 items.

[0256] As can be seen, during the backtracking process of each node in the network topology implemented in Implementation 1, the range of conflicting traffic involved is not fixed and may appear at any point in the scheduling process. Therefore, if a sequential backtracking method is used instead of a conflict source tracing method, it may take a long time to solve the backtracking problem to retrieve all conflicting traffic, ultimately resulting in a long running time.

[0257] The specific process and methods for traffic backtracking are as follows:

[0258] 1) Clear the time occupied by backtracking traffic on the link and set the traffic status to "undone" to indicate that it is not scheduled.

[0259] 2) Reset the bias time variable of the traffic and redefine the offset variable of the backtracking traffic.

[0260] 3) Clear the solver constraints, extract the offset time of the completed scheduled traffic from the message_offset_storage variable, and re-import the constraints into the solver.

[0261] 4) Solve again until the timeout limit is exceeded or the solution is successful. If the solution is successful, proceed to step five to schedule the next set of incremental changes; if the solution fails to be successful within the timeout period, end the scheduling, set the status of the failed traffic to "unable", and proceed to step seven.

[0262] Step 7: Generate the scheduling Gantt chart and GCL gating list;

[0263] Step 701: Generate a scheduling timetable based on the scheduling results, and draw a Gantt chart to represent the link time occupancy status;

[0264] Step 702: Generate a GCL gating list based on the scheduling timetable and link port attribute conversion;

[0265] Configure the node port information according to the actual case requirements. Call the GCL_generate function to generate a GCL gating list represented by 0s and 1s.

[0266] Example 1

[0267] A TSN network consists of several end systems and switches, as well as physical links interconnecting these end systems and switches. The output ports of the end systems and switches have eight FIFO priority queues to provide transmission channels for traffic. The queue with priority 8 is dedicated to ST traffic transmission, while the remaining seven priority queues handle other traffic such as AVB and BE. The TSN network controls the opening status of different priority queue doors at each output port through the GCL (Gate Classification List). Each element in the GCL list indicates the current time slot and the current door opening status. For example, T00: 1000000 indicates that in time slot T00, the ST queue door is open while the doors of other queues are closed; similarly, T01: 01111111 indicates that in time slot T01, the ST queue door is closed while the doors of other queues are open.

[0268] To illustrate in detail the precise conflict tracing incremental scheduling method for time-sensitive networks (TSNs) of this invention, a topology of a TSN consisting of 6 end systems and 3 switches is presented, as follows: Figure 2 , Figure 2A As shown. Figure 2 This indicates the physical connection between 6 end systems and 3 switches. Figure 2A This represents a network topology where connections are made as nodes. End system nodes. With switch nodes Connection, end system node With switch nodes Connection, end system node With switch nodes Connection, switch node They are connected in pairs to form a network topology.

[0269] The Gantt chart of the scheduling results processed by the source-tracing incremental scheduling method of this invention is attached. Figure 3 As shown. The horizontal axis represents time, and the vertical axis represents the link. Different colored blocks represent different traffic volumes. Figure 3 This indicates the specific time taken for each traffic item in the traffic list to be sent on the link in its route after the scheduling solution is obtained.< / generals> < / binaries> < / bounds>

Claims

1. A precise conflict-based incremental scheduling method suitable for time-sensitive networks, characterized in that... Source-tracing incremental scheduling involves the following steps: Step 1: Initialize the network topology and obtain network traffic information; Step 101: Set the node information in the network topology; IMA system Import network node configuration information into the file, denoted as... ,and ; This represents the first node; Indicates the second node; Indicates the first Nodes, subscript Indicates the node identifier; Indicates the last node, subscript Indicates the total number of nodes; any node Includes node number and node type , Indicates network end system node, Indicates a network switch node; Step 102: Set the link information in the network topology; IMA system Import network link configuration information into the file, denoted as... ,and subscript Indicates the link identifier; any link , Indicates the source node of the link. Indicates the destination node of the link; Step 103: Import network traffic information; IMA system Import network traffic configuration information into the file, denoted as... ,and ; This indicates the first traffic flow; This indicates the second flow; Indicates the first Traffic flow; Indicates the first Traffic flow; Indicates the first Traffic, subscript Indicates the traffic identification number; Indicates the last data entry, indicated by the subscript. Indicates the total amount of traffic; Any traffic It consists of quaternion information, that is ; Indicates the traffic source node, Indicates the destination node of the traffic. Indicates flow length, Indicates the flow period; The transmission path of traffic, with its links connected end-to-end, forms a pathway connecting end systems; this is called the traffic-transmission path, denoted as . Each element Represents traffic The set of traffic-transmission paths between the source node and the destination node, traffic Transmit from the source node to the destination node along the path in the set; flow The transmission path set is ; Indicates flow rate The first transmission path; Indicates flow rate The second transmission path; Indicates flow rate The One transmission path; Indicates flow rate The last transmission path; Step 2: Complete traffic routing planning; Step 201: Generate the adjacency list of network nodes; According to network nodes and link information Generate an adjacency list for network nodes; An adjacency list represents the connections between network nodes; This indicates that there is no connection between the two nodes, and the corresponding... This indicates that a connection exists between two nodes; Step 202: Generate traffic-transmission path; For each traffic flow, the source node is obtained from the adjacency list. to the destination node All pathways are used to obtain the flow-transmission path for each flow; Complete the traversal of traffic configuration information For each traffic flow, the source node is obtained from the adjacency list. to the destination node All paths are used to obtain the flow-adjacency list-transmission path set. ; Step 203, selecting the first route; Initially, from the flow transmission path set Select the first transmission path and will As traffic The first route; Step 204: Iteratively search for the optimal path using the load balancing strategy; The number of iterations is denoted as The maximum number of iterations is equal to the length of the transmission path. For traffic Iterative search for traffic The current optimal transmission path This ensures lower link load and shorter path; link load and traffic cycle Flow length The calculation results are related to updating the link bandwidth usage and are compared with the previous transmission path. This comparison is used to ensure that network traffic achieves load balancing. flow The preceding transmission path is denoted as ; Network load balancing is limited by link bandwidth. bandwidth Defined as ; After iteration, a traffic transmission route that satisfies the overall network load balancing is finally obtained, based on traffic... For example, traffic The final traffic transmission route is , represented as ; Traversal complete All traffic is used to ensure network traffic achieves load balancing. Step 3: Initialize the traffic scheduling state; Step 301: Initialize the traffic scheduling state to unscheduled; Traversal For each traffic item, its scheduling state is set to undone, indicating that no scheduling has been performed; this is represented as: ; Step 302, Initialize the flow bias timing; The initial bias of the traffic is -1, indicating that it is not scheduled. For traffic Bias timing using array Indicated, denoted as In the formula for The number of elements in; Traversal For each traffic item, set an array. All values ​​are -1, indicating that no scheduling has been performed; that is: ; Traffic exist The offset time of the uptransmission is denoted as ; Step 303: Initialize the single-increment step size of the traffic; Set the single-increment step size of traffic to 5; Step 4: Solving the scheduling of a single incremental flow; Step 401: Obtain the current flow rate number range and create a new logical variable for it; The range of traffic numbers to be solved in this incremental scheduling is obtained from the single incremental step size and scheduling progress; Iterate through the incremental traffic in this scheduling and set the scheduling status to doing; Initialize the offset of each traffic entry as an integer variable, named message + traffic number + link + link number; Step 402: Add new constraints to the solver; After determining the incremental traffic to be added, the time slice occupied by the already scheduled traffic is considered, and the constraints of the new traffic are added to the solver. The types of constraints include: basic constraints, traffic collision-free constraints, bounded forwarding constraints, end-to-end delay constraints, and traffic queue order constraints. Basic constraints, denoted as Considering the periodicity of traffic, the offset time of each hop of traffic should not exceed the difference between its own period and length; ; Traffic without conflict constraints, denoted as The basis of traffic scheduling constraints is that, under these constraints, the sender will only forward traffic after the previous traffic has been received and processed. ; This indicates the first element in the route that has the same content. Traffic flow; This indicates the first element in the route that has the same content. Traffic volume; Indicates flow rate The number of times to send repeatedly; Indicates flow rate The number of times to send repeatedly; Bounded forwarding constraints, denoted as Constraints generated by hardware parameters: The time interval between two consecutive hops in a route has a maximum value. ; End-to-end delay constraint, denoted as Based on the actual application scenarios of airborne networks, the maximum value of end-to-end latency is limited; ; express The final bias time; express The initial bias time; Traffic queue order constraint, denoted as Another way to express the frame isolation constraint in time-sensitive networks is to achieve frame isolation by the order in which traffic enters the queue. ; ; ; ; ; ; Indicates flow rate Transmission delay; express Traffic transmission arrives Time; express Traffic transmission arrives Time; express Traffic transmission away Time; express Traffic transmission away Time; Based on the calculated flow bias and flow length This allows us to obtain the time intervals on the links in the traffic routing. Traffic Occupancy; the time occupancy status of the link is stored in a dictionary variable. In this process, the time occupancy information of the link is recorded as a constraint condition for subsequent traffic scheduling; Step 403: Call the solver to schedule the solution; The ILP method is used, and the Gurobi solver is invoked; Solve using the solver with the constraints already added and obtain the results; If the scheduling is completed, proceed to step five to update the link time occupancy status, and repeat step four to perform the next incremental solution. If scheduling fails, the cause is determined to be a timeout or no solution. If the solution times out, exit the solver and return a solution failure message; If there is no solution, invoke the Gurobi solver function and output the solution. For the file, proceed to step six to locate and trace back the traffic; Step 5: Update the link time occupancy status; Step 501: Store the offset time of the completed scheduled traffic; After a single scheduling iteration is completed, the corresponding link time occupancy is updated based on the calculated traffic offset time and traffic length. Link time occupancy will then serve as a constraint for traffic scheduling in the next incremental scheduling iteration. (Definition) Store the bias time of the scheduled traffic, where: This indicates that the offset time for the first item in the scheduled traffic has been completed. This indicates the first traffic item that has been scheduled; This indicates that the offset time for the second item in the scheduled traffic has been completed. This indicates the second traffic item that has been scheduled; This indicates the offset time of the last item in the scheduled traffic. Indicates the number that has been scheduled Traffic flow; Step 502: Update the status of the scheduled traffic to "Scheduled"; The status of the traffic that has been scheduled has been updated to "done," indicating that it has been scheduled. ; The scheduling status of traffic is the basis for determining whether scheduling has ended; when the status of all traffic is "done" or the solution time exceeds the preset maximum duration. If the solution is complete, proceed to step seven. If traffic scheduling is not finished, determine whether to repeat step five or proceed to step six based on the traffic scheduling status; if the solution is successful this time, repeat step five to perform the next incremental solution; if the solution fails this time, proceed to step six to trace the source of traffic conflicts and backtrack the scheduling progress, and reschedule some of the traffic. Step six: Precise conflict tracing of traffic; Step 601: Perform conflict tracing based on the exported files from the failed solution process; After a single scheduling attempt fails, the output in step four of the analysis is... The file contains the reasons for the solution failure, mainly including the constraints that could not be met and the names of the variables that could not be solved; it helps to locate the names of the problematic variables, thereby determining the specific traffic flow that failed to be scheduled. The aforementioned The contents of the file are as follows: A system of inequalities is given that leads to contradictions and cannot be solved. The unsolvable combination of inequalities causes the failure of a single incremental scheduling operation. Different inequalities represent different constraints, among which: The basic constraint or end-to-end delay constraint is denoted as... k is a constant related to the length and period of the traffic, or the end-to-end delay, and M represents the traffic number, which is the number of a link in the route of traffic M. Bounded forwarding constraints are denoted as , Here, M is a constant related to forwarding delay, representing the traffic number, which is the link number in the route of traffic M. The form of conflict-free constraints is denoted as L represents a link, M and N represent two traffic streams that contain that link in the route, and A and B represent the number of times the two traffic streams are repeatedly sent in the timeout period. Queue order constraint form is denoted as In the formula This represents the branching condition in the queue order constraint. M and N represent two traffic streams that may be affected by the queue order constraint, and A and B represent the number of times the two traffic streams are repeatedly sent within the timeout period. The range of values ​​for the unsolvable variable is given. This range was defined when the variable was defined and is only affected by the basic conditions, in the following format: ; This section presents some of the bivariate variables in the solver constraints. or The beginning indicates the decision variables introduced when adding conflict-free constraints and queue order constraints; The names of variables that have no solution are listed below. The variable name format is as follows, where M is the flow number. This variable represents the link number in the route for traffic M. The time of forwarding on the platform is recorded as follows: ; Step 602: Reset the status of the backtracking traffic to unscheduled, and solve it again along with the traffic that was not scheduled in this instance. Read The file is parsed. In this section, the flow rates appearing within the inequalities are all potential causes of solution failure; extract the flow rate numbers that appear at least once, and trace back these flow rates with the current incremental scheduling flow rates; During the backtracking process, the time occupied by the backtracking traffic on the link is cleared first, and the traffic status is set to undone, which means unscheduled. At this time, the constraints added in the solver are deleted, and new constraints are added in the next scheduling solution. Read The file is parsed. Partial content; Extract the traffic ID that appears at least once, and trace back this traffic with the traffic in this incremental scheduling; Step 7: Generate the scheduling Gantt chart and GCL gating list; Step 701: Generate a scheduling timetable based on the scheduling results, and draw a Gantt chart to represent the link time occupancy status; Step 702: Generate a GCL gating list based on the scheduling timetable and link port attribute conversion; Configure the node's port information according to the actual case requirements; call... The function generates a GCL gating list represented by 0s and 1s.

2. The incremental scheduling method for precise conflict tracing applicable to time-sensitive networks according to claim 1, characterized in that: Source-tracing incremental scheduling is a solution performed by calling the Gurobi solver.

3. The precise conflict tracing incremental scheduling method for time-sensitive networks according to claim 1, characterized in that: Network Nodes and link information It forms the basis of traffic scheduling, and routing planning, link time occupancy, etc. are all based on it.

4. The precise conflict tracing incremental scheduling method for time-sensitive networks according to claim 1, characterized in that: Network traffic information is the object of scheduling design. The traffic forwarding time is obtained and converted into a GCL gating list.

5. The precise conflict-based incremental scheduling method for time-sensitive networks according to claim 1, characterized in that, The specific process of traffic backtracking in step 602 is as follows: 1) Clear the time occupied by backtracking traffic on the link and set the traffic status to undone to indicate that it has not been scheduled; 2) Reset the bias time variable of the traffic and redefine the offset variable of the backtracking traffic; 3) Clear solver constraints, from The bias time of the completed scheduled flow is extracted and the constraints are re-imported into the solver; 4) Solve again until the time limit is exceeded. Or the solution is successful; if the solution is successful, proceed to step five to schedule the next set of incremental changes; if... If the solution fails, the scheduling ends, the status of the traffic that failed to be solved is set to unable, and the process proceeds to step seven.

Citation Information

Patent Citations

  • Virtual power plant communication service flow scheduling method and device based on time sensitivity

    CN114039936A

  • Time-sensitive networking frame pre-emption across cellular interface

    US20190289616A1