Message forwarding method and apparatus, and computer-readable storage medium
By assigning composite tags with a combination of common tags and original instance numbers to the FEC type in the SR-MPLS scheme, the problem of excessive consumption of MPLS tag resources is solved and network performance is improved.
Patent Information
- Application Number
- PCT/CN2024/073511
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-06-02
- Filing Date
- 2024-01-22
- Publication Date
- 2024-12-05
AI Technical Summary
In the SR-MPLS scheme, the consumption of MPLS tag resources during segment routing is too large, especially after combining virtual topology and network slicing functions, resulting in serious shortage of tag resources.
By assigning a first tag to each FEC type and generating a composite second tag based on the first tag and the original instance number, the need for MPLS tag resources is reduced, and additional MPLS tags are avoided to assign each original instance.
It greatly saves the consumption of MPLS tag resources, reduces the announcement of tag messages, and improves the overall performance of the network.
Smart Images

Figure CN2024073511_05122024_PF_FP_ABST
Abstract
Description
Message forwarding method, device, and computer-readable storage medium
[0001] This application claims priority to Chinese patent application No. 202310652132.1, filed on June 2, 2023, the entire contents of which are incorporated by reference into this application. Technical Field
[0002] The present disclosure relates to the field of communications, and in particular to a message forwarding method, device, and computer-readable storage medium. Background Art
[0003] Segment routing is a routing method based on the source node. It includes: the source node attaches a layer of ordered instruction list information to the data message, and forwards the shortest path segment by segment based on the ordered segment identifier (SID) list information on the data plane.
[0004] Currently, segment routing (SR) can be applied to the multi-protocol label switching (MPLS) data plane and the internet protocol version 6 (IPv6) data plane, respectively known as the SR-MPLS solution and the SRv6 solution.
[0005] Summary of the Invention
[0006] In one aspect, embodiments of the present disclosure provide a message forwarding method. The message forwarding method includes: receiving a target message sent by a second node, the target message including a second label, the second label including a first label and an original instance number, the first label corresponding to a forwarding equivalence class (FEC) type, and the original instance number representing an identifier or index of an original instance belonging to the FEC type; and processing the target message based on the second label.
[0007] In another aspect, an embodiment of the present disclosure provides a message forwarding method. The message forwarding method includes: sending a target message to a first node. The target message includes a second label, the second label including a first label and an original instance number, the first label corresponding to a forwarding equivalence class (FEC) type, and the original instance number representing an identifier or index of an original instance belonging to the FEC type.
[0008] In another aspect, embodiments of the present disclosure provide a message forwarding device. The message forwarding device includes a receiving unit and a processing unit. The receiving unit is configured to receive a target message sent by a second node, the target message including a second label, the second label including a first label and an original instance number, the first label corresponding to a forwarding equivalence class (FEC) type, and the original instance number representing an identifier or index of an original instance belonging to the FEC type. The processing unit is configured to process the target message based on the second label.
[0009] In another aspect, embodiments of the present disclosure provide a message forwarding device. The message forwarding device includes a sending unit configured to send a target message to a first node. The target message includes a second label, the second label including a first label and an original instance number, the first label corresponding to a forwarding equivalence class (FEC) type, and the original instance number representing an identifier or index of an original instance of the FEC type.
[0010] In another aspect, embodiments of the present disclosure provide a message forwarding device. The message forwarding device includes a memory and a processor. The memory and the processor are coupled; the memory is configured to store a computer program; and the processor implements the message forwarding method described above when executing the computer program.
[0011] On the other hand, an embodiment of the present disclosure provides a computer-readable storage medium having computer program instructions stored thereon, which implement the message forwarding method according to the above aspect when executed by a processor.
[0012] On the other hand, an embodiment of the present disclosure provides a computer program product, which includes computer program instructions, and when the computer program instructions are executed by a processor, the message forwarding method of the above aspect is implemented. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] To more clearly illustrate the technical solutions of the present disclosure, the following briefly introduces the drawings required for use in some embodiments of the present disclosure. Obviously, the drawings described below are only drawings of some embodiments of the present disclosure, and those skilled in the art can also derive other drawings based on these drawings. Furthermore, the drawings described below are schematic diagrams and do not limit the actual dimensions of the products, actual processes of the methods, actual timing of signals, etc. involved in the embodiments of the present disclosure.
[0014] FIG1 is a schematic diagram of the architecture of an MPLS network system according to some embodiments of the present disclosure.
[0015] FIG2 is a flow chart of a message forwarding method according to some embodiments of the present disclosure.
[0016] FIG3 is a schematic diagram illustrating the composition of an MPLS label stack according to some embodiments of the present disclosure.
[0017] FIG4 is a schematic diagram illustrating the composition of another MPLS label stack according to some embodiments of the present disclosure.
[0018] FIG5 is a schematic diagram illustrating the composition of another MPLS label stack according to some embodiments of the present disclosure.
[0019] FIG6 is a schematic diagram of an LSE format according to some embodiments of the present disclosure.
[0020] FIG7 is a schematic diagram of another LSE format according to some embodiments of the present disclosure.
[0021] FIG8 is a flowchart of another message forwarding method according to some embodiments of the present disclosure.
[0022] FIG9 is a flowchart of another message forwarding method according to some embodiments of the present disclosure.
[0023] FIG10 is a diagram of a sub-TLV encapsulation format according to some embodiments of the present disclosure.
[0024] FIG11 is a schematic structural diagram of a message forwarding device according to some embodiments of the present disclosure.
[0025] FIG12 is a schematic structural diagram of another message forwarding device according to some embodiments of the present disclosure.
[0026] FIG13 is a schematic structural diagram of another message forwarding device according to some embodiments of the present disclosure. DETAILED DESCRIPTION
[0027] To help those skilled in the art better understand the technical solutions of the embodiments of the present disclosure, the technical solutions in some embodiments of the present disclosure are clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some of the embodiments of the present disclosure, not all of them. All other embodiments obtained by those skilled in the art based on the embodiments provided by the present disclosure are within the scope of protection of the present disclosure.
[0028] Unless the context requires otherwise, throughout the specification and claims, the term "comprise" and its other forms, such as the third person singular form "comprises" and the present participle form "comprising", are to be interpreted as open and inclusive, that is, "including, but not limited to". In the description of the specification, the terms "one embodiment", "some embodiments", "exemplary embodiments", "example", "specific example" or "some examples" are intended to indicate that the particular features, structures, materials or characteristics associated with the embodiment or example are included in at least one embodiment or example of the present disclosure. The schematic representation of the above terms does not necessarily refer to the same embodiment or example. In addition, the particular features, structures, materials or characteristics may be included in any one or more embodiments or examples in any appropriate manner.
[0029] In the following, the terms "first," "second," etc., are used for descriptive purposes only and should not be understood to indicate or imply relative importance or implicitly specify the number of the technical features indicated. Thus, a feature defined as "first," "second," etc. may explicitly or implicitly include one or more of the features. In the description of the embodiments of the present disclosure, unless otherwise specified, "plurality" means two or more.
[0030] “At least one of A, B and C” has the same meaning as “at least one of A, B or C” and both include the following combinations of A, B and C: A only, B only, C only, the combination of A and B, the combination of A and C, the combination of B and C, and the combination of A, B and C.
[0031] “A and / or B” includes the following three combinations: A only, B only, and a combination of A and B.
[0032] The use of "adapted to" or "configured to" herein is intended to be open and inclusive language that does not exclude devices adapted or configured to perform additional tasks or steps.
[0033] Additionally, the use of “based on” is meant to be open and inclusive, as a process, step, calculation, or other action “based on” one or more stated conditions or values may, in practice, be based on additional conditions or values beyond those stated.
[0034] Segment routing (SR) technology is a method of routing based on the source node, including: the source node attaches a layer of ordered instruction list information to the data message, and forwards the shortest path and service chain segment by segment on the data plane according to the ordered segment identifier (SID) list information. This method can force a flow to pass through any path and service chain by maintaining the state of each flow only on the source node, and neither the intermediate node nor the tail node needs to maintain the state of the flow. Segment routing can be applied to the multi-protocol label switching (MPLS) data plane and the internet protocol version 6 (IPv6) data plane, respectively referred to as the SR-MPLS solution and the SRv6 solution.
[0035] At present, when forwarding messages involving segment routing in the SR-MPLS solution, a layer of ordered segment list, also known as the MPLS label stack, is encapsulated for the message. In this solution, it is necessary to allocate adjacency segment identifiers (Adjacency SIDs) to a large number of links. Allocating these Adjacency SIDs consumes a large amount of MPLS label resources. In addition, in some technologies, for forwarding equivalence classes (FEC) with multiple original instances (for example, instant-1, instant-2, ..., instant-n), different MPLS labels are also allocated to each original instance. As a result, in the SR-MPLS solution, the consumption of MPLS label resources is relatively large. Moreover, after combining functions such as virtual topology and network slicing, the consumption of MPLS label resources will be even more serious.
[0036] In response to the current defect of excessive consumption of MPLS label resources when forwarding messages involving segment routing in the SR-MPLS solution, the present disclosure provides a message forwarding method and device. In the message forwarding method provided by the present disclosure, for the original instances of multiple specific FEC types in the SR-MPLS solution, a first label can be allocated by the first node in the network for each FEC type; the second node in the network will determine a composite second label based on the first label and the original instance number, and encapsulate the second label in the subsequently generated forwarding message sent to the first node; then, after receiving the target message, the first node can process the target message according to the second label included in the message. Since the first label is independent of the original instance included in the FEC type and is only related to the number of FEC types, the first node in the present disclosure no longer needs to allocate an MPLS label for each original instance. Therefore, the present disclosure can greatly save the consumption of MPLS label resources, while also reducing the notification of label messages, thereby improving the overall network performance.
[0037] The message forwarding method and apparatus provided by the present disclosure are described in detail below in conjunction with the accompanying drawings. It should be noted that the various embodiments of the present disclosure can refer to or be mutually referenced. For example, the same or similar steps, method embodiments, system embodiments, and apparatus embodiments can all refer to each other without limitation.
[0038] The technical solutions provided by the embodiments of the present disclosure can be applied to MPLS network systems. For example, as shown in FIG1 , FIG1 is a schematic diagram of the architecture of an MPLS network system according to some embodiments of the present disclosure. The MPLS network system may include at least one first node 101 and at least one second node 102, both of which are nodes in the MPLS network. FIG1 only shows one first node 101 and one second node 102.
[0039] The first node 101 is used to receive a target message sent by the second node 102, where the target message includes a second label, where the second label includes a first label and an original instance number, where the first label corresponds to a forwarding equivalence class (FEC) type, and the original instance number represents an identifier or index of an original instance belonging to the FEC type; and processes the target message according to the second label.
[0040] Second node 102 sends a target message to first node 101. The target message includes a second label, which includes a first label and an original instance number. The first label corresponds to a forwarding equivalence class (FEC) type, and the original instance number indicates an identifier or index of an original instance of the FEC type.
[0041] It should be noted that Figure 1 is only an exemplary framework diagram. The number and names of the nodes included in Figure 1 are not limited. In addition to the functional nodes shown in Figure 1, the MPLS network system can also include other nodes, such as core network equipment. This disclosure does not impose any restrictions on this.
[0042] The application scenarios of the embodiments of the present disclosure are not limited. The system architecture and business scenarios described in the embodiments of the present disclosure are intended to more clearly illustrate the technical solutions of the embodiments of the present disclosure and do not constitute a limitation on the technical solutions provided by the embodiments of the present disclosure. Those skilled in the art will appreciate that with the evolution of network architecture and the emergence of new business scenarios, the technical solutions provided by the embodiments of the present disclosure are equally applicable to similar technical problems.
[0043] Exemplarily, as shown in FIG2 , FIG2 is a flow chart of a message forwarding method according to some embodiments, including the following S201 and S202 .
[0044] In S201, the second node sends a target message to the first node. Correspondingly, the first node receives the target message.
[0045] The target message includes a second label, which includes a first label and an original instance number. The first label corresponds to a forwarding equivalence class (FEC) type, and the original instance number indicates an identifier or index of an original instance belonging to the FEC type.
[0046] It should be noted that the first label is a label assigned by the first node to the original instance of a specific FEC type, and the first label is independent of the original instance and only corresponds to the FEC type of the original instance, so as to save label resources.
[0047] In some embodiments, the first label can be implemented as a universal SID. It should be noted that the universal SID can be an absolute MPLS label or a relative index used to derive an absolute MPLS label, and this disclosure is not limited to this. For example, embodiments of the disclosure can allocate different universal SIDs to different virtual networks.
[0048] In some embodiments, the first node may assign different first labels to the same FEC type for different virtual networks. Virtual network types include, but are not limited to, interior gateway protocol (IGP) multi-topology, IGP flexible algorithm (flex-algo), and network resource partition (NRP). It is understood that a physical network can be used as a special virtual network.
[0049] In some embodiments, the FEC type of the original instance includes at least one of the following: an egress port type, a service function (Service Function) type, and a virtual private network (VPN) type.
[0050] Correspondingly, when the FEC type of the original instance is an egress port type, the original instance number is an egress port identifier or index, and the original instance is an egress port instance.
[0051] Alternatively, when the FEC type of the original instance is a Service Function type, the original instance number is a Service Function identifier or index, and the original instance is a Service Function instance.
[0052] Alternatively, when the FEC type of the original instance is a VPN type, the original instance number is a VPN identifier or index, and the original instance is a VPN instance.
[0053] In some embodiments, the correspondence between the first label and the FEC type may be reflected by a label forwarding table corresponding to the first label. The label forwarding table may be created by the first node based on the first label.
[0054] Exemplarily, the label forwarding table includes FEC types and an operation instruction corresponding to each FEC type, wherein the operation instruction is used to instruct to obtain the original instance number of the original instance.
[0055] For example, when the FEC type of the original instance is the egress port type, the label forwarding table corresponding to the first label includes the following content: the FEC type is the egress port type and an operation instruction for obtaining the original instance number.
[0056] Similarly, when the FEC type of the original instance is the Service Function type, the label forwarding table corresponding to the first label includes the following content: the FEC type is the Service Function type and an operation instruction for obtaining the original instance number.
[0057] Similarly, when the FEC type of the original instance is VPN type, the label forwarding table corresponding to the first label includes the following content: FEC type is VPN type and an operation instruction for obtaining the original instance number.
[0058] In some embodiments, after assigning the first label to the original instance, the first node sends a first notification message to the second node. The first notification message includes the first label and the FEC type corresponding to the first label. In this way, after receiving the first notification message, the second node can obtain the first label from the first notification message.
[0059] In some embodiments, before receiving the target message sent by the second node, the first node sends a second notification message to the second node, where the second notification message includes the original instance and the original instance number. In this way, after receiving the second notification message, the second node can obtain the original instance number from the second notification message.
[0060] It is understood that after obtaining the first label and the original instance number, the second node may combine the first label and the original instance number to form a composite label corresponding to the original instance. This composite label is the second label. The process for determining the second label by the second node can be seen in S801 to S803 below and is not further described here.
[0061] In some embodiments, the target message may be an MPLS forwarding message. Exemplarily, the MPLS forwarding message includes an MPLS label stack. Thus, the second label may be carried in the MPLS label stack.
[0062] The following describes how the MPLS label stack carries the second label in three cases.
[0063] (1) Case 1: The MPLS label stack includes the first label and the original instance number in sequence.
[0064] For example, Figure 3 illustrates the structure of an MPLS label stack according to an embodiment of the present disclosure. In Figure 3, the encapsulated MPLS label stack, from top to bottom, includes: other MPLS labels (if any), the first label, the original instance number, other MPLS labels (if any), and the payload.
[0065] (2) Case 2: The MPLS label stack includes the first label, the MPLS special label, and the original instance number in sequence.
[0066] For example, Figure 4 illustrates another MPLS label stack structure according to an embodiment of the present disclosure. In Figure 4, the encapsulated MPLS label stack, from top to bottom, includes: other MPLS labels (if any), the first label, the MPLS special label, the original instance number, other MPLS labels (if any), and the payload.
[0067] (3) Case 3: The MPLS label stack includes the first label, the MPLS special label, and the auxiliary data structure in sequence.
[0068] For example, Figure 5 illustrates another MPLS label stack structure according to an embodiment of the present disclosure. In Figure 5, the encapsulated MPLS label stack, from top to bottom, includes: other MPLS labels (if any), the first label, an MPLS special label, an auxiliary data structure, other MPLS labels (if any), and a payload. The auxiliary data structure includes the original instance number.
[0069] The above describes the manner in which the MPLS label stack carries the second label.
[0070] It should be noted that, in combination with the above description of the MPLS label stack carrying the second label, the original instance number may occupy one or more LSE (label switch entry) elements in the MPLS label stack terminal.
[0071] For example, Figure 6 shows an LSE format according to an embodiment of the present disclosure. In Figure 6, the highest bit is set to 1 to prevent devices from misinterpreting the LSE as a special tag. The stack bottom flag, S, needs to be set based on actual conditions. Specifically, when the LSE corresponding to the original instance number is at the bottom of the stack, its stack bottom flag, S, is set to 1; otherwise, it is set to 0. This indicates that the range of original instance numbers is not continuous.
[0072] Alternatively, for example, Figure 7 illustrates another LSE format according to an embodiment of the present disclosure. In Figure 7, all 32 bits are used to represent the original instance number, and its value range is continuous. If the LSE corresponding to the original instance number is actually at the bottom of the label stack, the bottom-of-stack flag must be set in the first label or special label preceding the original instance number, allowing the first node to successfully determine the end of the entire label stack.
[0073] In S202 , the first node processes the target message according to the second label.
[0074] In some embodiments, after receiving the second label, the first node parses the first label from the second label and queries the label forwarding table. After that, the first node determines the operation corresponding to the first label based on the label forwarding table. For example, in conjunction with the example in S201, the first node determines that the operation corresponding to the first label is to obtain the original instance number of the original instance, and then the first node parses the second label to obtain the original instance number. It should be noted that the process of the first node obtaining the original instance number corresponding to the second label is described in S901 to S903 below and will not be repeated here.
[0075] Furthermore, the first node determines the original instance corresponding to the second label according to the FEC type and the original instance number of the original instance, and processes the target message according to the original instance.
[0076] In some embodiments, the first node processes the target message according to the original instance, including at least one of the following three items.
[0077] (1) When the original instance is an egress port instance, the target message is sent to the egress port instance.
[0078] (2) When the original instance is a Service Function instance, the target message is processed according to the instructions contained in the Service Function instance.
[0079] (3) When the original instance is a VPN instance, the routing table of the VPN instance is looked up and the target message is forwarded.
[0080] The above describes the manner in which the first node processes the target message.
[0081] Based on the above technical solution, the embodiment of the present disclosure is aimed at the original instances of multiple specific FEC types in the SR-MPLS solution, and the first node in the network can assign a first label to each FEC type; the second node in the network will determine a composite second label based on the first label and the original instance number, and encapsulate the second label in the subsequently generated forwarding message sent to the first node; then, after receiving the target message, the first node can process the target message according to the second label included in the message. Since the first label is irrelevant to the original instance included in the FEC type, but only related to the number of FEC types, the first node in the present disclosure no longer needs to assign an MPLS label to each original instance. Therefore, the present disclosure can greatly save the consumption of MPLS label resources, while also reducing the notification of label messages, thereby improving the overall performance of the network.
[0082] For example, in combination with Figure 2, as shown in Figure 8, Figure 8 is a flow chart of another message forwarding method according to some embodiments of the present disclosure. The message forwarding method provided by the present disclosure further includes the following S801 to S803.
[0083] In S801, a first node sends a first notification message to a second node. Correspondingly, the second node receives the first notification message.
[0084] The first notification message includes a first label and an FEC type corresponding to the first label.
[0085] In some embodiments, the first notification message also includes first identification information, which is used to indicate that there is no corresponding relationship between the first label and the original instance. Exemplarily, the first identification information can be implemented as a wildcard flag. For example, if the representation value of the wildcard flag is TRUE, it indicates that there is no corresponding relationship between the first label and the original instance.
[0086] In S802, the first node sends a second notification message to the second node. Correspondingly, the second node receives the second notification message.
[0087] The second announcement message includes the original instance number of the original instance.
[0088] It is understandable that the second notification message may also include the object corresponding to the original instance.
[0089] In S803 , the second node determines a second label.
[0090] In some embodiments, the second node determines a composite label based on the first label and the original instance number, and determines the composite label as the second label. In some embodiments, the second label is carried in an MPLS label stack.
[0091] Based on the above technical solution, the embodiment of the present disclosure can determine a composite second label based on the notification message sent by the first node, and the second label includes the first label and the original instance number. In this way, the second node can encapsulate the second label when sending the target message to the first node, so that the first node can process the target message after receiving it.
[0092] For example, in combination with Figure 6, as shown in Figure 9, Figure 9 is a flowchart of another message forwarding method according to some embodiments of the present disclosure. The message forwarding method provided by the present disclosure further includes the following S901 to S903.
[0093] In S901 , the first node obtains the first label from the second label.
[0094] It is understandable that after receiving the second label, the first node parses the second label to obtain the first label.
[0095] In S902 , the first node determines an operation corresponding to the first label according to the label forwarding table.
[0096] The label forwarding table is used to indicate the correspondence between labels and operations.
[0097] It is understandable that, since there is a correspondence between the first label and the FEC type, after the first node queries the label forwarding table according to the first label, it can determine the operation corresponding to the first label according to the label forwarding table.
[0098] Exemplarily, when the first label indicates that the FEC type of the original instance is an egress port type, a Service Function type, or a VPN type, the first node queries the label forwarding table and can determine that the operation corresponding to the first label is to obtain the original instance number.
[0099] In S903 , when the operation corresponding to the first label is an operation for obtaining the original instance number, the first node obtains the original instance number from the second label.
[0100] It can be understood that, in combination with the above example, when the operation corresponding to the first label is an operation for obtaining the original instance number, the first node parses the MPLS label stack carrying the second label to determine the original instance number.
[0101] Based on the above technical solution, in the embodiment of the present disclosure, the first node can obtain the FEC type and original instance number of the original instance from the target message to determine the original instance corresponding to the target message, and then process the target message according to the original instance.
[0102] It should be noted that in the message forwarding method provided by the embodiments of the present disclosure, the second label appears only when the first node that allocated and sent the first and second notification messages reads the top label of the MPLS label message, allowing the first node to process the message accordingly. The second label is not visible to nodes corresponding to legacy devices that do not employ the message forwarding method provided by the embodiments of the present disclosure.
[0103] In this way, when constructing the MPLS label message forwarded to the first node, the node corresponding to the old device in the network can adopt the traditional method to encapsulate the forwarding label of the first node (such as the node SID of the first node, or the SID list) in the label stack, and the forwarding label is followed by the second label described above. In other words, the node corresponding to the old device in the network still forwards the message to the first node based on the traditional forwarding label, and the second label in the label stack is not visible throughout the process. Therefore, the message forwarding method provided by the embodiment of the present disclosure is also compatible with networks that have both devices improved using the method of the present disclosure and devices that have not been improved using the method of the present disclosure.
[0104] In conjunction with the above embodiments and FIG10 , the following describes how to optimize the allocation and notification of algorithm-related Adjacency SIDs in an SR-MPLS scenario according to an embodiment of the present disclosure.
[0105] As described above, in the embodiment of the present disclosure, the first node assigns a universal SID (corresponding to the first label) to the egress port type (here taking the FEC type of the original instance as the egress port type as an example, and the same applies to other FEC types). In this case, the original instance number is the index of the corresponding egress port.
[0106] Since the wildcard egress port is independent of the link, the universal SID is advertised as a prefix SID. In addition, the index of the corresponding egress port is carried in each link advertisement.
[0107] The related Intermediate System to Intermediate System (ISIS) protocol suite (see RFC5305, RFC5120, and RFC5308) has defined TLVs (type-length-value) s135 / 235 / 236 / 237 for advertising Internet Protocol (IP) reachability information.
[0108] In some embodiments, the first node in the present disclosure adds a new sub-TLV to these TLVs, designated as a Wildcard-Instance-Prefix-SID Sub-TLV, to announce a SID for a specific FEC type that is independent of the original instance, i.e., the first announcement message. For example, as shown in Figure 10, a diagram of the encapsulation format of a sub-TLV according to some embodiments of the present disclosure is shown.
[0109] In Figure 10 , the fields of the Wildcard-Instance-Prefix-SID Sub-TLV are described as follows.
[0110] (1) Type: 1 byte, pending assignment by IANA (Internet Assigned Numbers Authority), indicating that this sub-TLV is the Wildcard-Instance-Prefix-SID Sub-TLV.
[0111] (2) Length: 1 byte, indicating the length of this Sub-TLV, excluding the length of the Type / Length field itself. This length is variable and depends on the length of the VN ID field and the length of the SID / Index / Label field.
[0112] (3) Flags: 1 byte, with the same meaning as the field of the same name in the Prefix-SID sub-TLV defined in RFC8667.
[0113] (4) VN Type: occupies 1 byte and indicates the type of virtual network (VN), which determines the length of the VN ID.
[0114] Exemplarily, the embodiment of the present disclosure defines the value of VN type as follows.
[0115] 0: Indicates the default physical network. In this case, the length of the VN ID field is 0.
[0116] 1: Indicates IGP multi-topology. In this case, the VN ID occupies 2 bytes. The meaning of the VN ID is the same as the MT (Multi Topology)-ID defined in RFC5120 or the MT-ID defined in RFC4915.
[0117] 2: Indicates the IGP algorithm. In this case, the VN ID occupies 1 byte. The meaning of the VN ID is described in the IANA "IGP Algorithm Types" registry. For example, 0 indicates the Shortest Path First (SPF) algorithm based on link metrics, 1 indicates the strict shortest path first algorithm based on link metrics, and values from 128 to 255 indicate user-defined flexible algorithms.
[0118] 3: Indicates NRP slice. In this case, the VN ID occupies 4 bytes. The meaning of the VN ID is the same as the NRP-ID defined in draft-ietf-teas-ns-ip-mpls-02.
[0119] (5) VN ID: variable length, indicating the corresponding virtual network identifier.
[0120] (6) FEC Type: occupies 1 byte and indicates a specific FEC type, such as the outbound port type, service function type, VPN type, etc.
[0121] In some embodiments, the value of FEC type in the embodiments of the present disclosure is defined as follows.
[0122] 0: Reserved value.
[0123] 1: Outbound port type.
[0124] 2: Service Function type.
[0125] 3: L3VPN (Layer 3VPN) service type.
[0126] 4: EVPN (Ethernet VPN) service type.
[0127] (7) SID / Index / Label: Variable length, with the same meaning as the field of the same name in the Prefix-SID sub-TLV defined in RFC8667. Corresponds to the first label.
[0128] As described in S801 above, when the first node advertises the first label, in addition to the FEC type, it may also include a wildcard flag. In this embodiment, since the Wildcard-Instance-Prefix-SID Sub-TLV itself already has the function of representing the wildcard, there is no need to define an explicit wildcard flag.
[0129] It should be noted that when the first label is implemented as the wildcard-Instance-Prefix-SID Sub-TLV, a first node in the network can advertise the first label associated with a specific algorithm to a second node in the network. For example, to advertise the first label corresponding to virtual network Flex-algo 128 for the outbound FEC type, the VN Type field in the Sub-TLV can be set to 2, the VN ID field to 128, the FEC Type field to 1, and the SID / Index / Label field to the first label.
[0130] In some other embodiments, the Link Local / Remote Identifiers sub-TLV defined in RFC5307 is used as the second notification message. Thus, the first node can notify the second node in the network of the index of each of its local outbound ports as the original instance number of the corresponding outbound port.
[0131] For example, in addition to being in the physical network, the first node also joins three Flex-algo virtual networks, namely Flex-algo 128, 129, and 130. The first node can assign a first label independent of the egress port instance for the egress port FEC type for the physical network and each virtual network, as follows:
[0132] algo-0:
[0133] First label corresponding to the outbound FEC type: 1000
[0134] Flex-algo 128:
[0135] First label corresponding to the outbound FEC type: 2000
[0136] Flex-algo 129:
[0137] First label corresponding to the outbound FEC type: 2001
[0138] Flex-algo 130:
[0139] First label corresponding to the outbound FEC type: 2002
[0140] It should be understood that the above three first labels can all be announced to other nodes in the network through the wildcard-Instance-Prefix-SID Sub-TLV.
[0141] It can be understood that if the first node has 1000 local outbound ports, and the local indexes from the first outbound port (port-1) to the 1000th outbound port (port-1000) are 1, 2, 3, ..., 1000 respectively, then the local indexes of these outbound ports can be announced to other nodes in the network through the Link Local / Remote Identifiers sub-TLV.
[0142] In combination with the above description of the two notification messages, the first node notifies the second node in the network that, for the physical network or each virtual network, the composite second label bound to each of its local outbound ports is as follows:
[0143] algo-0:
[0144] Second label of port-1: <1000,1>
[0145] Second label of port-2: <1000,2>
[0146] ......
[0147] Second label for port 1000: <1000,1000>
[0148] Flex-algo 128:
[0149] Second label of port-1: <2000,1>
[0150] Second label of port-2: <2000,2>
[0151] ......
[0152] Second label for port 1000: <2000,1000>
[0153] Flex-algo 129:
[0154] Second label of port-1: <2001,1>
[0155] Second label of port-2: <2001,2>
[0156] ......
[0157] Second label for port 1000: <2001,1000>
[0158] Flex-algo 130:
[0159] Second label of port-1: <2002,1>
[0160] Second label of port-2: <2002,2>
[0161] ......
[0162] Second label for port 1000: <2002,1000>
[0163] In this way, when the second node in the network needs to construct an MPLS message to send to the first node, and specify the first node to forward the message along a specific output port in the virtual network corresponding to the corresponding algorithm, the corresponding second label can be encapsulated in the MPLS message. For example, the second label <2002,1000> can be encapsulated to specify the first node to forward the message along port-1000 in the virtual network corresponding to algorithm 130.
[0164] It should be noted that in the disclosed embodiments, a first label unrelated to the original instance of the outbound port type may also be advertised for the outbound port FEC type based on protocols such as OSPF (Open Shortest Path First) and BGP-LS (Border Gateway Protocol Link-state). The content of the corresponding notification message can be found in the relevant OSPF, BGP-LS, and other protocols, and will not be further described in this embodiment.
[0165] The embodiment of the present disclosure can divide the message forwarding device generated by the above method example into functional modules or functional units. For example, each functional module or functional unit can be divided according to each function, or two or more functions can be integrated into one processing module. The above-mentioned integrated module can be implemented in the form of hardware or in the form of software functional modules or functional units. The division of modules or units in the embodiment of the present disclosure is schematic and is only a logical functional division. There may be other division methods in actual implementation.
[0166] 11 is a schematic diagram of a packet forwarding device according to some embodiments of the present disclosure. The packet forwarding device 1100 includes a receiving unit 1101 , a processing unit 1102 , and a sending unit 1103 .
[0167] The receiving unit 1101 is configured to receive a target message sent by a second node. The target message includes a second label, the second label includes a first label and an original instance number, the first label corresponds to a forwarding equivalence class (FEC) type, and the original instance number indicates an identifier or index of an original instance of the FEC type.
[0168] The processing unit 1102 is configured to process the target message according to the second label.
[0169] In some embodiments, the sending unit 1103 is configured to send a first notification message to the second node, where the first notification message includes a first label and an FEC type corresponding to the first label.
[0170] In some embodiments, the sending unit 1103 is further configured to send a second notification message to the second node, where the second notification message includes the original instance and the original instance number.
[0171] In some embodiments, the processing unit 1102 is configured to determine a corresponding original instance based on the FEC type and the original instance number.
[0172] In some embodiments, the processing unit 1102 is further configured to process the target message based on the original instance.
[0173] In some embodiments, the processing unit 1102 is further configured to obtain the first tag from the second tag.
[0174] In some embodiments, the processing unit 1102 is further configured to determine the operation corresponding to the first tag according to a tag forwarding table, where the tag forwarding table is configured to indicate a correspondence between tags and operations.
[0175] In some embodiments, the processing unit 1102 is further configured to obtain the original instance number from the second tag when the operation corresponding to the first tag is an operation for obtaining the original instance number.
[0176] In some embodiments, the message forwarding device 1100 may also include a storage unit (shown as a dotted box in Figure 11), which stores a program or instruction. When the receiving unit 1101, the processing unit 1102 and the sending unit 1103 execute the program or instruction, the message forwarding device can execute the message forwarding method of the above-mentioned method embodiment.
[0177] In addition, the technical effects of the message forwarding device of FIG11 can refer to the technical effects of the message forwarding method of the above embodiment, and will not be repeated here.
[0178] 12 is a schematic diagram of another packet forwarding device according to some embodiments of the present disclosure. The packet forwarding device 1200 includes: a sending unit 1201 and a receiving unit 1202.
[0179] The sending unit 1201 is configured to send a target message to the first node. The target message includes a second label, the second label includes a first label and an original instance number, the first label corresponds to a forwarding equivalence class (FEC) type, and the original instance number indicates an identifier or index of an original instance belonging to the FEC type.
[0180] In some embodiments, the receiving unit 1202 is configured to receive a first notification message sent by a first node, where the first notification message includes a first label and an FEC type corresponding to the first label.
[0181] In some embodiments, the receiving unit 1202 is further configured to receive a second notification message sent by the first node, where the second notification message includes an original instance and an original instance number.
[0182] In some embodiments, the message forwarding device 1200 may further include a storage unit (shown as a dotted box in FIG12 ), which stores a program or instruction. When the sending unit 1201 and the receiving unit 1202 execute the program or instruction, the message forwarding device can execute the message forwarding method of the above-mentioned method embodiment.
[0183] In addition, the technical effects of the message forwarding device of FIG12 can refer to the technical effects of the message forwarding method of the above embodiment, and will not be repeated here.
[0184] For example, Fig. 13 is another structural diagram of the message forwarding device involved in the above embodiment. As shown in Fig. 13 , the message forwarding device 1300 includes: a processor 1302 .
[0185] Processor 1302 is used to control and manage the actions of the message forwarding device, for example, executing the steps performed by the above-mentioned receiving unit 1101, processing unit 1102, sending unit 1103, sending unit 1201 and receiving unit 1202, and / or other processes for executing the technical solution described in this article.
[0186] The processor 1302 may implement or execute the various exemplary logic blocks, modules, and circuits described in conjunction with the present disclosure. The processor may be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field-programmable gate array, or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof, and may implement or execute the various exemplary logic blocks, modules, and circuits described in conjunction with the present disclosure. The processor may also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and the like.
[0187] In some embodiments, the message forwarding device 1300 may further include a communication interface 1303, a memory 1301, and a bus 1304. The communication interface 1303 is used to support message forwarding between the message forwarding device 1300 and other network entities. The memory 1301 is used to store program codes and data of the message forwarding device.
[0188] Memory 1301 can be a memory in the message forwarding device, which can include a volatile memory, such as a random access memory; the memory can also include a non-volatile memory, such as a read-only memory, a flash memory, a hard disk or a solid-state drive; the memory can also include a combination of the above types of memory.
[0189] Bus 1304 may be an Extended Industry Standard Architecture (EISA) bus, etc. Bus 1304 may be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, FIG13 shows only one thick line, but this does not mean that there is only one bus or only one type of bus.
[0190] Through the description of the above embodiments, those skilled in the art will clearly understand that for the sake of convenience and brevity, only the division of the above functional modules is used as an example. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. The working process of the above-described system, device, and module can refer to the corresponding process in the aforementioned method embodiment and will not be repeated here.
[0191] An embodiment of the present disclosure provides a computer program product including instructions. When the computer program product is run on an electronic device of the present disclosure, the computer is enabled to execute the message forwarding method described in the above method embodiment.
[0192] An embodiment of the present disclosure also provides a computer-readable storage medium, which includes a non-transitory computer-readable storage medium. Instructions are stored in the computer-readable storage medium. When a computer executes the instructions, the electronic device of the present disclosure executes each step performed by the message forwarding device in the method flow shown in the above method embodiment.
[0193] Computer-readable storage media, for example, can be, but are not limited to, electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices or components, or any combination thereof. Examples of computer-readable storage media (a non-exhaustive list) include: an electrical connection having one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a register, a hard disk, an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing, or any other form of computer-readable storage medium known in the art. An exemplary storage medium is coupled to a processor so that the processor can read information from the storage medium and write information to the storage medium. Of course, the storage medium can also be an integral part of the processor. The processor and the storage medium can be located in an application-specific integrated circuit (ASIC). In the embodiments of the present disclosure, a computer-readable storage medium may be any tangible medium that contains or stores a program that can be used by or in connection with an instruction execution system, apparatus, or device.
[0194] In the technical solution provided by the present disclosure, for the original instances of multiple specific FEC types in the SR-MPLS solution, the first node in the network can assign a first label to each FEC type; the second node in the network will determine a composite second label based on the first label and the original instance number, and encapsulate the second label in the subsequently generated forwarding message sent to the first node; then, after receiving the target message, the first node can process the target message according to the second label included in the message. Since the first label is independent of the original instance included in the FEC type and is only related to the number of FEC types, the first node in the present disclosure no longer needs to assign an MPLS label to each original instance. Therefore, the present disclosure can greatly save the consumption of MPLS label resources, while also reducing the notification of label messages, thereby improving the overall performance of the network.
[0195] The above is only a specific embodiment of the present disclosure, but the scope of protection of the present disclosure is not limited thereto. Any changes or replacements within the technical scope disclosed in the present disclosure should be included in the scope of protection of the present disclosure. Therefore, the scope of protection of the present disclosure should be based on the scope of protection of the claims.
Claims
1. A message forwarding method, applied to a first node, comprising: Receive a target message sent by a second node; wherein the target message includes a second label, the second label includes a first label and an original instance number, the first label corresponds to a forwarding equivalence class FEC type, and the original instance number represents an identifier or index of an original instance belonging to the FEC type; The target message is processed according to the second label.
2. The method according to claim 1, wherein: Before receiving the target message sent by the second node, the method further includes: A first notification message is sent to the second node, where the first notification message includes the first label and an FEC type corresponding to the first label.
3. The method according to claim 2, wherein: The first notification message also includes first identification information, where the first identification information is used to indicate that there is no corresponding relationship between the first tag and the original instance.
4. The method according to claim 1, wherein: Before receiving the target message sent by the second node, the method further includes: A second notification message is sent to the second node, where the second notification message includes the original instance and the original instance number.
5. The method according to claim 4, wherein: The processing of the target message according to the second label includes: Determine a corresponding original instance based on the FEC type and the original instance number; The target message is processed based on the corresponding original instance.
6. The method according to claim 5, wherein: Before determining the corresponding original instance based on the FEC type and the original instance number, the method further includes: Obtaining the first tag from the second tag; Determine, according to a label forwarding table, an operation corresponding to the first label, wherein the label forwarding table is used to indicate a correspondence between labels and operations; When the operation corresponding to the first tag is an operation for obtaining the original instance number, the original instance number is obtained from the second tag.
7. The method according to claim 5, wherein: The FEC type of the original instance includes at least one of the following: an egress port type, a service function type, and a virtual private network VPN type.
8. The method according to claim 7, wherein: In the case where the FEC type of the original instance is the egress port type, the original instance number is an egress port identifier or index, and the original instance is an egress port instance; or, In the case where the FEC type of the original instance is the service function type, the original instance number is a service function identifier or index, and the original instance is a service function instance; or, In the case that the FEC type of the original instance is the VPN type, the original instance number is a VPN identity ID or index, and the original instance is a VPN instance.
9. The method according to claim 8, wherein: The processing of the target message based on the corresponding original instance includes: In the case where the original instance is the egress port instance, sending the target message to the egress port instance; or, In the case where the original instance is the service function instance, processing the target message according to the instructions contained in the service function instance; or, In the case that the original instance is the VPN instance, the target message is looked up based on the routing table of the VPN instance and forwarded.
10. The method according to claim 9, wherein: The target message is a multi-protocol label switching (MPLS) forwarding message, the MPLS forwarding message includes an MPLS label stack, and the MPLS label stack includes the second label.
11. The method according to claim 10, wherein: The MPLS label stack includes the first label and the original instance number in order from the top to the bottom of the stack; or, The MPLS label stack includes, from the top to the bottom of the stack, the first label, the MPLS special label, and the original instance number; or, The MPLS label stack includes, from the top to the bottom of the stack, the first label, an MPLS special label, and an auxiliary data structure, wherein the auxiliary data structure includes the original instance number.
12. A message forwarding method, applied to a second node, comprising: Send a target message to the first node; wherein the target message includes a second label, the second label includes a first label and an original instance number, the first label corresponds to a forwarding equivalence class FEC type, and the original instance number represents an identifier or index of an original instance belonging to the FEC type.
13. The method according to claim 12, wherein: Before sending the target message to the first node, the method further includes: A first notification message sent by the first node is received, where the first notification message includes the first label and an FEC type corresponding to the first label.
14. The method according to claim 13, wherein: The first notification message also includes first identification information, where the first identification information is used to indicate that there is no corresponding relationship between the first tag and the original instance.
15. The method according to claim 12, wherein: Before sending the target message to the first node, the method further includes: A second notification message sent by the first node is received, where the second notification message includes the original instance and the original instance number.
16. The method according to claim 15, wherein: The FEC type of the original instance includes at least one of the following: an egress port type, a service function type, and a virtual private network VPN type.
17. The method according to claim 16, wherein: In the case where the FEC type of the original instance is the egress port type, the original instance number is an egress port identifier or index, and the original instance is an egress port instance; or, In the case where the FEC type of the original instance is the service function type, the original instance number is a service function identifier or index, and the original instance is a service function instance; In the case that the FEC type of the original instance is the VPN type, the original instance number is a VPN identity ID or index, and the original instance is a VPN instance.
18. The method according to claim 17, wherein: The target message is a multi-protocol label switching (MPLS) forwarding message, the MPLS forwarding message includes an MPLS label stack, and the MPLS label stack includes the second label.
19. The method according to claim 18, wherein: The MPLS label stack includes the first label and the original instance number in sequence; or, The MPLS label stack includes the first label, the MPLS special label, and the original instance number in sequence; or, The MPLS label stack includes the first label, an MPLS special label, and an auxiliary data structure in sequence, and the auxiliary data structure includes the original instance number.
20. A message forwarding device, comprising: a processor and a memory for storing instructions executable by the processor; The processor is configured to execute the instruction so that the message forwarding device performs the message forwarding according to claim 1-11 or claim The message forwarding method described in any one of 12-19.
21. A computer-readable storage medium, wherein: The computer-readable storage medium stores computer instructions, and when the computer instructions are executed on a computer, the computer executes the message forwarding method according to any one of claims 1-11 or claims 12-19.
Citation Information
Patent Citations
Classification processing method and network equipment for multi-protocol label switching service
CN101014008A
Communication method, routing bridge and network system
CN103916317A
Method and system of adaptive application layer FEC for MPEG media transport
CN108702245A
Multi-Protocol Label Switching Multi-Topology Support
US20090252058A1
