Method, device and system for resource allocation

The deterministic packet spraying method with priority bucket values and resource reservation protocol addresses QoS inconsistencies in industrial networks by ensuring consistent end-to-end service quality and reducing latency, enhancing network efficiency.

WO2026073551A1PCT designated stage Publication Date: 2026-04-09HUAWEI TECH CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-10-02
Publication Date
2026-04-09

AI Technical Summary

Technical Problem

Existing multi-path forwarding solutions in industrial networks fail to maintain consistent end-to-end quality of service (QoS) due to packet reordering and jitter, particularly in asymmetric networks with non-equal cost paths, leading to increased latency and congestion.

Method used

A deterministic packet spraying method that uses a priority bucket value to schedule and transmit packets based on their proximity to the destination, ensuring bounded latency and resource utilization across multiple paths, combined with a resource reservation protocol for dynamic resource allocation.

Benefits of technology

Ensures consistent end-to-end quality of service by dynamically adjusting packet priorities and resource allocation, reducing flow completion times and optimizing network performance in complex industrial networks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2024077754_09042026_PF_FP_ABST
    Figure EP2024077754_09042026_PF_FP_ABST
Patent Text Reader

Abstract

The present disclosure relates to a packet transmission method applied to a network device. This method includes obtaining a priority bucket value for a packet. The priority bucket value represents consumable priority values for transmitting the packet across various paths. The packet is scheduled and transmitted based on the priority bucket value and the distance to a destination of each path, with updating the priority bucket value updated after each scheduling. This approach enables consistent end-to- end Quality of Service (QoS) across different network paths, enhancing the efficiency and reliability of network traffic management.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] METHOD, DEVICE AND SYSTEM FOR RESOURCE ALLOCATION

[0002] TECHNICAL FIELD

[0003] The present disclosure relates to the field of networking. For instance, the disclosure relates to a method, and devices for packet spraying and transmission.

[0004] BACKGROUND

[0005] In the field of deterministic networks, particularly Time-Sensitive Networking (TSN), ensuring quality of service (QoS) for time- sensitive applications is paramount. Critical factors in achieving this include providing bounded end-to-end (E2E) latency through a deterministic scheduling algorithm, and eliminating congestion using a resource reservation protocol. These features are important for supporting applications requiring reliable transmission and predictable performance in large-scale industrial networks.

[0006] Existing industrial networks have traditionally relied on Programmable Logic Controllers (PLCs) within the production environment to manage end devices, but recent advancements have introduced Virtual PLCs (vPLCs) positioned in edge cloud environments. This shift has restructured industrial networks, expanding latency- sensitive traffic beyond production cells into broader network architectures, including production lines and edge clouds. Additionally, emerging industrial applications such as machine learning, automated optical inspection, and visualized remote control have introduced "elephant" flows and burst traffic, complicating QoS guarantees and further stressing network resources.

[0007] SUMMARY

[0008] Current multi-path forwarding solutions such as Equal Cost Multi-Path (ECMP) and Multi-Path TCP (MPTCP) aim to improve application throughput by distributing traffic across multiple paths. However, these approaches are optimized for large flows, often neglecting the specific requirements of both large and short flows, particularly in industrial environments where nonequal cost paths are more common. Conventional packet spraying techniques face challenges such as packet reordering and jitter, which can violate stringent latency requirements and degrade overall network performance.

[0009] Given the limitations of traditional multi-path forwarding techniques, particularly with respect to maintaining consistent E2E QoS in industrial networks, there is a need for more advanced mechanisms. This disclosure introduces a deterministic multipath approach that leverages packet spraying while ensuring bounded latency and mitigating congestion, ultimately improving QoS, reducing flow completion times, and enhancing network resource utilization.

[0010] In view of the above-mentioned problems and disadvantages, this disclosure aims to provide a data transmission approach that leverages packet spraying while ensuring bounded latency. Further objectives may include mitigating congestion, improving QoS, reducing flow completion times, and enhancing network resource utilization.

[0011] These and other objectives are achieved by the subject matter of the independent claims. Further implementation forms are apparent from the dependent claims, the description, and the drawings.

[0012] A first aspect of this disclosure provides a packet transmission method applied to a network device. The method includes obtaining a priority bucket value for a packet. The priority bucket value represents consumable priority values for transmitting the packet. The packet is scheduled and transmitted based on the priority bucket value and the distance to a destination. After scheduling the packet, the priority bucket value is updated. Optionally, the packet may be transmitted through multiple paths to a common destination, e.g., via packet spraying. In this case, the network device is a spraying node. The priority bucket value represents consumable priority values of each path individually. That is, each path is associated with a priority bucket.

[0013] For scheduling the packet on each path (as a current path), a current distance to the destination of the current path is considered. A queue level may be selected as a result of the scheduling.

[0014] It is also possible that the network device is not a spraying point, and there is only one path for transmitting the packet. For instance, the network node is one of multiple hops of a path. In this case, there is only priority bucket value associated with the single path for the network device.

[0015] Scheduling the packet consumes a certain amount of priority values. Thus, the consumed priority values are deducted from the priority bucket value. The updated priority bucket value is then transmitted to a subsequent network device.

[0016] Notably, the queue level is associated with a priority level. After the queue level is selected, the corresponding priority level (as consumed priority value) is deducted by the network device from the priority bucket value for the current path. A queue level indicates a transmission priority at the network device.

[0017] The priority bucket value is associated with the packet along each path, and thus, can be updated and transmitted along with the packet along each path.

[0018] In this way, it can enhance the efficiency and reliability of packet transmission (packet spraying) across a network by dynamically adjusting the priority treatment of packets based on consumable priority values and their proximity to the destination, ensuring optimal resource utilization and consistent network performance.

[0019] In an implementation form of the first aspect, before transmitting the packet, the method comprises obtaining a priority code point (PCP) assigned to the packet and calculating the initial priority bucket value based on the priority code point and the shortest distance to the destination.

[0020] Without departing from its general concept, the PCP used in network communications to prioritize network traffic, ensuring that data with higher importance or urgency is transmitted more quickly over a network. PCP is typically carried within Ethernet frames as part of the 802. IQ VLAN tagging standard, which extends Ethernet frames to include additional information about the frame.

[0021] In a further implementation form of the first aspect, the initial priority bucket value is calculated as: o = p x d, where cr is the initial priority bucket value, p is the priority code point, and d is the shortest distance to the destination.

[0022] Notably, d is the shortest distance among all available paths to the destination. In a further implementation form of the first aspect, the method includes selecting a priority queue for transmitting the packet based on the priority bucket value and the distance to the destination at each hop; and transmitting the packet using the selected priority queue.

[0023] Notably, the distance used for packet scheduling is the current distance to the destination following a current path.

[0024] Without departing from its general concept, the priority queue is a data structure used by the network device to manage and process packets based on their assigned priority levels. This type of queue ensures that packets of higher priority are transmitted before those of lower priority, optimizing network efficiency and enhancing the quality of service for critical applications. This may be employed in network devices such as routers and switches that handle multiple streams of data traffic simultaneously.

[0025] In a further implementation form of the first aspect, the priority queue is associated with a queue level. A lower value of the queue level indicates a higher priority for the queue. For instance, a queue level 1 has the highest priority.

[0026] In a further implementation form of the first aspect, the queue level is determined as: q = / dj, where cr is the priority bucket value, d is the distance to the destination, and q is the queue level.

[0027] In general, the queue level is proportional to the current priority bucket value: a larger priority bucket indicates a larger priority level (and thus, a lower transmission priority at the network device). The queue level is inversely proportional to the current distance to the destination: a larger distance indicates a smaller priority level (and thus, a higher transmission priority at the network device).

[0028] In a further implementation form of the first aspect, the priority bucket value is updated by subtracting the queue level from the current priority bucket value. The formula for updating the priority bucket may expressed as: a = a — q, where cr on the left is the updated priority bucket (after scheduling), cr on the right is the priority bucket before updating / scheduling, q is the selected queue level.

[0029] In a further implementation form of the first aspect, the updated priority bucket value is carried in the header of the packet, optionally in a Q-Tag of an Ethernet frame.

[0030] In a further implementation form of the first aspect, the method comprises determining whether the packet is eligible for spraying based on the priority bucket value, the highest-priority queue that allows resource sharing, and the distance to the destination.

[0031] In a further implementation form of the first aspect, the packet is considered spray able if cr > qmlnx d. where cr is the priority bucket value, d is the distance to a destination, and qmlnis priority value of the priority queue with the highest priority (i.e., with the smallest queue level) that allows resource sharing.

[0032] In a further implementation form of the first aspect, the method includes carrying an indicator in the header of the packet to indicate that the packet is eligible for spraying, with the option of including this indication in a Q-Tag of an Ethernet frame. In a further implementation form of the first aspect, the method includes sending a bandwidth feedback parameter along all available paths to check if sufficient resources are available along the paths for a flow that includes the packet.

[0033] In a further implementation form of the first aspect, upon checking that there are no sufficient resources for transmitting the packet, the method comprises:

[0034] - determining an adjusted bandwidth feedback parameter based on a proportion of available resources and required resources; and

[0035] - sending the adjusted bandwidth feedback parameter along the path.

[0036] In a further implementation form of the first aspect, the method includes tuning the adjusted bandwidth feedback parameter sent along the path based on resource availability across all available paths.

[0037] In a further implementation form of the first aspect, the method includes adjusting spraying weights based on the tuned adjusted bandwidth feedback parameter.

[0038] A second aspect of this disclosure provides a network device. The device is configured to obtain a priority bucket value for a packet. The priority bucket represents consumable priority values for transmitting the packet. The device is configured to schedule and transmit the packet based on the priority bucket value and the distance to the destination. After scheduling the packet, the priority bucket value is updated.

[0039] In an implementation form of the second aspect, before transmitting the packet, the network device is configured to obtain the priority code point assigned to the packet and calculate an initial priority bucket value based on the priority code point and the shortest distance to the destination.

[0040] In a further implementation form of the second aspect, the initial priority bucket value is calculated as:

[0041] <7 = p * d, where cr is the initial priority bucket value, p is the priority code point, and d is the shortest distance to the destination.

[0042] In a further implementation form of the second aspect, the network device is configured to select a priority queue for transmitting the packet based on the priority bucket value and the distance to the destination at each hop.

[0043] In a further implementation form of the second aspect, the priority queue is associated with a queue level, where a lower queue level indicates a higher priority for the queue.

[0044] In a further implementation form of the second aspect, the queue level is determined as: q = / dj, where u is the priority bucket value, d is the distance to a destination, and q is the queue level.

[0045] In a further implementation form of the second aspect, the updated priority bucket value is carried in the header of the packet, optionally in a Q-Tag of an Ethernet frame.

[0046] In a further implementation form of the second aspect, the network device is configured to determine whether the packet is eligible for spraying based on the priority bucket value, the highest-priority queue that allows resource sharing, and the distance to the destination.

[0047] In a further implementation form of the second aspect, the packet is considered sprayable if r > (qmin)d, where cr is the priority bucket value, d is the distance to a destination, and qmlnis a priority value of the priority queue with the highest priority that allows resource sharing.

[0048] In a further implementation form of the second aspect, the network device is configured to carry an indicator in the packet header, signaling that the packet is eligible for spraying, optionally placing this indication in a Q-Tag of an Ethernet frame.

[0049] In a further implementation form of the second aspect, the network device is configured to send a bandwidth feedback parameter along all available paths to check if sufficient resources are available along the paths for the flow that includes the packet.

[0050] In a further implementation form of the second aspect, upon checking that there are no sufficient resources for transmitting the packet, the device is configured to:

[0051] - determine an adjusted bandwidth feedback parameter based on a proportion of available resources and required resources; and

[0052] - send the adjusted bandwidth feedback parameter along the path.

[0053] In a further implementation form of the second aspect, the device is configured to tune the adjusted bandwidth feedback parameter sent along the path based on resource availability across all available paths.

[0054] In a further implementation form of the second aspect, the device is configured to adjust spraying weights based on the tuned adjusted bandwidth feedback parameter.

[0055] The device of the second aspect may share the same optional features and advantages as the method of the first aspect.

[0056] A third aspect of this disclosure provides a system comprising one or more network devices according to the second aspect or any implementation form thereof.

[0057] A fourth aspect of this disclosure provides a computer program comprising instructions that, when executed by a computer, cause the computer to perform the method as described in the first aspect or any implementation form thereof.

[0058] A fifth aspect of the present disclosure provides a computer-readable medium comprising instructions which, when executed by a computer, cause the computer to carry out the method according to the first aspect or any implementation form thereof. A sixth aspect of the present disclosure provides a chipset comprising instructions which, when executed by the chipset, cause the chipset to carry out the method according to the first aspect or any implementation form thereof.

[0059] It has to be noted that all devices, terminals, elements, units, and means described in the present disclosure could be implemented in software or hardware elements or any kind of combination thereof. All steps which are performed by the various entities described in the present application as well as the functionalities described to be performed by the various entities are intended to mean that the respective entity is adapted to or configured to perform the respective steps and functionalities. Even if, in the following description, a specific functionality or step to be performed by external entities is not reflected in the description of a specific detailed element of that entity, which performs that specific step or functionality, it should be clear for a skilled person that these methods and functionalities can be implemented in respective software or hardware elements, or any kind of combination thereof.

[0060] BRIEF DESCRIPTION OF DRAWINGS

[0061] The above-described aspects and implementation forms will be explained in the following description in relation to the enclosed drawings, in which

[0062] FIG. 1 shows an exemplary network comprising network devices;

[0063] FIG. 2 shows a diagram of a packet transmission method;

[0064] FIG. 3 shows an example of carrying priority bucket in a packet;

[0065] FIG. 4A-4C show examples of packet transmission using different paths;

[0066] FIG. 5 shows various types of network devices;

[0067] FIG. 6 shows an example of a resource reservation signaling message;

[0068] FIG. 7A shows an example of a packet being transmitted through multiple paths;

[0069] FIG. 7B-7D show examples of applying a resource reservation protocol with auto-tuning mechanism; and

[0070] FIG. 8 shows an application scenario of this disclosure.

[0071] DETAILED DESCRIPTION OF EMBODIMENTS

[0072] In FIGs. 1 - 8 below, corresponding elements may share the same features and function likewise.

[0073] FIG. 1 illustrates an exemplary network comprising network devices 11-15. Packets of a same flow may be transmitted / sprayed through multiple paths from device 11 to device 13.

[0074] In deterministic networks and Time-Sensitive Networking (TSN), ensuring Quality of Service (QoS) for time-sensitive applications is critical. One fundamental aspect in achieving this is managing End-to-End (E2E) latency through deterministic scheduling algorithms and mitigating congestion via a resource reservation protocol. Conventional packet spraying techniques, while effective in balancing loads across paths, introduce significant challenges, particularly out-of-order packet delivery. In TCP and data center environments, out-of-order packets can significantly reduce application throughput, because the destination cannot distinguish between out-of-order and lost packets. In industrial networks, which lack symmetry and often do not have multiple equal-cost paths, packet spraying can degrade the QoS of packets on longer paths, causing increased latency, jitter, and potential deadline violations. The standard protocols such as Stream Reservation Protocol (SRP) and Resource Allocation Protocol (RAP) primarily focus on the shortest path, neglecting the dynamics introduced by multiple paths. These protocols are insufficient when packet spraying is employed, as they do not account for resource availability on alternate paths, which is crucial for maintaining service quality. Overall, packets traversing non-equal-cost paths can experience inconsistent QoS, leading to unacceptable jitter and deadline violations for time- sensitive applications. Existing protocols do not provide for resource checks or reservations on multiple paths, often resulting in insufficient resources for maintaining high QoS, particularly for large or burst traffic flows.

[0075] This disclosure provides a solution that incorporates a tuning mechanism capable of dynamically assessing and reserving resources across all available paths.

[0076] FIG. 2 shows a diagram of a packet transmission method 20. The method is applied to a network device, e.g., any network devices 11-15 shown in FIG. 1. The method 20 comprises the following steps.

[0077] Step 21 : obtaining a priority bucket value associated with a packet. The priority bucket value represents consumable priority values for transmitting the packet.

[0078] Optionally, when the network device is an initial node (as an edge switch), for obtaining the priority bucket value, the method may comprise obtaining a priority code point assigned to the packet; and calculating 211 an initial priority bucket value based on the priority code point and a shortest distance to the destination. For instance, the initial priority bucket value may be calculated as cr = p * d, where cr is the initial priority bucket value, ) is the priority code point, and d is the shortest distance to the destination. The calculated initial priority is used as the priority bucket value obtained in step 21.

[0079] Alternatively, when the network device is an network node along the path, for obtaining the priority bucket value, the method may comprise decoding 212 the priority bucket value from a header of the packet. For instance, the priority bucket value may be carried in the header of the packet.

[0080] Step 22: scheduling and transmitting the packet based on the priority bucket value and a distance to a destination of the packet.

[0081] Step 23: updating the priority bucket value after scheduling the packet. For instance, the priority bucket value is updated in the packet header before transmitting the packet.

[0082] It is noted that step 23 may be performed during step 22. For instance, step 23 is performed after the packet is scheduled, and before the packet is transmitted by the network device. A detailed executing sequence is not limited in this disclosure.

[0083] A deterministic packet spraying using a priority bucket is provided in this disclosure. In particular, the priority bucket is used instead of the PCP for packet scheduling (queue level selection) at each hop to provide a same E2E QoS on non-equal cost paths. The priority bucket represents the maximum number of priority values that can be consumed from E2E without violating the required E2E QoS.

[0084] At each node, packet scheduling (queue level selection) is made based on the value of the priority bucket (cr) and the distance to the destination (d). For instance:

[0085] - at an edge switch: calculating the priority bucket: a = p * d:

[0086] - at a spraying point: checking if spraying is possible: cr > (qmin)d

[0087] - at each hop: a) scheduling the packet (queue level selection): q = b) Updating the priority bucket: cr = cr — q; c) transmitting the packet, where u denotes the value of the priority bucket; p denotes a priority code point; d denotes a distance to the destination; d denotes a distance of the shortest path; qmlndenotes the highest priority queue level that allows resource sharing; and q denotes the index of selected queue at each hop. It is noted that a smaller queue level q indicates a higher priority, e.g., queue level 1 is the highest priority queue (least worst-case latency).

[0088] PCP-based solution guarantees per-hop quality of service, meaning that each network device processes packets based on a predefined priority level. This prioritization influences packet handling at each individual network hop, focusing on local traffic conditions without consideration for the overall end-to-end path. The resultant effect of using PCP is that the end-to-end quality of service is the cumulative effect of these individual hop treatments, which can vary depending on the selected path, e.g., at the cost of the path.

[0089] In contrast, the priority bucket-based approach of this disclosure guarantees end-to-end quality of service. This disclosure proposes a dynamic priority bucket value to each packet, which is adjusted as the packet progresses through the network. This adjustment is based on the overall network conditions and the packet’s specific requirements, aiming to maintain consistent service quality from origin to destination. The per-hop quality of service under this approach is derived from the priority bucket value that is kept updating when the packet is being transmitted, ensuring that each hop contributes appropriately to achieving the required end-to-end quality of service.

[0090] Deterministic packet spraying offers several advantages. Firstly, it ensures deterministic transmission behavior, providing consistent end-to-end quality of service even as packets traverse through various paths with differing costs. This capability is critical in maintaining predictable network behavior and service levels across diverse network architectures. Secondly, DPS reduces the flow completion time by effectively leveraging packet spraying techniques in asymmetric networks, which optimizes traffic distribution and minimizes congestion-related delays. This reduction in flow completion time is particularly beneficial in industrial applications, where it leads to accelerated processes and enhanced production efficiency, directly contributing to improved operational productivity and performance.

[0091] FIG. 3 shows an example of carrying priority bucket in a packet. The priority bucket value may be carried in a header of the packet. As shown in FIG. 3, the parameter of the priority bucket integrated into the “Q tag” field of the Ethernet frame. The priority bucket may be represented as a 7-bits integer. As introduced in FIG. 2, initially (at the edge switch), it is set to the product of the PCP and the distance to the destination using the shortest path. At each hop, the priority bucket is decremented to reflect the remaining priority values in the bucket.

[0092] Optionally, a Spray Eligible Indicator (SEI) flag may be integrated into the “Q tag” of the Ethernet frame. The SEI may be represented as a 1 -bit field to indicate the packet is eligible for spraying. For instance, an edge switch may set the SEI to one in case the flow is detected as large (or larger than a predetermined threshold).

[0093] FIG. 4A-4C illustrate examples of packet transmission using different paths.

[0094] FIG. 4A shows a path of A-B-C. At the starting node A, a packet arrives with a Priority Code Point (PCP, denoted as p in FIG. 4A-4C) of 3 and a minimum distance (d_min or d) to the destination of 3. The priority bucket (a) is calculated using the formula r> = p x d_min, resulting in a value of 9, which denotes the consumable priority values along the path. The packet is then assigned to a queue with a level as the quotient of the priority bucket value and the distance (q = ground (o / d)), which in this case calculates to a queue level of 3 (q = 9 / 3). Note that here the distance for packet scheduling is based on the current distance to the destination of the current path. After this queue selection, the priority bucket value is updated (o = o - q) to reflect the consumed priority, decreasing from 9 to 6 as the packet is processed and transmitted to the next node. Similarly, at node B, with a reduced distance (d) of 2, the new queue level is calculated (q = 6 / 2 = 3), and the priority bucket is further decremented to 3 (o = 6 - 3). At node C, with a distance of 1 , the packet's queue level calculation results in q = 3, fully depleting the priority bucket to 0 (o = 3 - 3). This indicates that the packet has utilized its priority allocation completely by the time it reaches the receiver.

[0095] FIG. 4B shows an alternative path A-D-B-C. The priority bucket is still 9 due to the same PCP and d_min. For queue level selection at node A, the distance to the destination is now 4. Thus, queue level 2 is selected, resulting the priority bucket decreases from 9 to 7. At node D, the distance is 3 and thus, queue level 2 is selected. The priority bucket is further decremented to 5. The same iterates on nodes B and C.

[0096] FIG. 4C shows an alternative path A-D-B-E-C. The priority bucket is still 9 due to the same PCP and d_min. For queue level selection at node A, the distance to the destination is now 4. It is noted that though the final path is A-D-B-E-C. For node A, after deciding to spray packet to node D, the current distance to the destination for node A is 4 (i.e., A-D-B-C-RX), since node A is not aware of node B spraying the packet to node E. Therefore, the distance for packet scheduling in this disclosure is based on the current distance to the destination of the current path (without further packet spraying on the remaining nodes). Each node may change the current path once it makes its decision to spray the packet to an alternative path. In FIG. 4C, queue level 2 is selected at node A, resulting the priority bucket decreases from 9 to 7. At node D, the distance is 3 (for the same reasons of node A, where the path D-B-C-RX is considered) and thus, queue level 2 is selected. The priority bucket is further decremented to 5. The same iterates on nodes B, E and C.

[0097] FIG. 4A-4C shows examples that packets of the same flow can traverse different paths with varying costs to the destination. However, the packets all experience the same E2E QoS, consuming the same number of priority values from E2E, e.g., 9 priority values in all these examples.

[0098] FIG. 5 shows a network system 50 or a part of a network system 50. The network system 50 comprises at least one network device adapted to perform the method 20 introduced in FIG. 2. The system 50 may also comprise various types of network devices. The method 20 of this disclosure may be applied to any network device (e.g., nodes 51, 52 and 53) that is involved in packet transmission spraying, where the priority bucket value is obtained and updated while the packets are scheduled and transmitted along the path.

[0099] For instance, the network device may be an edge node (such as node 51 and node 53 shown exemplarily in FIG. 5), which may be the initial node 51 or the last node 53 on the packet path of packet spraying. It is noted that the node 53 can be at the same an initial node for a further domain (sub-network). The initial node has at least two major functions: a) setting SEI: SEI is set to positive (e.g., bit value 1) if packets of a flow are eligible for spraying (e.g., large flows requiring high bandwidth); and b) calculating the initial priority bucket value: obtaining PCP and calculating the initial priority bucket value for the packet.

[0100] It is noted that a single initial node is not necessarily configured to perform both of the two functions. For instance, the setting of SEI may alternatively be performed by other network entities. The network device may be a spraying node (such as node 51 shown exemplarily in FIG. 5), which is a node that can send packets to their destination via multiple routes. The spraying node can also be an edge / initial node. The spraying node is configured to determine that the packet is sprayable. For instance, the spraying node can confirm that the SEI is set to positive by the edge node (when the spraying node is not the edge node). The spraying node may be configured to ensure that spraying does not exceed the limit of the priority bucket (cr > qmlnx d).

[0101] The network device may be a coalescing node (such as node 53 shown exemplarily in FIG. 5), which is a node where packets of the same flow, previously sprayed at an earlier node, are merged or coalesced.

[0102] This disclosure also provides a resource reservation protocol with auto-tuning mechanism. This mechanism aims at checking the availability of resources on all potential paths and reserving necessary resources dynamically. It can dynamically adjust the traffic split (e.g., sprayed with different weights) based on current (real-time) availability of resources on each path. In this way, it optimizes the distribution of network traffic, reducing congestion and improving overall efficiency.

[0103] In this protocol, a resource reservation signaling message is forwarded on all available paths to inquire about resource availability on each path. A parameter of bandwidth feedback (y) is added to the signaling message to allow reporting the portion of the possible reservation in case the available resources are insufficient to accommodate the total amount of the flow. Given the bandwidth feedback of all paths, resource reservation can be auto-tuned based on the resource’s availability of every path, for instance as follows:

[0104] - at an edge node (an initial node, or a spraying node) 51 : advertising the full amount of required resources by upcoming flow to all available paths;

[0105] - at every hop / node 52A, 52B along the path: reporting the amount of bandwidth feedback it can allocate for the upcoming flow: y = / p- where ^denotes available resources at queue level q. and R denotes required resources;

[0106] - at a coalescing node 53: auto-tuning the resource reservation based on the resource’s availability of every path and echoing the tuned BW feedback back to the spraying point;

[0107] - at every hop / node 52A, 52B along the path: reserving the required resources for the upcoming flow based on the tuned BW feedback advertised by the coalescing point;

[0108] - at the initial node or the spraying node) 51: adjusting spraying weights of the flow (e.g.,

[5050] ,

[4060] , or

[7030] ) based on the bandwidth feedback reported by the coalescing node 53.

[0109] In general, the spraying node 51 may be further configured to integrate the bandwidth feedback parameter in the resource reservation message and send it to available path toward the flow destination; and modify spraying weights based on a received tuned bandwidth feedback parameter. For instance, the spraying node 51 may be configured to propagate a signaling message (e.g., a talker advertise (TA)) to a next edge switch (e.g., a coalescing point), where the signaling message includes the priority bucket and bandwidth feedback parameters, through all eligible (sprayable) paths. Accordingly, the method 20 may further include sending the bandwidth feedback parameter along all available paths to the destination. The bandwidth feedback parameter is used for checking whether sufficient resources are available along the available paths for a flow comprising the packet.

[0110] The node at each hop 52A, 52B may be further configured to reserve required bandwidth for each flow (and update the bandwidth feedback parameter in case of insufficient bandwidth, e.g., through a talker failed (TF) message). Accordingly, the method 20 may further include: upon checking that there are no sufficient resources for transmitting the packet, determining an adjusted bandwidth feedback parameter based on a proportion of available resources and required resources; and sending the adjusted bandwidth feedback parameter along the path.

[0111] The coalescing node 53 may be further configured assess and send back tuned bandwidth feedback on each path. Accordingly, the method 20 may further include tuning the adjusted bandwidth feedback parameter sent along the path based on resource availability across all available paths.

[0112] This resource auto-tuning mechanism allows flow traffic to be dynamically split at any available paths, optimizing the distribution of the network and reducing congestion. It also enables flexibility in accommodating large flows, increasing the flow acceptance probability by enhancing the utilization of network resources.

[0113] FIG. 6 shows an example of a resource reservation signaling message. The resource reservation signal message comprises parameters of priority bucket, SEI, and bandwidth (BW) feedback. The resource reservation signaling message may be initiated by the initial node 51. The BW feedback comprised therein may be updated by the node of each hop 52A, 52B, and tuned by the coalescing node 53.

[0114] FIG. 7A shows an example of a packet (with PCP=3) being transmitted through multiple paths: C-6-D, or C-7-8-9-D. Node C and node D are edge nodes. Node C is the initial node, whereas node D is the coalescing node. In path C-6-D, following the method 20 described previously, a queue level 3 is selected at node C; a queue level 3 is selected at node 6; and a queue level 3 is selected at node D. In path C-7-8-9-D, a queue level 1 is selected at node C; a queue level 1 is selected at node 7; a queue level 2 is selected at node 9. It is noted that the present disclosure may be applied to multiple domains. The priority bucket value is transmitted and updated in each domain. The PCP may be restored when the packet is transmitted to a different domain. FIG. 7A shows an example of a single domain. In FIG. 7A, the packet is received with PCP=3 at node C when entering the domain, and is restored with PCP = 3 when leaving the domain at node D.

[0115] FIG. 7B-7D shows examples of applying a resource reservation protocol with auto-tuning mechanism. In these examples, assuming required resource R=10k. In FIG. 7B, the resources of all queues are always sufficient, and thus, the packet can be sprayed by any weights, equally or unequally on all available paths.

[0116] In FIG. 7C, the queue level 3 at node 6 has limited resources 5k. Thus, node 6 may send a talker failed (TF) message with updated bandwidth feedback (y = 5k / 10k = 0.5) to the coalescing node D. In the other path, there is no TF message reaching the coalescing node D. Accordingly, the coalescing node D tune the bandwidth feedback as equal to 0.5 and feedback this tuned bandwidth feedback to the initial node C through a Listener Ready (LR) message. Accordingly, the node C split the packet equally [0.5 0.5] among the two paths. It is noted that FIG. 7C only shows one possible value of the tune bandwidth feedback. It is also possible that the coalescing node D may decide a tuned bandwidth feedback with 0.4 for path C-6-D, and a tuned bandwidth feedback with 0.6 for path C-7-8-9-D.

[0117] In FIG. 7D, the queue level 1 at node 7 has limited resources 5k; the queue level 2 at node 8 has limited resources 3k; and the queue level 2 at node 9 has limited resources 2k. Similar to FIG. 7C, the TF message is propagated along the path with the bandwidth feedback updated by node 7, 8, and 9, respectively. Finally, a TF message with updated bandwidth feedback reaches node D for path C-7-8-9-D. A TA message reaches node D for path C-6-D. In this case, node D may decide a tuned bandwidth feedback with 0.2 for path C-7-8-9-D, and a tuned bandwidth feedback with 0.8 for path C-6-D. In the example shown above, the auto-tuning mechanism can dynamically split the flow equally or unequally on available paths based on the available resource in every scenario. It is noted that when using the conventional SRP or RAP, the flow is blocked since there are no available resources at any single hop along the shortest path.

[0118] FIG. 7A-7D shows that the priority bucket mechanism can be combined with the auto-tuning mechanism.

[0119] In general, this disclosure provides a deterministic packet spraying protocol, which outlines a framework designed to enhance packet transmission reliability and efficiency across complex network environments. This protocol focuses on integrating the priority bucket mechanism into network operations, ensuring end-to-end QoS.

[0120] The priority bucket may be represented as a 7-bit integer and is used to dynamically adjust the handling priority of the packet at every network node. The initial value of this priority bucket is set based on a combination of the packet PCP and the shortest distance to its destination as = p x d.

[0121] As each packet progresses through the path, the protocol proposes that the priority bucket value is updated (decremented) at each hop to reflect the consumption of network resources and the current distance to the destination. This decrementing ensures that the packet priority is adjusted in real-time, allowing for dynamic resource allocation.

[0122] The protocol further proposes an optional SEI that indicates whether a packet is eligible for spraying across multiple paths. This indicator may be integrated into the packet Q-tag within the Ethernet frame and also included in the Data-Frame- Specification of signaling messages such as SRP and RAP, facilitating the dynamic routing of packets to optimize network utilization and reduce congestion.

[0123] The protocol further proposes a parameter of bandwidth feedback for auto-tuning. This parameter, optionally represented as a 7-bit integer, serves for monitoring and responding to the current network conditions. Initially set at an initial node (spraying node), the bandwidth feedback is configured to reflect the total available bandwidth for the packet's intended path, indicating that 100% of the required resources are available initially. The bandwidth feedback value is dynamically adjusted based on real-time bandwidth availability at each node. This dynamic adjustment allows each network device to evaluate whether it can meet the packet resource requirements. If a particular device cannot accommodate the packet due to limited bandwidth, it modifies the bandwidth feedback value, indicating a reduced availability of resources. This adjusted feedback is then passed along to subsequent nodes, until a coalescing node. The coalescing node receives multiple bandwidth feedback from all available paths, and determines a tuned / updated bandwidth feedback for each path. The tuned / updated bandwidth feedback of each path is then feedback to the spraying node. The spraying node, upon receiving the tuned / updated bandwidth feedback, is configured to update the spraying weights, and spray the packet among all the path according to the updated spraying weight, respectively.

[0124] The core advantage of integrating bandwidth feedback is the ability to dynamically allocate network resources based on actual traffic conditions. By continuously updating the bandwidth feedback, the network can optimize resource utilization, prevent congestion, and ensure that packets receive the necessary bandwidth to meet their QoS requirements. This is especially important in networks where traffic patterns can change quickly, and where maintaining high levels of service quality is critical. Moreover, the bandwidth feedback parameter helps in making more informed decisions about packet routing and handling.

[0125] FIG. 8 shows an application scenario of this disclosure. A network setup based on Intermediate System to Intermediate System with Shortest Path Bridging (ISIS-SPB) and MAC-in-MAC encapsulation is shown in FIG. 8. Using ISIS-SPB and Mac-in- Mac encapsulation provide isolated domains and encapsulate packets with an additional MAC header within each domain. In FIG. 8, the priority bucket is calculated and updated for each domain. For instance, from end-to-end point of view, a packet is initiated from node A to node G. In each domain, there are multiple paths for packet spraying, e.g., from node A to node B; from node C to node I ): and from node E to node G. The priority bucket can be applied to each individual domain. For instance, from node A to node B, 9 (PCP = 3 * shortest distance 3) priority bucket values are consumed by either path of A-1-2-3-B or A-4-5-B. From node C to node D, 6 (PCP = 3 * shortest distance 2) priority bucket values are consumed by either path. From node E to node G, 6 (PCP = 3 * shortest distance 2) priority bucket values are consumed by either path.

[0126] In general, the priority bucket may represent the number of priority values that can be consumed within a single domain (e.g., between a spraying edge node and a coalescing edge node). It can guarantee packets have the same QoS within the domain despite traversing different cost paths.

[0127] In summary, the deterministic packet spraying using priority bucket can ensure consistent and predictable E2E behavior across non-equal cost paths. It also mitigates the variability in E2E latency and jitter on asymmetric paths, thereby preventing deadline violations. This advancement allows for the utilization of packet spraying in asymmetric network, reducing the flow completion time. Reducing flow completion time enables to accelerate the industrial application to further improve the production efficiency.

[0128] The resource reservation with auto-tuning mechanism allows flow traffic to be dynamically split at any available paths, optimizing the distribution of the network and reducing congestion. This enables flexibility in accommodating large flows, increasing the flow acceptance probability by enhancing the utilization of network resources.

[0129] It is further noted that the devices in the present disclosure may comprise processing circuitry configured to perform, conduct or initiate the various operations of the device described herein, respectively. The processing circuitry may comprise hardware and software. The hardware may comprise analog circuitry or digital circuitry, or both analog and digital circuitry. The digital circuitry may comprise components such as application-specific integrated circuits (ASICs), field-programmable arrays (FPGAs), digital signal processors (DSPs), or multi-purpose processors. Optionally, the processing circuitry comprises one or more processors and a non-transitory memory connected to the one or more processors. The non-transitory memory may carry executable program code which, when executed by the one or more processors, causes the device to perform, conduct or initiate the operations or methods described herein, respectively.

[0130] The present disclosure has been described in conjunction with various aspects as examples as well as implementations. However, other variations can be understood and effected by those persons skilled in the art and practicing the claimed subject matter, from the studies of the drawings, this disclosure and the independent claims. In the claims as well as in the description the word “comprising” does not exclude other elements or steps and the indefinite article “a” or “an” does not exclude a plurality. A single element or another unit may fulfill the functions of several entities or items recited in the claims. The mere fact that certain measures are recited in the mutual different dependent claims does not indicate that a combination of these measures cannot be used in an advantageous implementation.

Claims

CLAIMS1. A packet transmission method (20) applied to a network device, the method comprising: obtaining (21) a priority bucket value for a packet, wherein the priority bucket value represents consumable priority values for transmitting the packet; scheduling (22) and transmitting the packet based on the priority bucket value and a distance to a destination of the packet; and updating (23) the priority bucket value after scheduling the packet.

2. The method (20) according to claim 1 , further comprising: before transmitting the packet: obtaining a priority code point assigned to the packet; calculating (211) an initial priority bucket value based on the priority code point and a shortest distance to the destination.

3. The method according to claim 2, wherein the initial priority bucket value is determined as: cr = p * d, wherein o’ is the initial priority bucket value, p is the priority code point, and d is the shortest distance to the destination.

4. The method (20) according to any one of claims 1 to 3, wherein for scheduling and transmitting the packet at each hop, the method comprises: selecting a priority queue for transmitting the packet based on the priority bucket value and the distance to the destination; and transmitting the packet using the selected priority queue.

5. The method (20) according to claim 4, wherein the priority queue is associated a queue level, wherein a lower value of the queue level indicates a higher priority for the priority queue.

6. The method (20) according to claim 5, wherein the queue level is determined as: <7 = Lff / dJ- wherein o’ is the priority bucket value, d is the distance to the destination, and q is the queue level.

7. The method (20) according to claim 5 or 6, wherein for updating the priority bucket value, the method comprises: subtracting the queue level from the priority bucket value, to obtain an updated priority bucket value.

8. The method (20) according to claim 7, wherein the priority bucket is updated as follows: a = a — q, wherein o’ on the left is the updated priority bucket, o’ on the right is the priority bucket before updating, q is the queue level.

9. The method (20) according to any one of claims 1 to 8, further comprising: carrying the updated priority bucket value in a header of the packet, optionally in a Q-Tag of an Ethernet frame.

10. The method (20) according to any one of claims 1 to 9, further comprising: determining that the packet is sprayable based on the priority bucket value, a priority queue with highest priority that allows resource sharing, and the distance to the destination.

11. The method (20) according to claim 10, wherein the packet is sprayable if u > qmlnx d. wherein u is the priority bucket value, d is the distance to a destination, and qminis a priority value of the priority queue with the highest priority that allows resource sharing.

12. The method (20) according to any one of claims 1 to 11 , further comprising: wherein the packet comprises an indicator in a header of the packet, wherein the indicator is used to indicate that the packet is eligible for spraying, and optionally, the indication is comprised in a Q-Tag of an Ethernet frame.

13. The method (20) according to any one of claims 1 to 12, further comprising: sending a bandwidth feedback parameter along all available paths to the destination, wherein the bandwidth feedback parameter is used for checking whether sufficient resources are available along the available paths for a flow comprising the packet.

14. A network device (51, 52A, 52B, 53) configured to: obtain a priority bucket value for a packet, wherein the priority bucket value represents consumable priority values for transmitting the packet; schedule and transmit the packet based on the priority bucket value and a distance to a destination of the packet; and update the priority bucket value after scheduling the packet.

15. A computer program comprising instructions which, when the program is executed by a computer, cause the computer to perform the method according to any one of claims 1 to 13.