Source routing method of routing extension header, communication node, and storage medium

By encapsulating the routing extension header in IPv6 messages, and using the segment list composed of MPLS tags and preset fields, the problems of large overhead and signaling overhead in IPv6 network are solved, and efficient forwarding of deterministic forwarding paths are achieved.

WO2025161509A1PCT designated stage Publication Date: 2025-08-07ZTE CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/125994
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-31
Filing Date
2024-10-21
Publication Date
2025-08-07

AI Technical Summary

Technical Problem

The source routing scheme in the existing IPv6 network has problems such as large overhead of packet headers, relying on public prefixes and additional signaling overhead, and not supporting cross-domain heterogeneous technology interoperability, which is difficult to meet the requirements of deterministic forwarding paths.

Method used

The routing extension header is used to encapsulate the segment list in IPv6 packets. Each segment element specifies the unique forwarding resource information, and uses MPLS tags and preset fields to reduce the encapsulation overhead and support deterministic forwarding paths.

Benefits of technology

By reducing the overhead of the packet header, the packet payload efficiency is improved, and the forwarding of multiple types of segments is supported. It is suitable for strictly hop-by-hop explicit routing scenarios to meet the requirements of deterministic forwarding paths.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024125994_07082025_PF_FP_ABST
    Figure CN2024125994_07082025_PF_FP_ABST
Patent Text Reader

Abstract

The present application provides a source routing method of a routing extension header, a communication node, and a storage medium. The method comprises: encapsulating a routing extension header in an IPv6 packet (110), wherein specific forwarding resource information is specified in each segment element of a segment list contained in the routing extension header; and sending the IPv6 packet to a second node (120).
Need to check novelty before this filing date? Find Prior Art

Description

Source routing method, communication node and storage medium of routing extension header Technical Field

[0001] The present application relates to the field of communication technology, for example, to a source routing method of a routing extension header, a communication node, and a storage medium. Background Art

[0002] Deterministic forwarding paths are typically strictly explicit, requiring each hop to be specified. Given the impact of large-scale traffic, maintaining signaling or forwarding state for each flow at intermediate nodes in the network is unreasonable. Therefore, a viable approach is to use source routing to represent such traffic engineering paths. Specifically, the path is represented by a list of segments containing multiple segment elements, with each segment element corresponding to a hop.

[0003] However, in Internet Protocol version 6 (IPv6) networks, using a 128-bit IPv6 address to represent each source route segment results in very large header overhead. To address this issue, the industry has proposed a variety of solutions. However, these solutions all have limitations, such as reliance on common prefixes, additional signaling overhead and index entries, and a lack of support for interoperability between heterogeneous technologies across domains. These solutions are not suitable for the demand-based approach of deterministic forwarding paths.

[0004] Summary of the Invention

[0005] The present application provides a source routing method for a routing extension header, a communication node, and a storage medium.

[0006] An embodiment of the present application provides a source routing method for a routing extension header, which is applied to a first node and includes:

[0007] Encapsulating a routing extension header in an IPv6 message; wherein each segment element of a segment list included in the routing extension header specifies unique forwarding resource information;

[0008] Send the IPv6 message to the second node.

[0009] The embodiment of the present application further provides a source routing method for a routing extension header, which is applied to a second node and includes:

[0010] Receive an IPv6 message, wherein the IPv6 message is encapsulated with a routing extension header, wherein each segment element of a segment list included in the routing extension header specifies unique forwarding resource information;

[0011] Parse the routing extension header.

[0012] An embodiment of the present application further provides a communication node, comprising: a memory, and one or more processors;

[0013] The memory is configured to store one or more programs;

[0014] When the one or more programs are executed by the one or more processors, the one or more processors implement the above-mentioned source routing method of the routing extension header.

[0015] An embodiment of the present application further provides a storage medium, wherein a computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the source routing method of the routing extension header is implemented.

[0016] An embodiment of the present application further provides a communication system, including a first node and a second node;

[0017] The first node is configured to encapsulate a routing extension header in an IPv6 message and send the IPv6 message to the second node; wherein the elements of the segment list included in the routing extension header specify forwarding resource information specific to each segment;

[0018] The second node is configured to parse the routing extension header when receiving the IPv6 message. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] FIG1 is a flow chart of a source routing method for a routing extension header provided by an embodiment;

[0020] FIG2 is a schematic diagram of a routing extension header provided by an embodiment;

[0021] FIG3 is a flow chart of another source routing method of a routing extension header provided by an embodiment;

[0022] FIG4 is a schematic diagram of a network provided by an embodiment;

[0023] FIG5 is a schematic diagram of another routing extension header provided by an embodiment;

[0024] FIG6 is a schematic diagram of another routing extension header provided by an embodiment;

[0025] FIG7 is a schematic structural diagram of a source routing device for a routing extension header provided by an embodiment;

[0026] FIG8 is a schematic structural diagram of another source routing device for a routing extension header provided by an embodiment;

[0027] FIG9 is a schematic structural diagram of a communication node provided by an embodiment;

[0028] FIG10 is a schematic structural diagram of a communication system provided by an embodiment. DETAILED DESCRIPTION

[0029] The steps shown in the flowcharts of the accompanying drawings can be executed in a computer system such as a set of computer executable instructions. Also, although a logical order is shown in the flowcharts, in some cases, the steps shown or described can be performed in an order different from that shown here.

[0030] RFC8200 (Internet Protocol, Version 6 (IPv6) Specification) defines the IPv6 specification, which includes the Routing Header. The source node of an IPv6 packet can include information about intermediate nodes in the Routing Header to control the packet's access to these intermediate nodes before reaching the final destination. The Routing Type field in the Routing Header is extensible and can be set to different values ​​to define different Routing Headers for different scenarios.

[0031] For example, RFC6554 (An IPv6 Routing Header for Source Routes with the Routing Protocol for Low-Power and Lossy Networks) defines a routing header (with a Routing Type field value of 3, referred to herein as RH3) for source routing based on compressed IPv6 address information, targeting low-power and lossy network scenarios. This assumes that the IPv6 addresses of all nodes are within the same prefix. Therefore, when using RH3 for source routing, each element in the segment list contained in RH3 only needs to store the difference between it and the other elements, while the common prefix of all elements is stored in the Destination Address field of the IPv6 header. This reduces RH3's byte overhead. However, RH3's applicability is very limited, and it does not support mixing multiple types of segments with varying difference lengths.

[0032] For example, RFC8754 (IPv6 Segment Routing Header) defines a routing header (the value of the Routing Type field is 4, referred to as RH4 in this article) for source routing forwarding based on classic IPv6 addresses, targeting the application of segment routing (SRv6) to IPv6 networks. RH4 contains a segment identifier list (SID List), in which each element is a 16-byte IPv6 address. A long instruction list results in a very long message header, severely reducing the payload efficiency of the message. The industry is currently considering compression methods for SRv6 segment identifiers (SIDs) to reduce the byte overhead of RH4. The compression concept is similar to that of RH3 and also relies on a common prefix.

[0033] For example, draft-ietf-6man-comp-rtg-hdr-00 defines a routing header called a CRH, which contains a short index for mapping to IPv6 addresses. This index is then used to match forwarding table entries and retrieve all forwarding information from them. This additional short index requires the definition of new control plane signaling, and because forwarding table entries integrate all forwarding information (such as topology and forwarding resources), it consumes a large amount of indexing resources.

[0034] To solve the above problem, Figure 1 is a flowchart of a source routing method for a routing extension header provided by an embodiment. As shown in Figure 1, the method provided by this embodiment can be applied to a first node, which can be a head node in a communication path, and includes steps 110 and 120.

[0035] In step 110, a routing extension header is encapsulated in an IPv6 message, wherein each segment element of a segment list included in the routing extension header specifies unique forwarding resource information.

[0036] In this embodiment, the routing extension header encapsulated in the IPv6 message may be RH-MPLS (Routing Header with MPLS). Each segment element in the segment list included in the routing extension header provides forwarding resource information required for each segment.

[0037] Among them, each segment element in the segment list can be composed of a director and a preset field string, for example, using the Multiprotocol Label Switching (MPLS) label allocation and notification in the related technology, and including topology-related MPLS labels and other forwarding resource-related identifiers in the routing extension header.

[0038] Among them, each segment element in the segment list has an appropriate length to reduce encapsulation overhead, generally occupying 32 bits, or less than 32 bits, or more than 32 bits; each segment element in the segment list can optionally carry common resources accessed by all segments, meeting explicit routing scenarios that require strict hop-by-hop routing, including deterministic forwarding.

[0039] In this embodiment, the routing extension header encapsulated in the IPv6 message may include multiple fields, including at least an inner header type field, a byte overhead field, a routing type field, a remaining number of segments field, a forwarding resource type field, a flag field, a second forwarding resource identification field, and a segment list.

[0040] Figure 2 is a schematic diagram of a routing extension header provided by an embodiment. As shown in Figure 2, Next Header represents the inner header type field, Hdr Ext Len represents the byte overhead field, Routing Type represents the routing type field, Segments Left represents the remaining number of segments field, RT represents the forwarding resource type field, Flags represents the flag field, and Common RI represents the second forwarding resource identification field; the routing extension header of Figure 2 may also include a segment list, the segment list includes multiple segment elements Segment 0, Segment 1,..., Segment n-1, each segment element consists of a multi-protocol label switching label MPLS Label and a first forwarding resource identification field RI per-seg, and the first forwarding resource identification field is one of the preset fields.

[0041] In this embodiment, encapsulating the routing extension header in an IPv6 packet may include the following process: obtaining the corresponding destination IPv6 address based on the pointer of the logically first segment element; and copying the destination IPv6 address to the destination address field of the IPv6 packet header. Furthermore, the number of remaining segments in the segment list included in the routing extension header is set to n-1, indicating that n-1 segment elements remain in the segment list to be processed.

[0042] In step 120, the IPv6 message is sent to the second node.

[0043] The second node may be an intermediate node or a tail node in the communication path.

[0044] In this embodiment, after the first node encapsulates the routing extension header in the IPv6 message, it can send the IPv6 message encapsulated with the routing extension header to the second node. The sending method is not specifically limited, so that after receiving the IPv6 message, the second node parses the routing extension header encapsulated in the IPv6 message to complete source routing.

[0045] In this embodiment, the first node encapsulates a routing extension header in an IPv6 message, and the segment elements in the segment list in the routing extension header specify forwarding resource information specific to each segment to reduce encapsulation overhead, which is used in source routing scenarios including deterministic forwarding paths.

[0046] In one embodiment, each segment element in the segment list included in the routing extension header consists of a director and a preset field; wherein the preset field represents forwarding resources or represents an operation or processing to be performed on the IPv6 packet.

[0047] In this embodiment, the director may be an MPLS label. Using the MPLS label can reuse the existing MPLS label allocation and notification mechanism. The director may also be an index having a similar function, which is not specifically limited here.

[0048] In this embodiment, the preset field may represent forwarding resources, and may also represent any other potential operations or processes to be performed on the IPv6 packet, such as a specific QoS policy.

[0049] In one embodiment, each segment element in the segment list included in the routing extension header may consist of an MPLS label and a forwarding resource identifier.

[0050] In one embodiment, the indicator is any one of the following:

[0051] Multiprotocol Label Switching label; index.

[0052] In this embodiment, the multi-protocol label switching label is an MPLS label; the index may be an index having a function similar to that of the existing MPLS label allocation and notification mechanism.

[0053] In one embodiment, the director represents a topology-related instruction, and the director will be matched to a corresponding mapping and forwarding table entry to guide the message to be forwarded to a specific outgoing interface or destination node.

[0054] In this embodiment, the director occupies 20 bits and represents a topology-related instruction. The director will match the corresponding incoming label map (ILM) forwarding table entry to guide the message to be forwarded to a specific outbound interface or destination node.

[0055] In one embodiment, the preset field is a first forwarding resource identification field.

[0056] In this embodiment, the preset field may be a forwarding resource identification field, which indicates a forwarding resource identification corresponding to the segment element. The value of the forwarding resource identification field is related to the forwarding resource type field.

[0057] In one embodiment, the routing extension header includes an inner header type field, a byte overhead field, a routing type field, a remaining segment number field, a forwarding resource type field, a flag field, a second forwarding resource identification field, and a segment list.

[0058] In this embodiment, the inner header type field occupies 8 bits and indicates the type of the inner header immediately following the routing extension header. Its definition and value can be found in RFC8200. The byte overhead field occupies 8 bits and indicates the byte overhead of the routing extension header, that is, the number of 8 bytes contained in the routing extension header, excluding the first 8 bytes. Its definition and value can be found in RFC8200. The routing type field occupies 8 bits and the value of this field is to be assigned by the Internet Assigned Numbers Authority (IANA), indicating that the routing header is a routing extension header. The number of remaining segments field occupies 8 bits and indicates the number of segments remaining in the segment list contained in the routing extension header to be accessed and processed. Its definition and value can be found in RFC8200. The forwarding resource type field occupies 4 bits and indicates the type of the forwarding resource. The forwarding resource type field can be a resource type (RT) field, an arguments type (AT) field, an operation type (OT) field, or a policy type (Policy). type, PT) field, etc.; the flag field occupies 4 bits, indicating some flags involved in the message processing process, which can be defined by yourself; the second forwarding resource identification field occupies 24 bits, indicating the common information identification required by all segments in the segment list, and its value is related to the forwarding resource type field; the segment list includes the indicator and preset field corresponding to each segment element.

[0059] In one embodiment, the forwarding resource type field includes but is not limited to the following definitions:

[0060] The first type value indicates reservation; the second type value indicates time slot resource type; and the third type value indicates delay resource type.

[0061] In this embodiment, the first type value, the second type value, and the third type value are different values. For example, a first type value of 0 indicates reserved and undefined; a second type value of 1 indicates a time slot resource type; and a third type value of 2 indicates a delay resource type. The forwarding resource type field can also have other definitions, which are not detailed here.

[0062] In one embodiment, the first forwarding resource identification field is defined as follows:

[0063] When the forwarding resource type field is a second type value, the first forwarding resource identification field includes a time slot number;

[0064] When the forwarding resource type field is a third type value, the first forwarding resource identification field includes a planned residence time.

[0065] In this embodiment, the value of the first forwarding resource identifier field is related to the forwarding resource type field. The second type value and the third type value are different values. For example, when the forwarding resource type field value is 1, the first forwarding resource identifier field contains the time slot number; when the forwarding resource type field value is 2, the first forwarding resource identifier field contains the planned residence time.

[0066] In one embodiment, the second forwarding resource identification field is a common information identification field shared by all segments in the segment list. The second forwarding resource identification field is defined as follows:

[0067] When the forwarding resource type field is a second type value, the second forwarding resource identification field includes an orchestration cycle length;

[0068] When the type field of the forwarding resource is a third type value, the second forwarding resource identification field includes a delay deviation.

[0069] In this embodiment, the public information identification field may include a public resource information identification field, a public parameter information identification field, a public operation information identification field, or a public policy information identification field.

[0070] In this embodiment, the value of the second forwarding resource identifier field is related to the forwarding resource type field. The second type value and the third type value are different values. For example, when the forwarding resource type is 1, the second forwarding resource identifier field contains the orchestration cycle length in microseconds; when the forwarding resource type is 2, the second forwarding resource identifier field contains the delay deviation in microseconds.

[0071] In one embodiment, the segment list in the routing extension header is stored in reverse order or in forward order.

[0072] In this embodiment, the segment list in the routing extension header can be stored in reverse order. For example, for a logical segment list Segment List<S1,S2,S3,...,Sn> , where S1 represents the logical first segment element, and Sn represents the logical last segment element. To directly access the corresponding segment element in the routing extension header based on Segment List [Segment Left], as shown in Figure 2, the Segment n-1 field of the routing extension header stores S1, and the Segment 0 field stores Sn.

[0073] In this embodiment, the segment list in the routing extension header may also be stored in positive order. For example, in FIG2 , the Segment 0 field of the routing extension header stores S1, and the Segment n-1 field stores Sn.

[0074] In one embodiment, the routing extension header only contains forwarding resource information specific to each segment. Accordingly, the common resource identification field shared by all segments in the segment list is placed in the IPv6 hop-by-hop options header.

[0075] In this embodiment, the Routing extension header includes a Common Information Identification field, which is shared by all segment elements. However, the Common Information Identification field can also be placed in the IPv6 Hop-by-Hop Options Header as described in the related art, rather than being included in the Routing extension header. That is, the Routing extension header only contains the forwarding resource information unique to each segment. In this case, the forwarding resource information is set and processed in conjunction with the IPv6 Hop-by-Hop Options Header and the Routing extension header. The process is similar to that of using the Routing extension header alone and is not described in detail here.

[0076] In one embodiment, encapsulating a routing extension header in an IPv6 message includes:

[0077] Obtain the corresponding target IPv6 address from the mapping table entry matched by the indicator of the logical first segment element;

[0078] Copying the target IPv6 address to the destination address field of the IPv6 message header;

[0079] The remaining number of segments field in the segment list included in the routing extension header is set to n-1, where n is the number of segment elements included in the logical segment list.

[0080] In this embodiment, for the segment list Segment List<S1,S2,S3,...,Sn> , set the corresponding director and preset fields for each segment in the routing header. Obtain the corresponding target IPv6 address from the ILM table entry matched by S1's director. For example, when S1 represents a direct link, the target IPv6 address is the interface IP address of the other end of the link; for example, when S1 represents a node, the target IPv6 address is the IP address of the node. The target IPv6 address is copied to the Destination Address (DA) field in the IPv6 Header. Additionally, set Segment Left = n-1, indicating that there are n-1 segment elements remaining in the segment list to be processed.

[0081] In one embodiment, in order to further save the byte overhead of the routing extension header, for Segment List<S1,S2,S3,...,Sn> Because the destination IPv6 address corresponding to S1 has been copied to the DA field of the IPv6 header, the head node can also exclude S1 from the segment list of the routing extension header. The routing extension header only needs to include n-1 segments, from segment 0 to segment n-2. At this time, the segment n-2 field contains S2. Furthermore, Segment Left is still set to n-1, indicating that there are n-1 segments left in the segment list to be processed.

[0082] In one embodiment, sending the IPv6 message to the second node includes:

[0083] Obtain the target outbound interface from the mapping table entry, or from the routing table entry that matches the target IPv6 address;

[0084] The IPv6 message is sent to the target outbound interface, and when the IPv6 message is sent, the corresponding forwarding resources of the target outbound interface are used according to the forwarding resource type field, the second forwarding resource identification field and the first forwarding resource identification field of the next segment read in the routing extension header.

[0085] In this embodiment, the mapping table entry may include outbound interface information, and the routing table entry that matches the target IPv6 address may also include outbound interface information. After obtaining the target outbound interface, the IPv6 packet may be sent to the target outbound interface. During the process of sending the IPv6 packet, the corresponding forwarding resources of the target outbound interface may be used based on the relevant fields in the routing extension header encapsulated in the IPv6 packet.

[0086] FIG3 is a flowchart of another source routing method of a routing extension header provided by an embodiment. As shown in FIG3 , the method provided by this embodiment can be applied to a second node, which can be an intermediate node or a tail node in a communication path, and includes steps 210 and 220.

[0087] In step 210, an IPv6 message is received. The IPv6 message is encapsulated with a routing extension header. Each segment element of the segment list contained in the routing extension header specifies unique forwarding resource information.

[0088] In this embodiment, the routing extension header encapsulated in the IPv6 message can be RH-MPLS (Routing Header with MPLS), and each segment element in the segment list included in the routing extension header provides forwarding resource information required for each segment.

[0089] Among them, each segment element in the segment list can be composed of a director and a preset field string, for example, using the Multiprotocol Label Switching (MPLS) label allocation and notification in the related technology, and including topology-related MPLS labels and other forwarding resource-related identifiers in the routing extension header.

[0090] Among them, each segment element in the segment list has an appropriate length to reduce encapsulation overhead, generally occupying 32 bits, or less than 32 bits, or more than 32 bits; each segment element in the segment list can optionally carry common resources accessed by all segments, meeting explicit routing scenarios that require strict hop-by-hop routing, including deterministic forwarding.

[0091] In this embodiment, the routing extension header encapsulated in the IPv6 message may include multiple fields, including at least an inner header type field, a byte overhead field, a routing type field, a remaining number of segments field, a forwarding resource type field, a flag field, a second forwarding resource identification field, and a segment list.

[0092] In this embodiment, the second node may receive the IPv6 message sent by the first node, and there is no specific limitation on the receiving method.

[0093] In step 220, the routing extension header is parsed.

[0094] In this embodiment, the second node obtains the forwarding resource type field and the second forwarding resource identification field in the routing extension header by parsing the routing extension header, and can then use the corresponding forwarding resources of the target outbound interface based on the forwarding resource type field, the second forwarding resource identification field and the first forwarding resource identification field of the next segment read.

[0095] In this embodiment, the second node uses the corresponding forwarding resources by parsing the routing extension header encapsulated in the IPv6 message. The segment elements in the segment list in the routing extension header specify the forwarding resource information unique to each segment to reduce the encapsulation overhead and is used in source routing scenarios including deterministic forwarding paths.

[0096] In one embodiment, each segment element in the segment list included in the routing extension header consists of a director and a preset field;

[0097] The preset field represents forwarding resources or represents an operation or processing to be performed on the IPv6 message.

[0098] In one embodiment, the indicator is any one of the following:

[0099] Multiprotocol Label Switching label; index.

[0100] In one embodiment, the director represents a topology-related instruction, and the director will be matched to a corresponding mapping and forwarding table entry to guide the message to be forwarded to a specific outgoing interface or destination node.

[0101] In one embodiment, the preset field is a first forwarding resource identification field.

[0102] In one embodiment, the routing extension header includes an inner header type field, a byte overhead field, a routing type field, a remaining segment number field, a forwarding resource type field, a flag field, a second forwarding resource identification field, and a segment list.

[0103] In one embodiment, the forwarding resource type field includes but is not limited to the following definitions:

[0104] The first type value indicates reservation; the second type value indicates time slot resource type; and the third type value indicates delay resource type.

[0105] In one embodiment, the first forwarding resource identification field is defined as follows:

[0106] When the forwarding resource type field is a second type value, the first forwarding resource identification field includes a time slot number;

[0107] When the forwarding resource type field is a third type value, the first forwarding resource identification field includes a planned residence time.

[0108] In one embodiment, the second forwarding resource identification field is a common information identification field shared by all segments in the segment list. The second forwarding resource identification field is defined as follows:

[0109] When the forwarding resource type field is a second type value, the second forwarding resource identification field includes an orchestration cycle length;

[0110] When the type field of the forwarding resource is a third type value, the second forwarding resource identification field includes a delay deviation.

[0111] In one embodiment, the routing extension header only contains forwarding resource information specific to each segment. Accordingly, the common resource identification field shared by all segments in the segment list is placed in the IPv6 hop-by-hop options header.

[0112] In one embodiment, the segment list in the routing extension header is stored in reverse order or in forward order.

[0113] In one embodiment, when the second node receives the IPv6 message, if the destination address of the IPv6 extension header matches the local IP address, and the next header field of the IPv6 extension header indicates that the next layer is the routing extension header, parsing the routing extension header includes:

[0114] If the number of remaining segments in the segment list contained in the routing extension header is equal to 0, then continue processing the inner payload, where the inner payload type is determined according to the inner header type field immediately following the routing extension header;

[0115] Otherwise, the number of remaining segments in the segment list contained in the routing extension header is reduced by 1, the next segment in the segment list is read according to the segment list, the corresponding mapping forwarding table entry is queried according to the indicator of the next segment, and the target IPv6 address is obtained from the mapping forwarding table entry; if the minimum IPv6 hop count of the IPv6 extension header is less than or equal to 1, the IPv6 packet is discarded, and an Internet Control Message Protocol timeout message is sent to the source address of the IPv6 extension header, otherwise, the minimum IPv6 hop count is reduced by 1, and the target IPv6 address is copied to the destination address of the IPv6 extension header; if the mapping forwarding table entry contains outbound interface information, the outbound interface corresponding to the outbound interface information is used as the target outbound interface, otherwise the target outbound interface is obtained from the routing table entry that matches the target IPv6 address;

[0116] The IPv6 message is sent to the target outbound interface, and when the IPv6 message is sent, the corresponding forwarding resources of the target outbound interface are used according to the forwarding resource type field, the second forwarding resource identification field and the first forwarding resource identification field of the next segment read in the routing extension header.

[0117] In this embodiment, when an intermediate node or egress node receives an IPv6 packet, if the DA in the IPv6 header matches the local IP address and the Next Header field in the IPv6 header indicates that the next header is RH-MPLS, the RH-MPLS process continues as follows:

[0118] S01, if Segments Left is equal to 0;

[0119] S02: Continue processing the inner payload. The inner payload type is determined by the Next Header field of RH-MPLS.

[0120] S03, otherwise, Segments Left decreases by 1;

[0121] S04, read the next 32-bit segment according to Segment List [Segments Left];

[0122] S05: query the corresponding ILM forwarding table entry according to the read MPLS Label of the next segment, and obtain the target IPv6 address from the forwarding table entry;

[0123] S06: If the IPv6 Hop Limit value of the IPv6 Header is less than or equal to 1;

[0124] S07: The packet is discarded and an ICMP Time Exceeded--Hop Limit Exceeded in Transit message is sent to the Source Address in the IPv6 Header.

[0125] S09: Otherwise, the minimum IPv6 hop count Hop Limit is reduced by 1.

[0126] S10, copy the target IPv6 address to the DA of the IPv6 Header;

[0127] S11, if the ILM forwarding table entry contains outgoing interface information, then the outgoing interface is used as the target outgoing interface; otherwise, the IPv6 routing table entry is searched according to the DA, and the outgoing interface contained in the IPv6 routing table entry is used as the target outgoing interface;

[0128] S12: Send the message to the target outbound interface. When sending the message, use the corresponding forwarding resources of the target outbound interface according to the common RI in RH-MPLS and the read RI per-seg of the next segment.

[0129] The source routing method of the routing extension header in this application is exemplified below through different embodiments.

[0130] Example 1:

[0131] This embodiment describes the process of transmitting IPv6 packets along a deterministic forwarding path using the Timeslot Queueing and Forwarding (TQF) scheduling mechanism. Figure 4 is a schematic diagram of a network provided by one embodiment. In the network shown in Figure 4, all nodes assign MPLS labels to all of their adjacencies. Here, an adjacency is a unidirectional connection from the node to a neighboring node, including outbound interface and next-hop information.

[0132] As shown in Figure 4, for example:

[0133] Node S is the neighboring node to which it connects<intf_s1,ip_a1> Allocate MPLS Label label_s1;

[0134] Node A is the adjacency of its neighbor node S<intf_a1,ip_s1> Assign MPLS Label label_a1 to the adjacency of its neighbor node B.<intf_a2,ip_b1> Allocate MPLS Label label_a2;

[0135] Node B is the adjacency to which it connects to its neighbor node A.<intf_b1,ip_a2> Assign MPLS Label label_b1 to the adjacency of its neighbor node C.<intf_b2,ip_c1> Assign MPLS Label label_b2;

[0136] Node C is connected to its neighbor node B.<intf_c1,ip_b2> Assign MPLS Label label_c1 to the adjacency of its neighbor node D.<intf_c2,ip_d1> Allocate MPLS Label label_c2;

[0137] Node D is the neighbor of its neighbor node C.<intf_d1,ip_c2> Allocate MPLS Label label_d1;

[0138] Assume that a deterministic forwarding path is established from the head node S to the tail node D. It is a traffic engineering path (TE path) based on strict explicit routing, which specifies each hop link and the time slot resources on the link. This TE path may be calculated by the head node S itself, or calculated by requesting the controller. According to the TQF scheduling mechanism, all nodes included in the TE path communicate with each other based on the same orchestration period length (OPL). Assume that an OPL of 1ms is used in this embodiment, which is recorded as OPL-1ms. Assume that the Segment List corresponding to the TE path contains 4 logical segments, from the logical first segment to the fourth segment as follows:

[0139] Adjacency<intf_s1,ip_a1> , and use time slot 23 of outgoing interface intf_s1;

[0140] Adjacency<intf_a2,ip_b1> , and use time slot 17 of outgoing interface intf_a2;

[0141] Adjacency<intf_b2,ip_c1> , and use time slot 13 of outgoing interface intf_b2;

[0142] Adjacency<intf_c2,ip_d1> , and use time slot 19 of outgoing interface intf_c2;

[0143] When forwarding the message along the TE path at the head node S, the message may be encapsulated with an IPv6 header + RH-MPLS, as shown in FIG5 , which is a schematic diagram of another routing extension header provided by an embodiment. In FIG5 :

[0144] Setting RT=1 indicates using time slot resources;

[0145] Setting common RI = 1000 indicates that the OPL is 1000 μs;

[0146] The Segment 3 field stores the logical first segment element corresponding to<MPLS Label,RI per-seg> for<label_s123> .

[0147] The Segment 2 field stores the logical second segment element corresponding to<MPLS Label,RI per-seg> for<label_a217> .

[0148] The Segment 1 field stores the logical third segment element corresponding to<MPLS Label,RI per-seg> for<label_b213> .

[0149] The Segment 0 field stores the logical fourth segment element corresponding to<MPLS Label,RI per-seg> for<label_c219> .

[0150] In addition, Segment Left=3 is set, indicating that there are 3 segments left to be processed.

[0151] The IPv6 packet forwarding process along the TE path is as follows:

[0152] 1) The IPv6 packet is forwarded from the head node S to the neighbor indicated by the first logical segment. The ILM forwarding table entry is queried based on label_s1, and the target IPv6 address is ip_a1 and the target outbound interface is intf_s1. The DA in the packet's IPv6 header is set to ip_a1, and the packet is sent to the target outbound interface intf_s1 in time slot 23 of the OPL-1ms orchestration period instance of intf_s1. The sent packet has Segment Left = 3, indicating that there are three segments left to be processed.

[0153] 2) When the IPv6 packet arrives at node A, the DA in the IPv6 header is equal to ip_a1. Node A queries the IPv6 routing table and detects that ip_a1 is a local address. RH-MPLS parsing continues, and the following steps are performed in sequence to process the RH-MPLS:

[0154] Step 1: If Segment Left is greater than 0, subtract 1 from Segment Left to 2.

[0155] Step 2: Read the next Segment element from the segment list according to Segment List[Segment Left], and get<label_a2,17> ;

[0156] Step 3: Query the ILM forwarding table entry based on label_a2 to obtain the target IPv6 address as ip_b1 and the target outbound interface as intf_a2.

[0157] Step 4: IPv6 sets the DA in the IPv6 header of the packet to ip_b1 and sends the packet to the target outbound interface intf_a2 in time slot 17 of the OPL-1ms orchestration period instance of intf_a2.

[0158] 3) When the IPv6 packet arrives at Node B, based on the IPv6 header's DA being equal to ip_b1, Node B queries the IPv6 routing table and detects that ip_b1 is a local address. Node B then continues resolving the RH-MPLS and performs the following steps in sequence:

[0159] Step 1: If Segment Left is greater than 0, subtract 1 from Segment Left to 1.

[0160] Step 2: Read the next Segment element from the segment list according to Segment List[Segment Left], and get<label_b2,13> ;

[0161] Step 3: Query the ILM forwarding table entry based on label_b2 to obtain the target IPv6 address as ip_c1 and the target outbound interface as intf_b2.

[0162] Step 4: Set the DA in the IPv6 header of the packet to ip_c1 and send the packet to the target outbound interface intf_b2 in time slot 13 of the OPL-1ms orchestration period instance of intf_b2.

[0163] 4) When the IPv6 packet arrives at node C, the DA in the IPv6 header is equal to ip_c1. The node searches the IPv6 routing table and detects that ip_c1 is a local address. It then continues to resolve the RH-MPLS and performs the following steps in sequence:

[0164] Step 1: If Segment Left is greater than 0, reduce Segment Left by 1 to 0.

[0165] Step 2: Read the next Segment element from the segment list according to Segment List[Segment Left], and get<label_c2,19> ;

[0166] Step 3: Query the ILM forwarding table entry based on label_c2 to obtain the target IPv6 address as ip_d1 and the target outbound interface as intf_c2.

[0167] Step 4: Set the DA in the IPv6 header of the packet to ip_d1 and send the packet to the target outbound interface intf_c2 in time slot 19 of the OPL-1ms orchestration period instance of intf_c2.

[0168] 5) When the IPv6 packet arrives at node D, the IPv6 routing table entry is searched and the DA in the IPv6 header is equal to ip_d1. Node D detects that ip_d1 is a local address and continues to resolve the RH-MPLS. The following steps are performed in sequence to process the RH-MPLS:

[0169] Step 1: If Segment Left is equal to 0, remove the IPv6 header and RH-MPLS and continue to identify and process the inner payload based on the Next Header field of RH-MPLS.

[0170] Example 2:

[0171] This embodiment describes the process of transmitting IPv6 packets along a deterministic forwarding path using the deadline scheduling mechanism. In the network shown in Figure 5, all nodes assign MPLS Labels to all their adjacencies. The specific assignment is the same as in Example 1 and will not be repeated here.

[0172] Suppose that a deterministic forwarding path is established from the head node S to the tail node D. This is a traffic engineering path (TE path) based on strict explicit routing, which specifies each hop link and the delay resources on the link. This TE path may be calculated by the head node S itself, or calculated by requesting the controller. According to the deadline scheduling mechanism, the delay resources on the link are composed of multiple delay levels. Different delay levels correspond to different planned residence delays. For simplicity, this article assumes that the specific delay level and its corresponding planned residence delay are consistent. For example, the planned residence delay corresponding to the delay level of 10μs is 10μs, and the planned residence delay corresponding to the delay level of 20μs is 20μs, etc. Assume that the Segment List corresponding to the TE path contains 4 logical segments, from the logical first segment to the fourth segment as follows:

[0173] Adjacency<intf_s1,ip_a1> , and use the delay level of 20μs of the outbound interface intf_s1;

[0174] Adjacency<intf_a2,ip_b1> , and use the latency level of 30μs for the outbound interface intf_a2;

[0175] Adjacency<intf_b2,ip_c1> , and use the latency level of 20μs for the outbound interface intf_b2;

[0176] Adjacency<intf_c2,ip_d1> , and the latency level of 40μs using the outbound interface intf_c2;

[0177] When the IPv6 packet is forwarded along the TE path at the head node S, the packet may be encapsulated with an IPv6 header + RH-MPLS, as shown in FIG6 , which is a schematic diagram of another routing extension header provided by an embodiment. In FIG6 :

[0178] Setting RT=2 indicates using delay resources;

[0179] Set common RI = 0, indicating that the delay deviation E is 0;

[0180] The Segment 3 field stores the logical first segment element corresponding to<MPLS Label,RI per-seg> for<label_s120> ;

[0181] The Segment 2 field stores the logical second segment element corresponding to<MPLS Label,RI per-seg> for<label_a230> ;

[0182] The Segment 1 field stores the logical third segment element corresponding to<MPLS Label,RI per-seg> for<label_b220> ;

[0183] The Segment 0 field stores the logical fourth segment element corresponding to<MPLS Label,RI per-seg> for<label_c240> ;

[0184] In addition, Segment Left=3 is set, indicating that there are 3 segments left to be processed.

[0185] The IPv6 packet forwarding process along the TE path is as follows:

[0186] 1) The IPv6 message is forwarded from the head node S to the neighbor indicated by the logical first Segment. The ILM forwarding table entry is queried based on label_s1 to obtain the target IPv6 address ip_a1 and the target outbound interface intf_s1. The DA of the IPv6 Header of the message is set to ip_a1, and the message is sent to the target outbound interface intf_s1. The actual residence delay is not allowed to exceed the planned residence delay of 20μs. Assuming the actual residence delay is 15μs, set common RI = 5 (i.e., 20 to 15). The Segment Left of the sent message is 3, indicating that there are 3 segments left to be processed.

[0187] 2) When the IPv6 packet arrives at node A, the DA in the IPv6 header is equal to ip_a1. Node A queries the IPv6 routing table and detects that ip_a1 is a local address. RH-MPLS parsing continues, and the following steps are performed in sequence to process the RH-MPLS:

[0188] Step 1: If Segment Left is greater than 0, subtract 1 from Segment Left to 2.

[0189] Step 2: Read the next Segment element from the segment list according to Segment List[Segment Left], and get<label_a2,30> ;

[0190] Step 3: Query the ILM forwarding table entry based on label_a2 to obtain the target IPv6 address as ip_b1 and the target outbound interface as intf_a2.

[0191] Step 4: Set the DA in the packet's IPv6 header to ip_b1 and send the packet to the target outbound interface intf_a2. The actual residence delay must not exceed the planned residence delay of 30 μs plus the delay deviation of 5 μs. Assuming the actual residence delay is 15 μs, set the common RI to 20 (from 35 to 15).

[0192] 3) When the IPv6 packet arrives at Node B, based on the IPv6 header's DA being equal to ip_b1, Node B queries the IPv6 routing table and detects that ip_b1 is a local address. Node B then continues resolving the RH-MPLS and performs the following steps in sequence:

[0193] Step 1: If Segment Left is greater than 0, subtract 1 from Segment Left to 1.

[0194] Step 2: Read the next Segment element from the segment list according to Segment List[Segment Left], and get<label_b2,20> ;

[0195] Step 3: Query the ILM forwarding table entry based on label_b2 to obtain the target IPv6 address as ip_c1 and the target outbound interface as intf_b2.

[0196] Step 4: Set the DA in the packet's IPv6 header to ip_c1 and send the packet to the target outbound interface intf_b2. The actual residence delay must not exceed the planned residence delay of 20 μs plus the delay deviation of 20 μs. Assuming the actual residence delay is 15 μs, set the common RI to 25 (i.e., 40 to 15).

[0197] 4) When the IPv6 packet arrives at node C, the DA in the IPv6 header is equal to ip_c1. The node searches the IPv6 routing table and detects that ip_c1 is a local address. It then continues to resolve the RH-MPLS and performs the following steps in sequence:

[0198] Step 1: If Segment Left is greater than 0, reduce Segment Left by 1 to 0.

[0199] Step 2: Read the next Segment element from the segment list according to Segment List[Segment Left], and get<label_c2,40> ;

[0200] Step 3: Query the ILM forwarding table entry based on label_c2 to obtain the target IPv6 address as ip_d1 and the target outbound interface as intf_c2.

[0201] Step 4: Set the DA in the packet's IPv6 header to ip_d1 and send the packet to the target outbound interface intf_c2. The actual resident delay must not exceed the planned resident delay of 40 μs plus the delay variation of 25 μs. Assuming the actual resident delay is 60 μs, set common RI to 5 (i.e., 65 to 60).

[0202] 5) When the IPv6 packet arrives at node D, the IPv6 routing table entry is searched and the DA in the IPv6 header is equal to ip_d1. Node D detects that ip_d1 is a local address and continues to resolve the RH-MPLS. The following steps are performed in sequence to process the RH-MPLS:

[0203] Step 1: If Segment Left is equal to 0, remove the IPv6 header and RH-MPLS and continue to identify and process the inner payload based on the Next Header field of RH-MPLS.

[0204] The present application also provides a source routing device for a routing extension header. FIG7 is a schematic diagram of the structure of a source routing device for a routing extension header provided by an embodiment. As shown in FIG7 , the source routing device can be configured at a first node and includes:

[0205] The encapsulation module 110 is configured to encapsulate a routing extension header in an IPv6 message; wherein each segment element of the segment list included in the routing extension header specifies unique forwarding resource information.

[0206] The sending module 120 is configured to send the IPv6 message to the second node.

[0207] The source routing device of the routing extension header of this embodiment encapsulates the routing extension header in the IPv6 message through the encapsulation module 110. The segment elements in the segment list in the routing extension header specify the forwarding resource information unique to each segment to reduce the encapsulation overhead. It is used in source routing scenarios including deterministic forwarding paths.

[0208] In one embodiment, each segment element in the segment list included in the routing extension header consists of a director and a preset field;

[0209] The preset field represents forwarding resources or represents an operation or processing to be performed on the IPv6 message.

[0210] In one embodiment, the indicator is any one of the following:

[0211] Multiprotocol Label Switching label; index.

[0212] In one embodiment, the director represents a topology-related instruction, and the director will be matched to a corresponding mapping and forwarding table entry to guide the message to be forwarded to a specific outgoing interface or destination node.

[0213] In one embodiment, the preset field is a first forwarding resource identification field.

[0214] In one embodiment, the routing extension header includes an inner header type field, a byte overhead field, a routing type field, a remaining segment number field, a forwarding resource type field, a flag field, a second forwarding resource identification field, and a segment list.

[0215] In one embodiment, the forwarding resource type field includes but is not limited to the following definitions:

[0216] The first type value indicates reservation; the second type value indicates time slot resource type; and the third type value indicates delay resource type.

[0217] In one embodiment, the first forwarding resource identification field is defined as follows:

[0218] When the forwarding resource type field is a second type value, the first forwarding resource identification field includes a time slot number;

[0219] When the forwarding resource type field is a third type value, the first forwarding resource identification field includes a planned residence time.

[0220] In one embodiment, the second forwarding resource identification field is a common information identification field shared by all segments in the segment list. The second forwarding resource identification field is defined as follows:

[0221] When the forwarding resource type field is a second type value, the second forwarding resource identification field includes an orchestration cycle length;

[0222] When the type field of the forwarding resource is a third type value, the second forwarding resource identification field includes a delay deviation.

[0223] In one embodiment, the segment list in the routing extension header is stored in reverse order or in forward order.

[0224] In one embodiment, the routing extension header only contains forwarding resource information specific to each segment. Accordingly, the common resource identification field shared by all segments in the segment list is placed in the IPv6 hop-by-hop options header.

[0225] In one embodiment, encapsulating a routing extension header in an IPv6 message includes:

[0226] Obtain the corresponding target IPv6 address from the mapping table entry matched by the indicator of the logical first segment element;

[0227] Copying the target IPv6 address to the destination address field of the IPv6 message header;

[0228] The number of remaining segments in the segment list included in the routing extension header is set to n-1, where n is the number of segment elements included in the logical segment list.

[0229] In one embodiment, sending the IPv6 message to the second node includes:

[0230] Obtain the target outbound interface from the mapping table entry, or from the routing table entry that matches the target IPv6 address;

[0231] The IPv6 message is sent to the target outbound interface, and when the IPv6 message is sent, the corresponding forwarding resources of the target outbound interface are used according to the forwarding resource type field, the second forwarding resource identification field and the first forwarding resource identification field of the next segment read in the routing extension header.

[0232] The source routing device for the extended routing header proposed in this embodiment and the source routing method for the extended routing header proposed in the above embodiments belong to the same inventive concept. For technical details not fully described in this embodiment, please refer to any of the above embodiments. This embodiment has the same beneficial effects as the source routing method for the extended routing header.

[0233] The present application also provides a source routing device for a routing extension header. FIG8 is a schematic structural diagram of another source routing device for a routing extension header provided by one embodiment. As shown in FIG8 , the source routing device for the routing extension header can be configured at the second node and includes:

[0234] The receiving module 210 receives an IPv6 message, wherein the IPv6 message is encapsulated with a routing extension header, and each segment element of the segment list included in the routing extension header specifies unique forwarding resource information;

[0235] The parsing module 220 parses the routing extension header.

[0236] The source routing device of the routing extension header of this embodiment uses corresponding forwarding resources by parsing the routing extension header encapsulated in the IPv6 message. The segment elements in the segment list in the routing extension header specify the forwarding resource information unique to each segment to reduce encapsulation overhead. It is used in source routing scenarios including deterministic forwarding paths.

[0237] In one embodiment, each segment element in the segment list included in the routing extension header consists of a director and a preset field;

[0238] The preset field represents forwarding resources or represents an operation or processing to be performed on the IPv6 message.

[0239] In one embodiment, the indicator is any one of the following:

[0240] Multiprotocol Label Switching label; index.

[0241] In one embodiment, the director represents a topology-related instruction, and the director will be matched to a corresponding mapping and forwarding table entry to guide the message to be forwarded to a specific outgoing interface or destination node.

[0242] In one embodiment, the preset field is a first forwarding resource identification field.

[0243] In one embodiment, the routing extension header includes an inner header type field, a byte overhead field, a routing type field, a remaining segment number field, a forwarding resource type field, a flag field, a second forwarding resource identification field, and a segment list.

[0244] In one embodiment, the forwarding resource type field includes but is not limited to the following definitions:

[0245] The first type value indicates reservation; the second type value indicates time slot resource type; and the third type value indicates delay resource type.

[0246] In one embodiment, the first forwarding resource identification field is defined as follows:

[0247] When the forwarding resource type field is a second type value, the first forwarding resource identification field includes a time slot number;

[0248] When the forwarding resource type field is a third type value, the first forwarding resource identification field includes a planned residence time.

[0249] In one embodiment, the second forwarding resource identification field is a common information identification field shared by all segments in the segment list. The second forwarding resource identification field is defined as follows:

[0250] When the forwarding resource type field is a second type value, the second forwarding resource identification field includes an orchestration cycle length;

[0251] When the type field of the forwarding resource is a third type value, the second forwarding resource identification field includes a delay deviation.

[0252] In one embodiment, the routing extension header only contains forwarding resource information specific to each segment. Accordingly, the common resource identification field shared by all segments in the segment list is placed in the IPv6 hop-by-hop options header.

[0253] In one embodiment, the segment list in the routing extension header is stored in reverse order or in forward order.

[0254] In one embodiment, when the second node receives the IPv6 message, if the destination address of the IPv6 extension header matches the local IP address, and the next header field of the IPv6 extension header indicates that the next layer is the routing extension header, parsing the routing extension header includes:

[0255] If the number of remaining segments in the segment list contained in the routing extension header is equal to 0, then continue processing the inner payload, where the inner payload type is determined according to the inner header type field immediately following the routing extension header;

[0256] Otherwise, the number of remaining segments in the segment list contained in the routing extension header is reduced by 1, the next segment in the segment list is read according to the segment list, the corresponding mapping forwarding table entry is queried according to the indicator of the next segment, and the target IPv6 address is obtained from the mapping forwarding table entry; if the minimum IPv6 hop count of the IPv6 extension header is less than or equal to 1, the IPv6 packet is discarded, and an Internet Control Message Protocol timeout message is sent to the source address of the IPv6 extension header, otherwise, the minimum IPv6 hop count is reduced by 1, and the target IPv6 address is copied to the destination address of the IPv6 extension header; if the mapping forwarding table entry contains outbound interface information, the outbound interface corresponding to the outbound interface information is used as the target outbound interface, otherwise the target outbound interface is obtained from the routing table entry that matches the target IPv6 address;

[0257] The IPv6 message is sent to the target outbound interface, and when the IPv6 message is sent, the corresponding forwarding resources of the target outbound interface are used according to the forwarding resource type field, the second forwarding resource identification field and the first forwarding resource identification field of the next segment read in the routing extension header.

[0258] The source routing device for the extended routing header proposed in this embodiment and the source routing method for the extended routing header proposed in the above embodiments belong to the same inventive concept. For technical details not fully described in this embodiment, please refer to any of the above embodiments. This embodiment has the same beneficial effects as the source routing method for the extended routing header.

[0259] In one embodiment, Figure 9 is a schematic diagram of the structure of a communication node provided in one embodiment. As shown in Figure 9, the communication node provided in this application includes: a processor 310 and a memory 320. The number of processors 310 in the device can be one or more, and Figure 9 uses one processor 310 as an example. The number of memories 320 in the device can be one or more, and Figure 9 uses one memory 320 as an example. The processor 310 and memory 320 of the device can be connected via a bus or other means, and Figure 9 uses a bus connection as an example. In this embodiment, the node can be a first node or a second node.

[0260] The memory 320, as a computer-readable storage medium, can be configured to store software programs, computer executable programs, and modules, such as program instructions / modules corresponding to the device of any embodiment of the present application (for example, the encapsulation module 110 and the sending module 120 in the source routing device of the routing extension head). The memory 320 may include a program storage area and a data storage area, wherein the program storage area may store an operating system and at least one application required for a function; the data storage area may store data created based on the use of the device, etc. In addition, the memory 320 may include a high-speed random access memory and may also include a non-volatile memory, such as at least one disk storage device, a flash memory device, or other non-volatile solid-state storage device. In some examples, the memory 320 may further include a memory remotely located relative to the processor 310, and these remote memories may be connected to the device via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.

[0261] In the case where the communication node is the first node, the above-provided device can be configured to execute the source routing method of the routing extension header applied to the first node provided in any of the above-mentioned embodiments, and have corresponding functions and effects.

[0262] In the case where the communication node is a second node, the above-provided device can be configured to execute the source routing method of the routing extension header applied to the second node provided in any of the above-mentioned embodiments, and have corresponding functions and effects.

[0263] An embodiment of the present application also provides a storage medium containing computer-executable instructions, which, when executed by a computer processor, are used to perform a source routing method for a routing extension header applied to a first node, the method comprising: encapsulating a routing extension header in an IPv6 message; wherein each segment element of a segment list contained in the routing extension header specifies unique forwarding resource information; and sending the IPv6 message to a second node.

[0264] An embodiment of the present application also provides a storage medium containing computer-executable instructions, which, when executed by a computer processor, are used to perform a source routing method for an information routing extension header applied to a second node, the method comprising: receiving an IPv6 message, wherein the IPv6 message is encapsulated with a routing extension header, wherein each segment element of a segment list contained in the routing extension header specifies unique forwarding resource information; and parsing the routing extension header.

[0265] The embodiment of the present application further provides a communication system. FIG10 is a schematic structural diagram of a communication system provided by an embodiment. As shown in FIG10 , the communication system includes a first node 10 and a second node 20;

[0266] The first node 10 is configured to encapsulate a routing extension header in an IPv6 message and send the IPv6 message to the second node; wherein the elements of the segment list included in the routing extension header specify forwarding resource information specific to each segment;

[0267] The second node 20 is configured to parse the routing extension header when receiving the IPv6 message.

[0268] An embodiment of the present application provides a communication system that specifies forwarding resource information specific to each segment through segment elements in a segment list within a routing extension header to reduce encapsulation overhead and is used in source routing scenarios including deterministic forwarding paths.

[0269] In one embodiment, each segment element in the segment list included in the routing extension header consists of a director and a preset field;

[0270] The preset field represents forwarding resources or represents an operation or processing to be performed on the IPv6 message.

[0271] In one embodiment, the indicator is any one of the following:

[0272] Multiprotocol Label Switching label; index.

[0273] In one embodiment, the director represents a topology-related instruction, and the director will be matched to a corresponding mapping and forwarding table entry to guide the message to be forwarded to a specific outgoing interface or destination node.

[0274] In one embodiment, the preset field is a first forwarding resource identification field.

[0275] In one embodiment, the routing extension header includes an inner header type field, a byte overhead field, a routing type field, a remaining segment number field, a forwarding resource type field, a flag field, a second forwarding resource identification field, and a segment list.

[0276] In one embodiment, the forwarding resource type field includes but is not limited to the following definitions:

[0277] The first type value indicates reservation; the second type value indicates time slot resource type; and the third type value indicates delay resource type.

[0278] In one embodiment, the first forwarding resource identification field is defined as follows:

[0279] When the forwarding resource type field is a second type value, the first forwarding resource identification field includes a time slot number;

[0280] When the forwarding resource type field is a third type value, the first forwarding resource identification field includes a planned residence time.

[0281] In one embodiment, the second forwarding resource identification field is a common information identification field shared by all segments in the segment list. The second forwarding resource identification field is defined as follows:

[0282] When the forwarding resource type field is a second type value, the second forwarding resource identification field includes an orchestration cycle length;

[0283] When the type field of the forwarding resource is a third type value, the second forwarding resource identification field includes a delay deviation.

[0284] In one embodiment, the segment list in the routing extension header is stored in reverse order or in forward order.

[0285] In one embodiment, the routing extension header only contains forwarding resource information specific to each segment. Accordingly, the common resource identification field shared by all segments in the segment list is placed in the IPv6 hop-by-hop options header.

[0286] In one embodiment, the first node 10 is specifically used to: obtain the corresponding target IPv6 address from the mapping table entry matched by the indicator of the logical first segment element; copy the target IPv6 address to the destination address field of the IPv6 packet header; set the number of remaining segments in the segment list contained in the routing extension header to n-1, where n is the number of segment elements contained in the logical segment list; obtain the target outbound interface from the mapping table entry, or obtain the target outbound interface from the routing table entry matching the target IPv6 address.

[0287] In one embodiment, the first node 10 is specifically used to: send the IPv6 message to the target outbound interface, and when the IPv6 message is sent, use the corresponding forwarding resources of the target outbound interface according to the forwarding resource type field, the second forwarding resource identification field and the first forwarding resource identification field of the next segment read in the routing extension header.

[0288] In one embodiment, when the second node receives the IPv6 message, if the destination address of the IPv6 extension message header matches the local IP address, and the next header field of the IPv6 extension message header indicates that the next layer is the routing extension header, the second node 20 is specifically used to: if the number of remaining segments in the segment list contained in the routing extension header is equal to 0, then continue to process the inner layer load, and the inner layer load type is determined according to the inner layer header type field immediately following the routing extension header; otherwise, reduce the number of remaining segments in the segment list contained in the routing extension header by 1, read the next segment in the segment list according to the segment list, query the corresponding mapping forwarding table entry according to the indicator of the next segment, and obtain the target IPv6 address from the mapping forwarding table entry; if the IPv6 hop in the IPv6 extension message header is equal to 0, then continue to process the inner layer load, and the inner layer load type is determined according to the inner layer header type field immediately following the routing extension header; otherwise, reduce the number of remaining segments in the segment list contained in the routing extension header by 1, read the next segment in the segment list according to the segment list, query the corresponding mapping forwarding table entry according to the indicator of the next segment, and obtain the target IPv6 address from the mapping forwarding table entry; If the minimum value of the number is less than or equal to 1, the IPv6 packet is discarded and an Internet Control Message Protocol timeout message is sent to the source address of the IPv6 extended packet header; otherwise, the minimum value of the IPv6 hop count is reduced by 1, and the target IPv6 address is copied to the destination address of the IPv6 extended packet header; if the mapping forwarding table entry contains outbound interface information, the outbound interface corresponding to the outbound interface information is used as the target outbound interface, otherwise the target outbound interface is obtained from the routing table entry that matches the target IPv6 address; the IPv6 packet is sent to the target outbound interface, and when the IPv6 packet is sent, the corresponding forwarding resources of the target outbound interface are used according to the forwarding resource type field, the second forwarding resource identification field and the first forwarding resource identification field of the next segment read in the routing extension header.

[0289] It will be appreciated by those skilled in the art that the term user equipment encompasses any suitable type of wireless user equipment, such as a mobile phone, a portable data processing device, a portable web browser or a car-mounted mobile station.

[0290] In general, various embodiments of the present application may be implemented in hardware or dedicated circuits, software, logic, or any combination thereof. For example, some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software that can be executed by a controller, microprocessor, or other computing device, although the present application is not limited thereto.

[0291] Embodiments of the present application may be implemented by executing computer program instructions by a data processor of a mobile device, for example, in a processor entity, or by hardware, or by a combination of software and hardware. The computer program instructions may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages.

[0292] The block diagram of any logical flow in the drawings of the present application may represent program steps, or may represent interconnected logical circuits, modules and functions, or may represent a combination of program steps and logical circuits, modules and functions. A computer program may be stored on a memory. The memory may be of any type suitable for the local technical environment and may be implemented using any suitable data storage technology, such as, but not limited to, a read-only memory (ROM), a random access memory (RAM), an optical storage device and system (a digital versatile disc (DVD) or a compact disk (CD)). Computer-readable media may include non-transient storage media. A data processor may be of any type suitable for the local technical environment, such as, but not limited to, a general-purpose computer, a special-purpose computer, a microprocessor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and a processor based on a multi-core processor architecture.

Claims

1. A source routing method for a routing extension header, applied to a first node, the method comprising: Encapsulating a routing extension header in an Internet Protocol version 6 (IPv6) message; wherein each segment element of a segment list included in the routing extension header specifies unique forwarding resource information; Send the IPv6 message to the second node.

2. The method according to claim 1, wherein Each segment element in the segment list included in the routing extension header consists of a director and a preset field; The preset field represents forwarding resources or represents an operation or processing to be performed on the IPv6 message.

3. The method according to claim 2, wherein: The indicator is any one of the following: Multiprotocol Label Switching label; index.

4. The method according to claim 3, wherein: The director represents a topology-related instruction, and the director will be matched to a corresponding mapping forwarding table entry to guide the message to be forwarded to a specific outgoing interface or destination node.

5. The method according to claim 2, wherein: The preset field is a first forwarding resource identification field.

6. The method according to claim 1, wherein The routing extension header includes an inner header type field, a byte overhead field, a routing type field, a remaining segment number field, a forwarding resource type field, a flag field, a second forwarding resource identification field, and a segment list.

7. The method according to claim 6, wherein: The forwarding resource type field includes: The first type value indicates reservation; the second type value indicates time slot resource type; and the third type value indicates delay resource type.

8. The method according to claim 5, wherein The first forwarding resource identification field is defined as follows: In response to determining that the forwarding resource type field is a second type value, the first forwarding resource identification field includes a time slot number; In response to determining that the forwarding resource type field is a third type value, the first forwarding resource identification field includes a planned residence time.

9. The method according to claim 6, wherein: The second forwarding resource identification field is a common information identification field shared by all segments in the segment list. The second forwarding resource identification field is defined as follows: In response to determining that the forwarding resource type field is a second type value, the second forwarding resource identification field includes an orchestration cycle length; In response to determining that the type field of the forwarding resource is a third type value, the second forwarding resource identification field includes a delay deviation.

10. The method according to claim 1, wherein The segment list in the routing extension header is stored in reverse order or in forward order.

11. The method according to claim 1, wherein The routing extension header only contains forwarding resource information specific to each segment, and the common resource identification field shared by all segments in the segment list is placed in the IPv6 hop-by-hop options header.

12. The method according to claim 1, wherein The encapsulating of the routing extension header in the IPv6 message includes: Obtain the corresponding target IPv6 address according to the mapping table entry matched by the indicator of the logical first segment element; Copying the target IPv6 address to the destination address field of the IPv6 message header; The number of remaining segments in the segment list included in the routing extension header is set to n-1, where n is the number of segment elements included in the logical segment list.

13. The method according to claim 1 or 12, wherein: The sending the IPv6 message to the second node includes: Obtain the target outbound interface from the mapping table entry, or from the routing table entry that matches the target IPv6 address; The IPv6 message is sent to the target outbound interface, and when the IPv6 message is sent, the corresponding forwarding resources of the target outbound interface are used according to the forwarding resource type field, the second forwarding resource identification field and the first forwarding resource identification field of the next segment read in the routing extension header.

14. A source routing method for a routing extension header, applied to a second node, the method comprising: Receive an Internet Protocol version 6 (IPv6) message, wherein the IPv6 message is encapsulated with a routing extension header. Each segment element in the segment list contained in the header specifies unique forwarding resource information; Parse the routing extension header.

15. The method according to claim 14, wherein Each segment element in the segment list included in the routing extension header consists of a director and a preset field; The preset field represents forwarding resources or represents an operation or processing to be performed on the IPv6 message.

16. The method according to claim 15, wherein The indicator is any one of the following: Multiprotocol Label Switching label; index.

17. The method according to claim 16, wherein The director represents a topology-related instruction, and the director is matched to a corresponding mapping forwarding table entry to guide the message to be forwarded to a specific outgoing interface or destination node.

18. The method according to claim 15, wherein The preset field is a first forwarding resource identification field.

19. The method according to claim 14, wherein The routing extension header includes an inner header type field, a byte overhead field, a routing type field, a remaining segment number field, a forwarding resource type field, a flag field, a second forwarding resource identification field, and a segment list.

20. The method according to claim 19, wherein The forwarding resource type field includes: The first type value indicates reservation; the second type value indicates time slot resource type; and the third type value indicates delay resource type.

21. The method according to claim 18, wherein The first forwarding resource identification field is defined as follows: In response to determining that the forwarding resource type field is a second type value, the first forwarding resource identification field includes a time slot number; In response to determining that the forwarding resource type field is a third type value, the first forwarding resource identification field includes a planned residence time.

22. The method according to claim 19, wherein The second forwarding resource identification field is a common information identification field shared by all segments in the segment list. The second forwarding resource identification field is defined as follows: In response to determining that the forwarding resource type field is a second type value, the second forwarding resource identification field includes an orchestration cycle length; In response to determining that the type field of the forwarding resource is a third type value, the second forwarding resource identification field includes a delay deviation.

23. The method according to claim 14, wherein The routing extension header only contains forwarding resource information specific to each segment, and the common resource identification field shared by all segments in the segment list is placed in the IPv6 hop-by-hop options header.

24. The method according to claim 14, wherein The segment list in the routing extension header is stored in reverse order or in forward order.

25. The method according to claim 14, wherein The second node, upon receiving the IPv6 message, in response to determining that the destination address of the IPv6 extension message header matches the local IP address, and the next header field of the IPv6 extension message header indicates that the next layer is the routing extension header, parsing the routing extension header includes: In response to determining that the number of remaining segments in the segment list included in the routing extension header is equal to zero, continuing to process an inner payload, where the inner payload type is determined according to an inner header type field immediately following the routing extension header; In response to determining that the number of remaining segments in the segment list included in the routing extension header is greater than 0, the number of remaining segments in the segment list included in the routing extension header is reduced by 1, the next segment in the segment list is read according to the segment list, the corresponding mapping and forwarding table entry is queried according to the indicator of the next segment, and the target IPv6 address is obtained from the mapping and forwarding table entry; in response to determining that the minimum IPv6 hop count of the IPv6 extension header is less than or equal to 1, the IPv6 packet is discarded, and an Internet Control Message Protocol timeout message is sent to the source address of the IPv6 extension header; in response to determining that the minimum IPv6 hop count of the IPv6 extension header is greater than 1, the minimum IPv6 hop count is reduced by 1, and the target IPv6 address is copied to the destination address of the IPv6 extension header; in response to determining that the mapping and forwarding table entry contains outbound interface information, the outbound interface corresponding to the outbound interface information is used as the target outbound interface; in response to determining that the mapping and forwarding table entry does not contain outbound interface information, the target outbound interface is obtained from the routing table entry that matches the target IPv6 address; The IPv6 message is sent to the target outbound interface, and when the IPv6 message is sent, the forwarding resource type field, the second forwarding resource identification field and the first forwarding resource identification field of the next segment read in the routing extension header are used to identify the forwarding resource type field, the second forwarding resource identification field and the first forwarding resource identification field of the next segment read. The source identification field uses the corresponding forwarding resources of the target outbound interface.

26. A communication node, comprising: memory, and one or more processors; The memory is configured to store one or more programs; When the one or more programs are executed by the one or more processors, the one or more processors implement the method as claimed in any one of claims 1 to 13 or 14 to 25.

27. A storage medium storing a computer program, wherein the computer program, when executed by a processor, implements the method according to any one of claims 1 to 13 or 14 to 25.

28. A communication system comprising: a first node and a second node; The first node is configured to encapsulate a routing extension header in an Internet Protocol version 6 (IPv6) message and send the IPv6 message to the second node; wherein the elements of the segment list included in the routing extension header specify forwarding resource information specific to each segment; The second node is configured to parse the routing extension header when receiving the IPv6 message.

Citation Information

Patent Citations

  • A method and apparatus for saving segment identification cost in IPv6 segment routing

    CN109067652A

  • Time delay measurement method and device based on SRv6 SID

    CN112565017A

  • Source route compression

    US20230028147A1

  • Method, apparatus and system for processing message

    WO2023208056A1