A tunnel establishment and message transmission method and device, and a storage medium
By allocating slice resources to users during SRv6 Policy tunnel routing and carrying an identifier associated with the underlying physical link in the packet header, the problem of the inability to achieve hard isolation of tunnels in the prior art is solved, and hard slicing service for tunnel paths is realized.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-11-09
- Publication Date
- 2026-03-24
AI Technical Summary
Existing technologies cannot meet the tunnel hard isolation requirements of slicing users. Existing slicing technologies can only achieve logical isolation and cannot guarantee the exclusive use of physical resources, making it difficult to meet the stringent requirements of high-end industry customers such as 5G.
By allocating slice resources to users during SRv6 Policy tunnel routing and carrying a first identifier associated with the underlying physical link in the packet header, hard slice service is achieved, ensuring that each hop is guaranteed by the underlying physical resources.
Hard slicing service for tunnel paths is implemented, ensuring that each hop has exclusive access to underlying physical resources, solving the resource sharing problem in existing technologies, and meeting the tunnel hard isolation requirements of slicing users.
Smart Images

Figure CN116112431B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of communication technology, and in particular to a method and device for tunnel establishment and message transmission, as well as a storage medium. Background Technology
[0002] Existing slicing technologies for data bearer networks include FlexAlgo, SR-TE (Segment Routing-Traffic Engineering), and SRv6 Policy (IPv6 Segment Routing-Traffic Policy; IPv6: Internet Protocol Version 6) tunneling technologies.
[0003] The following is a brief explanation of FlexAlgo (FA) technology.
[0004] FA is based on a single topology of IGP (Interior Gateway Protocol). Each node and each L3 link corresponds to one or more FA algorithm spaces, which are published by the IGP protocol to form IGP sub-computation space.
[0005] The FA algorithm comprises three parts: MetricType, CalcType, and Constraint. Different FA algorithms result in different sub-topologies. Therefore, FlexAlgo can divide a physical network into multiple virtual networks. Under different FA slices, different SIDs (Segment Identifiers) are used for packet encapsulation, and different addresses are routed separately to guide packet forwarding within the corresponding FA slice.
[0006] The following is a brief explanation of SR-TE and SRv6 Policy technologies.
[0007] SR-TE and SRv6 Policy are source-routing tunneling technologies that can calculate a suitable segmentlist for a user within the network based on their SLA (Service-Level Agreement) requirements, such as latency and bandwidth.<SID1、SID2、…SIDn> It guides user messages to be forwarded in the network along a specified path.
[0008] The tunnel path segmentlist can be arranged using node SIDs or adjacency SIDs. When every hop SID in the path uses adjacency SIDs, the tunnel path is a strict path, with each hop specified; when some SIDs in the path use node SIDs, the tunnel path is a loose path, because there may be different reachable links between two nodes.
[0009] The shortcoming of existing technology is that it cannot meet the tunnel hard isolation requirements of slicing users. Summary of the Invention
[0010] This invention provides a method and device for tunnel establishment and message transmission, as well as a storage medium, to solve the problem of not being able to meet the tunnel hard isolation requirements of slice users.
[0011] This invention provides the following technical solutions:
[0012] A tunnel construction method, comprising:
[0013] When the controller performs SRv6 Policy tunnel routing, it allocates slice resources for the user to use on the packet forwarding path according to the user's needs.
[0014] The controller instructs each node to carry a first identifier from the selected slice resource in the packet header and to forward the packet on the slice resource corresponding to the first identifier, wherein the first identifier is associated with the underlying physical link resource.
[0015] In practice, the first identifier is carried by the 16 bits following the Flow Label field in the IPv6 header, and the type of FlowLabel can be indicated by the first 4 bits of the Flow Label field.
[0016] During implementation, it further includes:
[0017] The Router CAPABILITY TLV carries an identifier on its SRv6 Capabilities sub-TLV to indicate that the node supports forwarding plane slice processing capabilities; and / or,
[0018] The SRv6 Capability TLV of BGP-LS carries an identifier used to announce that the node has the ability to process forwarding plane slices.
[0019] During implementation, it further includes:
[0020] Each underlying physical link of each node is divided into multiple isolated sub-links, each sub-link is allocated a separate underlying physical resource, and the sub-link is identified by a second identifier.
[0021] The first identifier is associated with the underlying physical link resources and is associated with the second identifier.
[0022] During implementation, it further includes:
[0023] The sub-link resources allocated on the node exceed the needs of the slice users.
[0024] In practice, the demand information for the underlying physical link resources corresponding to the first identifier is either pre-issued to each node by the controller, or pre-configured on each node and synchronized to the controller.
[0025] During implementation, it further includes:
[0026] The controller maintains the status of each Sub-Link ID on the link based on the sub-link resource usage reported by each node via BGP-LS or Telemetry.
[0027] During implementation, it further includes:
[0028] Under the ISIS link neighbor TLV, a first sub-TLV (e.g., subLinkResource Sub-TLV) is used to advertise information about the sub-link resources of each link, including at least one of a second identifier, status, and resource information, or a combination thereof; and / or,
[0029] Under BGP-LS Link NLRI, a first TLV (e.g., subLinkResource TLV) is used to advertise information about the sublink resources of each link, including at least one of a second identifier, status, resource information, or a combination thereof.
[0030] In implementation, when allocating slice resources for use on packet forwarding paths to users based on their needs, the following steps are taken:
[0031] Based on the needs of the slice users, allocate resources identified by a first identifier to each user; unassigned first identifiers are temporarily reserved; or,
[0032] Based on the needs of the slice users, assign a first identifier for the corresponding resource to each user and save the correspondence between the two.
[0033] During implementation, it further includes:
[0034] Configure the mapping relationship between the Color template and the first identifier so that the head node device can obtain the corresponding first identifier according to the Color attribute of the SRv6Policy and carry the first identifier in the Flow Label field of the IPv6 header outside the SRv6 Policy of the forwarded packet.
[0035] During implementation, it further includes:
[0036] Receive the correspondence between the first identifier and the second identifier reported in real time by each node via Telemetry; and / or,
[0037] Receive the status change information of the resource identified by the second identifier from each node in real time via the first TLV or Telemetry of BGP-LS.
[0038] During implementation, it further includes:
[0039] Add a slice switch field to the SRv6 Policy tunnel configuration to indicate the slice support capabilities of the device and the slice resource information of each link that need to be considered when calculating the route.
[0040] A message transmission method, comprising:
[0041] Each node receives a message from the controller with the first identifier of the selected slice resource carried in the message header;
[0042] The node forwards packets on the slice resource corresponding to the first identifier, wherein the first identifier is associated with the underlying physical link resource.
[0043] In practice, the first identifier is carried by the 16 bits following the Flow Label field in the IPv6 header.
[0044] During implementation, it further includes:
[0045] The Router CAPABILITY TLV carries an identifier on its SRv6 Capabilities sub-TLV to indicate that the node supports forwarding plane slice processing capabilities; and / or,
[0046] The SRv6 Capability TLV of BGP-LS carries an identifier used to announce that the node has the ability to process forwarding plane slices.
[0047] During implementation, it further includes:
[0048] Each underlying physical link of a node is divided into multiple isolated sub-links. Each sub-link is allocated separate underlying physical resources and is identified by a second identifier.
[0049] The first identifier is associated with the underlying physical link resources and is associated with the second identifier.
[0050] In practice, the demand information for the underlying physical link resources corresponding to the first identifier is either pre-issued to each node by the controller or pre-configured on each node and synchronized to the controller.
[0051] During implementation, it further includes:
[0052] Nodes report sublink resource usage to the controller via BGP-LS or Telemetry.
[0053] During implementation, it further includes:
[0054] The receive controller defines a first Sub-TLV under the ISIS link neighbor TLV. This Sub-TLV is used to advertise sub-link resource information for each link, including at least one or a combination of a second identifier, status, and resource information; and / or,
[0055] The receive controller uses a first TLV under BGP-LS Link NLRI, which is used to advertise sublink resource information for each link, including at least one of a second identifier, status, resource information, or a combination thereof.
[0056] In implementation, when the node is the header node of the message transmission, it further includes:
[0057] The first identifier is obtained based on the Color attribute of the SRv6 Policy, and is carried in the Flow Label field of the outer IPv6 header of the SRv6Policy in the forwarded packet.
[0058] In implementation, when the node is the header node of the message transmission, it further includes:
[0059] After receiving the BGP SRv6 Policy primary / backup CP path from the controller, probe messages are sent along the primary / backup CP path respectively. The first identifier is carried in the FlowLabel field of the message header, which is used for each node to allocate path resources.
[0060] During implementation, it further includes:
[0061] The node receives a probe message, the FlowLabel field of the probe message header carries a first identifier, the node allocates path sub-link resources for the first identifier, and saves a first relationship table between the first identifier and the second identifier of the sub-link resource, and / or generates a first forwarding table.
[0062] In practice, forwarding packets on the slice resource corresponding to the first identifier is done by looking up the first relation table or the first forwarding table and forwarding the packets through the corresponding interface.
[0063] During implementation, it further includes:
[0064] The node reports the correspondence between the first identifier and the second identifier to the controller in real time via Telemetry; and / or,
[0065] The node reports the status change information of the resource identified by the second identifier to the controller in real time through the first TLV or Telemetry of BGP-LS.
[0066] A controller, comprising:
[0067] When performing SRv6 Policy tunnel routing, the slice resources used on the packet forwarding path are allocated to the user according to the user's needs.
[0068] Each node is instructed to carry a first identifier from the selected slice resource in the packet header and to forward the packet on the slice resource corresponding to the first identifier, wherein the first identifier is associated with the underlying physical link resource;
[0069] A transceiver is used to receive and send data under the control of a processor.
[0070] In practice, the first identifier is carried by the 16 bits following the Flow Label field in the IPv6 header.
[0071] During implementation, it further includes:
[0072] The Router CAPABILITY TLV carries an identifier on its SRv6 Capabilities sub-TLV to indicate that the node supports forwarding plane slice processing capabilities; and / or,
[0073] The SRv6 Capability TLV of BGP-LS carries an identifier used to announce that the node has the ability to process forwarding plane slices.
[0074] During implementation, it further includes:
[0075] Each underlying physical link of each node is divided into multiple isolated sub-links, each sub-link is allocated a separate underlying physical resource, and the sub-link is identified by a second identifier.
[0076] The first identifier is associated with the underlying physical link resources and is associated with the second identifier.
[0077] During implementation, it further includes:
[0078] The sub-link resources allocated on the node exceed the needs of the slice users.
[0079] In practice, the demand information for the underlying physical link resources corresponding to the first identifier is either pre-issued to each node by the controller or pre-configured on each node and synchronized to the controller.
[0080] During implementation, it further includes:
[0081] The status of each Sub-Link ID on the link is maintained based on the sub-link resource usage reported by each node via BGP-LS or Telemetry.
[0082] During implementation, it further includes:
[0083] Define a first Sub-TLV (e.g., subLinkResource Sub-TLV) under the ISIS Link Neighbor TLV. This Sub-TLV is used to advertise sub-link resource information for each link, including at least one or a combination of a second identifier, status, and resource information; and / or,
[0084] Under BGP-LS Link NLRI, a first TLV (e.g., subLinkResource TLV) is used to advertise sublink resource information for each link, including at least one of a second identifier, status, resource information, or a combination thereof.
[0085] In implementation, when allocating slice resources for use on packet forwarding paths to users based on their needs, the following steps are taken:
[0086] Based on the needs of the slice users, allocate resources identified by a first identifier to each user; unassigned first identifiers are temporarily reserved; or,
[0087] Based on the needs of the slice users, assign a first identifier for the corresponding resource to each user and save the correspondence between the two.
[0088] During implementation, it further includes:
[0089] Configure the mapping relationship between the Color template and the first identifier so that the head node device can obtain the corresponding first identifier according to the Color attribute of the SRv6Policy and carry the first identifier in the Flow Label field of the IPv6 header outside the SRv6 Policy of the forwarded packet.
[0090] During implementation, it further includes:
[0091] Receive the correspondence between the first identifier and the second identifier reported in real time by each node via Telemetry; and / or,
[0092] Receive the status change information of the resource identified by the second identifier from each node in real time via the first TLV or Telemetry of BGP-LS.
[0093] During implementation, it further includes:
[0094] Add a slice switch field to the SRv6 Policy tunnel configuration to indicate the slice support capabilities of the device and the slice resource information of each link that need to be considered when calculating the route.
[0095] A controller, comprising:
[0096] The controller resource module is used to allocate the first identifier used on the packet forwarding path to the user according to the user's needs when performing SRv6 Policy tunnel routing calculation.
[0097] The controller instruction module is used to instruct each node to carry a first identifier in the selected slice resource in the packet header and to forward the packet on the slice resource corresponding to the first identifier, wherein the first identifier is associated with the underlying physical link resource.
[0098] In implementation, the controller indication module is further used to indicate that an identifier is carried on the SRv6Capabilities sub-TLV of the Router CAPABILITY TLV to indicate that the node supports forward plane slicing capabilities; and / or, to carry an identifier on the SRv6 Capability TLV of the BGP-LS to announce that the node has forward plane slicing capabilities.
[0099] In implementation, the controller resource module is further used to divide each underlying physical link of each node into multiple isolated sub-links, allocate separate underlying physical resources to each sub-link, and identify the sub-links with a second identifier;
[0100] The first identifier is associated with the underlying physical link resources and is associated with the second identifier.
[0101] In practice, the controller resource module is further used to allocate more sub-link resources on nodes than the slice users require.
[0102] In practice, the controller instruction module is further used to obtain the demand information of the underlying physical link resources corresponding to the first identifier, or to receive the demand information of the underlying physical link resources corresponding to the first identifier that is pre-configured on each node and synchronized to the controller.
[0103] During implementation, it further includes:
[0104] The controller maintenance module is used to maintain the status of each Sub-Link ID on the link based on the sub-link resource usage reported by each node via BGP-LS or Telemetry.
[0105] In implementation, the controller resource module is further used to define a first Sub-TLV under the ISIS link neighbor TLV. This Sub-TLV is used to advertise sub-link resource information for each link, including at least one or a combination of a second identifier, status, and resource information; and / or,
[0106] Under BGP-LS Link NLRI, a first TLV is used to advertise sublink resource information for each link, including at least one of a second identifier, status, resource information, or a combination thereof.
[0107] In implementation, the controller resource module is further used to allocate resources identified by a first identifier to each user according to the needs of the slice users, and the unallocated first identifiers are temporarily reserved; or, according to the needs of the slice users, allocate a first identifier corresponding to a resource to each user and save the correspondence between the two.
[0108] In implementation, the controller resource module is further used to configure the mapping relationship between the Color template and the first identifier, so that the head node device can obtain the corresponding first identifier according to the Color attribute of the SRv6 Policy, and carry the first identifier in the Flow Label field of the outer IPv6 header of the forwarded packet of the SRv6 Policy.
[0109] In implementation, the controller maintenance module is further used to receive the correspondence between the first identifier and the second identifier reported in real time by each node through Telemetry; and / or, to receive the status change information of the resource identified by the second identifier reported in real time by each node through the first TLV or Telemetry of BGP-LS.
[0110] In implementation, the controller maintenance module is further used to add a slice switch field to the SRv6 Policy tunnel configuration, which is used to indicate the slice support capability of the device and the slice resource information of each link that need to be considered when calculating the route.
[0111] A node includes:
[0112] The processor is used to read programs from memory and execute the following procedures:
[0113] Each node receiving the controller's instruction carries the first identifier of the selected slice resource in the message header;
[0114] Forward packets on the slice resource corresponding to the first identifier, wherein the first identifier is associated with the underlying physical link resource;
[0115] A transceiver is used to receive and send data under the control of a processor.
[0116] In practice, the first identifier is carried by the 16 bits following the Flow Label field in the IPv6 header.
[0117] During implementation, it further includes:
[0118] The Router CAPABILITY TLV carries an identifier on its SRv6 Capabilities sub-TLV to indicate that the node supports forwarding plane slice processing capabilities; and / or,
[0119] The SRv6 Capability TLV of BGP-LS carries an identifier used to announce that the node has the ability to process forwarding plane slices.
[0120] During implementation, it further includes:
[0121] Each underlying physical link of a node is divided into multiple isolated sub-links. Each sub-link is allocated separate underlying physical resources and is identified by a second identifier.
[0122] The first identifier is associated with the underlying physical link resources and is associated with the second identifier.
[0123] In practice, the demand information for the underlying physical link resources corresponding to the first identifier is either pre-issued to each node by the controller or pre-configured on each node and synchronized to the controller.
[0124] During implementation, it further includes:
[0125] The system reports the sub-link resource usage to the controller via BGP-LS or Telemetry.
[0126] During implementation, it further includes:
[0127] The receive controller defines a first Sub-TLV (e.g., subLinkResource Sub-TLV) under the ISIS link neighbor TLV. This Sub-TLV is used to advertise sub-link resource information for each link, including at least one or a combination of a second identifier, status, and resource information; and / or,
[0128] The receive controller uses a first TLV (e.g., subLinkResource TLV) under BGP-LS Link NLRI. This TLV is used to advertise sublink resource information for each link, including at least one or a combination of a second identifier, status, and resource information.
[0129] In implementation, when the node is the header node of the message transmission, it further includes:
[0130] The first identifier is obtained based on the Color attribute of the SRv6 Policy, and is carried in the Flow Label field of the outer IPv6 header of the SRv6Policy in the forwarded packet.
[0131] In implementation, when the node is the header node of the message transmission, it further includes:
[0132] After receiving the BGP SRv6 Policy primary / backup CP path from the controller, probe messages are sent along the primary / backup CP path respectively. The first identifier is carried in the FlowLabel field of the message header, which is used for each node to allocate path resources.
[0133] During implementation, it further includes:
[0134] The node receives a probe message, the FlowLabel field of the probe message header carries a first identifier, the node allocates path sub-link resources for the first identifier, and saves a first relationship table between the first identifier and the second identifier of the sub-link resource, and / or generates a first forwarding table.
[0135] In practice, forwarding packets on the slice resource corresponding to the first identifier is done by looking up the first relation table or the first forwarding table and forwarding the packets through the corresponding interface.
[0136] During implementation, it further includes:
[0137] The mapping between the first and second identifiers is reported to the controller in real time via telemetry; and / or,
[0138] The first TLV or Telemetry of BGP-LS reports the status change information of the resource identified by the second identifier to the controller in real time.
[0139] A node includes:
[0140] The node receiving module is used to receive the first identifier of the selected slice resource carried in the message header by each node as instructed by the controller.
[0141] The node transmission module is used to forward packets on the slice resource corresponding to the first identifier, wherein the first identifier is associated with the underlying physical link resource.
[0142] In practice, the node transmission module is further used to carry the first identifier via the 16 bits following the Flow Label field in the IPv6 packet header.
[0143] In implementation, the node transmission module is further used to carry an identifier on the SRv6Capabilities sub-TLV of the Router CAPABILITY TLV that indicates that the node supports forwarding plane slicing capabilities; and / or, to carry an identifier on the SRv6 Capability TLV of the BGP-LS that announces that the node has forwarding plane slicing capabilities.
[0144] During implementation, it further includes:
[0145] The node link module is used to divide each underlying physical link into multiple isolated sub-links. Each sub-link is allocated separate underlying physical resources and is identified by a second identifier.
[0146] The first identifier is associated with the underlying physical link resources and is associated with the second identifier.
[0147] In practice, the node receiving module is further used to receive the underlying physical link resource requirement information corresponding to the first identifier pre-issued by the controller to the node, or the underlying physical link resource requirement information pre-configured on each node and synchronized to the controller.
[0148] During implementation, it further includes:
[0149] The node reporting module is used to report the resource usage of sub-links to the controller via BGP-LS or Telemetry.
[0150] In implementation, the node receiving module is further used to receive a first Sub-TLV (e.g., subLinkResource Sub-TLV) defined by the controller under the ISIS link neighbor TLV. This Sub-TLV is used to advertise sub-link resource information for each link, including at least one or a combination of a second identifier, status, and resource information; and / or,
[0151] The receive controller uses a first TLV (e.g., subLinkResource TLV) under BGP-LS Link NLRI. This TLV is used to advertise sublink resource information for each link, including at least one or a combination of a second identifier, status, and resource information.
[0152] In practice, the node transmission module is further used to obtain the corresponding first identifier based on the Color attribute of SRv6Policy when the node is the header node of the packet transmission, and to carry the first identifier in the Flow Label field of the IPv6 header outside the SRv6 Policy of the forwarded packet.
[0153] In practice, the node transmission module is further used to send probe messages along the primary and backup CP paths after receiving the BGP SRv6 Policy primary and backup CP paths issued by the controller when the node is the head node of the message transmission. The first identifier is carried in the FlowLabel field of the message header for each node to allocate path resources.
[0154] In implementation, the node receiving module is further used to receive probe messages. The FlowLabel field of the probe message header carries a first identifier. The node allocates path sub-link resources for the first identifier and saves a first relationship table between the first identifier and the second identifier of the sub-link resource, and / or generates a first forwarding table, such as a sub-interface forwarding table.
[0155] In practice, the node transmission module is further used to forward packets on the slice resource corresponding to the first identifier by looking up the first relation table or the first forwarding table to forward the packets through the corresponding interface.
[0156] In practice, the node reporting module is further used to report the correspondence between the first identifier and the second identifier to the controller in real time via Telemetry; and / or, to report the status change information of the resource identified by the second identifier to the controller in real time via the first TLV or Telemetry of BGP-LS.
[0157] A computer-readable storage medium storing a computer program that performs the aforementioned tunnel establishment method on the controller side and / or message transmission method on the node side.
[0158] The beneficial effects of this invention are as follows:
[0159] In the technical solution provided by this invention, during SRv6 Policy tunnel routing, slice resources are allocated to users for use on the packet forwarding path. Each node carries a first identifier in the selected slice resource in the packet header and forwards the packet on the slice resource corresponding to the first identifier. Since the first identifier is associated with the underlying physical link resources, the required slice resources are dynamically selected during SRv6 Policy tunnel routing to ensure that each hop of the tunnel path is guaranteed and exclusively used by the underlying physical resources, thereby realizing the hard slice service of the bearer network and meeting the tunnel hard isolation requirements of slice users.
[0160] Specifically, it enables exclusive use of resources for each slice on the same physical link. Compared with the existing FlexAlgo technology, it can solve the problems that each slice in FlexAlgo can only exclusively use one physical link, the isolation granularity is coarse, the existing network resources are basically insufficient, and it is impossible to deploy hard isolation of slices on a large scale.
[0161] It can provide underlying physical resource guarantees for slicing, realize hard slicing, and compared with existing SR-TE and SR Policy technologies, it can solve the problem of soft isolation through tunnels and complete sharing of physical resources. Attached Figure Description
[0162] The accompanying drawings, which are included to provide a further understanding of the invention and form part of this invention, illustrate exemplary embodiments of the invention and are used to explain the invention, but do not constitute an undue limitation of the invention. In the drawings:
[0163] Figure 1 This is a schematic diagram of the implementation process of the tunnel establishment method on the controller side in an embodiment of the present invention;
[0164] Figure 2 This is a schematic diagram illustrating the implementation process of the message transmission method on the node side in an embodiment of the present invention;
[0165] Figure 3 This is a schematic diagram showing the position of the slice ID in the IPv6 header in an embodiment of the present invention;
[0166] Figure 4 This is a schematic diagram of the Flow Label field format in an embodiment of the present invention;
[0167] Figure 5 This is a schematic diagram of the ISIS SRv6 Capabilities sub-TLV structure extension in an embodiment of the present invention;
[0168] Figure 6 This is a schematic diagram of the BGP-LS SRv6 Capabilities sub-TLV structure extension in an embodiment of the present invention;
[0169] Figure 7 This is a schematic diagram of the subLinkResource Sub-TLV structure in an embodiment of the present invention. Figure 1 ;
[0170] Figure 8 This is a schematic diagram of the subLinkResource Sub-TLV structure in an embodiment of the present invention. Figure 2 ;
[0171] Figure 9 This is a schematic diagram of the topology in an embodiment of the present invention;
[0172] Figure 10 This is a schematic diagram illustrating the allocation of End SID and End.X SID for each device in an embodiment of the present invention;
[0173] Figure 11 This is a schematic diagram of the SRv6 Policy tunnel forwarding process for sliced user 3 packets in an embodiment of the present invention;
[0174] Figure 12 This is a schematic diagram of the controller structure in an embodiment of the present invention;
[0175] Figure 13 This is a schematic diagram of the node structure in an embodiment of the present invention. Detailed Implementation
[0176] The inventor noticed the following during the invention process:
[0177] FlexAlgo slicing technology can only guarantee node selection and physical link selection, achieving coarse-grained slicing at the physical port level. However, in the current network, it is impossible to guarantee that there are multiple links between all nodes. Therefore, it cannot guarantee the exclusive use of slice resources end-to-end. Furthermore, slice users can only exclusively use a certain physical link, and it is impossible to allocate multiple sub-link resources to different slice users. Therefore, it will cause great resource waste in scenarios with physical isolation slice requirements, and is basically unusable.
[0178] SR-TE and SRv6 Policy are merely source routing tunneling technologies that can only solve the problem of packet forwarding path selection. Resources on each physical link along the forwarding path are still shared. They only achieve logical isolation and cannot achieve hard isolation of slice resources. They cannot guarantee exclusive access to the physical resources required by slice users and are difficult to meet the stringent requirements of high-end industry customers such as 5G.
[0179] Based on this, this embodiment of the invention provides a scheme to introduce a first identifier into the forwarding plane. By carrying the first identifier in the forwarding packet, the first identifier is associated with the underlying physical sub-link resources of the device, thereby realizing a tunnel with exclusive access to the underlying physical resources that can be deployed at scale. This satisfies the tunnel hard isolation requirements of each slice user, ensures a good service experience for high-value services, and enhances network value.
[0180] The specific embodiments of the present invention will now be described with reference to the accompanying drawings.
[0181] In this explanation, the implementation will be described separately from the controller and node sides. Examples of their combined implementation will also be provided to better understand the implementation of the solutions presented in this embodiment. This explanation does not imply that the two must be implemented together or separately. In fact, when the controller and node are implemented separately, they each solve their own problems. However, combining them will achieve better technical results.
[0182] Figure 1 A schematic diagram of the implementation process for establishing a tunnel on the controller side is shown in the figure, which may include:
[0183] Step 101: When the controller performs SRv6 Policy tunnel routing calculation, it allocates slice resources used on the packet forwarding path to the user according to the user's needs.
[0184] Step 102: The controller instructs each node to carry the first identifier of the selected slice resource in the packet header and forward the packet on the slice resource corresponding to the first identifier, wherein the first identifier is associated with the underlying physical link resource.
[0185] Figure 2 The diagram illustrates the implementation flow of the message transmission method on the node side, and may include:
[0186] Step 201: Each node receives the first identifier from the selected slice resource carried in the message header as instructed by the controller.
[0187] Step 202: The node forwards the packet on the slice resource corresponding to the first identifier, wherein the first identifier is associated with the underlying physical link resource.
[0188] In the embodiment description, since the first identifier mainly involves the identification of slice resources, for better understanding, the first identifier will be mainly described using slice ID or SliceID as an example.
[0189] Specifically, the proposed solution is a resource-guaranteed bearer network slicing scheme based on SRv6 tunneling technology combined with forwarding plane slice IDs. By associating slice IDs with the underlying physical link resources, the required slice resources (associated with slice IDs) are dynamically selected during SRv6 Policy tunnel routing, and the slice IDs are carried in the forwarding plane. This ensures that each hop of the tunnel path has guaranteed and exclusive access to underlying physical resources, thereby realizing hard slicing services for the bearer network.
[0190] The implementation of each part is explained below.
[0191] (1) Implementation of the format of SliceID.
[0192] In practice, the first identifier is carried by the 16 bits following the Flow Label field in the IPv6 header.
[0193] Specifically, the 20-bit Flow Label field in the IPv6 header can be used for slicing. The high 4 bits are used to identify the type, and if it is a slice type, the following 16 bits are used to carry the SliceID.
[0194] The high 4 bits of the Flow Label field indicate the type of FlowLabel, indicating that it is a slice type. Then, based on the SliceID value carried by the low 16 bits of the FlowLabel and the destination address information, the sub-interface forwarding table is looked up, and the packet is forwarded out through the corresponding sub-interface resource.
[0195] Figure 3 This diagram illustrates the location of the SliceID in the IPv6 header. The location of the SliceID is shown in the black box in the diagram.
[0196] Figure 4 The diagram illustrates the format of a Flow Label field. The format for a newly defined Flow Label field is as follows:
[0197] FL Type (4 bits): Indicates the type of FlowLabel;
[0198] FL Value (16 bits): FlowLabel value. If the high 4 bits identify the slice type, the following 16 bits carry the SliceID.
[0199] Because the SliceID occupies all 20 bits of the Flow Label fields, ECMP (Equal-cost Multipath Routing) cannot be used in slice scenarios. Considering that traffic in a slice should be forwarded along the strictly specified path of the SRv6 Policy, each SRv6 Policy's primary and backup CP (CandidatePath) has only one Segmentlist, eliminating the need to consider load balancing.
[0200] (2) Implementation of equipment slicing capability announcement.
[0201] In practice, it may further include:
[0202] The Router CAPABILITY TLV carries an identifier on its SRv6 Capabilities sub-TLV to indicate that the node supports forwarding plane slice processing capabilities; and / or,
[0203] The SRv6 Capability TLV of BGP-LS carries an identifier used to announce that the node has the ability to process forwarding plane slices.
[0204] 1) Figure 5 The diagram shows an extension of the ISIS SRv6 Capabilities sub-TLV structure. As shown in the figure, the SRv6 Capabilities sub-TLV of the RouterCAPABILITY TLV (Tag, Length, Value) of ISIS (Intermediate System to Intermediate System) can be extended by adding a Q-flag to indicate that the device supports forwarding plane slicing capabilities.
[0205] 2) Figure 6 The diagram shows the extension of the BGP-LS SRv6 Capabilities sub-TLV structure. As shown in the figure, the SRv6 CapabilityTLV of BGP-LS (BGP Link State; BGP: Border Gateway Protocol) can be extended by adding a Q-flag, which enables the advertising node to have forwarding plane slicing capabilities.
[0206] (3) Implementation of resource allocation and status maintenance corresponding to Sub-Link ID.
[0207] In practice, it may further include:
[0208] Each underlying physical link of each node is divided into multiple isolated sub-links, each sub-link is allocated a separate underlying physical resource, and the sub-link is identified by a second identifier.
[0209] The first identifier is associated with the underlying physical link resources and is associated with the second identifier.
[0210] For the node side, it can further include:
[0211] Each underlying physical link of a node is divided into multiple isolated sub-links. Each sub-link is allocated separate underlying physical resources and is identified using a second identifier.
[0212] The first identifier is associated with the underlying physical link resources, and is associated with the first identifier.
[0213] In practice, for ease of understanding, the second identifier will primarily use the sub-link identifier (Sub-LinkID) for explanation.
[0214] Specifically, the controller can divide each physical link of all devices into multiple isolated sub-links and allocate separate underlying physical resources to each sub-link, such as MTN (Metro transport network) sub-interfaces, VLAN (Virtual Local Area Network) enhanced sub-interfaces, Channelized sub-interface resources, FlexE (Flex Ethernet) sub-interfaces, independent QoS (Quality of Service) queues, etc., and identify them through Sub-Link IDs. The sub-link identifier is 4 bytes long, where the low bits represent the sub-link resource ID, such as MTNID, VLANID, ChannelID, FlexEID, QoSQueID. If the sub-link resource ID is less than 32 bits, the high bits can be padded with 0.
[0215] Taking the sub-link resource as a channelized sub-interface as an example, the following is an example (for simplicity, each number in the table below represents an 8-bit decimal value):
[0216] Table 1: Sub-Link ID Physical Resource Allocation Table
[0217]
[0218]
[0219] The physical resource attributes corresponding to each of the above sub-links can be flexibly defined on the controller.
[0220] In practice, it may further include:
[0221] The sub-link resources allocated on the node exceed the needs of the slice users.
[0222] Specifically, a certain percentage more sub-link resources than the actual slice user demand can be pre-allocated on the device (e.g., 100M / 200M / 500M, etc., with the total not exceeding the total bandwidth of the physical link), so that when new users arrive, the underlying sub-link resources are already available and the service can be quickly activated.
[0223] 1. To ensure compatibility with various types of underlying resources, a Sub-Link ID is introduced; alternatively, the Sub-Link ID can be omitted, and the Channel ID can be used directly to identify the specific sub-link.
[0224] 2. You can also configure other physical resources besides Bandwidth for MTN sub-interfaces / VLAN enhanced sub-interfaces / Channel channelization sub-interface resources / FlexE sub-interfaces / independent QoS queues. Here, we will only use bandwidth resources as an example.
[0225] In practice, the demand information for the underlying physical link resources corresponding to the first identifier is either pre-issued to each node by the controller or pre-configured on each node and synchronized to the controller.
[0226] Specifically, the controller can flexibly define the physical resource attributes corresponding to each of the above sub-links, and distribute the configuration of the above correspondence to each device in the network. The device executes the relevant configuration locally and stores the above correspondence.
[0227] For example, static planning can be used to determine the relationship between slice ID ranges and slice resources. For instance, slice IDs 1-500 correspond to a 100M bandwidth resource requirement, slice IDs 501-1000 correspond to a 200M bandwidth resource requirement, and slice IDs 1001-1500 correspond to a 300M bandwidth resource requirement, and so on.
[0228] In implementation, the node side can further include:
[0229] Nodes report sublink resource usage to the controller via BGP-LS or Telemetry.
[0230] For the controller side, it can further include:
[0231] The controller maintains the status of each Sub-Link ID on the link based on the sub-link resource usage reported by each node via BGP-LS or Telemetry.
[0232] Specifically, the controller is responsible for maintaining the status of each Sub-Link ID on the link, such as idle, pre-occupied, occupied, etc., and updating its status in real time based on the Sub-Link ID occupancy status reported by the device through BGP-LS or Telemetry (telemetry system), thereby calculating the remaining resource status of each link.
[0233] (4) Implementation of link slicing information notification.
[0234] In practice, it may further include:
[0235] Define a first Sub-TLV under the ISIS Link Neighbor TLV. This Sub-TLV is used to advertise sub-link resource information for each link, including at least one or a combination of a second identifier, status, and resource information; and / or,
[0236] Under BGP-LS Link NLRI, a first TLV is used to advertise sublink resource information for each link, including at least one of a second identifier, status, resource information, or a combination thereof.
[0237] In practice, for ease of understanding, the first Sub-TLV will be mainly described using the subLinkResource Sub-TLV, and the first TLV will be mainly described using the subLinkResource TLV.
[0238] For the node side, we have:
[0239] The receive controller defines a first Sub-TLV (e.g., subLinkResource Sub-TLV) under the ISIS link neighbor TLV. This Sub-TLV is used to advertise sub-link resource information for each link, including at least one or a combination of a second identifier, status, and resource information; and / or,
[0240] The receive controller uses a first TLV (e.g., subLinkResource TLV) under BGP-LS Link NLRI. This TLV is used to advertise sublink resource information for each link, including at least one or a combination of a second identifier, status, and resource information.
[0241] 1) Define a new sub-TLV under the ISIS link neighbor TLV: subLinkResource.
[0242] Figure 7 Schematic diagram of subLinkResource Sub-TLV structure Figure 1 As shown in the figure, the subLinkResource Sub-TLV is used to announce the information of the slice sub-link resource Sub-Link ID for each link.
[0243] Type (8-bit): TBD (to be decided) pending application;
[0244] Length (8 bits): Message length, excluding Type and Length;
[0245] Flags (8-bit):
[0246] Abit: When set, it indicates that a new sub-link has been added, with Sub-sub-TLV information;
[0247] Dbit: When set, it indicates that the sub-link has been deleted and there is no Sub-sub-TLV information;
[0248] Sbit: When set, it indicates that the sub-link status has been modified, and there is no Sub-sub-TLV information.
[0249] Mbit: After setting, it indicates that the sub-link information has been modified, and there is Sub-sub-TLV information;
[0250] Status (8 bits): Sub-link status, such as idle, occupied, etc.;
[0251] Sub-Link ID (128-bit): Sub-link identifier;
[0252] Optional Sub-sub-TLVs: Carry slice resource information (maximum reserved link bandwidth, latency, link packet loss rate, etc.) for each sub-link ID. At least the existing sub-TLVs defined in RFC8570 can be reused, as shown in the table below.
[0253]
[0254] in: Figure 8 Schematic diagram of subLinkResource Sub-TLV structure Figure 2 As shown in the figure, Optional Sub-sub-TLVs can also be filled in directly using Bandwidth / Delay / ...
[0255] 2) Define a new subLinkResource TLV under BGP-LS Link NLRI (Network Layer Reachability Information).
[0256] The subLinkResource TLV is used to advertise the Sub-Link ID of the sliced sub-link resource for each link. The newly defined structure and description of each field are the same as " Figure 7 and Figure 8 The subLinkResource Sub-TLV structure.
[0257] (5) Implementation of SliceID allocation and status maintenance.
[0258] In implementation, when allocating slice resources for use on packet forwarding paths to users based on their needs, the following steps are taken:
[0259] Based on the needs of the slice users, allocate resources identified by a first identifier to each user; unassigned first identifiers are temporarily reserved; or,
[0260] Based on the needs of the slice users, assign a first identifier for the corresponding resource to each user and save the correspondence between the two.
[0261] Method 1: The controller allocates forwarding plane SliceID resources and corresponding bandwidth information to each user according to the needs of the slice users. Unallocated SliceIDs are temporarily reserved.
[0262] Table 2: Resource Requirement Allocation Table Corresponding to SliceID in Forwarding Plane
[0263] Forwarding SliceID Required bandwidth (G) state Slice users 1 100M Already occupied User 1 2 100M Already occupied User 2 3 200M Pre-occupancy User 3 4 100M Already occupied User 4 5 200M Pre-occupancy User 5 6 500M Already occupied User 6 7 Unallocated Unallocated … … …
[0264] The SliceIDs in the table above that have not yet been allocated bandwidth need to be updated in real time according to the bandwidth requirements of newly added slice users. The controller is responsible for maintaining this dynamically updated table and synchronously sending the above information to each device for storage. The status of the SliceID includes idle, pre-occupied, occupied, and unallocated.
[0265] Method 2: Static planning of the relationship between SliceID ranges and slice resource bandwidth, for example, SliceID 1-500 corresponds to 100M, 501-1000 corresponds to 200M, 1001-1500 corresponds to 300M, and so on. The controller assigns a corresponding SliceID to each user based on the user's needs and saves the correspondence between the two.
[0266] (6) Implementation of forwarding plane SliceID carrying.
[0267] In practice, it may further include:
[0268] Configure the mapping relationship between the Color template and the first identifier so that the head node device can obtain the corresponding first identifier according to the Color attribute of the SRv6Policy and carry the first identifier in the Flow Label field of the IPv6 header outside the SRv6 Policy of the forwarded packet.
[0269] For the node side, when the node is the header node of the message transmission, it can further include:
[0270] The first identifier is obtained based on the Color attribute of the SRv6 Policy, and is carried in the Flow Label field of the outer IPv6 header of the SRv6Policy in the forwarded packet.
[0271] Specifically, the mapping relationship between the Color template and the forwarding plane SliceID can be configured in advance. The head node device obtains the corresponding SliceID based on the Color attribute of the SRv6 Policy and carries the SliceID information in the Flow Label field of the IPv6 header outside the SRv6 Policy of the forwarding packet.
[0272] (7) Implementation of the basic configuration of the SRv6 Policy tunnel.
[0273] In practice, it may further include:
[0274] Add a slice switch field to the SRv6 Policy tunnel configuration to indicate the slice support capabilities of the device and the slice resource information of each link that need to be considered when calculating the route.
[0275] Specifically, a slice enable field, SliceEnable, can be added to the basic configuration of the SRv6 Policy tunnel to indicate the slice support capability of the device and the slice resource information of each link that need to be considered when calculating the route.
[0276] For slice users, the controller can allocate a new SliceID resource to a new user based on their service requirements (bandwidth, latency, etc.) and set the corresponding SliceID and color template. The controller uses the corresponding color template in the SRv6Policy tunnel basic configuration sent to the device, and adds a slice enable field SliceEnable, setting its value to true.
[0277] When the SliceEnable parameter is set to true, it indicates that the tunnel's path calculation is enabled by slice resources, and the path calculation constraint is a strict path (if not, a tunnel parameter configuration error alarm will be provided). In this case, when performing SRv6Policy path calculation, the tunnel's strict path calculation needs to be performed by combining the device's slice support capabilities and the slice resource information of each link (the status, bandwidth, and latency of the slice sub-link ID).
[0278] When SliceEnable is set to false, it is the traditional routing mode, which does not require considering the link slice resource information for routing.
[0279] (8) Implementation of the association between the SliceID and Sub-Link ID of the SRv6 Policy tunnel.
[0280] In implementation, when the node is the header node of the message transmission, it may further include:
[0281] After receiving the BGP SRv6 Policy primary / backup CP path from the controller, probe messages are sent along the primary / backup CP path respectively. The first identifier is carried in the FlowLabel field of the message header, which is used for each node to allocate path resources.
[0282] For nodes on the path, it can further include:
[0283] The node receives a probe message, the FlowLabel field of the probe message header carries a first identifier, the node allocates path sub-link resources for the first identifier, and saves a first relationship table between the first identifier and the second identifier of the sub-link resource, and / or generates a first forwarding table.
[0284] In practice, forwarding packets on the slice resource corresponding to the first identifier is done by looking up the first relationship table or the first forwarding table to forward the packet through the corresponding interface. For example, the packet can be forwarded through the corresponding sub-interface by looking up the sub-interface forwarding table.
[0285] In practice, for ease of understanding, the first relationship table or the first forwarding table will be explained primarily using the sub-interface forwarding table.
[0286] Specifically, when the head node device of the SRv6 Policy tunnel receives the BGP SRv6Policy primary and backup CP path issued by the controller, it checks the SliceEnable field in the tunnel's basic configuration. If it is true, it sends a probe message along the primary and backup CP paths, such as an SBFD for path message or a custom special message. The lower 16 bits of the FlowLabel field in the message header carry the value of SliceID, and the higher 4 bits of FlowLabel are set to slice type.
[0287] Devices along the primary / backup CP path determine the outgoing interface based on the destination address field of the packet, and then obtain the resource requirements of the slice user based on the SliceID carried in the packet header; and allocate a Sub-Link ID to the SliceID from the idle sub-link resources on the outgoing interface.
[0288] The devices along the route determine the corresponding sub-interface physical resources based on the Sub-Link ID, such as MTN sub-interface, VLAN enhanced sub-interface, Channelized sub-interface resources, FlexE sub-interface, independent QoS queue, etc., and save the correspondence between SliceID and Sub-Link ID locally, and generate a forwarding table based on the sub-interface.
[0289] Table 3: Correspondence between SliceID and Sub-Link ID
[0290] SliceID Sub-Link ID 1 0001 2 0002 3 0005 4 0003 5 0006 6 0008 …… ……
[0291] Table 4: Sub-interface forwarding table
[0292] Prefix Nexthop OutIf SliceID ChannelID E3:1:: / 64 X3:1:1::100 GE0 / 1 / 0 1 001 E3:1:: / 64 X3:1:1::100 GE0 / 1 / 0 2 002 E3:1:: / 64 X3:1:1::100 GE0 / 1 / 0 3 005 E3:1:: / 64 X3:1:1::100 GE0 / 1 / 0 4 003 E3:1:: / 64 X3:1:1::100 GE0 / 1 / 0 5 006 E3:1:: / 64 X3:1:1::100 GE0 / 1 / 0 6 008
[0293] In practice, it may further include:
[0294] Receive the correspondence between the first identifier and the second identifier reported in real time by each node via Telemetry; and / or,
[0295] Receive the status change information of the resource identified by the second identifier from each node in real time via the first TLV or Telemetry of BGP-LS.
[0296] For the node side, it can further include:
[0297] The node reports the correspondence between the first identifier and the second identifier to the controller in real time via Telemetry; and / or,
[0298] The node reports the status change information of the resource identified by the second identifier to the controller in real time through the first TLV or Telemetry of BGP-LS.
[0299] Specifically, each device will update the status of its corresponding Sub-Link ID to "occupied"; and report the mapping relationship between SliceID and Sub-Link ID to the controller in real time via Telemetry. The Sub-Link ID status change information will also be reported to the controller in real time via the newly defined subLinkResource Sub-TLV or Telemetry in BGP-LS.
[0300] After the probe message arrives at the tail node of the SRv6 Policy tunnel, all devices along the way have established the association between the SliceID and the Sub-Link ID, and generated a forwarding table based on the sub-interface.
[0301] (9) Implementation of the slice user message forwarding mechanism on the forwarding device.
[0302] After receiving the tunnel path segmentlist from the controller, the tunnel head node device checks the SliceEnable field in the tunnel basic configuration. If it is true, it writes the corresponding SliceID into the lower 16 bits of the FlowLabel in the outer IPv6 header according to the color information of the SRv6 Policy, and sets the higher 4 bits of the FlowLabel to the slice type.
[0303] The forwarding devices along the tunnel route determine the outgoing interface based on the destination address field in the packet header. Based on the high 4 bits of the FlowLabel field, they know that the packet is a slice type. Therefore, based on the SliceID in the low 16 bits of the FlowLabel field, they look up the local sub-interface forwarding table, determine the sub-interface on the outgoing interface, and forward the packet out through the corresponding sub-interface.
[0304] The following example illustrates this.
[0305] 1) Network configuration instructions.
[0306] Assume there are devices A, B, C, D, E, F, G, and H in the network, running the ISIS dynamic routing protocol, all within the same ISIS domain, and all devices support slicing capabilities.
[0307] The SDN (Software Defined Network) controller establishes a BGP-LS connection with the forwarding device.
[0308] Figure 9 The diagram shows the topology structure, as illustrated in the example.
[0309] Figure 10 The diagram illustrates the allocation of End SID and End.X SID for each device in the network.
[0310] 2) Slicing requirements description.
[0311] Suppose there are currently 3 users with slicing requirements, with bandwidth requirements of 100M, 100M and 200M respectively. The slicing requirements of each user are shown in the table below.
[0312]
[0313]
[0314] 3) Description of SliceID allocation for slice users.
[0315] The controller allocates forwarding plane SliceID resources and corresponding bandwidth information to each user based on their needs. Unallocated SliceIDs are temporarily reserved.
[0316] Table 4: Resource Requirement Allocation Table Corresponding to Forwarding Plane SliceID
[0317] Forwarding SliceID Required bandwidth (G) state 1 100M idle 2 100M idle 3 200M idle 4 Unallocated Unallocated 5 Unallocated Unallocated … … … n Unallocated Unallocated
[0318] The controller maintains this dynamically updated table and sends the updated status to the device for storage at any time.
[0319] 4) Description of resource allocation and status maintenance corresponding to Sub-Link ID.
[0320] The physical resources corresponding to the Sub-Link IDs of each port of the device are configured by the controller. Taking device A and the Channel channelization sub-interface resources as an example, the physical resource allocation of a sub-link on a certain port of device A is shown in the table below. Other devices are similar:
[0321] Sub-Link ID ChannelID Bandwidth state 0001 001 100M idle 0002 002 100M idle 0003 003 100M idle 0004 004 100M idle 0005 005 200M idle 0006 006 200M idle 0007 007 200M idle 0008 008 500M idle …… …… …… …… 000n 00n 500M idle
[0322] The Sub-Link ID and corresponding physical resources pre-allocated on the device need to be a certain percentage more than the actual needs of the secondary slice users (e.g., reserving a certain number of 100M / 200M / 500M channelized sub-interface resources respectively, but the total amount cannot exceed the total bandwidth of the corresponding FA primary slice) so that when new users arrive, the sub-interfaces of the underlying link are already available and the service can be quickly activated.
[0323] 5) Description of SRv6-Policy basic configuration, routing calculation and packet forwarding process.
[0324] In the strict path scenario of SRv6 Policy tunnels.
[0325] Taking the activation of slice resources for slice user 3 as an example, this user needs a 200M bandwidth resource from node A to node E.
[0326] The controller allocates a new SliceID resource to user 3, as shown in the table below:
[0327] Forwarding SliceID Required bandwidth (G) state Slice users 3 200M idle User 3
[0328] The controller sets the corresponding color template, such as color 1: color=100, SliceID=3, etc.
[0329] The controller sends the SRv6 Policy tunnel basic configuration to the tunnel head node A device: color template = 1, endpoint = E3:1::100, SliceEnable = true, bandwidth requirement = 200M, HSB (primary / backup) = true, and strict path is required.
[0330] The controller or head node device knows that it needs to calculate the primary and backup strict paths of SRv6Policy based on the device's slicing support capability and the slicing resource information of each link (status, bandwidth, and latency of the slice sub-link ID).
[0331] The controller or head node checks the remaining bandwidth resources of each link in the topology (which can be obtained based on the idle resources of the Sub-Link ID), calculates a segmentlist path from A to E that meets the 200M bandwidth requirement for the primary and backup CPs, and orchestrates the path using the End.X SID of each link.
[0332] Example as follows:
[0333] Main pairing:<X3:1::100,X3:2::100,X3:3::100,X3:4::100>
[0334] Backup CP:<X3:5::100,X3:6::100,X3:7::100,X3:8::100>
[0335] Update the status of SliceID 3 on all devices to pre-occupied (only required when using SliceID allocation method 1).
[0336] If the controller calculates the route, the controller will send the above path to the head node A device via BGP SRv6 Policy.
[0337] After receiving the BGP SRv6 Policy primary / backup CP path from the controller, the head node A device of the SRv6 Policy tunnel sends a probe message (such as an SBFD for path message or a custom special message) along the primary / backup CP path. The lower 16 bits of the FlowLabel field in the message header carry the value of SliceID 201, and the higher 4 bits of FlowLabel are set to slice type.
[0338] The devices along the primary and backup CP path determine the outgoing interface based on the destination address field of the packet, and then know that the resource requirement of the slice user is 200M bandwidth according to the SliceID value 3 carried in the packet header; and allocate a Sub-Link ID (e.g., 0005) to SliceID 3 from the idle sub-link resources on the outgoing interface.
[0339] Each device along the tunnel path determines the corresponding information sub-interface (e.g., ChannelID 005) based on the Sub-Link ID (e.g., 0005), and saves the correspondence between SliceID and Sub-Link ID locally, while generating a sub-interface forwarding table.
[0340] Taking device A as an example, the correspondence between the generated slice ID and Sub-Link ID is shown in the table below:
[0341] SliceID Sub-Link ID 3 0005
[0342] Taking device A as an example, the generated sub-interface forwarding representation is shown in the table below:
[0343] Prefix Nexthop OutIf SliceID ChannelID E3:1:: / 64 X3:1:1::100 GE0 / 1 / 0 3 005
[0344] In this case, the sub-interface forwarding table may not require ChannelID and can directly use Sub-Link ID to represent the physical sub-interface.
[0345] Each device along the tunnel path updates the status of its corresponding Sub-Link ID to occupied; and reports the mapping relationship between SliceID and Sub-Link ID to the controller in real time via Telemetry. The Sub-Link ID status change information is also reported to the controller in real time via the newly defined subLinkResource Sub-TLV or Telemetry in BGP-LS.
[0346] Taking device A as an example, the status update of the corresponding Sub-Link ID is illustrated below:
[0347] Sub-Link ID ChannelID Bandwidth resources state 0005 005 200M Already occupied
[0348] After the probe message arrives at the tail node of the SRv6 Policy tunnel, all devices along the way have established the association between the SliceID and the Sub-Link ID, and generated a forwarding table based on the sub-interface.
[0349] When the probe message successfully returns to the head node (e.g., SBFD for path status up), the SRv6 Policy status is up (running) and can carry service traffic.
[0350] Figure 11 The diagram illustrates the SRv6 Policy tunnel forwarding process for slice user 3's packet. When slice user 3's packet arrives at the ingress node A device, the packet forwarding process is as shown in the figure.
[0351] Device A iterates the packet to the appropriate location according to the VPN routing policy.<Endpoint=E3:1:100,color=100> The SRv6 Policy tunnel carries the packet, so the outer IPv6 header of the SRv6 Policy tunnel is encapsulated, and its SRH segmentlist is...<X3:1::100,X3:2::100,X3:3::100,X3:4::100,E3:1::B100> (Where E3:1::B100 is the VPN SID corresponding to this traffic), the current SL pointer points to X3:1::100; and according to SliceID=3 in the color1 template, the value 3 of SliceID is written into the lower 16 bits of FlowLabel in the outer IPv6 header, and the higher 4 bits of FlowLabel are set to slice type.
[0352] Based on the information of X3:1::100 pointed to by the current SL pointer and SliceID 3, device A checks the local forwarding table and finds that the outgoing interface of the message is GE0 / 1 / 0, and the sub-interface is the information sub-interface of ChannelID 005. Therefore, it forwards the message through the channelization sub-interface 005.
[0353] Subsequent devices along the path perform the same operation until the packet reaches the tunnel tail node E. This ensures that the traffic of slice user 3 can obtain the physical resource guarantee of 200M channelized sub-interface on each link of the forwarding path.
[0354] Based on the same inventive concept, this invention also provides a controller, a node, and a computer-readable storage medium. Since the principles by which these devices solve problems are similar to those of the tunnel establishment method and the message transmission method, the implementation of these devices can refer to the implementation of the method, and repeated details will not be repeated.
[0355] When implementing the technical solutions provided in the embodiments of the present invention, they can be implemented in the following manner.
[0356] Figure 12 The diagram shows the controller structure, which includes:
[0357] Processor 1200 is used to read the program from memory 1220 and execute the following procedures:
[0358] When performing SRv6 Policy tunnel routing, the slice resources used on the packet forwarding path are allocated to the user according to the user's needs.
[0359] Each node is instructed to carry a first identifier from the selected slice resource in the packet header and to forward the packet on the slice resource corresponding to the first identifier, wherein the first identifier is associated with the underlying physical link resource;
[0360] Transceiver 1210 is used to receive and send data under the control of processor 1200.
[0361] In practice, the first identifier is carried by the 16 bits following the Flow Label field in the IPv6 header.
[0362] During implementation, it further includes:
[0363] The Router CAPABILITY TLV carries an identifier on its SRv6 Capabilities sub-TLV to indicate that the node supports forwarding plane slice processing capabilities; and / or,
[0364] The SRv6 Capability TLV of BGP-LS carries an identifier used to announce that the node has the ability to process forwarding plane slices.
[0365] During implementation, it further includes:
[0366] Each underlying physical link of each node is divided into multiple isolated sub-links, each sub-link is allocated a separate underlying physical resource, and the sub-link is identified by a second identifier.
[0367] The first identifier is associated with the underlying physical link resources and is associated with the second identifier.
[0368] During implementation, it further includes:
[0369] The sub-link resources allocated on the node exceed the needs of the slice users.
[0370] In practice, the demand information for the underlying physical link resources corresponding to the first identifier is either pre-issued to each node by the controller or pre-configured on each node and synchronized to the controller.
[0371] During implementation, it further includes:
[0372] The status of each Sub-Link ID on the link is maintained based on the sub-link resource usage reported by each node via BGP-LS or Telemetry.
[0373] During implementation, it further includes:
[0374] Define a first Sub-TLV (e.g., subLinkResource Sub-TLV) under the ISIS Link Neighbor TLV. This Sub-TLV is used to advertise sub-link resource information for each link, including at least one or a combination of a second identifier, status, and resource information; and / or,
[0375] Under BGP-LS Link NLRI, a first TLV (e.g., subLinkResource TLV) is used to advertise sublink resource information for each link, including at least one of a second identifier, status, resource information, or a combination thereof.
[0376] In implementation, when allocating slice resources for use on packet forwarding paths to users based on their needs, the following steps are taken:
[0377] Based on the needs of the slice users, allocate resources identified by a first identifier to each user; unassigned first identifiers are temporarily reserved; or,
[0378] Based on the needs of the slice users, assign a first identifier for the corresponding resource to each user and save the correspondence between the two.
[0379] During implementation, it further includes:
[0380] Configure the mapping relationship between the Color template and the first identifier so that the head node device can obtain the corresponding first identifier according to the Color attribute of the SRv6Policy and carry the first identifier in the Flow Label field of the IPv6 header outside the SRv6 Policy of the forwarded packet.
[0381] During implementation, it further includes:
[0382] Receive the correspondence between the first identifier and the second identifier reported in real time by each node via Telemetry; and / or,
[0383] Receive the status change information of the resource identified by the second identifier from each node in real time via the first TLV or Telemetry of BGP-LS.
[0384] During implementation, it further includes:
[0385] Add a slice switch field to the SRv6 Policy tunnel configuration to indicate the slice support capabilities of the device and the slice resource information of each link that need to be considered when calculating the route.
[0386] Among them, Figure 12In this context, the bus architecture may include any number of interconnected buses and bridges, specifically linking various circuits together, represented by one or more processors (processor 1200) and memory (memory 1220). The bus architecture may also link together various other circuits such as peripheral devices, voltage regulators, and power management circuits, which are well known in the art and therefore will not be described further herein. A bus interface provides an interface. Transceiver 1210 may be multiple elements, including transmitters and receivers, providing a unit for communicating with various other devices over a transmission medium. Processor 1200 is responsible for managing the bus architecture and general processing, and memory 1220 may store data used by processor 1200 during operation.
[0387] This invention also provides a controller, comprising:
[0388] The controller resource module is used to allocate slice resources for users to use on the packet forwarding path according to the needs of slice users when performing SRv6 Policy tunnel routing calculation.
[0389] The controller instruction module is used to instruct each node to carry a first identifier in the selected slice resource in the packet header and to forward the packet on the slice resource corresponding to the first identifier, wherein the first identifier is associated with the underlying physical link resource.
[0390] In implementation, the controller instruction module is further used to instruct the first identifier to be carried in the 16 bits following the Flow Label field in the IPv6 header.
[0391] In implementation, the controller indication module is further used to indicate that an identifier is carried on the SRv6Capabilities sub-TLV of the Router CAPABILITY TLV to indicate that the node supports forward plane slicing capabilities; and / or, to carry an identifier on the SRv6 Capability TLV of the BGP-LS to announce that the node has forward plane slicing capabilities.
[0392] In implementation, the controller resource module is further used to divide each underlying physical link of each node into multiple isolated sub-links, allocate separate underlying physical resources to each sub-link, and identify the sub-links with a second identifier;
[0393] The first identifier is associated with the underlying physical link resources and is associated with the second identifier.
[0394] In practice, the controller resource module is further used to allocate more sub-link resources on nodes than the slice users require.
[0395] In practice, the controller instruction module is further used to pre-issue the demand information of the underlying physical link resources corresponding to the first identifier of each node, or to receive the demand information of the underlying physical link resources corresponding to the first identifier of each node that is pre-configured on each node and synchronized to the controller.
[0396] During implementation, it further includes:
[0397] The controller maintenance module is used to maintain the status of each Sub-Link ID on the link based on the sub-link resource usage reported by each node via BGP-LS or Telemetry.
[0398] In implementation, the controller resource module is further used to define a first Sub-TLV (e.g., subLinkResource Sub-TLV) under the ISIS link neighbor TLV. This Sub-TLV is used to advertise sub-link resource information for each link, including at least one or a combination of a second identifier, status, and resource information; and / or,
[0399] Under BGP-LS Link NLRI, a first TLV (e.g., subLinkResource TLV) is used to advertise sublink resource information for each link, including at least one of a second identifier, status, resource information, or a combination thereof.
[0400] In implementation, the controller resource module is further used to allocate resources identified by a first identifier to each user according to the needs of the slice users, and the unallocated first identifiers are temporarily reserved; or, according to the needs of the slice users, allocate a first identifier corresponding to a resource to each user and save the correspondence between the two.
[0401] In implementation, the controller resource module is further used to configure the mapping relationship between the Color template and the first identifier, so that the head node device can obtain the corresponding first identifier according to the Color attribute of the SRv6 Policy, and carry the first identifier in the Flow Label field of the outer IPv6 header of the forwarded packet of the SRv6 Policy.
[0402] In implementation, the controller maintenance module is further used to receive the correspondence between the first identifier and the second identifier reported in real time by each node through Telemetry; and / or, to receive the status change information of the resource identified by the second identifier reported in real time by each node through the first TLV or Telemetry of BGP-LS.
[0403] In implementation, the controller maintenance module is further used to add a slice switch field to the SRv6 Policy tunnel configuration, which is used to indicate the slice support capability of the device and the slice resource information of each link that need to be considered when calculating the route.
[0404] For ease of description, the various parts of the device described above are divided into modules or units according to their functions. Of course, in implementing this invention, the functions of each module or unit can be implemented in one or more software or hardware components.
[0405] Figure 13 The diagram shows a node structure, including the following:
[0406] Processor 1300 is used to read the program from memory 1320 and execute the following procedures:
[0407] Each node receiving the controller's instruction carries the first identifier of the selected slice resource in the message header;
[0408] Forward packets on the slice resource corresponding to the first identifier, wherein the first identifier is associated with the underlying physical link resource;
[0409] Transceiver 1310 is used to receive and send data under the control of processor 1300.
[0410] In practice, the first identifier is carried by the 16 bits following the Flow Label field in the IPv6 header.
[0411] During implementation, it further includes:
[0412] The Router CAPABILITY TLV carries an identifier on its SRv6 Capabilities sub-TLV to indicate that the node supports forwarding plane slice processing capabilities; and / or,
[0413] The SRv6 Capability TLV of BGP-LS carries an identifier used to announce that the node has the ability to process forwarding plane slices.
[0414] During implementation, it further includes:
[0415] Each underlying physical link of a node is divided into multiple isolated sub-links. Each sub-link is allocated separate underlying physical resources and is identified by a second identifier.
[0416] The first identifier is associated with the underlying physical link resources and is associated with the second identifier.
[0417] During implementation, the system receives the underlying physical link resource requirements corresponding to the first identifier, or the requirements for the underlying physical link resources corresponding to the first identifier that are pre-configured on each node and synchronized to the controller.
[0418] During implementation, it further includes:
[0419] The system reports the sub-link resource usage to the controller via BGP-LS or Telemetry.
[0420] During implementation, it further includes:
[0421] The receive controller defines a first Sub-TLV (e.g., subLinkResource Sub-TLV) under the ISIS link neighbor TLV. This Sub-TLV is used to advertise sub-link resource information for each link, including at least one or a combination of a second identifier, status, and resource information; and / or,
[0422] The receive controller uses a first TLV (e.g., subLinkResource TLV) under BGP-LS Link NLRI. This TLV is used to advertise sublink resource information for each link, including at least one or a combination of a second identifier, status, and resource information.
[0423] In implementation, when the node is the header node of the message transmission, it further includes:
[0424] The first identifier is obtained based on the Color attribute of the SRv6 Policy, and is carried in the Flow Label field of the outer IPv6 header of the SRv6Policy in the forwarded packet.
[0425] In implementation, when the node is the header node of the message transmission, it further includes:
[0426] After receiving the BGP SRv6 Policy primary / backup CP path from the controller, probe messages are sent along the primary / backup CP path respectively. The first identifier is carried in the FlowLabel field of the message header, which is used for each node to allocate path resources.
[0427] During implementation, it further includes:
[0428] The node receives a probe message, the FlowLabel field of the probe message header carries a first identifier, the node allocates path sub-link resources for the first identifier, and saves a first relationship table between the first identifier and the second identifier of the sub-link resource, and / or generates a first forwarding table.
[0429] In practice, forwarding packets on the slice resource corresponding to the first identifier is done by looking up the first relation table or the first forwarding table and forwarding the packets through the corresponding interface.
[0430] During implementation, it further includes:
[0431] The mapping between the first and second identifiers is reported to the controller in real time via telemetry; and / or,
[0432] The first TLV or Telemetry of BGP-LS reports the status change information of the resource identified by the second identifier to the controller in real time.
[0433] Among them, Figure 13 In this context, the bus architecture may include any number of interconnected buses and bridges, specifically linking various circuits together, represented by one or more processors (processor 1300) and memory (memory 1320). The bus architecture may also link together various other circuits such as peripheral devices, voltage regulators, and power management circuits, which are well known in the art and therefore will not be described further herein. The bus interface provides an interface. The transceiver 1310 may be multiple elements, including transmitters and receivers, providing a unit for communicating with various other devices over a transmission medium. The processor 1300 is responsible for managing the bus architecture and general processing, and the memory 1320 may store data used by the processor 1300 during operation.
[0434] This invention also provides a node, comprising:
[0435] The node receiving module is used to receive the first identifier of the selected slice resource carried in the message header by each node as instructed by the controller.
[0436] The node transmission module is used to forward packets on the slice resource corresponding to the first identifier, wherein the first identifier is associated with the underlying physical link resource.
[0437] In practice, the node transmission module is further used to carry the first identifier via the 16 bits following the Flow Label field in the IPv6 packet header.
[0438] In implementation, the node transmission module is further used to carry an identifier on the SRv6Capabilities sub-TLV of the Router CAPABILITY TLV that indicates that the node supports forwarding plane slicing capabilities; and / or, to carry an identifier on the SRv6 Capability TLV of the BGP-LS that announces that the node has forwarding plane slicing capabilities.
[0439] During implementation, it further includes:
[0440] The node link module is used to divide each underlying physical link into multiple isolated sub-links. Each sub-link is allocated separate underlying physical resources and is identified by a second identifier.
[0441] The first identifier is associated with the underlying physical link resources and is associated with the second identifier.
[0442] In practice, the node receiving module is further used to receive the underlying physical link resource requirement information corresponding to the first identifier pre-issued to the node by the controller, or to receive the underlying physical link resource requirement information corresponding to the first identifier pre-configured on each node and synchronized to the controller.
[0443] During implementation, it further includes:
[0444] The node reporting module is used to report the resource usage of sub-links to the controller via BGP-LS or Telemetry.
[0445] In implementation, the node receiving module is further used to receive a first Sub-TLV (e.g., subLinkResource Sub-TLV) defined by the controller under the ISIS link neighbor TLV. This Sub-TLV is used to advertise sub-link resource information for each link, including at least one or a combination of a second identifier, status, and resource information; and / or,
[0446] The receive controller uses a first TLV (e.g., subLinkResource TLV) under BGP-LS Link NLRI. This TLV is used to advertise sublink resource information for each link, including at least one or a combination of a second identifier, status, and resource information.
[0447] In practice, the node transmission module is further used to obtain the corresponding first identifier based on the Color attribute of SRv6Policy when the node is the header node of the packet transmission, and to carry the first identifier in the Flow Label field of the IPv6 header outside the SRv6 Policy of the forwarded packet.
[0448] In practice, the node transmission module is further used to send probe messages along the primary and backup CP paths after receiving the BGP SRv6 Policy primary and backup CP paths issued by the controller when the node is the head node of the message transmission. The first identifier is carried in the FlowLabel field of the message header for each node to allocate path resources.
[0449] In practice, the node receiving module is further used to receive probe messages. The FlowLabel field of the probe message header carries a first identifier. The node allocates path sub-link resources for the first identifier, saves a first relationship table between the first identifier and the second identifier of the sub-link resource, and / or generates a first forwarding table.
[0450] In practice, the node transmission module is further used to forward packets on the slice resource corresponding to the first identifier by looking up the first relation table or the first forwarding table to forward the packets through the corresponding interface.
[0451] In practice, the node reporting module is further used to report the correspondence between the first identifier and the second identifier to the controller in real time via Telemetry; and / or, to report the status change information of the resource identified by the second identifier to the controller in real time via the first TLV or Telemetry of BGP-LS.
[0452] For ease of description, the various parts of the device described above are divided into modules or units according to their functions. Of course, in implementing this invention, the functions of each module or unit can be implemented in one or more software or hardware components.
[0453] This invention also provides a computer-readable storage medium storing a computer program that performs the aforementioned tunnel establishment method on the controller side and / or message transmission method on the node side.
[0454] For specific implementation details, please refer to the implementation of tunnel establishment on the controller side and / or message transmission methods on the node side.
[0455] In summary, the technical solution provided by the embodiments of the present invention provides an operational mechanism and scheme for the allocation of SliceIDs, corresponding resources, and status maintenance of slice users, specifically including:
[0456] Use the 20-bit Flow Label field in the IPv6 packet header for the format definition of the SliceID;
[0457] The newly defined link slice information Sub-TLV under ISIS Link Neighbor TLV and the newly defined link slice information TLV under BGP-LS Link NLRI are used to announce the Sub-Link ID, status and resource information (maximum reserved link bandwidth, latency, link packet loss rate, etc.) of the slice sub-link resources on the link.
[0458] The structure of the newly defined link slice information subLinkResource Sub-TLV under ISIS Link Neighbor TLV and the structure of the newly defined link slice information subLinkResource TLV under BGP-LS Link NLRI;
[0459] The SRv6 Policy tunnel basic configuration adds a slice enable field SliceEnable to indicate the slice support capability of the device and the slice resource information of each link that need to be considered when calculating the route;
[0460] Add a SliceID setting under the color template so that the SRv6 Policy header node can obtain the slice user SliceID information from the configured color template and write the SliceID value into the lower 16 bits of the FlowLabel in the IPv6 outer header, and set the higher 4 bits of the FlowLabel to the slice type scheme.
[0461] The controller or head node device obtains the remaining bandwidth resources of each physical link based on the bandwidth requirements of the sliced users and the idle resources of the sub-link resources (e.g., identified by Sub-Link ID), and then formulates a routing scheme and processing mechanism based on the sliced bandwidth constraint resource situation.
[0462] The controller assigns a forwarding plane slice ID and corresponding resource information to each user based on their resource requirements, and maintains and updates the slice ID status in real time.
[0463] A static programming scheme for the relationship between slice ID value range and slice resources;
[0464] The mechanism and scheme for tunnel head nodes to send special messages or BFD messages along the tunnel primary and backup CPs, drive devices along the way to establish the association between slice ID and sub-link resource identifier, and generate corresponding sub-interface forwarding tables locally;
[0465] The forwarding device determines that the packet is a slice type based on the high 4 bits of the FlowLabel in the IPv6 header of the forwarding packet. Then, based on the SliceID value carried by the low 16 bits of the FlowLabel and the destination address information, it looks up the sub-interface forwarding table and forwards the packet through the corresponding sub-interface resource.
[0466] This solution enables each slice to exclusively enjoy resources on the same physical link. Compared with the existing FlexAlgo technology, it can solve the problems of FlexAlgo, where each slice can only exclusively enjoy one physical link, the isolation granularity is coarse, the existing network resources are basically insufficient, and it is impossible to deploy hard isolation of slices on a large scale.
[0467] This solution can effectively provide underlying physical resource guarantees for slicing, enabling hard slicing. Compared with existing SR-TE and SRPolicy technologies, it can solve the problem of soft isolation through tunnels and complete sharing of physical resources.
[0468] Those skilled in the art will understand that embodiments of the present invention can be provided as methods, systems, or computer program products. Therefore, the present invention can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present invention can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage and optical storage) containing computer-usable program code.
[0469] This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0470] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0471] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0472] Obviously, those skilled in the art can make various modifications and variations to this invention without departing from its spirit and scope. Therefore, if these modifications and variations fall within the scope of the claims of this invention and their equivalents, this invention also intends to include these modifications and variations.
Claims
1. A method of tunnel establishment, characterized by, The application comprises the following technical solutions: The controller allocates slice resources used on a message forwarding path for a user according to the needs of the user when performing an Internet Protocol version 6 segment routing-traffic protocol (SRv6 Policy) tunnel calculation; The controller instructs each node to carry a first identifier in a selected slice resource in a message header and forward the message on the slice resource corresponding to the first identifier, wherein the first identifier is associated with an underlying physical link resource; When the node is a head node of message transmission, the node is configured to: After receiving a BGP SRv6 Policy master and backup CP path issued by the controller, the node sends a probe message along the master and backup CP paths, respectively, and carries a first identifier in a FlowLable field of the message header, which is used for each node to allocate path resources; When the node is a node on the path, the node is configured to: Receive a probe message, wherein a FlowLable field of a header of the probe message carries a first identifier, the node allocates a path sublink resource for the first identifier, saves a first relationship table of the first identifier and a second identifier of the sublink resource, and / or generates a first forwarding table; The node forwards the message on the slice resource corresponding to the first identifier by searching the first relationship table or the first forwarding table to transmit the message through a corresponding interface.
2. The method of claim 1, wherein, The first identifier is carried in 16 bits behind a Flow Label field in an Internet Protocol version 6 (IPv6) message header.
3. The method of claim 1, wherein, Further comprising: a capability sub-type, length, and value (TLV) of an SRv6 Capabilities sub-TLV of a router capability type, length, and value (TLV) (Router CAPABILITY TLV) of an Internet Protocol version 6 (IPv6) segment routing-traffic protocol (SRv6) carries an identifier indicating that the node supports forwarding plane slice processing capability; and / or an SRv6 Capability TLV of a border gateway protocol link state (BGP-LS) carries an identifier indicating that the node has forwarding plane slice processing capability.
4. The method of claim 1, wherein, Further comprising: Each underlying physical link of each node is divided into a plurality of sublinks isolated from each other, each sublink is allocated a separate underlying physical resource, and the sublink is identified by a second identifier; The first identifier is associated with the underlying physical link resource and is associated with the second identifier.
5. The method of claim 4, wherein, Further comprising: The sublink resource allocated on the node is greater than the needs of the slice user.
6. The method of claim 4, wherein, Further comprising: Receive the correspondence between the first identifier and the second identifier reported by each node in real time through Telemetry; and / or Receive state change information of the resource identified by the second identifier reported by each node in real time through a first TLV of BGP-LS or Telemetry.
7. The method of claim 1, wherein, The demand information of the underlying physical link resource corresponding to the first identifier is pre-issued to each node by the controller or is pre-configured on each node and synchronized to the controller.
8. The method of claim 1, wherein, Further comprising: The controller maintains the state of each sub-link identifier (Sub-Link ID) on the link according to the sub-link resource usage reported by each node through BGP-LS or telemetry.
9. The method of claim 1, wherein, Further comprising: defining a first type, length, value (Sub-TLV) under an intermediate system to intermediate system (ISIS) link neighbor type, length, value (TLV), the Sub-TLV being used to advertise sub-link resource information of each link, the sub-link resource information at least including one or a combination of a second identifier, a state, and resource information; and / or, using a first TLV under a link network layer reachable information (Link NLRI) of BGP-LS, the TLV being used to advertise sub-link resource information of each link, the sub-link resource information at least including one or a combination of a second identifier, a state, and resource information.
10. The method of claim 1, wherein, When allocating slice resources used on a packet forwarding path to a slice user according to a requirement of the slice user, comprising: allocating a resource identified by a first identifier to each user according to a requirement of the slice user, and temporarily reserving a first identifier that is not allocated; or allocating a first identifier corresponding to a resource to each user according to a requirement of the slice user, and saving a correspondence between the first identifier and the resource.
11. The method of claim 1, wherein, Further comprising: configuring a mapping relationship between a color template and the first identifier, so as to enable a head node device to obtain a corresponding first identifier according to a Color attribute of an SRv6 Policy, and carry the first identifier in a Flow Label field of an outer IPv6 header of the SRv6 Policy in forwarding a packet.
12. The method of claim 1, wherein, Further comprising: adding a slice switch field in SRv6 Policy tunnel configuration, so as to indicate that the slice support capability of a device and slice resource information of each link need to be considered when calculating a path.
13. A message transmission method characterized by comprising: Comprising: a node receiving a first identifier in selected slice resources carried in a packet header according to an indication of a controller; the node forwarding the packet on a slice resource corresponding to the first identifier, wherein the first identifier is associated with an underlying physical link resource; when the node is a head node of the packet transmission, further comprising: after receiving a BGP SRv6 Policy master-backup CP path issued by the controller, sending a probe packet along the master-backup CP path, the probe packet carrying the first identifier in a FlowLable field of a packet header, so as to enable each node to allocate path resources; when the node is a node on the path, further comprising: receiving the probe packet, the probe packet carrying the first identifier in the FlowLable field of the packet header, the node allocating path sub-link resources for the first identifier, saving a first relationship table between the first identifier and a second identifier of the sub-link resources, and / or generating a first forwarding table; forwarding the packet on the slice resource corresponding to the first identifier, by searching the first relationship table or the first forwarding table to forward the packet through a corresponding interface.
14. The method of claim 13, wherein, The first identifier is carried through 16 bits behind a FlowLabel field in an IPv6 packet header.
15. The method of claim 13, wherein, Further comprising: The SRv6 Capabilities sub-TLV of the Router CAPABILITY TLV carries an identifier indicating that the node supports a forwarding plane slice processing capability; and / or The SRv6 Capability TLV of the BGP-LS carries an identifier indicating that the node has a forwarding plane slice processing capability.
16. The method of claim 13, wherein, Further comprising: Each bottom-layer physical link of the node is divided into a plurality of sub-links isolated from each other, each sub-link being allocated with a separate bottom-layer physical resource, and each sub-link being identified by a second identifier; The first identifier is associated with the bottom-layer physical link resource, and is associated with the second identifier.
17. The method of claim 13, wherein, The requirement information of the bottom-layer physical link resource corresponding to the first identifier is pre-configured on each node and synchronized to the controller, or is pre-configured on each node and pre-configured on the controller.
18. The method of claim 13, wherein, Further comprising: The node reports the sub-link resource usage to the controller through BGP-LS or Telemetry.
19. The method of claim 13, wherein, Further comprising: The node receives a first Sub-TLV used by the controller under the ISIS link neighbor TLV, and the Sub-TLV is used to announce the sub-link resource information of each link, including at least one of the second identifier, the state, the resource information, or a combination thereof; And / or The node receives a first TLV used by the controller under the Link NLRI of the BGP-LS, and the TLV is used to announce the sub-link resource information of each link, including at least one of the second identifier, the state, the resource information, or a combination thereof.
20. The method of claim 13, wherein, When the node is a head node of packet transmission, further comprising: According to the Color attribute of the SRv6 Policy, the corresponding first identifier is obtained, and the first identifier is carried in the Flow Label field of the outer IPv6 header of the SRv6 Policy of the forwarded packet.
21. The method of claim 13, wherein, Further comprising: The node reports the correspondence between the first identifier and the second identifier to the controller in real time through Telemetry; And / or The node reports the state change information of the resource identified by the second identifier to the controller in real time through the first TLV of the BGP-LS or Telemetry.
22. A controller for tunnel establishment, characterized by, Comprising: A processor for reading a program in a memory and executing the following process: When performing SRv6 Policy tunnel routing, according to the demand of the slice user, the slice resource used on the packet forwarding path is allocated to the user; The node is instructed to carry the first identifier in the selected slice resource in the packet header, and forwards the packet on the slice resource corresponding to the first identifier, wherein the first identifier is associated with the bottom-layer physical link resource; A transceiver for receiving and sending data under the control of the processor; When the node is a head node of packet transmission, the node is configured to: After receiving the BGP SRv6 Policy master-slave CP path issued by the controller, the node sends a probe packet along the master-slave CP path, and the first identifier is carried in the FlowLable field of the packet header, so as to allocate path resources by each node; When the node is a node on the path, the node is configured to: Receiving a probe packet, the FlowLable field of the probe packet header carrying a first identifier, the node allocating path sub-link resources for the first identifier, and saving a first relationship table of the first identifier and a second identifier of the sub-link resources, and / or generating a first forwarding table; The node forwarding a packet on the slice resource corresponding to the first identifier is by looking up the first relationship table or the first forwarding table to forward the packet out through the corresponding interface.
23. A controller for tunnel establishment, characterized by, Comprise: A controller resource module, configured to allocate a first identifier used on a packet forwarding path for a user according to a demand of the user when performing SRv6 Policy tunnel route calculation; A controller instruction module, configured to instruct each node to carry a first identifier in a selected slice resource in a packet header, and forward a packet on a slice resource corresponding to the first identifier, wherein the first identifier is associated with an underlying physical link resource; When the node is a head node of packet transmission, the node is configured to: After receiving a BGP SRv6 Policy master and backup CP path issued by the controller, send a probe packet along the master and backup CP paths respectively, and carry a first identifier in a FlowLable field of the packet header, so as to allocate path resources by each node; When the node is a node on the path, the node is configured to: Receive a probe packet, the FlowLable field of the probe packet header carrying a first identifier, the node allocating path sub-link resources for the first identifier, and saving a first relationship table of the first identifier and a second identifier of the sub-link resources, and / or generating a first forwarding table; The node forwarding a packet on the slice resource corresponding to the first identifier is by looking up the first relationship table or the first forwarding table to forward the packet out through the corresponding interface.
24. A node for packet transmission, characterized in that, Comprise: A processor, configured to read a program in a memory, and perform the following processes: Receiving an instruction of each node carrying a first identifier in a selected slice resource in a packet header by the controller; Forwarding a packet on a slice resource corresponding to the first identifier, wherein the first identifier is associated with an underlying physical link resource; A transceiver, configured to receive and send data under control of the processor; When the node is a head node of packet transmission, the processor is configured to: After receiving a BGP SRv6 Policy master and backup CP path issued by the controller, send a probe packet along the master and backup CP paths respectively, and carry a first identifier in a FlowLable field of the packet header, so as to allocate path resources by each node; When the node is a node on the path, the processor is configured to: Receive a probe packet, the FlowLable field of the probe packet header carrying a first identifier, the node allocating path sub-link resources for the first identifier, and saving a first relationship table of the first identifier and a second identifier of the sub-link resources, and / or generating a first forwarding table; The processor is configured to: forward a packet on the slice resource corresponding to the first identifier is by looking up the first relationship table or the first forwarding table to forward the packet out through the corresponding interface.
25. A node for packet transmission, characterized in that, Comprise: The node receiving module is configured to receive a first identifier in a selected slice resource carried in a message header by each node indicated by the controller; The node transmitting module is configured to forward the message on a slice resource corresponding to the first identifier, wherein the first identifier is associated with a bottom physical link resource; When the node is a head node of the message transmission, the node transmitting module is further configured to, after receiving the BGPSRv6 Policy master and backup CP paths issued by the controller, send a probe message along the master and backup CP paths respectively, and carry the first identifier in a FlowLable field of a message header, so as to allocate path resources by each node; When the node is a node on the path, the node receiving module is further configured to receive the probe message, the FlowLable field of the probe message header carries the first identifier, the node allocates a path sublink resource for the first identifier, saves a first relationship table of the first identifier and a second identifier of the sublink resource, and / or generates a first forwarding table; The node transmitting module is further configured to forward the message on the slice resource corresponding to the first identifier, which is achieved by searching the first relationship table or the first forwarding table to forward the message through a corresponding interface.
26. A computer-readable storage medium, characterized in that, The computer readable storage medium stores a computer program for executing the method of any one of claims 1 to 21.
Citation Information
Patent Citations
Data processing method based on SRv6 and related network equipment
CN111835637A
Data transmission control method and device
CN112491713A