Method, device and system for resource allocation

The distributed resource allocation method in the CRAN framework allows devices to dynamically adjust resource allocations based on binding constraints and network variables, addressing the challenge of managing unpredictable computational loads and optimizing resource utilization across the network.

WO2025125850A1PCT designated stage expired Publication Date: 2025-06-19HUAWEI TECH FRANCE S A S U
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/IB2023/000804
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-12-12
Publication Date
2025-06-19

AI Technical Summary

Technical Problem

The challenge lies in optimizing online resource allocation in network architectures, particularly in the Cloud Radio Access Network (CRAN) framework, where the computational load is dynamic and unpredictable, and resources across different nodes (IoT devices, base stations, edge servers, and cloud servers) need to be efficiently allocated to manage this load effectively.

Method used

A distributed resource allocation method is proposed, where devices communicate directly to request and allocate resources without a centralized controller. This involves receiving resource reservation messages, determining binding constraints based on network variables and resource allocations, and sending feedback messages to adjust resource allocations dynamically.

Benefits of technology

This approach simplifies network structure, reduces communication overhead, and enables efficient and effective online resource allocation, ensuring that resources are optimally utilized across the network to manage changing computational loads.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure IB2023000804_19062025_PF_FP_ABST
    Figure IB2023000804_19062025_PF_FP_ABST
Patent Text Reader

Abstract

This disclosure relates to network resource allocation. A first device is disclosed to receive a first resource reservation message from a second device. The first reservation message is indicative of a first resource allocation requested by the second device from the first device. The first device determines a second resource allocation to be requested from a third device. After obtaining one or more network variables, the first device determines a first binding constraint based on the network variable(s), the first and the second resource allocations. In response to determining that the first binding constraint is violated, the first device determines a first external back-off amount that the first resource allocation need to reduce, and sends a first feedback message to the second device to notify the first external back-off amount. In this way, resource allocation can be optimized without the presence of a centralized controller. Communication overhead can be reduced.
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, devices, and a system for resource allocation.

[0004] BACKGROUND

[0005] Nowadays there are about 30 billion devices connected to the so-called Internet of Things (loT). The number keeps growing. These devices enable the smooth operation of machine and human-driven processes, not only in industrial environments but also in daily lives. To achieve this desired smooth operation, these devices constantly observe, collect, and process computationally huge amounts of data. However, the computational load generated by these devices is prohibitively large to be hosted only on the devices themselves.

[0006] SUMMARY

[0007] To host the ever-increasing computational load, a network architecture paradigm is proposed, which is called Cloud Radio Access Network (CRAN) with processing capabilities at distributed devices. A typical architecture of the CRAN may comprise layers of different components as follows:

[0008] Layer 1: loT devices (or terminals) that need to dynamically allocate computational resources as the load they have to deal with (incoming computing tasks) is inherently random; and devices (or terminals) that are able to process some of the load locally or to request resources from BSs. Layer 2: base stations (BSs) that communicate with and can potentially send load to more powerful (edge or cloud) servers.

[0009] Layer 3 : edge servers that may receive load from the BSs; and edge servers that may execute or decide to send load to other servers.

[0010] Layer 4: cloud server, which may simply execute the received load.

[0011] A problem may arise regarding what amount of load the nodes of Layers 1, 2 and 3 is to be processed locally and how much of the load is to be offloaded to other nodes. In other words, how to allocate resources in order to cope with the incoming and changing computing load, which is unknown and random.

[0012] For a network operator, efficient and effective online resource allocation, for potentially unpredictable and non-stationary load, is atop priority task. Using the CRAN architecture as an example, the first three layers may have a limited amount of resources, and may be the ones for which resource allocation decisions are made. On the other hand, the cloud server, due to its immense computing power and resources, is modelled as a passive entity, simply executing any assigned task.

[0013] However, how to optimize online resource allocation is a common problem for any network topology.

[0014] In view of the above-mentioned problems and disadvantages, this disclosure aims to improve resource allocation for a network. For instance, an objective of this disclosure may be to ensure an efficient and effective online resource allocation.

[0015] 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.

[0016] A first aspect of the present disclosure provides a resource allocation method comprising the following steps: receiving, by a first device, a first resource reservation message from a second device, wherein the first resource reservation message is indicative of a first resource allocation requested by the second device from the first device; determining, by the first device, a second resource allocation requested by the first device from a third device; obtaining, by the first device, one or more network variables; determining, by the first device, a first binding constraint based on the one or more network variables, the first resource allocation, and the second resource allocation; determining, by the first device, whether the first resource allocation violates the first binding constraint; in response to determining that the first resource allocation violates the first binding constraint: determining, by the first device, a first external back-off amount of the first resource allocation; and sending, by the first device, a first feedback message to the second device, wherein the first feedback message is indicative of the first external back-off amount.

[0017] In this way, the first device may notify, through the first feedback message, the second device of its conditions / restrictions on resource allocation without the presence of a centralized controller. Network structure can be simplified, and communication overhead can be reduced. In an implementation form of the first aspect, before determining the first binding constraint, the method may further comprise sending, by the first device to the third device, a second resource reservation message indicative of the second resource allocation. In this case, after determining the first external back-off amount, the method further comprises: receiving, by the first device, a second feedback message from the third device, wherein the second feedback message is indicative of a second external back-off amount of the second resource allocation; updating, by the first device, the second resource allocation based on the second external backoff amount.

[0018] Similarly, through the second feedback message, the first device may be aware of the resource allocation condition / restriction on the third device and thus, may update the second resource allocation accordingly. Network structure can be simplified, and communication overhead can be reduced.

[0019] In a further implementation form of the first aspect, the step of receiving the first resource reservation message and the step of sending the second resource reservation message may take place in a synchronous manner. Alternatively or additionally, the step of sending the first feedback message and the step of receiving the second feedback message may take place in a synchronous manner.

[0020] In a further implementation form of the first aspect, before updating the second resource allocation, the method may further comprise the following steps: determining, by the first device, a first local constraint based on the one or more network variables and the second resource allocation, and determining, by the first device, first local back-off information taking account of the first local constraint and the first binding constraint.

[0021] The second resource allocation is updated based further on the first local back-off information.

[0022] In a further implementation form of the first aspect, the first local back-off information may take account of: a Lagrange multiplier of the first local constraint and of the first binding constraint; and a cost function with respect to the second resource allocation.

[0023] In a further implementation form of the first aspect, before determining the first binding constraint, the method may further comprise determining, by the first device, a third resource allocation reserved. The first binding constraint and the first local constraint may be determined based further on the third resource allocation. The first local back-off information may further take account of the third resource allocation. The method may further comprise updating, by the first device, the third resource allocation based on the first local back-off information.

[0024] It is noted that the third resource allocation may be reserved (or allocated) by the first device for any type of resource request (e.g., internal resource request and / or external resource request).

[0025] In a further implementation form of the first aspect, for updating the second resource allocation based further on the first local back-off information, the method may comprise: determining a gradient of the first local back-off information with respect to the second resource allocation to obtain a first local back-off amount; and updating the second resource allocation based further on the first local back-off amount.

[0026] In a further implementation form of the first aspect, for updating the third resource allocation based on the first local back-off information, the method may comprise: determining a gradient of the first local back-off information with respect to the third resource allocation to obtain a second local back-off amount; and updating the third resource allocation based on the second local back-off amount.

[0027] In a further implementation form of the first aspect, the step of determining whether the first resource allocation violates the first binding constraint may comprise comparing the first binding constraint with an adjustable threshold. If the first binding constraint is greater than the adjustable threshold, then the first resource allocation violates the first binding constraint.

[0028] In a further implementation form of the first aspect, the first external back-off amount may be based on: a Lagrange multiplier of the first binding constraint, and the gradient of the first binding constraint.

[0029] A second aspect of the present disclosure provides a first device for performing resource allocation. The first device is configured to: receive a first resource reservation message from a second device, wherein the first resource reservation message is indicative of a first resource allocation requested by the second device from the first device; determine a second resource allocation requested by the first device from a third device; obtain one or more network variables; determine a first binding constraint based on the one or more network variables, the first resource allocation, and the second resource allocation; determine whether the first resource allocation violates the first binding constraint; in response to determining that the first resource allocation violates the first binding constraint: determine a first external back-off amount of the first resource allocation; and send a first feedback message to the second device, wherein the first feedback message is indicative of the first external back-off amount.

[0030] The first device of the second aspect may share the same advantages of the method of the first aspect.

[0031] In an implementation form of the second aspect, before determining the first binding constraint, the first device may be further configured to send a second resource reservation message indicative of the second resource allocation to the third device. In this case, after determining the first external back-off amount, the first device may be further configured to: receive a second feedback message from the third device, wherein the second feedback message is indicative of a second external back-off amount of the second resource allocation; and update the second resource allocation based on the second external back-off amount.

[0032] In a further implementation form of the second aspect, the first device may be configured to receive the first resource reservation message and to send the second resource reservation message in a synchronous manner. Alternatively or additionally, the first device may be configured to send the first feedback message and receive the second feedback message in a synchronous manner.

[0033] In a further implementation form of the second aspect, before updating the second resource allocation, the first device may be further configured to: determine a first local constraint based on the one or more network variables and the second resource allocation, and determine first local back-off information taking account of the first local constraint and the first binding constraint.

[0034] The second resource allocation is updated based further on the first local back-off information. In a further implementation form of the second aspect, the first local back-off information may take account of: a Lagrange multiplier of the first local constraint and of the first binding constraint; and a cost function with respect to the second resource allocation.

[0035] In a further implementation form of the second aspect, before determining the first binding constraint, the first device may be further configured to determine a third resource allocation reserved. The first binding constraint and the first local constraint may be determined based further on the third resource allocation. The first local back-off information may further take account of the third resource allocation. The first device may be further configured to update the third resource allocation based on the first local back-off information.

[0036] In a further implementation form of the second aspect, for updating the second resource allocation based further on the first local back-off information, the first device may be configured to: determine a gradient of the first local back-off information with respect to the second resource allocation to obtain a first local back-off amount; and update the second resource allocation based further on the first local back-off amount.

[0037] In a further implementation form of the second aspect, for updating the third resource allocation based on the first local back-off information, the first device may be configured to: determine a gradient of the first local back-off information with respect to the third resource allocation to obtain a second local back-off amount; and update the third resource allocation based on the second local back-off amount.

[0038] In a further implementation form of the second aspect, for determining whether the first resource allocation violates the first binding constraint, the first device may be configured to compare the first binding constraint with an adjustable threshold. If the first binding constraint is greater than the adjustable threshold, then the first resource allocation violates the first binding constraint.

[0039] In a further implementation form of the second aspect, the first external back-off amount may be based on: a Lagrange multiplier of the first binding constraint, and the gradient of the first binding constraint. A third aspect of the present disclosure provides a system comprising at least one first device according to the first aspect or any implementation form thereof.

[0040] In an implementation form of the third aspect, the system may further comprise at least one second device configured to: determine the first resource allocation requested by the at least one second device from the at least one first device; send the first resource reservation message to the at least one first device; receive the first feedback message from the at least one first device; and update the first resource allocation based on the first external back-off amount indicated by the first feedback message.

[0041] In a further implementation form of the third aspect, the system may further comprise at least one third device configured to: receive a second resource reservation message from the at least one first device, wherein the second resource reservation message is indicative of a second resource allocation requested by the at least one first device from the at least one third device; obtain one or more network variables; determine a second binding constraint based on the one or more network variables and the second resource allocation; determine whether the second resource allocation violates the second constraint; in response to determining that the second resource allocation violates the second constraint: determine a second external back-off amount of the second resource allocation; and send a second feedback message to the at least one first device, wherein the second feedback message is indicative of the second external back-off amount.

[0042] A fourth aspect of the present disclosure provides a computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out the method according to the first aspect or any implementation form thereof.

[0043] 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 fifth 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.

[0044] 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.

[0045] BRIEF DESCRIPTION OF DRAWINGS

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

[0047] FIG. 1 shows a first device and a system of this disclosure;

[0048] FIG. 2 shows a general device of this disclosure;

[0049] FIG. 3 shows an example of resource allocation system;

[0050] FIG. 4 shows a flowchart of a method for resource allocation of this disclosure;

[0051] FIG. 5 shows a diagram of a method of this disclosure;

[0052] FIG. 6 shows examples of devices of this disclosure; and

[0053] FIG. 7 shows an application scenario of this disclosure.

[0054] DETAILED DESCRIPTION OF EMBODIMENTS

[0055] In FIGs. 1-7 below, corresponding elements may share the same features and function likewise. FIG. 1 shows a first device 110 and a system 100 of this disclosure. The system 100 comprises the first device 110, a second first 120, and a third device 130. The first device 110 is connectable with the second device 120 and the third device 130. The second device 120 may request resource allocation from the first device 110. The first device 110 may request resource allocation from the third device 130. In another word, the first device 110 may allocate resource to the second device 120. The third device may allocate resource to the first device 110. Optionally, all the devices may also allocate (or reserve) resources. It is desirable to achieve an efficient and balanced resource utilization among the devices.

[0056] It is noted that the system 100 may comprise more than one first device, and / or more than one second device, and / or more than one third device. For simplicity, one device for each type is shown and is introduced in this disclosure. Further, the system 100 may comprise more than three layers illustrated in FIG. 1.

[0057] For performing resource allocation, the first device 110 is configured to receive a first resource reservation message 121 from a second device. The first resource reservation message 121 is indicative of a first resource allocation requested by the second device 120 from the first device 110. For instance, the second device 120 may need 0.2 unit of resources (e.g., memory, processor resources etc.) of the first device 110 (e.g., in order to process data of the second device 120). Accordingly, the second device 120 may send the first resource reservation message 121 to the first device for reserving the 0.2 unit of resources.

[0058] The first device 110 is further configured to determine a second resource allocation that is requested by itself 110 from the third device 130. Optionally, the first device 110 may send a second resource reservation message 113 indicative of the second resource allocation to the third device. For instance, the first device 110 may need 0.7 unit of resources (e.g., memory resource, processor resource, data offload amount etc.) of the third device 130. Accordingly, the first device 110 may send the second resource reservation message 113 to the third device for reserving the 0.7 unit of resources.

[0059] The first device 110 is further configured to obtain one or more network variables. For instance, a realization of the operating environment may take place. In this case, the first device 110 may be configured to observe and collect real-time network variables (or environment parameters) 101 that may affect resource allocation, e.g., channel conditions, propagation delays, jitters, etc.

[0060] Since the environment may change, the resource allocation may need to be adapted. Based on the obtained one or more network variables 101, the first resource allocation, and the second resource allocation, the first device 110 is further configured to determine a first binding constraint. For instance, an example of the first binding constraint may be that the demanded resources (that are allocated, e.g., to the second device 120) shall be less than the reserved resources (that are requested from others, e.g., the third device 130). A further example of the first binding constraint may be that the amount of to-be- offloaded data shall not exceed wireless link capacity. The wireless link capacity may be affected by network variables such as channel gain and channel bandwidth.

[0061] Then, the first device 110 is configured to determine whether the first resource allocation violates the first binding constraint. In response to determining that the first resource allocation violates the first binding constraint, the first device 110 is configured to determine a first external back-off amount of the first resource allocation and send a first feedback message 112 to the second device 120. The first feedback message 112 is indicative of the first external back-off amount. Optionally, the first external back-off amount may be based on a Lagrange multiplier of the first binding constraint and the gradient of the first binding constraint.

[0062] Upon receiving the first feedback message 112 from the first device 110, the second device 120 is configured to update the first resource allocation based on the first external back-off amount indicated by the first feedback message 112.

[0063] In this way, there is no need to include a centralized (or dedicated) controller adapted to perform resource allocation among the devices. The system may be more resilient to failures etc. That is, the system may be more robust. Further, each device communicates with each other regarding the resource reservation and may receive a feedback message when the resource reservation needs modification. Communication overhead can be reduced. Because there is no need to transmit and / or receive resource reservation to and / or from the centralized controller.

[0064] It is noted that the relationship between the second device 120 (as a resource requester) and the first device 110 may be similarly applied to the relationship between the first device 110 (as a resource requester) and the third device 130. That is, after the first device 110 sends the second resource reservation message and determines the first external back-off amount, the first device 110 may be configured to receive a second feedback message 131 from the third device 130. The second feedback message 131 is indicative of a second external back-off amount of the second resource allocation. Accordingly, the first device 110 is configured to update the second resource allocation based on the second external back-off amount.

[0065] Optionally, the step of receiving the first resource reservation message and the step of sending the second resource reservation message take place in a synchronous manner. Additionally or alternatively, the step of sending the first feedback message and the step of receiving the second feedback message take place in a synchronous manner. It is noted that the synchronous manner may be understood that the two steps may take place in a same time duration. It is not necessary that the two steps shall take place exactly at the same time.

[0066] Optionally, before updating the second resource allocation, the first device may be configured to determine a first local constraint based on the one or more network variables and the second resource allocation. Then, the first device may be configured to determine first local back-off information taking account of the first local constraint and the first binding constraint. In this case, the second resource allocation is updated based further on the first local back-off information. Optionally, the first local back-off information may take account of: a Lagrange multiplier of the first local constraint and of the first binding constraint, and a cost function with respect to the second resource allocation. For instance, the cost function may be related to communication delays caused by current resource reservation.

[0067] Optionally, before determining the first binding constraint, the first device 110 may be further configured to determine a third resource allocation. The third resource allocation may be reserved for any type of resource request. In this case, the first binding constraint and the first local constraint may be determined based further on the third resource allocation. Accordingly, the first local back-off information further takes account of the third resource allocation. The first device 110 is further configured to update the third resource allocation based on the first local back-off information.

[0068] Optionally, for updating the second resource allocation based further on the first local back-off information, the first device 110 is configured to determine a gradient of the first local back-off information with respect to the second resource allocation to obtain a first local back-off amount, and update the second resource allocation based further on the first local back-off amount.

[0069] Optionally, for updating the third resource allocation based on the first local back-off information, the first device 110 may be configured to determine a gradient of the first local back-off information with respect to the third resource allocation to obtain a second local back-off amount, and update the third resource allocation based on the second local back-off amount.

[0070] It is noted that the relationship between the second device 120 (as a resource requester) and the first device 110 forms a basic unit for resource allocation. The first device 110 that reserves resources may at the same time also be a resource requester with respect to a further device, e.g., the third device 130. Thus, features related to the pair of the second device 120 and the first device 110 may be accordingly applied to the pair of the first device 110 and the third device 130. FIG. 2 shows a general device 210 according to this disclosure. The general device 210 may be any one of the first device 110, the second device 120, and the third device 130 in FIG. 1. Features described in FIG. 2 may be applied to each device in FIG. 1 accordingly.

[0071] The general device 210 may be configured to perform at least the following steps.

[0072] Step 211 (Resource allocation): In a first time slot t, the general device 210 is configured to determine resource allocation. The resource allocation may be indicative of resources that need to be requested from a further device, which may be referred to as a second-type resource allocation. When the general device 210 corresponds to the first device 110 in FIG. 1, the second-type resource allocation corresponds to the second resource allocation in FIG. 1. When the general device 210 corresponds to the second device 120 in FIG. 1, the second-type resource allocation corresponds to the first resource allocation in FIG. 1.

[0073] Optionally, the resource allocation may further comprise a local resource allocation, which may be referred to as a third-type resource allocation. The local resource allocation may be indicative of resources that are reserved by the general device 210 for any type of resource request.

[0074] Step 212 (Message exchange): After determining the resource allocation, the general device 210 is configured to receive a resource reservation message 221 indicating a resource allocation demanded from the general device 210, which may be referred to as a first-type resource allocation. Optionally, the general device 210 may be configured to send a further resource reservation message 213 to the further device . The resource reservation message 213 is indicative of the second-type resource allocation. When the general device 210 corresponds to the first device 110 in FIG. 1, the resource reservation message 221 corresponds to the first resource reservation message 121 in FIG. 1, and the further resource reservation message 213 corresponds to the second resource reservation message 113 in FIG. 1. When the general device 210 corresponds to the second device 120 in FIG. 1, the further resource reservation message 213 corresponds to the first resource reservation message 121 in FIG. 1. When the general device 210 corresponds to the third device 130 in FIG. 1, the resource reservation message 221 corresponds to the second resource reservation message 113 in FIG. 1.

[0075] Step 213 (Environment observation): The operating environment may reveal one or more variables 201 that may be obtained or measured by the general device 210.

[0076] Step 214 (Constraint validation): The general device 210 is configured to check whether the first-type resource allocation violates one or more constraints. The one or more constraints may comprise a binding constraint that is determined by the general device 210 based on the obtained one or more variables 201, the first-type resource allocation, and the second-type resource allocation. In response to determining that the first-type resource allocation violates the binding constraint, the general device 210 is configured to send a feedback message 212 indicating an external back-off amount.

[0077] Step 215 (Resource allocation update): Optionally, the general device 210 may be configured to receive a further feedback message 231 with respect to the second-type resource allocation indicated by the further resource reservation message 213. The general device 210 is configured to update the second- type allocation based on further back-off amount indicated by the further resource reservation message 213.

[0078] Optionally, the general device 210 may be further configured to determine a local constraint based on the obtained one or more variables 201, the second-type resource allocation, and the optional third-type resource allocation. Then, the general device 210 may be further configured to determine local back-off information taking account of the local constraint and the binding constraint, e.g., a Lagrange multiplier of the first local constraint and of the first binding constraint; and a cost function with respect to the second resource allocation. The second-type allocation may be further updated based on the local backoff information. For instance, a first local back-off amount may be determined based on a gradient of the local back-off information with respect to the second resource allocation. The second-type allocation is then further updated based on the local back-off information.

[0079] Optionally, the general device 210 may be configured to update the third-type resource allocation based on the local back-off information. For instance, the first device may be configured to determine a gradient of the local back-off information with respect to the third-type resource allocation to obtain a second local back-off amount, and update the third-type resource allocation based on the second local back-off amount.

[0080] The updated resource allocation may take effect in a second time slot t+1 subsequent to the first time slot t.

[0081] Generally, three types of resource allocation are considered for resource allocation. For a device A: the first-type resource allocation relates to resources that are requested by other device(s) from device A; the second-type resource allocation relates to resources that device A requests from other device(s); the third-type resource allocation relates to resources that device A reserves.

[0082] FIG. 3 shows an example of resource allocation system. FIG. 3 depicts a system comprising Node 1 (e.g., a terminal), Node 2 (e.g., a base station), and Node 3 (e.g., an edge server). There may be other nodes X, Y in the system. Node 1, Node 2, and Node 3 may correspond to the second device 120, the first device 110, and the third device 130 in FIG. 1, respectively. In FIG. 1-3, corresponding elements may share the same features and function likewise.

[0083] In general, a network may comprise N computational nodes that need to allocate resources. The resource allocations among the N nodes may be denoted as an optimization variable X. which may be a square matrix with N rows and N columns. Element ii of this matrix represents the resources allocated by node i. For the off-diagonal elements of this matrix, we have the following. Row i G N corresponds to a requested resource of node i to all other nodes G N. Column i shows the resources that other nodes requested from node i. The variables of node i is denoted as xtand an element / entry of this vector withxij-

[0084] As an example, with respect to the three nodes in FIG. 3, x2=[0> 0-4, 0.9] means that node 2 is configured to request 0 unit of resource from node 1, allocate 0.4 unit of resource, and request 0.9 unit of resource from node 3. For simplicity, one kind of resource is shown, such as memory resource. However, one can easily consider more configurable resources, such as processor resource, transmission power, beam resource, etc.

[0085] In general, a system may operate in timeslots, and the following events may take place in sequence:

[0086] An operator implements a resource allocation plan XLat time slot t;

[0087] A random realization of the environment takes place (e.g. true resource demands, wireless channels conditions may be revealed). With the obtained one or more variables, a cost function and a constraint function g[(X) may be determined respectively;

[0088] The operator may pay some cost ft(,Xt) and experience a violation g[(Xf):

[0089] The operator updates its resource allocation to Xt+1for the next timeslot t+1.

[0090] Optionally, the cost function may be based on a sum of individual costs paid by the N nodes: = Wfai) , (1) where ft xt) denotes a cost function of a node i that depends only on local variable Xj .

[0091] Every node i may obey some instantaneous constraints, which may comprise at least the following types.

[0092] First, the node i has Lj local constraints of the form glt xf) with I = 1, . . , Lg, these local constraints depend only on its local decisions (e.g., the second-type and the third type resource allocation introduced in FIG. 2). Second, the node i needs to satisfy Btbinding constraints that bind external and local decisions (e.g., the first-type, the second-type, and the third-type resource allocations). The binding constraint may be denoted by hti bxi; XjEC.b), with b = 1, ... , Bt. A constraint b at node i is associated with a set Ci b= {j e N:j appears in constraint b of node i}.

[0093] It is desirable to solve the following optimization problem for optimizing resource allocation:

[0094] This disclosure propose to resolve this challenging problem using a distributed variant of Online Convex Optimization (OCO).

[0095] As depicted in FIG. 3, in step 1, the terminal (Node 1), the base station (Node 2) and the edge server (Node 3) is configured to decide resource allocation independently for time slot t, which may is denoted by X %2<x3 respectively. This step 1 may correspond to step 211 introduced in FIG. 2.

[0096] In step 2, resource allocation reservation messages m^l Jare forwarded. m^l }denotes a resource allocation reservation message sent by node i to node j, and is indicative of a resource allocation requested by node i from node j. This step 1 may correspond to step 211 introduced in FIG. 2. The resource allocation indicated by m^l ]is used by node j to evaluate binding constraints

[0097] For instance, without loss of generality, assuming that the base station needs to evaluate one binding constraint that needs information indicated by m^2from the terminal; and similarly, the edge server needs to evaluate a binding constraint that needs information indicated by mj^from the base station, the following two constraints may be formulated:

[0098] Regarding the first constraint h2x2,xi):the subscript h2refers to a constraint evaluated on the base station (Node 2); x2before the semicolon denotes local variables; and x after the semicolon denotes external variables. The expression x2— x2i3— 0 simply captures that the resources requested from Node 1 to Node 2 is no larger than the resources Node 2 requested from Node 3 (x1;2) shall be no greater than the ones received by Node 2 from Node 3 (*2,3) (assuming there is no third-type resource allocation in this example).

[0099] To properly evaluate these constraints, this disclosure proposes that Node 2 is configured to receive m^2indicating x1 2(from Node 1), and similarly Node 3 is configured to receive m2^3indicating x2, 3 from Node 2.

[0100] In step 3, each node is configured to obtain one or more variables, e.g., measure wireless channels, determine propagation delays, etc. This step 3 may correspond to step 213 in FIG. 2.

[0101] In step 4, each node is configured check if resource allocation violates any constraint. Using the base station as an example, the base station may computes a binding constraint / !^ (x2>xi)- If the binding constraint is violated, then independently (of other actions in the network) the base station is configured to send a feedback message to the terminal. The feedback message is indicative of an external back-off amount that the terminal needs to back-off for the resource allocation indicated by m^2. The external back-off amount may be based on a Lagrange multiplier of the binding constraint This step 4 may correspond to step 214 in FIG. 2.

[0102] To reducing signalling overhead, sending the feedback message may be optional. For instance, is sent by the base station only if h^x-^,'xi) > G inwhich e denotes an adjustable threshold, which may be tunable by the network operator.

[0103] In step 5, each node i is configured to update resource reservation based on the feedback message (if received) for the next time slot t+1. An online gradient step may be used in step 5 to update the resource reservation. This step 5 may correspond to step 215 in FIG. 2.

[0104] The system may function in a synchronous manner. That is, all nodes may be configured to perform the same step at a same time duration.

[0105] An example of an algorithm explaining the operations is given in the following. The algorithm is described with a generic node z, which may be understood as the first device 110 in FIG. 1, or the general device 210 in FIG. 2 as an example. For a better presentation of the algorithm, the following notations are defined. A set of nodes A; defines nodes that need information from node z in order to evaluate their binding constraints. For instance, the set of nodes A; are the nodes that node z requests resources from. As an example, assuming node z is Node 2 in FIG. 3, then A2={Node 3 }. A set of nodes B, defines nodes from which node i needs information in order to evaluate its (node z’s) binding constraint. For instance, the set of node B, are the nodes that request resources from node i. As an example, assuming node i is Node 2 in FIG. 3, then B2={Node 1}. A set of nodes Ci bare the nodes involved in constraint b of node i. As an example, if assuming that node i is Node 2 in FIG. 3, then Node 2 has only one binding constraint, as only Node 1 is involved in the one binding constraint of Node 2, which leads to C2,i={Node 1}. NBi is the number of binding constraints of node i. As an example, in FIG3, NB2 = 1. The number (or length) of set A;, B„ Ci bmay be one, or more than one. The value of NBi may be equal to one, or more than one.

[0106] Further, is a message indicating at least a part of variables of Xj that node i needs in order to compute its binding constraint hi b(xi,- Xj') . The message m^1 1is sent from node i to node j for a binding constraint at node i involving variables from node j. Optionally, the message m^1 1may be indicative of Lagrange multipliers and gradients of the constraints, such as m^1 1= ^Xjhi,bxi>xjECib) .b ■> where Vx.(-) denotes gradients, and denotes Lagrange multipliers. A resource allocation decision made by node i may be denoted as xt, which may be a concatenation of the second-type resource allocation and the third-type resource allocation introduced FIG. 2. That is, %• = lxt, secondxt, third - These two types of resource allocations are updated differently in the algorithm described below.

[0107] An OCO algorithm performed at node i is described below.

[0108] • For each time slot t = 1, ... , T:

[0109] • Input constants: c, e, in which c denotes a parameter tunable by a network operator, and e denotes an adjustable threshold

[0110] Step SI: Resource allocation: Implement node resource allocation action (i.e., the second-type and the third-type resource allocation) Step S2: Message exchange:

[0111] • Send messages

[0112] • Example: If node i is Node 2 of FIG. 3, then A2= {Node 3}

[0113] • Receive messages

[0114] • Example: If node i Node 2 of FIG. 3, then B2= {Node 1}

[0115] Step S3: Environment observation: obtain one or more variables

[0116] Step S4: Constraint validation:

[0117] • For I = 1, ... , Li (Lj being the number of local constraints of node z) • Evaluate local constraint

[0118] • Compute Lagrange multiplier (1)

[0119] • For b = 1, ... , NBt(NBt being the number of binding constraints of node z):

[0120] • Using received evaluate constraint

[0121] • Compute Lagrange multiplier (8)

[0122] • Check constraint violation triggering condition

[0123] (9)

[0124] • If true, transmit feedback messages: j

[0125] Step S5: Resource allocation update for the next time slot t + 1:

[0126] • Receive none, one, or more feedback messagem from node j E A'tto determine an external back-off amount (depends on how many constraints at node j where i appears).

[0127] • EXTERNAL = (11) where EXTERNAL denotes the total external back-off amount.

[0128] • Determine a local back-off amount:

[0129] • LOCAL =

[0130] (12)

[0131] • Update the second-type resource allocation for the next time slot: (13)

[0132] • Update the third-type resource allocation for the next time slot:

[0133] (14)

[0134] • Concatenate . (15)

[0135] Iterate SI to S5 using xit1.

[0136] It is noted that LOCAL is a function available at node i. For updating the second-type resource allocation, the gradient of LOCAL is computed with respect to the second-type resource allocation. For updating the third resource allocation, the gradient of LOCAL is computed with respect to the third resource allocation, as shown above. EXTERNAL is the sum of messages, received by i, from nodes j E A). where A) is the set of nodes j E A, that sent their feedback to node i. The length of set A) may be equal to 0, 1, or more than 1.

[0137] FIG. 4 shows a flowchart of a method for resource allocation of this disclosure. The method comprise at least five main steps 401, 402, 403, 404, 405 that are applied to a device. For instance, the device may be any device shown in FIG. 1, or the general device 210 in FIG. 2, or any node shown in FIG. 3.

[0138] In step 401, the device determines its resource allocation, which may be based on step 201 of FIG. 2, and / or step 1 of FIG. 3, and / or step SI of the OCO algorithm introduced above.

[0139] In step 402, the device performs message exchange. That is, the device may send resource allocation reservation message (ma) to other device(s) in order to request resource for itself and / or receive resource allocation reservation message (ma) from other device(s) that is used to ask for resources. The step 402 may be built based on step 202 of FIG. 2, and / or step 2 of FIG. 3, and / or step S2 of the OCO algorithm introduced above.

[0140] In step 403, the device observes environment in order to obtain one or more variables. This step may be built based on step 203 of FIG. 3, and / or step 3 of FIG. 3, and / or step S3 of the OCO algorithm introduced above.

[0141] In step 404, the device is configured to perform constraint validation. Step 404 may be divided into several further steps. In step 4041, the device is configured to determine constraints (e.g., binding constraint(s) and / or local constraint(s)). In step 4042, the device is configured to determine whether the triggering condition is fulfilled (e.g., whether the binding constraint is violated) in order to send a feedback message (n ). If true, then in step 4043, the device notifies relevant neighbor devices with the feedback message. If false, then step 4043 is skipped, and no feedback message is sent. Step 404 may be built based on step 204 of FIG. 3, and / or step 4 of FIG. 3, and / or step S4 of the OCO algorithm introduced above.

[0142] In step 405, the device is configured to update the resource allocation. Step 405 may divided into several further steps. In step 4051, the device is configured to check whether there is any feedback message received. If true, then in step 4052, the device updates the resource allocation based on the received feedback message(s), e.g., using the OCO algorithm introduced above. If no feedback message is received, then the device updates the resource allocation based on local constraints or updates the resource allocation greedily using Online Gradient Descent (OGD). In the end, in step 4053, the device obtains a new resource allocation for the next time slot, and then, the same iteration goes again with the new resource allocation. Step 405 may be built based on step 205 of FIG. 3, and / or step 5 of FIG. 3, and / or step S5 of the OCO algorithm introduced above.

[0143] FIG. 5 shows a diagram of a method 500 of this disclosure. The method 500 comprises the following steps: step 501: receiving, by a first device (e.g., node z), a first resource reservation message (e.g., m^1) from a second device, in which the first resource reservation message is indicative of a first resource allocation requested by the second device from the first device; step 502: determining, by the first device, a second resource allocation requested by the first device from a third device; step 503: obtaining, by the first device, one or more network variables; step 504: determining, by the first device, a first binding constraint (e.g., hi b based on the one or more network variables, the first resource allocation, and the second resource allocation; step 505: in response to determining that the first resource allocation violates the first binding constraint, determining, by the first device, a first external back-off amount (e.g., •

[0144] ^Xjhi,bxti>xjeclb) V j G Cib) of the first resource allocation; and step 506: sending, by the first device, a first feedback message (e.g., m T7) to the second device, in which the first feedback message is indicative of the first external back-off amount.

[0145] Optionally, before determining the first binding constraint, the method 500 may further comprise: sending, by the first device to the third device, a second resource reservation message (e.g., indicative of the second resource allocation.

[0146] After determining the first external back-off amount, the method may further comprise: receiving, by the first device, a second feedback message from the third device, wherein the second feedback message is indicative of a second external back-off amount (e. g. , EXTERNAL = of the second resource allocation; and updating, by the first device, the second resource allocation based on the second external backoff amount

[0147] Optionally, before updating the second resource allocation, the method may further comprise the following steps: determining, by the first device, a first local constraint (e.g., • 9i,ixi)) based on the one or more network variables and the second resource allocation, and determining, by the first device, first local back-off information (e.g., LOCAL) taking account of the first local constraint (e.g., ) and the first binding constraint

[0148] The second resource allocation is updated based further on the first local back-off information (e.g.,

[0149] Optionally, the first local back-off information (e.g., LOCAL) may take account of: a Lagrange multiplier (e.g., A;(andi b) of the first local constraint (gt.i l)) and of the first binding constraint a cost function (e.g., ft (xj)) with respect to the second resource allocation.

[0150] Optionally, before determining the first binding constraint, the method may further comprise determining, by the first device, a third resource allocation that is reserved locally. The first binding constraint and the first local constraint may be determined based further on the third resource allocation. The first local back-off information may further take account of the third resource allocation. The method may further comprise updating, by the first device, the third resource allocation based on the first local back-off information (e.g., ^hird= xt, third ~ xi thirdOCAL).

[0151] Optionally, for updating the second resource allocation based further on the first local back-off information, the method may comprise: determining a gradient of the first local back-off information with respect to the second resource allocation to obtain a first local back-off amount (e.g., Vx. secondLOCAL) and updating the second resource allocation based further on the first local back-off amount

[0152] Optionally, for updating the third resource allocation based on the first local back-off information, the method may comprise: determining a gradient of the first local back-off information with respect to the third resource allocation to obtain a second local back-off amount (e.g., VXi thirdLOCAL) and updating the third resource allocation based on the second local back-off amount (e.g., xi, third ~xi, third ~ xi thirdOCAL).

[0153] Optionally, the step of determining whether the first resource allocation violates the first binding constraint may comprise comparing the first binding constraint with an adjustable threshold (e.g., e). If the first binding constraint is greater than the adjustable threshold (e.g., h; > e), then the first resource allocation violates the first binding constraint.

[0154] It is noted that the steps of method 500 may share the same functions and details from the perspective of FIGs. 1-4 described above. For instance, elements and / or parameters ofthe OCO algorithm described above are inserted as examples in the method 500 to describe the features of the method 500. Any optional feature of the OCO algorithm described above may be applied to the method 500 accordingly.

[0155] FIG. 6 shows examples of devices according to this disclosure. As illustrated in FIG. 6, a system 600 may be built based on the system 100 of FIG. 1 and comprises a first device 610, a second device 620, and a third device 630 accordingly. In FIGs. 1-6, corresponding elements may share the same features and function likewise.

[0156] As illustrated in FIG. 6, each device 610, 620, 630 may comprise one or more processors (or chipsets) and a memory. The memory is connected to the one or more processors and 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 steps described in this disclosure, respectively.

[0157] It is noted that FIG. 6 merely provides a schematic diagram of possible hardware structures of the first device 610, the second device 620, and the third device 630 according to this disclosure. These devices may have more or fewer parts than those shown in FIG. 6, or may have different part configurations or settings. For instance, a transceiver unit may be optionally and additionally included in the first device 610, the second device 620, and the third device 630, respectively.

[0158] FIG. 7 shows an application scenario of this disclosure. This disclosure may be applied to a CRAN illustrated in FIG. 7. The CRAN comprises several layers. In FIG. 7, four abstract layers are shown, where loT devices (or terminals), base stations, edge servers, and a central cloud server are positioned in each layer. It is noted that the number of layers and the number of devices in each layer in FIG. 7 is shown for illustration purposes only. There may be more or less layers, and / or more or less devices in each layer for a CRAN. For resource allocation, an objective cost function may be decomposed across devices, with costs that relate to delay and energy consumption expenditures. There may be two kinds of constraints: (a) channel capacity constraints, which are in principle local constraints; and (b) resource request balance, which are binding constraints and need input from other node(s).

[0159] In this CRAN, a terminal may be connected to all the base stations; a base station may be connected to all the edge servers (and to the cloud server); and the edge servers may be connected with each other and also connected to the cloud server.

[0160] For an loT device (or terminal), it is denoted that:

[0161] Xd= [wd0, wdl, , wdB, pdl, ... , pdB], (16) where wd0is the local processing, wdl, wdBis the requested resources to other BSs, and pdl, ... , pdBis the transmission power to these BSs.

[0162] A base station may request resources from the edge servers it is connected to, and to the cloud server. This is represented by where ybccorresponds to requested resources to the cloud server, ybl, ... , ybs shows the requested resources to the edge server, and qbl, qbsis the transmission power to them.

[0163] An edge server may reserve locally and request resources from other edge servers it is connected to, and from the cloud server, which is represented by:

[0164] Xs — [zsB, ZSQ, ... , Zs], (18)

[0165] Having said that, the cost functions and constraints per network node are defined below.

[0166] A terminal d may pay two kinds of costs, one for delay cd(wd0and one for transmission energycdbwdb> Pdb)- Thus, the cost function may be:

[0167] Further, a terminal shall have two constraints:

[0168] 4(4) =rd -wdo ~ b wdb, (20) which ensures that demanded resources (flow in) are less than the reserved ones (flow out), and which ensures the amount of planned offloaded data (w^b) does not exceed the wireless link capacity, being the channel gain of that timeslot, and bwthe channel bandwidth.

[0169] A base station bs may pay two kinds of costs, one for wired delay (if the base station and the cloud server is in wired connection) towards the cloud server cbc(ybc; dt) (with dtbeing a random delay of the wired medium) and communication delay towards the edge servers cbs(ybs, qbs). Thus, the cost function is:

[0170] Moreover, a base station shall have two constraints gl .xbl% ) = ZdWM ~ Zsy ~ y c, (23) which ensures that demanded resources (flow in) are less than the reserved ones (flow out), and bs(xb) = y ~bw log2(l + absqbs) (24) which ensures the amount of planned offloaded data (ybs) does not exceed the wireless link capacity.

[0171] Evaluating the cost and the second constraint needs access only on local variables. However, the first constraint needs also external variables that are known at the terminal level. The set of external variables (or arguments) is denoted as xD.

[0172] An edge server may pay two kinds of costs, wired delay towards the cloud server and communication delay towards the edge servers, which is denoted as:

[0173] The edge server shall have the constraint of which ensures that demanded resources (flow in) are less than the reserved ones (flow out).

[0174] To compute the cost, the edge server needs access only on local variables. However, for computing the constraint, the edge server needs to know external variables Xg, that are known at the base station and the edge server level. An objective to be optimized by the operator is described by a single objective function which sums the individual costs of every node of every layer:

[0175] In addition, the operator has to satisfy the constraints across all nodes of the CRAN. To solve this optimization problem, the solution proposed above with respect to FIG. 1-5 may be used, in particular the OCO algorithm disclosed above. It is noted that the role of the first device 110, the second device 120, and the third device 130 is not absolute for a single device but is rather relative. For instance, among the loT devices, base stations, and edge servers: a base station may act like the first device 110, an loT device may act like the second device 120, and an edge server may act like the third device. Among the base stations, edge servers, and cloud server: an edge server may act like the first device 110, a base station may act like the second device 120, and the cloud server may act like the third device 130. It can be seen that a base station may act as the first device 110 and the second device 120 at the same time but with respect to different devices. Thus, FIG. 2 shows a single structure of the general device 210 that may be applied to any device.

[0176] In summary, the present disclosure provides a solution for resource allocation. A message exchange mechanism is proposed to allow local optimization on each device without the presence of a central controller for optimizing the resource allocation. In particular, a resource reservation message is notified for each current time slot (e.g., at the beginning of each time slot). This resource reservation message allow each device to be aware of the resource that is requested by neighboring devices.

[0177] Further, a feedback message may be sent in an event-triggered manner (e.g., at the end of each time slot). In a CRAN scenario, each network element is notified about the resource request from neighboring nodes. In the CRAN scenario, this message acts as a back-off signal to notify neighboring node(s) to decrease the requested resources (for the next time slot). In this way, former layer nodes may be aware of conditions / requests on latter layer nodes without the presence of a centralized controller. Network structure can be simplified, and communication overhead can be reduced.

[0178] It is noted that the present disclosure can not only be applied to the CRAN, but also be applied to any other networks where resource allocation is performed across network devices.

[0179] 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. 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.

[0180] 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 resource allocation method (500) comprising: receiving (501), by a first device, a first resource reservation message from a second device, wherein the first resource reservation message is indicative of a first resource allocation requested by the second device from the first device; determining (502), by the first device, a second resource allocation requested by the first device from a third device; obtaining (503), by the first device, one or more network variables; determining (504), by the first device, a first binding constraint based on the one or more network variables, the first resource allocation, and the second resource allocation; determining, by the first device, whether the first resource allocation violates the first binding constraint; in response to determining that the first resource allocation violates the first binding constraint: determining (505), by the first device, a first external back-off amount of the first resource allocation; and sending (506), by the first device, a first feedback message to the second device, wherein the first feedback message is indicative of the first external back-off amount.

2. The method (500) according to claim 1, wherein before determining the first binding constraint, the method (500) further comprises: sending, by the first device to the third device, a second resource reservation message indicative of the second resource allocation; and wherein after determining the first external back-off amount, the method further comprises: receiving, by the first device, a second feedback message from the third device, wherein the second feedback message is indicative of a second external back-off amount of the second resource allocation;updating, by the first device, the second resource allocation based on the second external back-off amount.

3. The method (500) according to claim 2, wherein the step of receiving the first resource reservation message and the step of sending the second resource reservation message take place in a synchronous manner, and / or the step of sending the first feedback message and the step of receiving the second feedback message take place in a synchronous manner.

4. The method (500) according to any one of claims 2 to 3, wherein before updating the second resource allocation, the method further comprises: determining, by the first device, a first local constraint based on the one or more network variables and the second resource allocation, and determining, by the first device, first local back-off information taking account of the first local constraint and the first binding constraint, wherein the second resource allocation is updated based further on the first local backoff information.

5. The method (500) according to claim 4, wherein the first local back-off information takes account of a Lagrange multiplier of the first local constraint and of the first binding constraint; and a cost function with respect to the second resource allocation.

6. The method (500) according to claim 4 or 5, wherein before determining the first binding constraint, the method further comprises determining, by the first device, a third resource allocation reserved; wherein the first binding constraint and the first local constraint are determined based further on the third resource allocation; and the first local back-off information further takes account of the third resource allocation;and wherein the method further comprises updating, by the first device, the third resource allocation based on the first local back-off information.

7. The method (500) according to claim 6, wherein for updating the second resource allocation based further on the first local back-off information, the method comprises: determining, by the first device, a gradient of the first local back-off information with respect to the second resource allocation to obtain a first local back-off amount; and updating, by the first device, the second resource allocation based further on the first local back-off amount.

8. The method (500) according to claim 7, wherein for updating the third resource allocation based on the first local back-off information, the method comprises: determining, by the first device, a gradient of the first local back-off information with respect to the third resource allocation to obtain a second local back-off amount; and updating, by the first device, the third resource allocation based on the second local back-off amount.

9. The method (500) according to any one of claims 1 to 8, wherein the step of determining whether the first resource allocation violates the first binding constraint comprises: comparing, by the first device, the first binding constraint with an adjustable threshold; and if the first binding constraint is greater than the adjustable threshold: determining, by the first device, that the first resource allocation violates the first binding constraint.

10. The method (500) according to any one of claims 1 to 9, wherein the first external backoff amount is based on a Lagrange multiplier of the first binding constraint and the gradient of the first binding constraint.

11. A first device (110) for performing resource allocation, the first device (110) being configured to: receive a first resource reservation message (121) from a second device (120), wherein the first resource reservation message (121) is indicative of a first resource allocation requested by the second device (120) from the first device (110); determine a second resource allocation requested by the first device (110) from a third device (130); obtain one or more network variables (101); determine a first binding constraint based on the one or more network variables (101), the first resource allocation, and the second resource allocation; determine whether the first resource allocation violates the first binding constraint; in response to determining that the first resource allocation violates the first binding constraint: determine a first external back-off amount of the first resource allocation; and send a first feedback message (112) to the second device (120), wherein the first feedback message (112) is indicative of the first external back-off amount.

12. A system (100) comprising at least one first device (110) according to claim 11.

13. The system (100) according to claim 12, further comprising at least one second device (120), wherein the at least one second device (120) is configured to: determine the first resource allocation requested by the at least one second device (120) from the at least one first device (110); send the first resource reservation message (121) to the at least one first device (110); receive the first feedback message (112) from the at least one first device (110); and update the first resource allocation based on the first external back-off amount indicated by the first feedback message (112).

14. The system (100) according to claim 13, further comprising at least one third device (130) configured to: receive a second resource reservation message (113) from the at least one first device (110), wherein the second resource reservation message (113) is indicative of a second resource allocation requested by the at least one first device (110) from the at least one third device (130); obtain one or more network variables; determine a second binding constraint based on the one or more network variables and the second resource allocation; determine whether the second resource allocation violates the second constraint; in response to determining that the second resource allocation violates the second constraint: determine a second external back-off amount of the second resource allocation; and send a second feedback message (131) to the at least one first device (110), wherein the second feedback message (131) is indicative of the second external back-off amount.

15. A computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out the method of any one of claims 1 to 10.