Resource allocation method, device and network node
By including a resource indication flag in the message sent on the SRv6 policy path, dynamic allocation of slice resources is achieved, solving the resource waste caused by static allocation and ensuring that slice services have exclusive resources.
Patent Information
- Application Number
- CN202210946390.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-08-13
- Filing Date
- 2022-08-08
- Publication Date
- 2025-10-03
- Estimated Expiration
- 2042-08-08
AI Technical Summary
In the prior art, static allocation of slice resources is used when sending SRv6 messages, which leads to resource waste.
The message sent on the SRv6 policy path contains a resource indication flag, which is used to implement real-time dynamic allocation of physical resources of the forwarding plane slice, ensuring that each message receiving node implements dynamic allocation of sub-link resources corresponding to the slice identifier according to the resource indication flag.
This solves the problem of resource waste when sending SRv6 messages, ensures that slice services can be forwarded along dynamically allocated sub-link resources, and realizes exclusive slice resource allocation.
Smart Images

Figure CN115941623B_ABST
Abstract
Description
[0001] This application claims priority to the Chinese patent application with application number 202110932008.1 and application date August 13, 2021. Technical Field
[0002] The present application relates to the field of data transmission technology, and in particular to a resource allocation method, device, and network node. Background Art
[0003] Currently, data bearer networks support large-scale hard slicing solutions, primarily by introducing slice identifiers (such as IDs) into the forwarding plane of the Internet Protocol Version 6-Segment Routing (IPv6 SR or SRv6) policy. This involves carrying the slice identifier in the SRv6 packet header, and the forwarding device associating the slice identifier with the underlying physical link or sub-link resources. This is combined with corresponding sub-link physical isolation technologies, such as channelized sub-interfaces, G.8312 (ITU International Telecommunication Union standard) interfaces, and Quality of Service (QoS) queues, to provide users with high-quality bearer network hard slicing services with independent resource guarantees.
[0004] The solution of carrying slice identifiers on the forwarding plane can achieve fine-grained slicing at the sub-interface level. At the same time, since it does not require the extension of the control plane protocol, it will not bring excessive overhead to network devices, making it possible for the data bearer network to support large-scale slicing.
[0005] At present, the allocation of underlying physical link resources or sub-link resources (i.e., slice resources) corresponding to slice identifiers is mainly a static configuration method, that is, slice resources (physical link resources or sub-link resources) are allocated in advance for each slice identifier on all links in the entire network, and a mapping relationship is established so that when the device forwards the message of the slice user, it can find the corresponding sub-link resource for forwarding according to the slice identifier.
[0006] Since the SRv6 policy forwarding plane path of the slice user is calculated in real time by the controller based on the Service-Level Agreement (SLA) requirements, and the current static allocation of slice resources requires reserving resources for each slice identifier on all links in the entire network, resources must also be reserved for the slice user on links that are not passed by the SRv6 policy path, resulting in a huge waste of network resources. Summary of the Invention
[0007] In order to solve the related technical problems, the embodiments of the present application provide a resource allocation method, device and network node, which are used to solve the problem of resource waste caused by the static allocation of slice resources when sending SRv6 messages in the prior art.
[0008] An embodiment of the present application provides a resource allocation method, applied to a message sending node, the method comprising:
[0009] Send packets to the SRv6 policy path.
[0010] Among them, the IPv6 message header of the message includes a slice identifier and a resource indication flag, and the resource indication flag is used to indicate the dynamic allocation of sub-link resources corresponding to the slice identifier to the message receiving node on the SRv6 policy path.
[0011] In the above solution, the message includes a bidirectional forwarding detection (BFD) message.
[0012] In the above solution, the resource indication flag includes a discard flag and / or a resource allocation flag;
[0013] The discard flag is used to indicate whether the message receiving node discards the message when it cannot obtain the sub-link resource according to the slice identifier;
[0014] The resource allocation flag is used to indicate whether to allocate corresponding sub-link resources according to the slice identifier when the message receiving node cannot obtain the sub-link resources according to the slice identifier.
[0015] In the above solution, when the discard flag is the first value, it means that the message is discarded when the sub-link resource cannot be obtained according to the slice identifier;
[0016] When the discard flag is the second value, it means that when the sub-link resources cannot be obtained according to the slice identifier, the message is forwarded along the preset default path.
[0017] In the above solution, when the resource allocation flag is the first value, it indicates that when the sub-link resource cannot be obtained according to the slice identifier, the corresponding sub-link resource is allocated;
[0018] When the resource allocation flag is the second value, it means that when the sub-link resource cannot be obtained according to the slice identifier, the sub-link resource will not be allocated.
[0019] In the above solution, the IPv6 Hop-By-hop Options Header (HBH), the new HBH, or the Destination Options Header (DOH) of the IPv6 packet header includes a network slice identification option;
[0020] Among them, the network slice identification option includes the resource indication flag.
[0021] In the above solution, the resource indication flag is recorded in the source address or flow label (Flowlabel) field of the IPv6 packet header, and the resource indication flag occupies part of the indication bits (which can be expressed as bits in English) of the source address or Flowlabel field.
[0022] In the above scheme, the network slice identification option also includes: option type, option data field length and the slice identification shown.
[0023] In the above solution, the resource indication flag includes a discard flag and a resource allocation flag. The indication meanings when the discard flag and the resource allocation flag have different values include:
[0024] The discard flag is a second value, and the resource allocation flag is a second value, used to indicate that when a sub-link resource cannot be obtained according to the slice identifier, the message is forwarded along a preset default path;
[0025] The discard flag is the second value, and the resource allocation flag is the first value, used to indicate that when a sub-link resource cannot be obtained according to the slice identifier, the message is forwarded along a preset default path, and corresponding sub-link resources are allocated according to the resource demand corresponding to the slice identifier;
[0026] The discard flag is a first value, and the resource allocation flag is a second value, used to indicate that the message is discarded when the sub-link resource cannot be obtained according to the slice identifier;
[0027] The discard flag is a first value, and the resource allocation flag is a first value, which is used to indicate that when the sub-link resources cannot be obtained according to the slice identifier, the message is discarded, and the corresponding sub-link resources are allocated according to the resource requirements corresponding to the slice identifier.
[0028] In the above solution, when the message sending node is the head node of the SRv6 policy path, sending the message to the SRv6 policy path includes:
[0029] Send the first N messages to the SRv6 policy path; wherein the resource indication flag in the first N messages is used to trigger each message receiving node on the SRv6 policy path to dynamically allocate sub-link resources corresponding to the slice identifier;
[0030] Sending the N+1th to Mth messages on the SRv6 policy path; wherein the resource indication flags in the N+1th to Mth messages are used to detect whether each message receiving node on the SRv6 policy path has completed the dynamic allocation of sublink resources corresponding to the slice identifier; wherein M is greater than N, and both M and N are positive integers;
[0031] Send the message after the Mth message to the SRv6 policy path; wherein, the resource indication flag in the message after the Mth message is used to instruct each message receiving node to discard the message when the sub-link resource cannot be obtained according to the slice identifier.
[0032] In the above solution, the resource indication flag includes a discard flag and a resource allocation flag, and when the discard flag and the resource allocation flag are respectively the first value or the second value:
[0033] The resource indication flags in the first N messages are: the discard flag is the second value, and the resource allocation flag is the first value;
[0034] The resource indication flags in the (N+1)th message to the (M)th message are: the discard flag is the first value, and the resource allocation flag is the first value;
[0035] The resource indication flag in the message after the Mth message: the discard flag is the first value, and the resource allocation flag is the second value.
[0036] In the above solution, the method further includes:
[0037] In the process of sending the N+1th message and messages after the N+1th message on the SRv6 policy path, if a return message of the message is received, and the discard flag in the received return message is the first value, and the resource allocation flag is the first value, it is determined that the Mth message has been sent, and the next message to be sent is the M+1th message.
[0038] In the above solution, the method further includes:
[0039] In the process of sending the N+1th message and messages after the N+1th message to the SRv6 policy path, if a return message of the message is received, and the discard flag in the received return message is the first value, and the resource allocation flag is the first value, it is determined that each node of the SRv6 policy path has completed the allocation of sub-link resources.
[0040] An embodiment of the present application further provides a resource allocation method, applied to a message receiving node, the method comprising:
[0041] Receive packets on the SRv6 policy path;
[0042] Among them, the IPv6 message header of the message includes a slice identifier and a resource indication flag, and the resource indication flag is used to indicate the dynamic allocation of sub-link resources corresponding to the slice identifier to the message receiving node.
[0043] In the above solution, the message includes a BFD message.
[0044] In the above solution, the resource indication flag includes a discard flag and / or a resource allocation flag;
[0045] The discard flag is used to indicate whether the message receiving node discards the message when it cannot obtain the sub-link resource according to the slice identifier;
[0046] The resource allocation flag is used to indicate whether to allocate corresponding sub-link resources according to the slice identifier when the message receiving node cannot obtain the sub-link resources according to the slice identifier.
[0047] In the above solution, when the discard flag is the first value, it means that the message is discarded when the sub-link resource cannot be obtained according to the slice identifier;
[0048] When the discard flag is the second value, it means that when the sub-link resources cannot be obtained according to the slice identifier, the message is forwarded along the preset default path.
[0049] In the above solution, when the resource allocation flag is the first value, it indicates that when the sub-link resource cannot be obtained according to the slice identifier, the corresponding sub-link resource is allocated;
[0050] When the resource allocation flag is the second value, it means that when the sub-link resource cannot be obtained according to the slice identifier, the sub-link resource will not be allocated.
[0051] In the above solution, the IPv6 HBH, new HBH or DOH of the IPv6 packet header includes a network slice identification option;
[0052] Among them, the network slice identification option includes the resource indication flag.
[0053] In the above solution, the resource indication flag is recorded in the source address or Flowlabel field of the IPv6 packet header, and the resource indication flag occupies part of the indication bits of the source address or Flowlabel field.
[0054] In the above scheme, the network slice identification option also includes: option type, option data field length and the slice identification.
[0055] In the above solution, the method further includes:
[0056] In the case that the sub-link resources cannot be obtained according to the slice identifier, the message is processed according to the value indicated by the resource indication flag.
[0057] In the above solution, when the resource indication flag includes a discard flag and a resource allocation flag, performing processing on the message according to the value indicated by the resource indication flag includes:
[0058] When the discard flag is the second value and the resource allocation flag is the second value, forwarding the message along a preset default path;
[0059] When the discard flag is the second value and the resource allocation flag is the first value, the message is forwarded along a preset default path, and corresponding sub-link resources are allocated according to the resource requirements corresponding to the slice identifier;
[0060] When the discard flag is a first value and the resource allocation flag is a second value, discarding the message;
[0061] When the discard flag is the first value and the resource allocation flag is the first value, the message is discarded and the corresponding sub-link resources are allocated according to the resource requirements corresponding to the slice identifier.
[0062] An embodiment of the present application further provides a network node, which is a message sending node and includes a transceiver, wherein the transceiver is configured as follows:
[0063] Send packets to the SRv6 policy path.
[0064] Among them, the IPv6 message header of the message includes a slice identifier and a resource indication flag, and the resource indication flag is used to indicate the dynamic allocation of sub-link resources corresponding to the slice identifier to the message receiving node on the SRv6 policy path.
[0065] An embodiment of the present application further provides a network node, which is a message receiving node and includes a transceiver, wherein the transceiver is configured as follows:
[0066] Receive packets on the SRv6 policy path;
[0067] Among them, the IPv6 message header of the message includes a slice identifier and a resource indication flag, and the resource indication flag is used to indicate the dynamic allocation of sub-link resources corresponding to the slice identifier to the message receiving node.
[0068] The embodiment of the present application further provides a resource allocation device, applied to a message sending node, comprising:
[0069] A message sending unit configured to send messages to an SRv6 policy path;
[0070] Among them, the IPv6 message header of the message includes a slice identifier and a resource indication flag, and the resource indication flag is used to indicate the dynamic allocation of sub-link resources corresponding to the slice identifier to the message receiving node on the SRv6 policy path.
[0071] The embodiment of the present application further provides a resource allocation device, applied to a message receiving node, comprising:
[0072] a message receiving unit configured to receive messages on an SRv6 policy path;
[0073] Among them, the IPv6 message header of the message includes a slice identifier and a resource indication flag, and the resource indication flag is used to indicate the dynamic allocation of sub-link resources corresponding to the slice identifier to the message receiving node.
[0074] An embodiment of the present application also provides a network node, comprising: a processor, a memory, and a program stored in the memory and executable on the processor, wherein when the program is executed by the processor, the program implements the steps of any of the above-mentioned methods on the message sending node side, or implements the steps of any of the above-mentioned methods on the message receiving node side.
[0075] An embodiment of the present application also provides a readable storage medium, on which a program is stored. When the program is executed by a processor, the program implements the steps of any method on the message sending node side or the steps of any method on the message receiving node side.
[0076] The technical solution provided in the embodiments of the present application has the following beneficial effects:
[0077] The resource allocation method, device and network node provided in the embodiments of the present application include a resource indication flag in the message of the SRv6 policy path, which is used to trigger the dynamic allocation of resources of the SRv6 policy path, so that on the SRv6 policy path, each message receiving node realizes the dynamic allocation of sub-link resources corresponding to the slice identifier according to the resource indication flag, and associates the allocated sub-link resources with the slice identifier, ensuring that subsequent slice services can be forwarded along the dynamically allocated sub-link resources according to the slice identifier, so as to have exclusive slice resources, thereby at least solving the problem of resource waste caused by the static allocation of slice resources when sending SRv6 messages in the related art. BRIEF DESCRIPTION OF THE DRAWINGS
[0078] Figure 1 A schematic diagram of a resource allocation method according to an embodiment of the present application;
[0079] Figure 2 This is a structural diagram of a network slice identification option for carrying a resource indication flag in an embodiment of the present application;
[0080] Figure 3 This is a schematic diagram of the structure of the resource indication mark of the embodiment of the present application;
[0081] Figure 4 This is a schematic diagram of the system structure of the application example;
[0082] Figure 5 This is a schematic diagram of an example strategy path for this application;
[0083] Figure 6 This is a flow chart of another resource allocation method according to an embodiment of the present application;
[0084] Figure 7 This is a structural diagram of a message sending node in an embodiment of the present application;
[0085] Figure 8 This is a structural diagram of a message receiving node in an embodiment of the present application;
[0086] Figure 9 This is a structural diagram of a resource allocation device according to an embodiment of the present application;
[0087] Figure 10 This is a structural diagram of another resource allocation device according to an embodiment of the present application. DETAILED DESCRIPTION
[0088] In order to make the technical problems, technical solutions and advantages to be solved by this application clearer, a detailed description will be given below with reference to the accompanying drawings and specific embodiments.
[0089] In a data bearer network that supports large-scale slicing, the SRv6 policy path of the slice user is calculated in real time by the controller according to the SLA requirements, and based on the current static allocation method of slice resources, resources need to be reserved for each slice identifier on all links in the entire network. Therefore, links that are not passed by the SRv6 policy path corresponding to the slice user also need to reserve resources, resulting in a huge waste of resources in the entire network. To solve this technical problem, an embodiment of the present application provides a resource allocation method, which includes a resource indication flag in the message sent on the SRv6 policy path. The resource indication flag is used to realize real-time dynamic allocation of physical resources of the forwarding plane slice, thereby solving the problem of huge resource waste caused by the static allocation method of slice resources.
[0090] The embodiment of the present application provides a resource allocation method, which is applied to a message sending node, such as Figure 1As shown, the method includes:
[0091] S110: Send a message to the SRv6 policy path.
[0092] Among them, the IPv6 message header of the message includes a slice identifier (such as ID, which can be specifically expressed as SliceID) and a resource indication flag (which can be expressed as Flags in English). The resource indication flag is used to indicate the dynamic allocation of sub-link resources corresponding to the slice identifier to the message receiving node on the SRv6 policy path.
[0093] In actual application, the sent message may include a BFD message, or may include a user's service message, or may include a newly defined message.
[0094] The slice identifier can also be called a network slice identifier (which can be expressed as Network SliceSelector in English). The embodiment of this application does not limit the name of the slice identifier, as long as its function is implemented.
[0095] The resource allocation method described in this embodiment is adopted, and the resource indication flag is used to indicate the dynamic allocation of sub-link resources corresponding to the slice identifier to the message receiving node on the SRv6 policy path, so that on the SRv6 policy path, each message receiving node realizes the dynamic allocation of sub-link resources corresponding to the slice identifier according to the resource indication flag, and associates the allocated sub-link resources with the slice identifier, ensuring that subsequent slice services can be forwarded along the dynamically allocated sub-link resources according to the slice identifier, so as to have exclusive slice resources.
[0096] In the embodiment of the present application, for step S110, the message sent on the SRv6 policy path may include a BFD message for detecting connectivity of the SRv6 policy path, and the BFD message may be triggered from the head node of the SRv6 policy path.
[0097] In an embodiment of the present application, the specific implementation of step S110 may include: sending a BFD message to the SRv6 policy path, that is, triggering the dynamic allocation of sub-link resources through the BFD connection establishment process of the slice user's SRv6 policy candidate path (Candidate Path, CP) (which can be referred to as SRv6 policy path). Specifically, corresponding to the slice link resource requirements of the slice user, the Software Defined Network (SDN) controller can calculate the segment list (seglist) path of the SRv6 policy primary CP and backup CP for the slice user, and use the End.X segment identifier (Segment ID, SID) of each link to arrange the path.
[0098] In actual application, the dynamic allocation of resources of the SRv6 policy path can be triggered according to the main CP or each backup CP of the SRv6 policy calculated by the SDN controller. On the main CP or each backup CP of the SRv6 policy, the first node (also called the head node, corresponding to the message sending node) periodically sends a message, which includes a slice identifier and a resource indication flag. In this way, the slice identifier is carried by the forwarding plane to indicate the resource information required by the message, and the resource indication flag is carried to indicate the dynamic allocation of sub-link resources corresponding to the slice identifier.
[0099] In the embodiment of the present application, the resource indication flag may include a discard flag and / or a resource allocation flag;
[0100] The discard flag is used to indicate whether the message receiving node discards the message when it cannot obtain the sub-link resource according to the slice identifier;
[0101] The resource allocation flag is used to indicate whether to allocate corresponding sub-link resources according to the slice identifier when the message receiving node cannot obtain the sub-link resources according to the slice identifier.
[0102] In actual application, the discard flag can be expressed as D-flag, and the resource allocation flag can be expressed as A-flag.
[0103] In the embodiment of the present application, the sub-link resources may include underlying physical sub-link resources, such as one or more of a G.mtn sub-interface, a channelized sub-interface, and a QoS queue.
[0104] In an embodiment of the present application, the resource allocation flag included in the resource indication flag in the message is used to indicate whether to trigger the allocation of corresponding sub-link resources according to the slice identifier when the sub-link resources cannot be obtained according to the slice identifier; the discard flag included in the resource indication flag is used to indicate whether to discard the message when the sub-link resources cannot be obtained according to the slice identifier. In this way, through the resource allocation flag and the discard flag, the real-time dynamic allocation of the underlying physical sub-link resources on the outgoing interface of each message receiving node on the SRv6 policy path can be achieved, and the sub-link resources can be associated with the slice identifier, ensuring that subsequent slice service traffic can be forwarded along the dynamically allocated sub-link resources according to the slice identifier, thereby ensuring that the service corresponding to the slice identifier has exclusive slice resources.
[0105] In the embodiment of the present application, when the discard flag is a first value, such as 1, it may indicate that when the sub-link resource cannot be obtained according to the slice identifier, the message is discarded;
[0106] When the discard flag is a second value, such as 0, it may indicate that when the sub-link resources cannot be obtained according to the slice identifier, the message is forwarded along the preset default path.
[0107] In the embodiment of the present application, when the resource allocation flag is a first value, such as 1, it may indicate that when the sub-link resource cannot be obtained according to the slice identifier, the corresponding sub-link resource is allocated;
[0108] When the resource allocation flag is a second value, such as 0, it may indicate that when the sub-link resource cannot be obtained according to the slice identifier, the sub-link resource is not allocated.
[0109] In the embodiment of the present application, the resource indication flag may be carried by a network slice identification option (which may be expressed as Network Slice Selector Option) in the IPv6 header of the message. In other words, the IPv6 HBH, new HBH, or DOH of the IPv6 header may include a network slice identification option;
[0110] Among them, the network slice identification option may include the resource indication flag.
[0111] In actual application, the IPv6 HBH, new HBH or DOH of the IPv6 packet header may include a network slice identification option, which means that the network slice identification option can be defined in the HBH, new HBH or DOH header in the IPv6 packet header. The network slice identification option is used to encapsulate the slice identifier in the IPv6 data plane and carry a discard flag and / or a resource allocation flag. The slice identifier is used to identify the slice to which the data packet belongs.
[0112] In actual application, the format of the network slice identification option can be as follows Figure 2 As shown, the network slice identification option may include the option type (expressed as Option Type in English), the option data field length (expressed as Opt Data Len in English), the resource indication flag and the slice identification.
[0113] Among them, the network slice identification option includes the option type, option data field length, resource indication flag and slice identification representation (i.e., form of expression) and meaning as follows:
[0114] Option type: may include an 8-bit identifier, and the specific value of the 8-bit identifier may be assigned by the Internet Assigned Numbers Authority (IANA); illustratively, in the 8-bit identifier, the first 2 bits of the highest order may be set to 00, to indicate that a message receiving node that cannot recognize the option type may skip the network slice identification option and continue to process the IPv6 header; the third bit of the first 3 bits of the highest order may be set to 0, indicating that the option data in the network slice identification option will not change during message transmission.
[0115] Option Data Field Length: This may include an 8-bit identifier. In this case, the data length recorded by the Option Data Field Length is in eight digits. The specific value is used to indicate the length of the data carried after the Option Data Field Length within the network slice identification option. For example, when the value indicated by this field length is 6, it indicates that the data length of the data carried after the Option Data Field Length is 6 bytes.
[0116] Network slice identifier: an identifier (such as ID) used to indicate the network slice to which the data packet belongs, which is also the slice identifier in this application.
[0117] Resource indicator: can include a 16-bit identifier, such as Figure 3 As shown. Exemplarily, the first identifier in the resource indication flag may be a discard flag, which is used to record the discard flag; when the discard flag is set to 1, it may indicate that when the sub-link resource cannot be obtained according to the slice identifier, the message is discarded; when the discard flag is set to 0, it may indicate that when the sub-link resource cannot be obtained according to the slice identifier, the message is forwarded along the preset default path. The second identifier in the resource indication flag may be a resource allocation flag, which is used to record the resource allocation flag; when the resource allocation flag is set to 1, it may indicate that when the sub-link resource cannot be obtained according to the slice identifier, the corresponding sub-link resource is allocated; when the resource allocation flag is set to 0, it may indicate that when the sub-link resource cannot be obtained according to the slice identifier, the sub-link resource is not allocated. As shown Figure 3 As shown, the identifiers other than the first and second bits in the resource indication flag can be represented as R, which is used to indicate that the identifier is not used and can be used in the future. For example, when the message is transmitted, the value of the identifier corresponding to the R bit can be recorded as 0, which is used to indicate that the value corresponding to the identifier can be ignored.
[0118] In an embodiment of the present application, the resource indication flag can be carried by the source address or Flowlabel field of the IPv6 message header of the message. In other words, the resource indication flag is recorded in the source address or Flowlabel field of the IPv6 message header, and the resource indication flag occupies part of the indication bits of the source address or Flowlabel field.
[0119] Specifically, when a resource indication flag is recorded in the source address or Flowlabel field of the IPv6 packet header, and the resource indication flag includes a resource allocation flag and a discard flag, the two indication bits in the source address or Flowlabel field can be used to carry the resource allocation flag and the discard flag respectively.
[0120] In the embodiment of the present application, the resource indication flag may include a discard flag and a resource allocation flag. The indication meanings when the discard flag and the resource allocation flag have different values may include:
[0121] When the discard flag is the second value (such as 0) and the resource allocation flag is the second value (such as 0), the resource indication flag is used to indicate that when a sub-link resource cannot be obtained according to the slice identifier, the message is forwarded along a preset default path;
[0122] When the discard flag is the second value (e.g., 0) and the resource allocation flag is the first value (e.g., 1), the resource indication flag is used to indicate that when a sub-link resource cannot be obtained according to the slice identifier, the message is forwarded along a preset default path, and corresponding sub-link resources are allocated according to the resource requirement corresponding to the slice identifier;
[0123] When the discard flag is a first value (such as 1) and the resource allocation flag is a second value (such as 0), the resource indication flag is used to indicate that the message is discarded when the sub-link resource cannot be obtained according to the slice identifier;
[0124] When the discard flag is the first value (such as 1) and the resource allocation flag is the first value (such as 1), the resource indication flag is used to indicate that when the sub-link resources cannot be obtained according to the slice identifier, the message is discarded, and the corresponding sub-link resources are allocated according to the resource requirements corresponding to the slice identifier.
[0125] In actual application, for the BFD message sent during the BFD establishment process of the SRv6 policy CP for the slice user, when each message receiving node on the SRv6 policy path receives a BFD message including a resource indication flag, it can process the BFD message according to the value indicated by the resource indication flag. Specifically, the message receiving node can process the BFD message according to the indication meaning of the resource indication flag when the discard flag and resource allocation flag have different values.
[0126] In the embodiment of the present application, when the message sending node is the head node of the SRv6 policy path, sending the message to the SRv6 policy path may include:
[0127] Send the first N messages to the SRv6 policy path; wherein the resource indication flag in the first N messages is used to trigger each message receiving node on the SRv6 policy path to dynamically allocate sub-link resources corresponding to the slice identifier;
[0128] Among them, when the resource indication flag includes a discard flag and a resource allocation flag, and the discard flag and the resource allocation flag are respectively the first value or the second value, in the resource indication flags in the first N messages, the discard flag is the second value, and the resource allocation flag is the first value; the first value can be 1, and the second value can be 0, then in the first N messages, the flag bit of D-Flag is 0, and the flag bit of A-Flag is 1; in this way, by setting the flag bit of D-Flag to 0 and the flag bit of A-Flag to 1, each message receiving node receiving the message can According to D-Flag and A-Flag, when the sub-link resources cannot be obtained according to the slice identifier, information is reported to the control plane, and the message is forwarded from the physical port corresponding to the outgoing interface or the non-slice shared sub-link resources of the outgoing interface (that is, the message is forwarded through the sub-link corresponding to the slice identifier); the control plane can send down the physical sub-link interface resources of the corresponding resources to the data plane according to the resource requirements corresponding to the slice identifier (that is, allocate the corresponding sub-link resources); in an embodiment of the present application, the value of N can be determined by pre-configuration, such as an integer greater than or equal to 1.
[0129] In an embodiment of the present application, by sending the first N messages, the messages can trigger dynamic resource allocation on each node along the SRv6 policy path, and associate the allocated sub-link resources with the slice identifier in the message.
[0130] In an embodiment of the present application, after sending the first N messages, the N+1th message to the Mth message may be sent to the SRv6 policy path; wherein the resource indication flag in the N+1th message to the Mth message is used to detect whether each message receiving node on the SRv6 policy path has completed the dynamic allocation of the sub-link resources corresponding to the slice identifier; wherein M is greater than N, and both M and N are positive integers;
[0131] Among them, in the resource indication flags in the N+1th message to the Mth message, the discard flag is the first value, and the resource allocation flag is the first value, which can be 1. Then, in the N+1th message to the Mth message, the flag bit of D-Flag is 1, and the flag bit of A-Flag is 1; in this way, through the flag bit of D-Flag being 1 and the flag bit of A-Flag being 1, each message receiving node that receives the message reports information to the control plane based on D-Flag and A-Flag, and discards the message at the same time when the sub-link resources cannot be obtained according to the slice identifier; the control plane can send down the data plane to create or occupy the physical sub-link interface resources of the corresponding bandwidth (that is, allocate the corresponding sub-link resources) according to the resource requirements corresponding to the slice identifier.
[0132] In an embodiment of the present application, in the process of sending the N+1th message and messages after the N+1th message to the SRv6 policy path, if a return message of the message is received, and the discard flag in the received return message is the first value, and the resource allocation flag is the first value, it is determined that the Mth message has been sent, and the next message to be sent is the M+1th message.
[0133] In an embodiment of the present application, in the process of sending the N+1th message and messages after the N+1th message to the SRv6 policy path, if a return message of the message is received, and the discard flag in the received return message is the first value, and the resource allocation flag is the first value, then it is determined that each node of the SRv6 policy path has completed the allocation of sub-link resources (which can be understood as determining that each node of the SRv6 policy path has completed the dynamic allocation and association of the sub-link resources corresponding to the slice identifier).
[0134] Specifically, in actual application, when transmitting a BFD message on an SRv6 policy path, if each message receiving node can obtain a sub-link resource based on the slice identifier in the BFD message, it forwards the BFD message on the corresponding sub-link resource based on the slice identifier. If the sub-link resource cannot be obtained, the message is reported to the control plane and the message is discarded, so that the control plane allocates the corresponding sub-link resource based on the resource demand corresponding to the slice identifier. In this way, during the process of sending the N+1th BFD message to the Mth BFD message until the return message of the BFD message is received, if the discard flag in the return message of the received BFD message is the first value and the resource allocation flag is the first value, it can be determined that the SRv6 policy path detection is complete, each node in the SRv6 policy path has completed the dynamic allocation and association of the sub-link resource corresponding to the slice identifier, and the BFD state is connected (which can be expressed as UP in English), thereby further determining that the Mth BFD message has been sent, and the next BFD message to be sent is the M+1th BFD message, and the value indicated by the resource indication flag is changed.
[0135] In an embodiment of the present application, when it is confirmed based on the return message of the Mth message that each message receiving node on the SRv6 policy path has completed the dynamic allocation of the sub-link resources corresponding to the slice identifier, messages after the Mth message can be sent to the SRv6 policy path; wherein, the resource indication flag in the message after the Mth message is used to instruct each message receiving node to discard the message when the sub-link resources cannot be obtained according to the slice identifier.
[0136] In the resource indication flags in the messages after the Mth message, the discard flag has a first value and the resource allocation flag has a second value. The first value may be 1 and the second value may be 0. Thus, in the messages after the Mth message, the D-Flag flag bit is 1 and the A-Flag flag bit is 0. Thus, with the D-Flag flag bit being 1 and the A-Flag flag bit being 0, each message receiving node receiving the message can discard the message based on the D-Flag and A-Flag.
[0137] In an embodiment of the present application, for BFD messages, after the BFD session status corresponding to the slice policy path is connected, periodic detection BFD messages can be sent. If the device data plane cannot find the physical sub-link interface corresponding to the slice identifier on the outgoing interface, the BFD message can be discarded.
[0138] It should be noted that, in the embodiment of the present application, the BFD message may be at least one of static BFD, dynamic BFD, and SBFD, to detect the connectivity of the SRv6 policy CP.
[0139] In the embodiment of the present application, the BFD message sent during the BFD establishment process of the SRv6 policy CP of the slice user may be used to trigger the dynamic allocation and association of resources of the SRv6 policy CP. The specific method may include:
[0140] When establishing a BFD session for the SRv6 policy CP, the head node of the SRv6 policy path clears the D-flag in the resource indication flag (such as carried in the HBH header) (i.e., sets the D-flag to 0) and sets the A-flag (i.e., sets the A-flag to 1) in the first N BFD messages sent (the N value is configurable). Through this indication method, the resource indication flag in the first N BFD messages triggers each message receiving node on the SRv6 policy path to dynamically allocate sub-link resources corresponding to the slice identifier.
[0141] The head node sets the D-flag (i.e., the D-flag is set to 1) and the A-flag (i.e., the A-flag is set to 1) in the HBH header in subsequent BFD messages (after the Nth BFD message). Through this indication method, the BFD messages sent after the Nth BFD message are used to detect whether each message receiving node on the SRv6 policy path has completed the dynamic allocation of sub-link resources corresponding to the slice identifier, until the head node receives the return message of the BFD message with the D-flag and A-flag marked as 1 respectively.
[0142] Based on this, when the head node receives the return message of the BFD message, if the D-flag of the resource indication flag in the BFD message of the received return message is 1, and the A-flag is 1, it is determined that each node of the SRv6 policy path has completed the dynamic allocation and association of the sub-link resources corresponding to the slice identifier, and the BFD state is connected; at the same time, the A-flag mark in the HBH header is cleared (that is, the A-flag is set to 0); and subsequent periodic detection BFD messages are sent; wherein, in the subsequent periodic detection BFD messages, the resource indication flag in the BFD message is used to instruct each message receiving node to discard the BFD message when the sub-link resources cannot be obtained according to the slice identifier.
[0143] In actual application, when the BFD session corresponding to the slice SRv6 policy CP is connected, the periodic detection BFD packets sent can set the D-flag and clear the A-flag to indicate that when the data plane forwards the BFD packet and cannot find the physical sub-link interface corresponding to the slice identifier on the outbound interface, the BFD packet is discarded;
[0144] In addition, only after the BFD session status corresponding to the slice SRv6 policy CP is connected, the status of the SRv6 policy can be connected so that the service can be directed to the SRv6 policy.
[0145] On the SRv6 policy path, when the resource indication flag is used for indication, for each message receiving node that receives the message, when the data plane finds the sub-link resource corresponding to the slice identifier indicated by the message on the outgoing interface, the message is forwarded through the sub-link resource corresponding to the slice identifier. When the data plane cannot find the sub-link resource corresponding to the slice identifier on the outgoing interface, the following different actions are performed according to the D-flag and A-flag bits in the resource indication flag of the message:
[0146] If the D-flag value is 0 and the A-flag value is also 0, the packet is forwarded through the physical interface corresponding to the outgoing interface or the non-slice shared sub-link resource of the outgoing interface (that is, the BFD packet is forwarded through the default sub-link).
[0147] If the D-flag value is 0 and the A-flag value is 1, the information is reported to the control plane, and the packet is forwarded through the physical interface corresponding to the outbound interface or the non-slice shared sub-link resources of the outbound interface (that is, the BFD packet is forwarded through the default sub-link). The control plane issues a physical sub-link interface resource for the corresponding bandwidth or occupies it according to the resource requirements corresponding to the slice identifier (that is, allocates the corresponding sub-link resources).
[0148] If the D-flag value is 1 and the A-flag value is 0, the packet is discarded.
[0149] The value of the D-flag mark is 1, and the value of the A-flag mark is 1: information is reported to the control plane, and the message is discarded at the same time; the control plane sends the data plane to create or occupy the physical sub-link interface resources of the corresponding bandwidth (that is, allocate the corresponding sub-link resources) according to the resource requirements corresponding to the slice identifier.
[0150] The specific implementation process of the resource allocation method described in the embodiment of the present application is described below with reference to application examples.
[0151] like Figure 4As shown, this application example provides a network architecture for the resource allocation method, which may include node devices A, B, C, D, E, F, G and H. These eight node devices run the ISIS dynamic routing protocol and are all in the same Intermediate System to Intermediate System (ISIS) domain. All devices support slicing capabilities. In addition, a Border Gateway Protocol (BGP)-Link-State (LS) connection is established between the SDN controller and the forwarding device.
[0152] The End SID and End.X SID of each device in the network architecture are allocated as follows: Figure 5 shown.
[0153] Based on this network architecture, assume that slice user 1 in the current network requires an exclusive slice link resource with a bandwidth of 100 megabits per second (Mbps) from node A to node E.
[0154] Among them, the SDN controller allocates slice identification resources to slice user 1 according to the slice demand of slice user 1. For example, the allocated slice identification is 1, and the corresponding resource information is 100M bandwidth. The relationship between the allocated slice identification and the slice user is shown in the following Table 1:
[0155]
[0156] Table 1
[0157] When allocating the above-mentioned slice identification resources, the SDN controller synchronizes the slice identification resources to each node in the network.
[0158] Based on the allocated slice identifier resources, the controller or head node calculates a segmentlist path from A to E with SRv6 policy, including the primary and backup CPs, that meets the 100M bandwidth requirement, according to slice user 1. The path is orchestrated using the End.X SID of each link. End.X represents the node type of each node, and End.X SID represents the link type of the link between nodes.
[0159] The calculated primary CP and backup CP can be expressed as:
[0160] Main CP:<X3:1::100,X3:2::100,X3:3::100,X3:4::100> ;
[0161] Backup CP:<X3:5::100,X3:6::100,X3:7::100,X3:8::100> .
[0162] On the basis of establishing the primary CP and the backup CP, the slice identifier identified as "1" is associated with the SRv6 policy path (including the primary CP and the backup CP).
[0163] When the SDN controller calculates the path, it sends the path to the head node A through the BGP SRv6 policy.
[0164] Based on the primary and backup CPs calculated for slice user 1, the BFD packets sent during the corresponding BFD connection establishment process trigger the dynamic allocation and association of resources on the SRv6 policy CP. Taking the QoS queue as an example, the sub-interface link resources on each node device are dynamically allocated along the SRv6 policy path (including the primary and backup CPs) corresponding to the slice user 1. The process of dynamic allocation of sub-link resources corresponding to the slice identifier is as follows:
[0165] After receiving the BGP SRv6 policy path (including the primary and backup CPs) and slice ID SliceID1 from the controller, the ingress node A of the SRv6 policy path enables BFD for the SRv6 policy path (including the primary and backup CPs) based on the BFD configuration corresponding to the SRv6 policy path.
[0166] Taking the establishment of a BFD queue session on the primary CP as an example, head node A sets the D-flag carried in the forwarding plane message to 0 and the A-flag to 1 in the first N BFD messages sent along the primary CP.
[0167] BFD packets along the primary CP<X3:1::100,X3:2::100,X3:3::100,X3:4::100> Forwarding: Head node A finds egress port 0 / 0 / 1 based on X3:1::100. If no corresponding QoS queue is found on the data plane based on SliceID1 carried in the forwarding plane packet header, the control plane reports the information based on the indication that D-flag is 0 and A-flag is 1. At the same time, the BFD packet is forwarded from the physical port corresponding to the egress interface or the non-slice shared sub-link resource of the egress interface. Based on SliceID1 carried in the BFD packet header, the control plane learns that the resource requirement is 100M bandwidth, so it sends a QoS queue with 100M bandwidth to the data plane, associates it with SliceID1, and saves the corresponding relationship locally.
[0168] The BFD message is forwarded along the master CP to nodes B, C, and D. Each node A, B, C, and D on the master CP, based on the D-flag being 0 and the A-flag being 1 in the BFD message, starts allocating a 100M bandwidth QoS queue to Slice ID 1 on the corresponding outbound interface.
[0169] In subsequent BFD messages sent by head node A (i.e., messages after the Nth message, i.e., the N+1th BFD message and BFD messages after the N+1th BFD message), the head node A sets the D-flag carried in the forwarding plane message to 1 and the A-flag to 1 to detect whether each node on the primary CP has completed the dynamic allocation of sub-link resources corresponding to SliceID1;
[0170] If the 100M bandwidth QoS queue resources for Slice ID 1 on the outbound interfaces of devices A, B, C, and D along the active CP are successfully allocated, BFD packets are forwarded from the QoS queue associated with Slice ID 1 on the outbound interfaces of devices A, B, C, and D.
[0171] If the allocation and association of 100M bandwidth QoS queue resources on the corresponding outbound interfaces of devices A, B, C, and D along the route have not yet been completed, and the data plane cannot find the QoS queue associated with SliceID1, then, based on the indication that the D-flag is 1 and the A-flag is 1, it sends information to the control plane and discards the BFD packet. The device control plane learns that the resource requirement is 100M bandwidth based on SliceID1, and then sends a message to the data plane to create a 100M bandwidth QoS queue for it, associate it with SliceID1, and save the corresponding relationship locally.
[0172] During the preceding process, the BFD status on the SRv6 policy CP remains disconnected (Down).
[0173] When the head node A of the SRv6 policy path receives the return message of the BFD message with D-flag as 1 and A-flag as 1, it indicates that the 100M bandwidth QoS queue resource allocation and association corresponding to SliceID1 have been completed on the corresponding outbound interfaces of all nodes along the main CP, and the BFD status is connected; at the same time, the A-flag mark carried in the forwarding plane message is cleared (A-flag = 0), and subsequent periodic detection BFD messages are continuously sent.
[0174] Similarly, the BFD queue connection process on the backup CP of the calculated SRv6 policy path is the same as above (conducted simultaneously with the BFD session establishment process of the primary CP), and will not be described in detail here.
[0175] Based on the above process, when the BFD session status of the primary CP and the backup CP are connected, the status of the SRv6 policy is connected, and the service traffic of slice user 1 is introduced into the SRv6 policy bearer. This ensures that the traffic of slice user 1 can obtain exclusive physical resource guarantee of 100M QoS queue on each link of the SRv6 policy forwarding path.
[0176] It can be seen from the above description that the resource allocation method provided in the embodiment of the present application indicates the dynamic allocation of sub-link resources corresponding to the slice identifier to the message receiving node on the SRv6 policy path through the resource indication flag, thereby realizing the real-time dynamic allocation and association of the physical resources required for the slice on the SRv6 policy path of the bearer network, which can solve the problem of huge waste of resources caused by the static allocation scheme of slice resources and being unsuitable for large-scale deployment in the existing network.
[0177] Accordingly, the embodiment of the present application also provides a resource allocation method, which is applied to a message receiving node, such as Figure 6 As shown, the method includes:
[0178] S610: Receive a message on an SRv6 policy path.
[0179] Among them, the IPv6 message header of the message includes a slice identifier and a resource indication flag, and the resource indication flag is used to indicate the dynamic allocation of sub-link resources corresponding to the slice identifier to the message receiving node.
[0180] The received message may include a BFD message, or may include a user's service message, or may include a newly defined message.
[0181] The resource allocation method provided in the embodiment of the present application indicates the dynamic allocation of sub-link resources corresponding to the slice identifier through a resource indication flag in the message, so that on the SRv6 policy path, each message receiving node realizes the dynamic allocation of sub-link resources corresponding to the slice identifier according to the resource indication flag, and associates the allocated sub-link resources with the slice identifier, ensuring that subsequent slice services can be forwarded along the dynamically allocated sub-link resources according to the slice identifier, so as to have exclusive slice resources.
[0182] In the embodiment of the present application, the resource indication flag may include a discard flag and / or a resource allocation flag;
[0183] The discard flag is used to indicate whether the message receiving node discards the message when it cannot obtain the sub-link resource according to the slice identifier;
[0184] The resource allocation flag is used to indicate whether to allocate corresponding sub-link resources according to the slice identifier when the message receiving node cannot obtain the sub-link resources according to the slice identifier.
[0185] In the embodiment of the present application, when the discard flag is the first value, it may indicate that the message is discarded when the sub-link resource cannot be obtained according to the slice identifier;
[0186] When the discard flag is the second value, it may indicate that when the sub-link resources cannot be obtained according to the slice identifier, the message is forwarded along the preset default path.
[0187] In the embodiment of the present application, when the resource allocation flag is the first value, it may indicate that when the sub-link resource cannot be obtained according to the slice identifier, the corresponding sub-link resource is allocated;
[0188] When the resource allocation flag is the second value, it may indicate that when the sub-link resource cannot be obtained according to the slice identifier, the sub-link resource will not be allocated.
[0189] In the embodiment of the present application, the IPv6 HBH, new HBH or DOH of the IPv6 packet header may include a network slice identification option;
[0190] Among them, the network slice identification option may include the resource indication flag.
[0191] In an embodiment of the present application, the resource indication flag may be recorded in the source address or Flowlabel field of the IPv6 packet header, and the resource indication flag may occupy part of the indication bits of the source address or Flowlabel field.
[0192] In an embodiment of the present application, the network slice identification option may also include: option type, option data field length and the slice identification.
[0193] In the embodiment of the present application, the method may further include:
[0194] In the case that the sub-link resources cannot be obtained according to the slice identifier, the message is processed according to the value indicated by the resource indication flag.
[0195] In the embodiment of the present application, when the resource indication flag includes a discard flag and a resource allocation flag, performing processing on the message according to the value indicated by the resource indication flag may include:
[0196] When the discard flag is the second value and the resource allocation flag is the second value, forwarding the message along a preset default path;
[0197] When the discard flag is the second value and the resource allocation flag is the first value, the message is forwarded along a preset default path, and corresponding sub-link resources are allocated according to the resource requirements corresponding to the slice identifier;
[0198] When the discard flag is a first value and the resource allocation flag is a second value, discarding the message;
[0199] When the discard flag is the first value and the resource allocation flag is the first value, the message is discarded and the corresponding sub-link resources are allocated according to the resource requirements corresponding to the slice identifier.
[0200] When the resource allocation method provided in the embodiment of the present application is applied to a message receiving node, the indication method of the resource indication flag, the specific indication content, and the specific method of real-time dynamic allocation and association of sub-link resources corresponding to the slice identifier based on the resource indication flag can be referred to the detailed description of the above-mentioned method applied to the message sending node, and will not be explained here.
[0201] The embodiment of the present application further provides a network node, which is a message sending node. Figure 7 As shown, the message sending node 700 includes a transceiver 710, wherein the transceiver 710 is configured as follows:
[0202] Send packets to the SRv6 policy path.
[0203] Among them, the IPv6 message header of the message includes a slice identifier and a resource indication flag, and the resource indication flag is used to indicate the dynamic allocation of sub-link resources corresponding to the slice identifier to the message receiving node on the SRv6 policy path.
[0204] In the embodiment of the present application, the message may include a BFD message, or may include a user's service message, or may include a newly defined message.
[0205] In the embodiment of the present application, the resource indication flag includes a discard flag and / or a resource allocation flag;
[0206] The discard flag is used to indicate whether the message receiving node discards the message when it cannot obtain the sub-link resource according to the slice identifier;
[0207] The resource allocation flag is used to indicate whether to allocate corresponding sub-link resources according to the slice identifier when the message receiving node cannot obtain the sub-link resources according to the slice identifier.
[0208] In the embodiment of the present application, when the discard flag is the first value, it indicates that the message is discarded when the sub-link resource cannot be obtained according to the slice identifier;
[0209] When the discard flag is the second value, it means that when the sub-link resources cannot be obtained according to the slice identifier, the message is forwarded along the preset default path.
[0210] In the embodiment of the present application, when the resource allocation flag is the first value, it indicates that when the sub-link resource cannot be obtained according to the slice identifier, the corresponding sub-link resource is allocated;
[0211] When the resource allocation flag is the second value, it means that when the sub-link resource cannot be obtained according to the slice identifier, the sub-link resource will not be allocated.
[0212] In an embodiment of the present application, the IPv6 HBH, new HBH or DOH of the IPv6 packet header includes a network slice identification option;
[0213] Among them, the network slice identification option includes the resource indication flag.
[0214] In an embodiment of the present application, the resource indication flag is recorded in the source address or Flowlabel field of the IPv6 packet header, and the resource indication flag occupies part of the indication bits of the source address or Flowlabel field.
[0215] In an embodiment of the present application, the network slice identification option also includes: option type, option data field length and the slice identification.
[0216] In the embodiment of the present application, the resource indication flag includes a discard flag and a resource allocation flag;
[0217] When the discard flag is the second value and the resource allocation flag is the second value, the resource indication flag is used to indicate that when a sub-link resource cannot be obtained according to the slice identifier, the message is forwarded along a preset default path;
[0218] When the discard flag is the second value and the resource allocation flag is the first value, the resource indication flag is used to indicate that when a sub-link resource cannot be obtained according to the slice identifier, the message is forwarded along a preset default path, and corresponding sub-link resources are allocated according to the resource demand corresponding to the slice identifier;
[0219] When the discard flag is a first value and the resource allocation flag is a second value, the resource indication flag is used to indicate that the message is discarded when the sub-link resource cannot be obtained according to the slice identifier;
[0220] When the discard flag is the first value and the resource allocation flag is the first value, the resource indication flag is used to indicate that when the sub-link resources cannot be obtained according to the slice identifier, the message is discarded, and the corresponding sub-link resources are allocated according to the resource requirements corresponding to the slice identifier.
[0221] In the embodiment of the present application, the transceiver 710 is further configured as:
[0222] Send the first N messages to the SRv6 policy path; wherein the resource indication flag in the first N messages is used to trigger each message receiving node on the SRv6 policy path to dynamically allocate sub-link resources corresponding to the slice identifier;
[0223] Sending the N+1th to Mth messages on the SRv6 policy path; wherein the resource indication flags in the N+1th to Mth messages are used to detect whether each message receiving node on the SRv6 policy path has completed the dynamic allocation of sublink resources corresponding to the slice identifier; wherein M is greater than N, and both M and N are positive integers;
[0224] Send the message after the Mth message to the SRv6 policy path; wherein, the resource indication flag in the message after the Mth message is used to instruct each message receiving node to discard the message when the sub-link resource cannot be obtained according to the slice identifier.
[0225] In an embodiment of the present application, the resource indication flag includes a discard flag and a resource allocation flag. When the discard flag and the resource allocation flag are respectively the first value or the second value:
[0226] The resource indication flags in the first N messages are: the discard flag is the second value, and the resource allocation flag is the first value;
[0227] The resource indication flags in the (N+1)th message to the (M)th message are: the discard flag is the first value, and the resource allocation flag is the first value;
[0228] The resource indication flag in the message after the Mth message: the discard flag is the first value, and the resource allocation flag is the second value.
[0229] In the embodiment of the present application, the transceiver 710 is further configured as:
[0230] In the process of sending the N+1th message and messages after the N+1th message on the SRv6 policy path, if a return message of the message is received, and the discard flag in the received return message is the first value, and the resource allocation flag is the first value, it is determined that the Mth message has been sent, and the next message to be sent is the M+1th message.
[0231] In the embodiment of the present application, the transceiver 710 is further configured as:
[0232] In the process of sending the N+1th message and messages after the N+1th message to the SRv6 policy path, if a return message of the message is received, and the discard flag in the received return message is the first value, and the resource allocation flag is the first value, it is determined that each node of the SRv6 policy path has completed the allocation of sub-link resources.
[0233] The embodiment of the present application further provides a network node, which is a message receiving node. Figure 8 As shown, the message receiving node 800 includes: a transceiver 810, wherein the transceiver 810 is configured as follows:
[0234] Receive packets on the SRv6 policy path;
[0235] Among them, the IPv6 message header of the message includes a slice identifier and a resource indication flag, and the resource indication flag is used to indicate the dynamic allocation of sub-link resources corresponding to the slice identifier to the message receiving node.
[0236] In the embodiment of the present application, the message may include a BFD message, or may include a user's service message, or may include a newly defined message.
[0237] In the embodiment of the present application, the resource indication flag includes a discard flag and / or a resource allocation flag;
[0238] The discard flag is used to indicate whether the message receiving node discards the message when it cannot obtain the sub-link resource according to the slice identifier;
[0239] The resource allocation flag is used to indicate whether to allocate corresponding sub-link resources according to the slice identifier when the message receiving node cannot obtain the sub-link resources according to the slice identifier.
[0240] In the embodiment of the present application, when the discard flag is the first value, it indicates that the message is discarded when the sub-link resource cannot be obtained according to the slice identifier;
[0241] When the discard flag is the second value, it means that when the sub-link resources cannot be obtained according to the slice identifier, the message is forwarded along the preset default path.
[0242] In the embodiment of the present application, when the resource allocation flag is the first value, it indicates that when the sub-link resource cannot be obtained according to the slice identifier, the corresponding sub-link resource is allocated;
[0243] When the resource allocation flag is the second value, it means that when the sub-link resource cannot be obtained according to the slice identifier, the sub-link resource will not be allocated.
[0244] In an embodiment of the present application, the IPv6 HBH, new HBH or DOH of the IPv6 packet header includes a network slice identification option;
[0245] Among them, the network slice identification option includes the resource indication flag.
[0246] In an embodiment of the present application, the resource indication flag is recorded in the source address or Flowlabel field of the IPv6 packet header, and the resource indication flag occupies part of the indication bits of the source address or Flowlabel field.
[0247] In an embodiment of the present application, the network slice identification option also includes: option type, option data field length and the slice identification.
[0248] In the embodiment of the present application, the transceiver 810 is further configured as:
[0249] In the case that the sub-link resources cannot be obtained according to the slice identifier, the message is processed according to the value indicated by the resource indication flag.
[0250] In the embodiment of the present application, when the resource indication flag includes a discard flag and a resource allocation flag, the transceiver 810 is further configured to:
[0251] When the discard flag is the second value and the resource allocation flag is the second value, forwarding the message along a preset default path;
[0252] When the discard flag is the second value and the resource allocation flag is the first value, forward the message along the preset default path, and report information to the control plane, so that the control plane allocates corresponding sub-link resources according to the resource requirements corresponding to the slice identifier;
[0253] When the discard flag is a first value and the resource allocation flag is a second value, discarding the message;
[0254] When the discard flag is the first value and the resource allocation flag is the first value, the message is discarded and information is reported to the control plane so that the control plane allocates corresponding sub-link resources according to the resource requirements corresponding to the slice identifier.
[0255] The embodiment of the present application also provides a resource allocation device, which is applied to a message sending node, such as Figure 9 As shown, the message sending node 900 includes:
[0256] A message sending unit 910 is configured to send a message to an SRv6 policy path;
[0257] Among them, the IPv6 message header of the message includes a slice identifier and a resource indication flag, and the resource indication flag is used to indicate the dynamic allocation of sub-link resources corresponding to the slice identifier to the message receiving node on the SRv6 policy path.
[0258] In the embodiment of the present application, the message may include a BFD message, or may include a user's service message, or may include a newly defined message.
[0259] In the embodiment of the present application, the resource indication flag includes a discard flag and / or a resource allocation flag;
[0260] The discard flag is used to indicate whether the message receiving node discards the message when it cannot obtain the sub-link resource according to the slice identifier;
[0261] The resource allocation flag is used to indicate whether to allocate corresponding sub-link resources according to the slice identifier when the message receiving node cannot obtain the sub-link resources according to the slice identifier.
[0262] In the embodiment of the present application, when the discard flag is the first value, it indicates that the message is discarded when the sub-link resource cannot be obtained according to the slice identifier;
[0263] When the discard flag is the second value, it means that when the sub-link resources cannot be obtained according to the slice identifier, the message is forwarded along the preset default path.
[0264] In the embodiment of the present application, when the resource allocation flag is the first value, it indicates that when the sub-link resource cannot be obtained according to the slice identifier, the corresponding sub-link resource is allocated;
[0265] When the resource allocation flag is the second value, it means that when the sub-link resource cannot be obtained according to the slice identifier, the sub-link resource will not be allocated.
[0266] In an embodiment of the present application, the IPv6 HBH, new HBH or DOH of the IPv6 packet header includes a network slice identification option;
[0267] Among them, the network slice identification option includes the resource indication flag.
[0268] In an embodiment of the present application, the resource indication flag is recorded in the source address or Flowlabel field of the IPv6 packet header, and the resource indication flag occupies part of the indication bits of the source address or Flowlabel field.
[0269] In an embodiment of the present application, the network slice identification option also includes: option type, option data field length and the slice identification.
[0270] In the embodiment of the present application, the resource indication flag includes a discard flag and a resource allocation flag;
[0271] When the discard flag is the second value and the resource allocation flag is the second value, the resource indication flag is used to indicate that when a sub-link resource cannot be obtained according to the slice identifier, the message is forwarded along a preset default path;
[0272] When the discard flag is the second value and the resource allocation flag is the first value, the resource indication flag is used to indicate that when a sub-link resource cannot be obtained according to the slice identifier, the message is forwarded along a preset default path, and corresponding sub-link resources are allocated according to the resource demand corresponding to the slice identifier;
[0273] When the discard flag is a first value and the resource allocation flag is a second value, the resource indication flag is used to indicate that the message is discarded when the sub-link resource cannot be obtained according to the slice identifier;
[0274] When the discard flag is the first value and the resource allocation flag is the first value, the resource indication flag is used to indicate that when the sub-link resources cannot be obtained according to the slice identifier, the message is discarded, and the corresponding sub-link resources are allocated according to the resource requirements corresponding to the slice identifier.
[0275] In the embodiment of the present application, when the message sending node is the head node of the SRv6 policy path, the message sending unit 910 is further configured to:
[0276] Send the first N messages to the SRv6 policy path; wherein the resource indication flag in the first N messages is used to trigger each message receiving node on the SRv6 policy path to dynamically allocate sub-link resources corresponding to the slice identifier;
[0277] Sending the N+1th to Mth messages on the SRv6 policy path; wherein the resource indication flags in the N+1th to Mth messages are used to detect whether each message receiving node on the SRv6 policy path has completed the dynamic allocation of sublink resources corresponding to the slice identifier; wherein M is greater than N, and both M and N are positive integers;
[0278] Send the message after the Mth message to the SRv6 policy path; wherein, the resource indication flag in the message after the Mth message is used to instruct each message receiving node to discard the message when the sub-link resource cannot be obtained according to the slice identifier.
[0279] In an embodiment of the present application, the resource indication flag includes a discard flag and a resource allocation flag. When the discard flag and the resource allocation flag are respectively the first value or the second value:
[0280] The resource indication flags in the first N messages are: the discard flag is the second value, and the resource allocation flag is the first value;
[0281] The resource indication flags in the (N+1)th message to the (M)th message are: the discard flag is the first value, and the resource allocation flag is the first value;
[0282] The resource indication flag in the message after the Mth message: the discard flag is the first value, and the resource allocation flag is the second value.
[0283] In the embodiment of the present application, the message sending unit 910 is further configured to:
[0284] In the process of sending the N+1th message and messages after the N+1th message on the SRv6 policy path, if a return message of the message is received, and the discard flag in the received return message is the first value, and the resource allocation flag is the first value, it is determined that the Mth message has been sent, and the next message to be sent is the M+1th message.
[0285] In the embodiment of the present application, the message sending unit 910 is further configured to:
[0286] In the process of sending the N+1th message and messages after the N+1th message to the SRv6 policy path, if a return message of the message is received, and the discard flag in the received return message is the first value, and the resource allocation flag is the first value, it is determined that each node of the SRv6 policy path has completed the allocation of sub-link resources.
[0287] In actual application, the message sending unit 910 can be implemented by a transceiver in a message sending node.
[0288] The embodiment of the present application also provides a resource allocation device, which is applied to a message receiving node, such as Figure 10 As shown, the message receiving node 1000 includes:
[0289] A message receiving unit 1010 is configured to receive messages on an SRv6 policy path;
[0290] Among them, the IPv6 message header of the message includes a slice identifier and a resource indication flag, and the resource indication flag is used to indicate the dynamic allocation of sub-link resources corresponding to the slice identifier to the message receiving node.
[0291] In the embodiment of the present application, the message may include a BFD message, or may include a user's service message, or may include a newly defined message.
[0292] In the embodiment of the present application, the resource indication flag includes a discard flag and / or a resource allocation flag;
[0293] The discard flag is used to indicate whether the message receiving node discards the message when it cannot obtain the sub-link resource according to the slice identifier;
[0294] The resource allocation flag is used to indicate whether to allocate corresponding sub-link resources according to the slice identifier when the message receiving node cannot obtain the sub-link resources according to the slice identifier.
[0295] In the embodiment of the present application, when the discard flag is the first value, it indicates that the message is discarded when the sub-link resource cannot be obtained according to the slice identifier;
[0296] When the discard flag is the second value, it means that when the sub-link resources cannot be obtained according to the slice identifier, the message is forwarded along the preset default path.
[0297] In the embodiment of the present application, when the resource allocation flag is the first value, it indicates that when the sub-link resource cannot be obtained according to the slice identifier, the corresponding sub-link resource is allocated;
[0298] When the resource allocation flag is the second value, it means that when the sub-link resource cannot be obtained according to the slice identifier, the sub-link resource will not be allocated.
[0299] In an embodiment of the present application, the IPv6 HBH, new HBH or DOH of the IPv6 packet header includes a network slice identification option;
[0300] Among them, the network slice identification option includes the resource indication flag.
[0301] In an embodiment of the present application, the resource indication flag is recorded in the source address or Flowlabel field of the IPv6 packet header, and the resource indication flag occupies part of the indication bits of the source address or Flowlabel field.
[0302] In an embodiment of the present application, the network slice identification option also includes: option type, option data field length and the slice identification.
[0303] In the embodiment of the present application, the message receiving unit 1010 is further configured to:
[0304] In the case that the sub-link resources cannot be obtained according to the slice identifier, the message is processed according to the value indicated by the resource indication flag.
[0305] In the embodiment of the present application, when the resource indication flag includes a discard flag and a resource allocation flag, the message receiving unit 1010 is further configured to:
[0306] When the discard flag is the second value and the resource allocation flag is the second value, forwarding the message along a preset default path;
[0307] When the discard flag is the second value and the resource allocation flag is the first value, forward the message along the preset default path, and report information to the control plane, so that the control plane allocates corresponding sub-link resources according to the resource requirements corresponding to the slice identifier;
[0308] When the discard flag is a first value and the resource allocation flag is a second value, discarding the message;
[0309] When the discard flag is the first value and the resource allocation flag is the first value, the message is discarded and information is reported to the control plane so that the control plane allocates corresponding sub-link resources according to the resource requirements corresponding to the slice identifier.
[0310] In actual application, the message receiving unit 1010 can be implemented by a transceiver in a message receiving node.
[0311] An embodiment of the present application also provides a network node, comprising: a processor, a memory, and a program stored in the memory and executable on the processor, wherein when the program is executed by the processor, the steps of the aforementioned message sending node side method are implemented, or the steps of the aforementioned message receiving node side method are implemented.
[0312] Among them, the network node may include the above-mentioned message sending node or the message receiving node. On the message sending node and the message receiving node, the specific implementation process of the above-mentioned resource allocation method embodiment when the program is executed by the processor can refer to the above-mentioned detailed description and will not be explained here.
[0313] In addition, a specific embodiment of the present application also provides a readable storage medium on which a program is stored. When the program is executed by a processor, it implements the steps described in the aforementioned message sending node side method, or implements the steps described in the aforementioned message receiving node side method.
[0314] Specifically, the computer-readable storage medium is applied to the above-mentioned message sending node or message receiving node. When applied to the message sending node or message receiving node, the execution steps in the corresponding resource allocation method are detailed in the method embodiment and will not be repeated here.
[0315] In the several embodiments provided in this application, it should be understood that the disclosed methods and devices can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection of some interfaces, devices or units, which can be electrical, mechanical or other forms.
[0316] In addition, the functional units in the various embodiments of the present application may be integrated into a single processing unit, or each unit may be physically included separately, or two or more units may be integrated into a single unit. The aforementioned integrated units may be implemented in the form of hardware or in the form of hardware plus software functional units.
[0317] The above-mentioned integrated unit implemented in the form of a software functional unit can be stored in a computer-readable storage medium. The above-mentioned software functional unit is stored in a storage medium and includes a number of instructions for causing a computer device (which can be a personal computer, server, or network device, etc.) to execute some steps of the sending and receiving methods described in various embodiments of the present application. The aforementioned storage medium includes: a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, etc., various media that can store program code.
[0318] The above are some embodiments of the present application. It should be pointed out that for ordinary personnel in this technical field, several improvements and modifications can be made without departing from the principles described in the present application. These improvements and modifications should also be regarded as within the scope of protection of the present application.
Claims
1. A resource allocation method, characterized in that: Applied to a message sending node, the method includes: Send packets to the SRv6 policy path. The IPv6 message header of the message includes a slice identifier and a resource indication flag, and the resource indication flag is used to indicate the dynamic allocation of sub-link resources corresponding to the slice identifier to the message receiving node on the SRv6 policy path; The resource indication flag includes a resource allocation flag; The resource allocation flag is used to indicate whether to allocate corresponding sub-link resources according to the slice identifier when the message receiving node cannot obtain the sub-link resources according to the slice identifier.
2. The resource allocation method according to claim 1, characterized in that: The message includes a bidirectional detection (BFD) message.
3. The resource allocation method according to claim 1, wherein: The resource indication flag also includes a discard flag; the discard flag is used to indicate whether the message receiving node discards the message when it cannot obtain the sub-link resource according to the slice identifier.
4. The resource allocation method according to claim 3, characterized in that: When the discard flag is a first value, it indicates that the message is discarded when the sub-link resource cannot be obtained according to the slice identifier; When the discard flag is the second value, it means that when the sub-link resources cannot be obtained according to the slice identifier, the message is forwarded along the preset default path.
5. The resource allocation method according to claim 3, characterized in that: When the resource allocation flag is a first value, it indicates that when the sub-link resource cannot be obtained according to the slice identifier, the corresponding sub-link resource is allocated; When the resource allocation flag is the second value, it means that when the sub-link resource cannot be obtained according to the slice identifier, the sub-link resource will not be allocated.
6. The resource allocation method according to claim 1, wherein: The IPv6 hop-by-hop options header HBH, new HBH, or destination options header DOH of the IPv6 packet header includes a network slice identification option; Among them, the network slice identification option includes the resource indication flag.
7. The resource allocation method according to claim 1, characterized in that: The resource indication flag is recorded in the source address or flow label field of the IPv6 packet header, and the resource indication flag occupies part of the indication bits of the source address or flow label field.
8. The resource allocation method according to claim 6, characterized in that: The network slice identification option also includes: option type, option data field length and the slice identification.
9. The resource allocation method according to claim 5, characterized in that: The resource indication flag includes a discard flag and a resource allocation flag; When the discard flag is the second value and the resource allocation flag is the second value, the resource indication flag is used to indicate that when a sub-link resource cannot be obtained according to the slice identifier, the message is forwarded along a preset default path; When the discard flag is the second value and the resource allocation flag is the first value, the resource indication flag is used to indicate that when a sub-link resource cannot be obtained according to the slice identifier, the message is forwarded along a preset default path, and corresponding sub-link resources are allocated according to the resource demand corresponding to the slice identifier; When the discard flag is a first value and the resource allocation flag is a second value, the resource indication flag is used to indicate that the message is discarded when the sub-link resource cannot be obtained according to the slice identifier; When the discard flag is the first value and the resource allocation flag is the first value, the resource indication flag is used to indicate that when the sub-link resources cannot be obtained according to the slice identifier, the message is discarded, and the corresponding sub-link resources are allocated according to the resource requirements corresponding to the slice identifier.
10. The resource allocation method according to any one of claims 1 to 9, characterized in that: When the message sending node is the head node of the SRv6 policy path, sending the message to the SRv6 policy path includes: Send the first N messages to the SRv6 policy path; wherein the resource indication flag in the first N messages is used to trigger each message receiving node on the SRv6 policy path to dynamically allocate sub-link resources corresponding to the slice identifier; Sending the N+1th to Mth messages on the SRv6 policy path; wherein the resource indication flags in the N+1th to Mth messages are used to detect whether each message receiving node on the SRv6 policy path has completed the dynamic allocation of sublink resources corresponding to the slice identifier; wherein M is greater than N, and both M and N are positive integers; Send the message after the Mth message to the SRv6 policy path; wherein, the resource indication flag in the message after the Mth message is used to instruct each message receiving node to discard the message when the sub-link resource cannot be obtained according to the slice identifier.
11. The resource allocation method according to claim 10, characterized in that: The resource indication flag includes a discard flag and a resource allocation flag. When the discard flag and the resource allocation flag are respectively the first value or the second value: The resource indication flags in the first N messages are: the discard flag is the second value, and the resource allocation flag is the first value; The resource indication flags in the (N+1)th message to the (M)th message are: the discard flag is the first value, and the resource allocation flag is the first value; The resource indication flag in the message after the Mth message: the discard flag is the first value, and the resource allocation flag is the second value.
12. The resource allocation method according to claim 11, characterized in that: The method further comprises: In the process of sending the N+1th message and messages after the N+1th message on the SRv6 policy path, if a return message of the message is received, and the discard flag in the received return message is the first value, and the resource allocation flag is the first value, it is determined that the Mth message has been sent, and the next message to be sent is the M+1th message.
13. The resource allocation method according to claim 11, characterized in that: The method further comprises: In the process of sending the N+1th message and messages after the N+1th message to the SRv6 policy path, if a return message of the message is received, and the discard flag in the received return message is the first value, and the resource allocation flag is the first value, it is determined that each node of the SRv6 policy path has completed the allocation of sub-link resources.
14. A resource allocation method, characterized in that: Applied to a message receiving node, the method includes: Receive packets on the SRv6 policy path; The IPv6 message header of the message includes a slice identifier and a resource indication flag, and the resource indication flag is used to indicate to the message receiving node the dynamic allocation of sub-link resources corresponding to the slice identifier; The resource indication flag includes a resource allocation flag; The resource allocation flag is used to indicate whether to allocate corresponding sub-link resources according to the slice identifier when the message receiving node cannot obtain the sub-link resources according to the slice identifier.
15. The resource allocation method according to claim 14, characterized in that: The message includes a BFD message.
16. The resource allocation method according to claim 14, characterized in that: The resource indication flag also includes a discard flag; The discard flag is used to indicate whether the message receiving node discards the message when it cannot obtain sub-link resources according to the slice identifier.
17. The resource allocation method according to claim 16, characterized in that: When the discard flag is a first value, it indicates that the message is discarded when the sub-link resource cannot be obtained according to the slice identifier; When the discard flag is the second value, it means that when the sub-link resources cannot be obtained according to the slice identifier, the message is forwarded along the preset default path.
18. The resource allocation method according to claim 16, characterized in that: When the resource allocation flag is a first value, it indicates that when the sub-link resource cannot be obtained according to the slice identifier, the corresponding sub-link resource is allocated; When the resource allocation flag is the second value, it means that when the sub-link resource cannot be obtained according to the slice identifier, the sub-link resource will not be allocated.
19. The resource allocation method according to claim 14, characterized in that: The IPv6 HBH, new HBH or DOH of the IPv6 packet header includes a network slice identification option; Among them, the network slice identification option includes the resource indication flag.
20. The resource allocation method according to claim 14, characterized in that: The resource indication flag is recorded in the source address or flow label field of the IPv6 packet header, and the resource indication flag occupies part of the indication bits of the source address or flow label field.
21. The resource allocation method according to claim 19, characterized in that: The network slice identification option also includes: option type, option data field length and the slice identification.
22. The resource allocation method according to any one of claims 14 to 21, characterized in that: The method further comprises: In the case that the sub-link resources cannot be obtained according to the slice identifier, the message is processed according to the value indicated by the resource indication flag.
23. The resource allocation method according to claim 22, characterized in that: When the resource indication flag includes a discard flag and a resource allocation flag, performing processing on the message according to the value indicated by the resource indication flag includes: When the discard flag is the second value and the resource allocation flag is the second value, forwarding the message along a preset default path; When the discard flag is the second value and the resource allocation flag is the first value, the message is forwarded along a preset default path, and corresponding sub-link resources are allocated according to the resource requirements corresponding to the slice identifier; When the discard flag is a first value and the resource allocation flag is a second value, discarding the message; When the discard flag is the first value and the resource allocation flag is the first value, the message is discarded and the corresponding sub-link resources are allocated according to the resource requirements corresponding to the slice identifier.
24. A network node, characterized in that: The network node is a message sending node, including a transceiver, wherein the transceiver is configured as follows: Send packets to the SRv6 policy path. The IPv6 message header of the message includes a slice identifier and a resource indication flag, and the resource indication flag is used to indicate the dynamic allocation of sub-link resources corresponding to the slice identifier to the message receiving node on the SRv6 policy path; The resource indication flag includes a resource allocation flag; The resource allocation flag is used to indicate whether to allocate corresponding sub-link resources according to the slice identifier when the message receiving node cannot obtain the sub-link resources according to the slice identifier.
25. A network node, characterized in that: The network node is a message receiving node, including a transceiver, wherein the transceiver is configured as follows: Receive packets on the SRv6 policy path; The IPv6 message header of the message includes a slice identifier and a resource indication flag, and the resource indication flag is used to indicate to the message receiving node the dynamic allocation of sub-link resources corresponding to the slice identifier; The resource indication flag includes a resource allocation flag; The resource allocation flag is used to indicate whether to allocate corresponding sub-link resources according to the slice identifier when the message receiving node cannot obtain the sub-link resources according to the slice identifier.
26. A resource allocation device, characterized in that: Applicable to message sending nodes, including: A message sending unit configured to send messages to an SRv6 policy path; The IPv6 message header of the message includes a slice identifier and a resource indication flag, and the resource indication flag is used to indicate the dynamic allocation of sub-link resources corresponding to the slice identifier to the message receiving node on the SRv6 policy path; The resource indication flag includes a resource allocation flag; The resource allocation flag is used to indicate whether to allocate corresponding sub-link resources according to the slice identifier when the message receiving node cannot obtain the sub-link resources according to the slice identifier.
27. A resource allocation device, characterized in that: Applicable to message receiving nodes, including: a message receiving unit configured to receive messages on an SRv6 policy path; The IPv6 message header of the message includes a slice identifier and a resource indication flag, and the resource indication flag is used to indicate to the message receiving node the dynamic allocation of sub-link resources corresponding to the slice identifier; The resource indication flag includes a resource allocation flag; The resource allocation flag is used to indicate whether to allocate corresponding sub-link resources according to the slice identifier when the message receiving node cannot obtain the sub-link resources according to the slice identifier.
28. A network node, characterized in that: include: A processor, a memory, and a program stored in the memory and executable on the processor, wherein when the program is executed by the processor, the program implements the resource allocation method according to any one of claims 1 to 13, or implements the resource allocation method according to any one of claims 14 to 23.
29. A readable storage medium, characterized in that The readable storage medium stores a program, and when the program is executed by the processor, the program implements the steps of the resource allocation method according to any one of claims 1 to 13, or implements the steps of the resource allocation method according to any one of claims 14 to 23.
Citation Information
Patent Citations
Message processing method and device, equipment and storage medium
CN113411834A