Message processing method, electronic equipment and storage medium
By setting the BIER Action ID and encapsulating BIER header in the MPLS message, the problem of BIER's inapplicable encapsulation format under the new generation of MPLS standard MNA is solved, and the applicability and deployment extension of BIER in various MPLS formats is achieved.
Patent Information
- Application Number
- CN202311324998.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-10-12
- Publication Date
- 2025-04-15
AI Technical Summary
The traditional BIER header encapsulation format has an inapplicable problem under the new generation of MPLS standard MNA, which hinders BIER from using MPLS as a transmission encapsulation and limits the deployment scenarios of BIER.
Before performing BIER header encapsulation, determine the target encapsulation format of the BIER header to adapt to the encapsulation format of the MPLS message to be sent, and set the BIER Action ID and encapsulate the BIER header in the MPLS message, and set the bit index forwarding table identifier BIFT-id and bit string BitString.
By improving the packaging processing logic of the BIER header, BIER can be adapted to the transmission packaging of MPLS in various formats, expanding the deployment scenario of BIER.
Smart Images

Figure CN119835216A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to the field of communication technology, and in particular to a message processing method, an electronic device, and a storage medium. Background Art
[0002] Multiprotocol Label Switching is a technology used in large networks that can greatly improve data transmission speed and efficiency. Compared with Asynchronous Transfer Mode (ATM) technology, MPLS can provide simpler, lower-operation and maintenance cost high-performance forwarding. With the substantial growth of business scale, more new business demands have also emerged due to the development of the times. To meet the new business demands, a new generation of MPLS technology standard - MPLS Network Action (MNA for short) is being formulated, aiming to eliminate the defects of traditional MPLS technology in new business scenarios and give MPLS higher business adaptability and longer vitality.
[0003] Bit Indexed Explicit Replication (BIER) is a multicast data forwarding technology that identifies nodes at the edge of the network with corresponding bits. When multicast data is transmitted in the intermediate network, a specific BIER header is additionally encapsulated in the data message. This message header identifies all destination nodes of the multicast stream in the form of a bit string (BitString). The intermediate network forwarding node searches the BIER forwarding table according to the BitString for routing to ensure that the traffic can be sent to all destination nodes. Because BIER technology does not have the problem of establishing a multicast tree, it eliminates the delay of establishing a multicast tree. In addition, when a network failure occurs, the convergence speed is much faster than the original multicast technology, and the delay is greatly reduced compared to the original multicast tree reconstruction.
[0004] BIER-TE (BIER Traffic Engineering, RFC9262) is a traffic engineering technology developed based on BIER technology. The encapsulation format used by this technology is similar to the BIER header, but the bits in the BitString do not represent the destination node, but the links in the network. This technology allows the message to reach the destination node through a specified path in the network, and can be applied to some scenarios that need to be forwarded along a specified path.
[0005] BIER technology has multiple encapsulation forms, one of which is encapsulated after traditional MPLS, as the content carried at the bottom of the MPLS stack, and the BIER header is indicated by the last label of the MPLS label stack. However, for the new generation of MPLS standard MNA, the traditional BIER header encapsulation format is not applicable, which prevents BIER from using the new standard MPLS as a transmission encapsulation and limits the deployment scenarios of BIER. Summary of the invention
[0006] The embodiments of the present application provide a message processing method, an electronic device and a storage medium, which aim to improve the processing logic of BIER when using MPLS as a transmission encapsulation based on the MNA standard, so as to broaden the application scenarios of BIER technology.
[0007] In a first aspect, an embodiment of the present application provides a message processing method, the method comprising:
[0008] Determine the target encapsulation format for explicitly copying the BIER header with bit index;
[0009] According to the target encapsulation format, a BIER Action identifier and an encapsulation BIER header are set in the multi-protocol label switching MPLS message, and a bit index forwarding table identifier BIFT-id and a bit string BitString are set in the BIER header;
[0010] Send the MPLS message.
[0011] In a second aspect, an embodiment of the present application provides a message processing method, the method comprising:
[0012] Receiving a multi-protocol label switching (MPLS) message, wherein the MPLS message carries a BIER Action identifier;
[0013] Determine the encapsulation format of the bit index to explicitly copy the BIER header;
[0014] According to the encapsulation format of the BIER header, obtain the BIER header in the MPLS message, and obtain the bit index forwarding table identifier BIFT-id and the bit string BitString in the BIER header;
[0015] The message is forwarded according to the BIFT-id and the BitString.
[0016] In a third aspect, an embodiment of the present application provides an electronic device, including:
[0017] one or more processors;
[0018] A memory having one or more programs stored thereon, wherein when the one or more programs are executed by the one or more processors, the one or more processors implement the message processing method as described in the first aspect above; or, the message processing method as described in the second aspect above.
[0019] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium having a computer program stored thereon, wherein when the program is executed by a processor, the message processing method as described in the first aspect above is implemented; or, the message processing method as described in the second aspect above is implemented.
[0020] The message processing method, electronic device, and storage medium provided in the embodiments of the present application first determine the target encapsulation format of the BIER header before performing BIER header encapsulation, so that the BIER header can adapt to the encapsulation format of the current MPLS message to be sent; then set the BIER Action identifier and encapsulate the BIER header in the MPLS message according to the target encapsulation format, set the BIFT-id and BitString in the BIER header, and send the MPLS message carrying the BIFT-id and BitString. In view of the fact that there are multiple standard encapsulation formats for MPLS, the embodiments of the present application improve the encapsulation processing logic of the BIER header, realize that BIER can be applicable to the transmission encapsulation of MPLS in multiple formats, and expand the deployment scenarios of BIER. BRIEF DESCRIPTION OF THE DRAWINGS
[0021] The accompanying drawings are used to provide a further understanding of the technical solution of the present invention and constitute a part of the specification. Together with the embodiments of the present invention, they are used to explain the technical solution of the present invention and do not constitute a limitation on the technical solution of the present invention.
[0022] Figure 1 This is a schematic diagram of the MPLS encapsulation format of the BIER header provided by the relevant technology;
[0023] Figure 2 It is a schematic diagram of the encapsulation format of a label stack entry LSE provided by the related technology;
[0024] Figure 3 This is a schematic diagram of the encapsulation format of the BIER header provided by the relevant technology;
[0025] Figure 4 is a schematic diagram of format B of a label stack entry LSE provided by the related art;
[0026] Figure 5 is a schematic diagram of format C of a label stack entry LSE provided by the related art;
[0027] Figure 6 is a schematic diagram of a format D of a label stack entry LSE provided by a related art;
[0028] Figure 7 This is a schematic diagram of an implementation environment of the message processing method provided in an embodiment of the present application;
[0029] Figure 8 It is a flowchart of a message processing method provided in an embodiment of the present application;
[0030] Fig. 9 It is a format diagram of implementation method 1.1 of the first encapsulation format of the BIER header provided in an embodiment of the present application;
[0031] Fig.10 It is a format diagram of implementation method 1.2 of the first encapsulation format of the BIER header provided in an embodiment of the present application;
[0032] Fig.11 It is a format diagram of implementation method 1.3 of the first encapsulation format of the BIER header provided in an embodiment of the present application;
[0033] Fig.12 It is a format diagram of implementation method 1.4 of the first encapsulation format of the BIER header provided in an embodiment of the present application;
[0034] Fig.13 This is a schematic diagram of the second packaging format of the BIER header provided in an embodiment of the present application;
[0035] Fig.14 is a schematic diagram of the format of a first label stack entry provided in an embodiment of the present application;
[0036] Fig.15 is a schematic diagram of the format of a second label stack entry provided in an embodiment of the present application;
[0037] Fig.16a It is a format diagram of the third label stack entry under the implementation method 2.1 of the second encapsulation format of the BIER header provided in an embodiment of the present application;
[0038] Fig.16b It is a format diagram of the third label stack entry under implementation method 2.2 of the second encapsulation format of the BIER header provided in an embodiment of the present application;
[0039] Fig.17 It is a flowchart of a message processing method provided in an embodiment of the present application;
[0040] Fig.18 It is a schematic diagram of an implementation environment of the message processing method of an embodiment of the present application;
[0041] Fig.19 It is a schematic diagram of the device structure of the electronic device provided in the embodiment of the present application. DETAILED DESCRIPTION
[0042] In order to make the purpose, technical solution and advantages of the present invention more clearly understood, the present invention is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not used to limit the present invention.
[0043] It should be understood that in the description of the embodiments of the present application, if there is a description of "first", "second", etc., it is only used for the purpose of distinguishing technical features, and cannot be understood as indicating or implying relative importance or implicitly indicating the number of indicated technical features or implicitly indicating the order of the indicated technical features. "At least one" means one or more, and "multiple" means two or more. "And / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can represent the situation where A exists alone, A and B exist at the same time, and B exists alone. Among them, A and B can be singular or plural. The character " / " generally indicates that the previous and next associated objects are in an "or" relationship. "At least one of the following" and similar expressions refer to any group of these items, including any group of single or plural items. For example, at least one of a, b and c can represent: a, b, c, a and b, a and c, b and c, or a and b and c, where a, b, c can be single or multiple.
[0044] In addition, the technical features involved in the various embodiments of the present invention described below can be combined with each other as long as they do not conflict with each other.
[0045] In order to facilitate understanding of the solutions of the embodiments of the present application and to provide a clear and concise description of the following embodiments, a brief introduction to the related technologies is first given:
[0046] See also Figure 1 , Figure 1 This is a schematic diagram of the MPLS encapsulation format of the BIER header provided by the relevant technology. Figure 1 As shown, the MPLS packet includes an MPLS label stack (MPLS Label Stack), and the MPLS label stack includes multiple label stack entries (LabelStack Entry, LSE), such as Figure 1 The format of each LSE can be found in Label1, Label2, ... Figure 2 ,like Figure 2 As shown in Figure 1, the length of LSE is 32 bits, including an 8-bit label field, a 3-bit EXP field, a 1-bit S label, and an 8-bit TTL field. The BIER header is encapsulated after the MPLS label stack, and the multicast data packet is encapsulated after the BIER header as payload data. The encapsulation format of the BIER header can be found in Figure 3,like Figure 3 As shown, the first 32 bits of the BIER header (the first row in the figure) are Figure 2 The encapsulation format of the MPLS label stack entries shown is consistent. The S label in the BIER header is set to 1 to indicate the bottom position of the stack. The value of the BIFT-id (Bit Index Forwarding Table Identifier) in the BIER header is used to indicate the specific BIER forwarding table.
[0047] In the new generation MPLS standard MNA (draft-ietf-mpls-mna-hdr), the LSE of the MPLS label stack has four encapsulation formats, which are format A, format B, format C and format D. Among them, the LSE of format A is the same as Figure 2 The LSE format shown is similar; LSE format B, format C and format D can be found in Figure 4 , Figure 5 , Figure 6 . The LSE formats B, C and D in the MNA standard are different from the traditional LSE format. In the multicast scenario, the encapsulation method of the BIER header is designed according to the traditional MPLS encapsulation format, so it is not applicable to the new standard MNA. This prevents BIER from using MPLS as a transmission encapsulation and limits the deployment scenarios of BIER.
[0048] It should be noted that, under the MNA standard, the MPLS label stack may include one or more of the LSEs in format A, format B, format C, and format D. In other words, different LSEs in the MPLS label stack may be in different formats. For example, the MPLS label stack may include LSEs in format A, format B, format C, and format D at the same time.
[0049] In view of the problem that the encapsulation of the BIER header is not applicable under the new standard MNA, the present application provides a message processing method, an electronic device and a storage medium. Before performing BIER header encapsulation, the target encapsulation format of the BIER header is first determined so that the BIER header can adapt to the encapsulation format of the current MPLS message to be sent; then the BIER header is encapsulated in the MPLS message according to the target encapsulation format, and the BIFT-id and BitString are set in the BIER header, and the MPLS message carrying the BIFT-id and BitString is sent. In view of the fact that there are multiple standard encapsulation formats for MPLS, the embodiment of the present application improves the encapsulation processing logic of the BIER header, realizes that BIER can be applicable to the transmission encapsulation of MPLS in multiple formats, and expands the deployment scenarios of BIER.
[0050] See also Figure 7 , Figure 7It is a schematic diagram of an implementation environment of the message processing method provided in an embodiment of the present application. Figure 7 The implementation environment shown is a network, which includes a BIER domain, and the BIER domain includes a bit-forwarding ingress router (BFIR), a bit-forwarding router (BFR) and a bit-forwarding egress router (BFER), such as Figure 7 In the network shown, BFIR includes BFIR1, BFR includes BFRm, BFRn, BFRx and BFRy, and BFER includes BFER3, BFER4, BFER5 and BFER6. Multicast data packets can enter the BIER domain from BFIR1, and then be forwarded to the corresponding BFER3, BFER4, BFER5 and BFER6 through the intermediate BFR device, and then forwarded by the BFER device to the receiver that needs to receive the traffic. In addition, Figure 7 The BFIR, BFR and BFER devices can also be connected to the controller of the management and control system respectively to transmit control plane signaling with the controller.
[0051] Figure 7 The edge devices (BFIR and BFER) in the BIER have corresponding BFR-ids. For example, the BFR-id of BFIR1 is 1, and the BFR-ids of BFER3, BFER4, BFER5, and BFER6 are 10, 20, 30, and 40. The BFR-ids corresponding to all destination nodes of the multicast data message can be set in the BIER header in the form of BitString, so that the BFR device in the intermediate network can search the BIER forwarding table for routing according to the BitString to ensure that the multicast data message can be sent to all destination nodes.
[0052] See also Figure 8 , Figure 8 is a flow chart of a message processing method provided in an embodiment of the present application. The execution subject of the message processing method may be Figure 7 The BFIR device in the implementation environment shown. Figure 8 As shown, the message processing method may include but is not limited to the following steps S110-S130, and each step is introduced in turn below:
[0053] Step S110, determine the target encapsulation format of the bit index explicitly copied BIER header.
[0054] Exemplarily, the target encapsulation format may be a first encapsulation format or a second encapsulation format, wherein the first encapsulation format indicates that the BIER header is encapsulated after the MPLS label stack entry; and the second encapsulation format indicates that the BIER header is encapsulated in the MPLS label stack entry.
[0055] In a possible embodiment of the present application, the target encapsulation format is determined according to the BIER header encapsulation format capabilities supported by all router devices in the BIER domain. For example, all router devices in the BIER domain support the first encapsulation format and the second encapsulation format, then the first encapsulation format or the second encapsulation format can be arbitrarily selected to encapsulate the BIER header. For another example, some router devices in the BIER domain do not support the second encapsulation format, then the first encapsulation format is selected to encapsulate the BIER header.
[0056] In another possible embodiment of the present application, the target encapsulation format is determined according to the BIER header encapsulation format capabilities supported by the router devices through which the multicast data message passes. For example, if the router devices through which the multicast data message passes all support the first encapsulation format and the second encapsulation format, then the first encapsulation format or the second encapsulation format can be arbitrarily selected to encapsulate the BIER header. For another example, if at least one router device through which the multicast data message passes does not support the second encapsulation format, then the first encapsulation format is selected to encapsulate the BIER header.
[0057] In a possible embodiment of the present application, before step S110, the following steps S100a are further included:
[0058] Step S100a, report the BIER header encapsulation format supported by this device to the controller.
[0059] Based on step S100a, the specific implementation process of step S110 may include the following steps S111a and S112a:
[0060] Step S111a, receiving the target encapsulation format indication information sent by the controller, wherein the target encapsulation format indication information is determined by the controller according to the supported BIER header encapsulation formats reported by multiple BIER devices in the MPLS domain;
[0061] Step S112a, determining the target encapsulation format according to the target encapsulation format indication information.
[0062] It can be understood that each router device in the BIER domain reports the encapsulation capabilities it supports to the controller through protocols such as BGP-LS (Border Gateway Protocol Link State). After the controller collects the BIER header encapsulation format capabilities supported by all router devices in the BIER domain, it selects the target encapsulation format and notifies the BFIR device. The BFIR encapsulates the multicast data packet according to the target encapsulation format notified by the controller.
[0063] In another possible embodiment of the present application, before step S110, the following step S100b is further included:
[0064] Step S100b, interact with other BIER devices in the domain through the routing protocol to exchange the BIER header encapsulation formats supported by each of them, so as to obtain the BIER header encapsulation formats supported by other BIER devices in the domain.
[0065] Based on step S100b, the specific implementation process of step S110 may include the following steps S111b:
[0066] Step S111b, determine the target encapsulation format based on the BIER header encapsulation format supported by each BIER device in the forwarding path of the MPLS message.
[0067] It can be understood that each router device in the BIER domain announces the encapsulation capabilities it supports through routing protocol extensions such as OSPF (Open Shortest Path First), IS-IS (Intermediate System to Intermediate System), BGP (Border Gateway Protocol) or BABEL, so that each router device in the BIER domain can announce the encapsulation capabilities it supports to each other. The BFIR device selects the target encapsulation format based on the encapsulation capabilities supported by other devices in the BIER domain obtained through interaction, and then encapsulates the multicast data packets.
[0068] Step S120, according to the target encapsulation format, sets the BIER Action identifier and the encapsulation BIER header in the multi-protocol label switching MPLS message, and sets the bit index forwarding table identifier BIFT-id and the bit string BitString in the BIER header.
[0069] In a possible embodiment of the present application, step S120 specifically includes the following steps S121a to S123a:
[0070] Step S121a, when the target encapsulation format is the first encapsulation format, set the BIER Action identifier in the label stack entry (LSE) of the MPLS message, and encapsulate the BIER header after the label stack entry of the MPLS message, and the BIER header includes a label field and a BitString field in the first encapsulation format;
[0071] Step S122a, setting BIFT-id in the tag field;
[0072] Step S123a, setting the BitString in the BitString field.
[0073] The first encapsulation format corresponding to the BIER header can be found in Figure 3 When the BIER header adopts the first encapsulation format, the BIER header includes a label field and a BitString field, the BIFT-id is set in the label field, and the BitString is set in the BitString field. Among them, the value of BIFT-id (full name Bit Index Forwarding Table Identifier) is used to indicate the target BIER forwarding table, and the BitString is used to indicate all destination nodes or forwarding links of the multicast data message. The BFR device can locate the target BIER forwarding table according to the value of BIFT-id, and then search the target BIER forwarding table for the destination node or forwarding link indicated by the BitString according to the BitString, and forward the message through the egress port.
[0074] Exemplarily, the tag field is located before other fields in the BIER header except the tag field. Figure 3 As shown, the tag field is located in the first 20 bits of the BIER header.
[0075] Exemplarily, the BitString field is located after other fields in the BIER header except the BitString field. Figure 3 As shown, the BitString field is located at the end of the BIER header and has a variable length.
[0076] like Figure 3 As shown, when the BIER header adopts the first encapsulation format, the BIER header includes an S tag, and the S tag is used to indicate whether it is at the bottom of the stack.
[0077] like Figure 3As shown, when the BIER header adopts the first encapsulation format, the BIER header includes a proto field, which is used to indicate the type of the subsequent field of the BIER header. For example, the value of the proto field indicates the data packet type of the Payload immediately following the BIER header, or the value of the proto field indicates the Post-StackMPLS Network Action (PSD) entry immediately following the BIER header, and so on.
[0078] It should be noted that the first encapsulation format of the BIER header specifically includes the following implementation methods 1.1, 1.2, 1.3 and 1.4. The various implementation methods of the first encapsulation format are introduced in turn below. Among them, in implementation method 1.1, there is no PSD entry for the MPLS message; in implementation methods 1.2, 1.3 and 1.4, there is a PSD entry for the MPLS message.
[0079] See also Fig. 9 , Fig. 9 1.1 is a schematic diagram of the implementation method 1.1 of the first encapsulation format of the BIER header provided in the embodiment of the present application. Fig. 9 As shown, in implementation 1.1, there is no PSD entry in the MPLS message, and the BIER header directly uses Figure 3 The encapsulation format shown is encapsulated after all label stack entries of the MPLS message, and the payload part is followed by the BIER header. In this case, the S label in the BIER header takes the value representing the bottom of the stack, for example, the S label is set to 1, indicating the bottom position of the stack; the value of the proto field in the BIER header is set to the datagram type representing the subsequent payload, for example, indicating that the datagram type is Internet Protocol version 4 (IPv4).
[0080] Exemplarily, under implementation method 1.1, step S121a specifically includes: when there is no PSD entry in the MPLS message, encapsulating the BIER header after all label stack entries of the MPLS message, setting the S label to the value representing the bottom of the stack, and setting the value of the proto field to the data message type representing the subsequent payload.
[0081] See also Fig.10 , Fig.10 Schematic diagram of implementation method 1.2 of the first encapsulation format of the BIER header provided in the embodiment of the present application. Fig.10As shown, in implementation method 1.2, there is a PSD entry in the MPLS message, and the BIER header is encapsulated after all label stack entries of the MPLS message and before the PSD entry. In this case, the S label in the BIER header takes the value representing the bottom of the stack, for example, the S label is set to 1, indicating the bottom position of the stack; the value of the proto field in the BIER header is set to indicate that the BIER header is followed by PSD.
[0082] Exemplarily, under implementation method 1.2, step S121a specifically includes: when there is a PSD entry in the MPLS message, encapsulating the BIER header after all label stack entries of the MPLS message and before the PSD entry, setting the S label to the value representing the bottom of the stack, and setting the value of the proto field to indicate that the BIER header is followed by PSD.
[0083] See also Fig.11 , Fig.11 Schematic diagram of implementation method 1.3 of the first encapsulation format of the BIER header provided in the embodiment of the present application. Fig.11 As shown, in implementation method 1.3, there is a PSD entry in the MPLS message, and the PSD entry is located after all label stack entries of the MPLS message. The BIER header is encapsulated after the PSD entry. In this case, the S label in the BIER header takes a value representing a non-bottom of the stack. For example, the S label is set to 0, indicating a non-bottom position of the stack; the value of the proto field in the BIER header is set to represent the data packet type of the subsequent payload, and the data packet type can be IPv4 or other types.
[0084] Exemplarily, under implementation method 1.3, step S121a specifically includes: when there is a PSD entry in the MPLS message, encapsulating the BIER header after all label stack entries and PSD entries of the MPLS message, setting the S label to a value representing a non-bottom of the stack, and setting the value of the proto field to the data message type representing the subsequent payload.
[0085] See also Fig.12 , Fig.12 Schematic diagram of implementation method 1.4 of the first encapsulation format of the BIER header provided in the embodiment of the present application. Fig.12As shown, in implementation method 1.4, there is a PSD entry in the MPLS message. The PSD entry is located after all label stack entries (MPLS Label Stack) of the MPLS message, and the BIER header is encapsulated in the PSD entry. In this case, the BIER header can be encapsulated as a new Post-Stack Network Action of the PSD, that is, as a part of the PSD, the S label in the BIER header takes a value indicating a non-bottom of the stack, for example, the S label value is 0, indicating a non-bottom position of the stack.
[0086] Exemplarily, under implementation method 1.4, step S121a specifically includes: when there is a PSD entry in the MPLS message, encapsulating the BIER header after all label stack entries of the MPLS message and located in the PSD entry, and setting the S label to a value representing a non-bottom of the stack.
[0087] In a possible embodiment of the present application, the label stack entry of the MPLS message includes a first label stack entry, in which a BIER Action identifier is set, and the BIER Action identifier is used to indicate that the MPLS message carries a BIE Action. Exemplarily, the first label stack entry can be used as follows Figure 4 In the encapsulation format shown, BIER is used as a new action in MNA. In the Data field of the first label stack entry, a fixed bit (such as the 15th bit from the right) is directly used to represent the BIER Action, or a new Opcode field value (assuming it is 100) is defined to specifically represent the BIER Action. When the BFR device processes the MPLS label stack, if it processes the following Figure 4 If the LSE of the encapsulation format shown in the figure is found, and the fixed bit in the Data field of the LSE (assuming it is the 15th bit from the right) is set to 1, it indicates BIER Action; or when the BFR device processes the MPLS label stack, if it processes to the following Figure 4 The BFR device finds the LSE in the encapsulation format shown, and finds that the opcode field of the LSE is set to a value representing BIERAction (assuming it is 100), which can also represent BIER Action. If the BFR device finds the BIER Action, it performs the operation of extracting the BIER header.
[0088] In a possible embodiment of the present application, the first label stack entry also carries a BIER header format indicator. Exemplarily, the Res field of the first label stack entry can be used to carry the BIER header format indicator, for example, different Res field values are defined to represent different BIER header encapsulation formats. After the BFR device discovers the BIER Action, it can determine the target encapsulation format of the BIER header based on the BIER header format indicator, and then perform the operation of extracting the BIER header according to the target encapsulation format indicated by the BIER header format indicator.
[0089] Exemplarily, the first label stack entry can use the Res field in format B to define different values to represent different specific BIER header encapsulation formats, such as 01 indicates that the BIER encapsulation format is the first encapsulation format, and 10 indicates that the BIER encapsulation format is the second encapsulation format.
[0090] When the target encapsulation format is the first encapsulation format, an embodiment of the method of the present application also includes: setting a BIER Action identifier in the first label stack entry, and setting the value of the BIER header format indicator in the first label stack entry to a first value, so that the BFR device determines that the MPLS message carries a BIER header according to the BIER Action identifier, and determines that the target encapsulation format of the BIER header is the first encapsulation format according to the value of the BIER header format indicator being the first value, and then extracts the BIER header after all label stack entries.
[0091] It should be noted that the MPLS message may not carry the BIER header format indicator. After the BFR device discovers the BIERAction, it determines the target encapsulation format of the BIER header according to the predetermined agreement or pre-configuration information, and performs the operation of extracting the BIER header according to the target encapsulation format.
[0092] In another possible embodiment of the present application, step S120 specifically includes the following steps S121b to S124b:
[0093] Step S121b, when the target encapsulation format is the second encapsulation format, setting a first label stack entry, a second label stack entry, and a third label stack entry in the label stack of the MPLS message;
[0094] Step S122b, setting a BIER Action identifier in the first label stack entry;
[0095] Step S123b, setting the BIFT-id in the second label stack entry;
[0096] Step S124b: Set the BitString in the third label stack entry.
[0097] See also Fig.13 , Fig.13 A schematic diagram of the second packaging format of the BIER header provided in the embodiment of the present application. Fig.13 As shown, the MPLS label stack includes a first label stack entry, a second label stack entry, and a third label stack entry that are sequentially arranged, wherein the number of the third label stack entries may be multiple.
[0098] Exemplarily, the first label stack entry adopts Figure 4 In the format shown (i.e., LSE format B), the BIER Action identifier is set in the Opcode field of the first label stack entry. For example, when the value of Opcode is B, it indicates BIERAction. Alternatively, the BIER Action identifier is set in a specific position of the Data field of the first label stack entry. For example, the B bit in the Data field is used as the bit indicating the BIER Action. When the B bit in the Data field is 1, it indicates BIERAction.
[0099] When the BFR device processes an MPLS label stack, if it processes an LSE encapsulated in format B and finds that the opcode field of the LSE is set to a value indicating BIER Action, it indicates BIER Action; or, when the BFR device processes an LSE encapsulated in format B and finds that the fixed bit in the Data field of the LSE is 1, it indicates BIER Action. If the BFR device finds BIER Action, it executes the operation of extracting the BIER header.
[0100] See also Fig.14 , Fig.14 Schematic diagram of the format of the first label stack entry provided in the embodiment of the present application. Fig.14 As shown, the B in the Opcode field represents the Opcode value used to indicate the BIER Action, or the B bit in the Data field is used as the bit indicating the BIER Action.
[0101] In a possible embodiment of the present application, the first label stack entry also carries a BIER header format indicator. Exemplarily, the Res field of the first label stack entry can be used to carry the BIER header format indicator, for example, different Res field values are defined to represent different BIER header encapsulation formats. After the BFR device discovers the BIER Action, it can determine the target encapsulation format of the BIER header based on the BIER header format indicator, and then perform the operation of extracting the BIER header according to the target encapsulation format indicated by the BIER header format indicator.
[0102] When the target encapsulation format is the second encapsulation format, an embodiment of the method of the present application also includes: setting the value of the BIER header format indicator in the first label stack entry to a second value. When the BIER header format indicator takes the second value, it indicates that the target encapsulation format is the second encapsulation format.
[0103] The BFR device determines that the MPLS message carries a BIER header based on the BIER Action identifier, and determines that the target encapsulation format of the BIER header is the second encapsulation format based on the value of the BIER header format indicator being the second value, and then extracts the BIFT-id from the second label stack entry immediately following the first label stack entry, and extracts the BitString from the N third label stack entries immediately following the second label stack entry, where N ≥ 1.
[0104] It should be noted that the MPLS message may not carry the BIER header format indicator. After the BFR device discovers the BIERAction, it can determine the target encapsulation format of the BIER header according to the predetermined agreement or pre-configuration information, and perform the operation of extracting the BIER header according to the target encapsulation format.
[0105] Exemplarily, the second label stack entry adopts Fig.15 In the format shown (LSE-based format C), the BIFT-id is set in the Data field of the second label stack entry, and the BIFT-id is formed by concatenating the first 16 bits and the last 4 bits of the Data field of the second label stack entry.
[0106] like Figure 5 As shown, the second label stack entry also includes a NAL (full name Network Action Length) field, and the value of the NAL field is used to indicate the length of the BitString. For example, if the value of NAL is set to 1, it means that the BitString length is 64, if it is set to 2, it means that the BitString length is 128, if it is set to 3, it means that the BitString length is 256, if it is set to 4, it means that the BitString length is 512, if it is set to 5, it means that the BitString length is 1024, if it is set to 6, it means that the BitString length is 2048, and if it is set to 7, it means that the BitString length is 4096. The BFR device extracts the BitString from the corresponding number of third label stack entries according to the BitString length indicated by the NAL.
[0107] Exemplarily, the third label stack entry adopts Figure 6The format shown (i.e., format D of LSE) is shown. The BitString is set in the Data field of the third label stack entry. The BitString is formed by concatenating the values at specific positions of the Data fields of N third label stack entries, where N is a positive integer and the value of N depends on the value of the NAL field.
[0108] In the embodiment of the present application, the second encapsulation format may correspond to implementation method 2.1 and implementation method 2.2, wherein the main difference between implementation method 2.1 and implementation method 2.2 is that the format of the third label stack entry is different. In implementation method 2.1, BitString is set to the first 22 bits and the last 8 bits of the Data field of the third label stack entry, such as Fig.16a As shown; in implementation 2.2, BitString is set to the last 8 bits of the Data field of the third label stack entry, such as Fig.16b shown.
[0109] In a possible embodiment, the third label stack entry uses the first 22 bits and the last 8 bits of the Data field to encapsulate the BitString. Assuming that the length of the BitString is 64, three third label stack entries are required to encapsulate the value of the BitString, that is, N is equal to 3. The Data field of the first third label stack entry encapsulates the first 30 bits of the BitString, the Data field of the second third label stack entry encapsulates the subsequent 30 bits of the BitString, and the Data field of the third third label stack entry encapsulates the last 4 bits of the BitString. For the sake of processing convenience, it can be agreed that encapsulation starts from the leftmost bit of the Data field.
[0110] It should be noted that if there are router devices that do not support MNA in the network, in order to take these devices into consideration, the first half of the Data value of the LSE in format D (that is, the first 22 bits of the Data field) cannot be changed hop by hop. Therefore, if the BitString may change after being processed by the BFR device, the BitString can only be encapsulated in the second half of the Data value of the LSE in format D (that is, the last 8 bits of the Data field), such as Fig.16b shown.
[0111] In a possible embodiment, the third label stack entry only uses the last 8 bits of the Data field to encapsulate the BitString. Assuming that the length of the encapsulated BitString is 64, 8 third label stack entries need to be encapsulated, that is, N is equal to 8. The second half of the Data field of the first third label entry (the last 8 bits of the Data field) encapsulates the first 8 bits of the BitString; the second half of the Data field of the second third label entry encapsulates the next 8 bits of the BitString, and so on. The second half of the Data field of the eighth third label entry encapsulates the last 8 bits of the BitString. For the sake of processing convenience, it can be agreed that the encapsulation starts from the leftmost bit of the second half of the Data field.
[0112] It should be noted that BitString can also be encapsulated in compact mode, that is, BitString is encapsulated directly and continuously after the second label stack entry, that is, the third label stack entry is not encapsulated according to format D. In this way, on the one hand, the number of LSEs in format D can be reduced, and on the other hand, it can avoid skipping the two reserved bits in format D when processing LSE, thereby improving device processing efficiency.
[0113] The second encapsulation format provided in the embodiment of the present application encapsulates the elements in the BIER header in format C or format D. At this time, the BIER header is no longer placed after the entire MPLS label stack, but is encapsulated in the MPLS label stack. During encapsulation, only some important fields in the BIER header can be encapsulated, while some fields that are not needed in this environment are omitted, thereby saving encapsulation overhead. The second encapsulation format specifically defines the carrying of BitString and its length. For other fields in the traditional BIER header, such as Entropy and other fields, they can be carried in a manner similar to BitString, but distinguished by different opcodes.
[0114] Step S130: Send an MPLS message.
[0115] After completing the encapsulation of the BIER header, the BFIR device sends the MPLS message to the next-hop BFR device, so that the BFR device forwards the message according to the BIFT-id and BitString carried by the BIER header.
[0116] See also Fig.17 , Fig.17 is a flow chart of a message processing method provided in an embodiment of the present application. The execution subject of the message processing method may be Figure 7 The BFR device in the implementation environment shown. Fig.17 As shown, the message processing method may include but is not limited to the following steps S210-S240, and each step is introduced in turn below:
[0117] Step S210, receiving a multi-protocol label switching MPLS message, the MPLS message carries a BIER Action identifier.
[0118] Exemplarily, the current BFR device receives an MPLS message from a previous-hop device, and the previous-hop device may be a BFIR device or a BFR device.
[0119] Step S220, determine the encapsulation format of the bit index explicitly copied BIER header.
[0120] Exemplarily, the current BFR device reads the label stack entry (LSE) in the MPLS label stack. If the BIER Action identifier is read in a label stack entry, it confirms that the MPLS message carries a BIER header, and further confirms the encapsulation format of the BIER header to perform the BIER header reading operation according to the encapsulation format of the BIER header.
[0121] In a possible embodiment of the present application, step S220 specifically includes: triggering when a first label stack entry carrying a BIER Action identifier is read in the MPLS message, and determining the encapsulation format of the BIER header from the BIER header format indicator carried by the first label stack entry.
[0122] The format of the first label stack entry can be as follows Fig.14 As shown, the B in the Opcode field represents the Opcode value used to indicate BIERAction, or the B bit in the Data field is used as the bit indicating BIER Action.
[0123] When the BFR device processes an MPLS label stack, if it processes an LSE encapsulated in format B and finds that the opcode field of the LSE is set to a value indicating BIER Action, it indicates BIER Action; or, when the BFR device processes an LSE encapsulated in format B and finds that the fixed bit in the Data field of the LSE is 1, it indicates BIER Action. If the BFR device finds BIER Action, it executes the operation of extracting the BIER header.
[0124] After the BFR device reads the BIER Action identifier, it further reads the BIER header format indicator in the LSE, and determines the encapsulation format of the BIER header according to the value of the BIER header format indicator. The BIER header format indicator can be set in a specific bit of the RES field of the first label stack entry. For example, the value of the two specific bits of the RES field is 01, indicating that the encapsulation format of the BIER header is the first encapsulation format; the value of the two specific bits of the RES field is 10, indicating that the encapsulation format of the BIER header is the second encapsulation format, and the BitString is encapsulated in the first 22 bits and the last 8 bits of the Data field; the value of the two specific bits of the RES field is 11, indicating that the encapsulation format of the BIER header is the second encapsulation format, and the BitString is encapsulated in the last 8 bits of the Data field.
[0125] In another possible embodiment of the present application, step S220 specifically includes: determining the encapsulation format of the BIER header according to pre-configuration information. The pre-configuration information can specifically be configuration information issued by the controller, or local configuration information, or pre-agreed information. For example, the current BFR device confirms that the encapsulation format of the BIER header in the domain is unified as the first encapsulation format or the second encapsulation format based on the configuration information issued by the controller.
[0126] Step S230, according to the encapsulation format of the BIER header, obtain the BIER header in the MPLS message, and obtain the bit index forwarding table identifier BIFT-id and the bit string BitString in the BIER header.
[0127] In the embodiment of the present application, the encapsulation format of the BIER header includes a first encapsulation format and a second encapsulation format. In step S230, according to the encapsulation format of the BIER header, the BIER header is obtained in the MPLS message, which specifically includes the following steps S231a or S231b:
[0128] Step S231a, when the encapsulation format is the first encapsulation format, obtain the BIER header after the label stack entry of the MPLS message;
[0129] Step S231b, when the encapsulation format is the second encapsulation format, obtain the BIER header in the label stack entry of the MPLS message.
[0130] When the encapsulation format is the first encapsulation format, the BIER header is located in one of the following positions after the label stack entry of the MPLS packet:
[0131] like Fig. 9 As shown, when there is no PSD entry in the MPLS message, the BIER header follows the last label stack entry of the MPLS message, and the S label in the BIER header represents the value of the stack bottom;
[0132] like Fig.10 As shown, when there is a PSD entry in the MPLS message, the BIER header is immediately after the last label stack entry of the MPLS message and before the PSD entry, and the S label in the BIER header is the value representing the bottom of the stack;
[0133] like Fig.11 As shown, when there is a PSD entry in the MPLS message, the BIER header is located after the PSD entry, and the S label in the BIER header is a value indicating a non-stack bottom;
[0134] like Fig.12 As shown, when there is a PSD entry in the MPLS message, the BIER header is located in the PSD entry, and the S label in the BIER header is a value indicating a non-bottom of the stack.
[0135] After the current BFR device determines that the encapsulation format of the BIER header is the first encapsulation format, it can follow Figure 9-12 Obtain the BIER header in the MPLS message using any of the encapsulation formats shown. The BIER header is specifically Figure 9-12 Which encapsulation format is shown can be indicated by the BIER header format indicator, or the encapsulation format of the BIER header can be agreed upon in advance, so that the BFR device can quickly identify the encapsulation format of the BIER header.
[0136] In a possible embodiment of the present application, in step S230, a bit index forwarding table identifier BIFT-id and a bit string BitString are obtained in the BIER header, specifically including: when the encapsulation format of the BIER header is the first encapsulation format, obtaining the BIFT-id in the tag field of the BIER header, and obtaining the BitString in the BitString field of the BIER header.
[0137] Exemplarily, the tag field is located before other fields in the BIER header except the tag field.
[0138] Exemplarily, the BitString field is located after other fields in the BIER header except the BitString field.
[0139] In a possible embodiment of the present application, in step S230, the bit index forwarding table identifier BIFT-id and the bit string BitString are obtained in the BIER header, specifically including:
[0140] When the encapsulation format is the second encapsulation format, determine the label stack entry corresponding to the BIER header based on the first label stack entry identified by the BIER Action read in the MPLS label stack of the MPLS message, wherein the label stack entry corresponding to the BIER header includes the second label stack entry and the third label stack entry;
[0141] Obtain the BIFT-id in the second label stack entry;
[0142] Get the BitString in the third label stack entry.
[0143] Exemplarily, the BIER Action identifier is set in the operation code Opcode field of the first label stack entry; or, the BIER Action identifier is set at a specific position of the data field of the first label stack entry.
[0144] Exemplarily, the BIFT-id is set in the Data field of the second label stack entry, and the BIFT-id is formed by concatenating the first 16 bits and the last 4 bits of the Data field of the second label stack entry.
[0145] Exemplarily, the second label stack entry further includes a NAL field, and the value of the NAL field is used to indicate the length of the BitString.
[0146] Exemplarily, the BitString is set in the Data field of the third label stack entry, and the BitString is formed by concatenating the values at specific positions of the Data fields of N third label stack entries, where N is a positive integer and the value of N depends on the value of the NAL field.
[0147] Exemplarily, the BitString is set in the first 22 bits and the last 8 bits of the Data field of the third label stack entry; or, the BitString is set in the last 8 bits of the Data field of the third label stack entry.
[0148] Step S240: forward the message according to the BIFT-id and BitString.
[0149] Exemplarily, step S240 specifically includes the following sub-steps:
[0150] Step S241, determine the target BIER forwarding table according to BIFT-id;
[0151] Step S242, determining a forwarding node or a forwarding link according to the BitString;
[0152] Step S243, obtaining forwarding operation indication information corresponding to the forwarding node or forwarding link in the target BIER forwarding table;
[0153] Step S244: forward the message according to the forwarding operation instruction information.
[0154] It should be noted that although the operations are described in a specific order in the drawings in the embodiments of the present application, it should not be understood as requiring the operations to be performed in the specific order or serial order shown, or requiring the execution of all the operations shown to obtain the desired results. In certain environments, multitasking and parallel processing may be advantageous.
[0155] In addition, in the embodiments of the present application, the description of each embodiment has its own focus. For parts that are not described or recorded in detail in a certain embodiment, please refer to the relevant description of other embodiments.
[0156] The embodiment of the present application defines the specific encapsulation format and processing logic of the BIER header, as well as the corresponding control plane notification mechanism, so that BIER can use the new generation of MPLS as the transmission encapsulation and expand the deployment scenarios of BIER.
[0157] The message processing method provided in the embodiment of the present application is described in detail below through specific examples.
[0158] Example 1:
[0159] Combination Figure 7 The implementation environment shown assumes Figure 7 The BFIR, BFR and BFER devices shown all support MNA technology and BIER multicast technology. The multicast data packets enter the BIER domain through BFIR1, are forwarded by the BFR devices in the domain, and reach BFER3, BFER4, BFER5, and BFER6. After that, the BFER devices forward them to the receivers who need to receive the traffic. Assume that the BFR-id of BFIR1 is 1, and the BFR-ids of BFER3, BFER4, BFER5, and BFER6 are 10, 20, 30, and 40, respectively.
[0160] Assuming that all devices in the domain have agreed that the BIER header uses the first encapsulation format, BFIR1 encapsulates the multicast data message as Payload after the BIER header when encapsulating the multicast data message entering the domain. If there is no PSD in the MPLS message, according to method 1.1, the S label in the first 4 bytes of the BIER header is set to 1, indicating that it is the bottom of the stack. The BitString length of the BIER header is 64 bits, and the corresponding positions 10, 20, 30 and 40 in the BitString are set to 1 respectively.
[0161] If there is a PSD in the MPLS message, BFIR1 can encapsulate the BIER header before the PSD according to method 1.2, set the S label in the first 4 bytes of the BIER header to 1 to indicate that it is the bottom of the stack, and set the Proto field of the BIER header to a value indicating the existence of a PSD; or, BFIR1 can encapsulate the BIER header after the PSD according to method 1.3, the S label in the first 4 bytes of the BIER header does not need to be set, and the Proto field of the BIER header is set to a value indicating the existence of a PSD; or, BFIR1 can encapsulate the BIER header as a newly added Post-Stack Network Action type in the PSD and as a part of the PSD in the PSD according to method 1.4.
[0162] BFIR1 encapsulates the LSE carrying the BIER Action identifier in the MPLS label stack before the BIER header. The LSE uses the following Fig.14 The packaging format shown.
[0163] When forwarding, the BFR device processes the MPLS label stack. If the BIER Action identifier is found in the MPLS label stack, it will read the label stack backward to the bottom of the stack, read the BIER header, and forward and process it according to the corresponding BIER forwarding table. When processing, the device can process the BIER header according to the provisions of the protocol RFC8296, which will not be repeated here. After multi-hop forwarding, it finally reaches BFER3 / 4 / 5 / 6. The BFER device strips off the outermost MPLS label stack and BIER header and sends the multicast data packet to the receiver. In the presence of PSD, if the BIER header is before the PSD, the BIER header can be processed directly at the bottom of the stack; if the BIER header is after the PSD, the BIER header can be processed after the PSD is processed or the PSD can be skipped to process the BIER header; if the BIER header is in the PSD, the BIER header is processed when the PSD is processed.
[0164] Example 2:
[0165] Combination Figure 7 The implementation environment shown assumes Figure 7 The BFIR, BFR and BFER devices shown all support MNA technology and BIER multicast technology. The multicast data packets enter the BIER domain through BFIR1, are forwarded by the BFR devices in the domain, and reach BFER3, BFER4, BFER5, and BFER6. After that, the BFER devices forward them to the receivers who need to receive the traffic. Assume that the BFR-id of BFIR1 is 1, and the BFR-ids of BFER3, BFER4, BFER5, and BFER6 are 10, 20, 30, and 40, respectively.
[0166] Assuming that all devices in the domain have agreed to use the second encapsulation format for the BIER header, BFIR1 encapsulates the multicast data message entering the domain as the payload after the MPLS label stack. Set the first label stack entry in the MPLS label stack (for the encapsulation format of the first label stack entry, see Fig.14 As shown), set the BIER Action flag in the first label stack entry, and then set the BIER Action flag in the second label stack entry immediately following the first label stack entry (see the encapsulation format of the second label stack entry for details). Fig.15 As shown in FIG. 1 , the first 16 bits and the last 4 bits of the Data field are used to set the value of the BIFT-id, and the corresponding value is set in the NAL field of the second label stack entry according to the length of the BitString.
[0167] Assume that the second encapsulation format is implemented in mode 2.1, that is, the first 22 bits and the last 8 bits in the Data field of the third label stack entry can be used to encapsulate the BitString. The current BitString length is 64. Therefore, three encapsulations are required. Fig.16a In the third label stack entry of the format shown, the Data field of the first third label stack entry immediately following the second label stack entry encapsulates the first 30 bits of the BitString; the Data field of the second third label stack entry encapsulates the next 30 bits of the BitString, and the Data field of the third third label stack entry encapsulates the last 4 bits of the BitString. For the sake of convenience, it is agreed in advance that encapsulation starts from the leftmost bit of the Data field. In this example, the 10th, 20th, and 30th bits in the Data field of the first third label stack entry need to be set to 1, and the 10th bit in the Data field of the second third label stack entry needs to be set to 1.
[0168] Assume that the second encapsulation format is implemented in mode 2.1, that is, the first 22 bits and the last 8 bits in the Data field of the third label stack entry can be used to encapsulate the BitString. The current BitString length is 256. Therefore, 9 bits need to be encapsulated. Fig.16a In the third label stack entry of the format shown, the first 30 bits of the BitString are encapsulated in the Data field of the first third label stack entry immediately following the second label stack entry; the next 30 bits of the BitString are encapsulated in the Data field of the second third label stack entry, and so on, the last 16 bits of the BitString are encapsulated in the Data field of the ninth third label stack entry. In this example, the 10th, 20th, and 30th bits of the Data field of the first third label stack entry need to be set to 1, and the 10th bit of the Data field of the second third label stack entry needs to be set to 1.
[0169] When forwarding, the BFR device processes the MPLS label stack. If the BIER Action identifier is found in the MPLS label stack, the label stack entry with the BIER Action identifier is used as the first label stack entry, and the BIFT-id value is obtained from the first 16 bits and the last 4 bits of the Data field of the second label stack entry following the first label stack entry. The relevant BIER forwarding table is then located according to the BIFT-id value. The length of the BitString is then determined according to the value of the NAL field of the second label stack entry, and the number of third label stack entries N is determined according to the length of the BitString. The complete BitString is then obtained from the Data field of the N third label stack entries following the second label stack entry. The complete BitString is processed and forwarded according to the BIER forwarding table. This part is the same as the BIER basic forwarding process and will not be described in detail here. After multiple hops, it finally reaches BFER3 / 4 / 5 / 6. After the BFER device strips off the MPLS label stack, it sends the multicast data packet to the receiver.
[0170] Example 3:
[0171] Combination Figure 7 The implementation environment shown assumes Figure 7 The BFIR, BFR and BFER devices shown all support MNA technology and BIER multicast technology. The multicast data packets enter the BIER domain through BFIR1, are forwarded by the BFR devices in the domain, and reach BFER3, BFER4, BFER5, and BFER6. After that, the BFER devices forward them to the receivers who need to receive the traffic. Assume that the BFR-id of BFIR1 is 1, and the BFR-ids of BFER3, BFER4, BFER5, and BFER6 are 10, 20, 30, and 40, respectively.
[0172] Assuming that all devices in the domain have agreed to use the second encapsulation format for the BIER header, BFIR1 encapsulates the multicast data message entering the domain as the payload after the MPLS label stack. Set the first label stack entry in the MPLS label stack (for the encapsulation format of the first label stack entry, see Fig.14 As shown), set the BIER Action flag in the first label stack entry, and then set the BIER Action flag in the second label stack entry immediately following the first label stack entry (see the encapsulation format of the second label stack entry for details). Fig.15 As shown in FIG. 1 , the first 16 bits and the last 4 bits of the Data field are used to set the value of the BIFT-id, and the corresponding value is set in the NAL field of the second label stack entry according to the length of the BitString.
[0173] Assumptions Figure 7In the implementation environment shown, there are traditional MPLS devices that do not support MNA. In order to take these devices into consideration, the first half of the Data value (22 bits) of the LSE of format D cannot be changed hop by hop. Therefore, if the BitString may change after being processed by the intermediate device, only the last 8 bits of the Data field in the LSE of format D can be used to encapsulate the BitString, such as Fig.16b shown.
[0174] Assume that the implementation method 2.2 of the second encapsulation format is used for encapsulation, that is, the last 8 bits of the Data field of the third label stack entry can be used to encapsulate the BitString. The current BitString length is 64, so 8 bits need to be encapsulated. Fig.16b In the third label stack entry of the format shown, the Data field of the first third label stack entry immediately following the second label stack entry encapsulates the first 8 bits of the BitString; the Data field of the second third label stack entry encapsulates the next 8 bits of the BitString, and so on, the Data field of the eighth third label stack entry encapsulates the last 8 bits of the BitString. For the sake of convenience, it is agreed in advance that encapsulation starts from the leftmost bit of the Data field. In this example, it is necessary to set the second bit of the second half of the Data field of the second third label stack entry, the fourth bit of the second half of the Data field of the third third label stack entry, the sixth bit of the second half of the Data field of the fourth third label stack entry, and the eighth bit of the second half of the Data field of the fifth third label stack entry to 1.
[0175] Assume that the implementation method 2.2 of the second encapsulation format is used for encapsulation, that is, the last 8 bits of the Data field of the third label stack entry can be used to encapsulate the BitString. The current BitString length is 256, so 32 bits need to be encapsulated. Fig.16b In the third label stack entry of the format shown, the Data field of the first third label stack entry immediately following the second label stack entry encapsulates the first 8 bits of the BitString; the Data field of the second third label stack entry encapsulates the next 8 bits of the BitString, and so on, the Data field of the thirty-second third label stack entry encapsulates the last 8 bits of the BitString. For the sake of processing convenience, it is pre-agreed that encapsulation starts from the leftmost bit of the Data field. In this example, it is necessary to set the second bit of the second half of the Data field of the second third label stack entry, the fourth bit of the second half of the Data field of the third third label stack entry, the sixth bit of the second half of the Data field of the fourth third label stack entry, and the eighth bit of the second half of the Data field of the fifth third label stack entry to 1. It should be noted that since the second half of the Data field of each third label stack entry is not set to 1 starting from the sixth third label stack entry in this example, the sixth to the thirty-second third label stack entries can also be omitted.
[0176] When forwarding, the BFR device processes the MPLS label stack. If the BIER Action identifier is found in the MPLS label stack, the label stack entry with the BIER Action identifier is used as the first label stack entry, and the BIFT-id value is obtained from the first 16 bits and the last 4 bits of the Data field of the second label stack entry following the first label stack entry. The relevant BIER forwarding table is then located according to the BIFT-id value. The length of the BitString is then determined according to the value of the NAL field of the second label stack entry, and the number of third label stack entries N is determined according to the length of the BitString. The complete BitString is then obtained from the Data field of the N third label stack entries following the second label stack entry. The complete BitString is processed and forwarded according to the BIER forwarding table. This part is the same as the BIER basic forwarding process and will not be described in detail here. After multiple hops, it finally reaches BFER3 / 4 / 5 / 6. After the BFER device strips off the MPLS label stack, it sends the multicast data packet to the receiver.
[0177] Example 4:
[0178] See also Fig.18 , Fig.18 Schematic diagram of an implementation environment of the message processing method of the embodiment of the present application. Fig.18 In the scenario shown, BFIR, BFR, and BFER devices all support MNA technology and BIER multicast technology. Multicast data packets enter the BIER domain through BFIR1. Due to traffic engineering planning, it is hoped that multicast data packets can be forwarded according to the specified links: BFIR1---BFRm---BFRx---BFER4 / BFRy, BFRy---BFER5. After the message reaches BFER4 / 5, it is forwarded by the BFER device to the receiver who needs to receive the traffic. Assume that the BP (BitPosition) of each link is: BFIR1---BFRm: 10; BFRm---BFRx: 20; BFRx---BFER4: 30; BFRx---BFRy: 40; BFRy---BFER5: 50.
[0179] Assuming that all devices in the domain have agreed that the BIER header is encapsulated using the second encapsulation format implementation method 2.1, when BFIR encapsulates the multicast data message entering the domain, it sets the first label stack entry in the MPLS label stack (for the encapsulation format of the first label stack entry, see Fig.14 As shown), the BIERAction flag is set in the first label stack entry, and then the second label stack entry immediately following the first label stack entry (the encapsulation format of the second label stack entry is shown in FIG. Fig.15As shown in FIG. 1 , the first 16 bits and the last 4 bits of the Data field are used to set the value of the BIFT-id, and the corresponding value is set in the NAL field of the second label stack entry according to the length of the BitString.
[0180] Assuming the current BitString length is 64, you need to encapsulate 3 Fig.16a In the third label stack entry of the format shown, the Data field of the first third label stack entry immediately following the second label stack entry encapsulates the first 30 bits of the BitString; the Data field of the second third label stack entry encapsulates the next 30 bits of the BitString, and the Data field of the third third label stack entry encapsulates the last 4 bits of the BitString. For the sake of processing convenience, it is agreed in advance that encapsulation starts from the leftmost bit of the Data field. In this example, the 10th, 20th, and 30th bits in the Data field of the first third label stack entry need to be set to 1, and the 10th and 20th bits in the Data field of the second third label stack entry need to be set to 1.
[0181] When forwarding, the BFR device processes the MPLS label stack. If the BIER Action identifier is found in the MPLS label stack, the label stack entry with the BIER Action identifier is used as the first label stack entry, and the BIFT-id value is obtained from the first 16 bits and the last 4 bits of the Data field of the second label stack entry that follows the first label stack entry. The relevant BIER forwarding table is then located according to the BIFT-id value. The length of the BitString is then determined according to the value of the NAL field of the second label stack entry. The number N of third label stack entries is then determined according to the length of the BitString, and the complete BitString is obtained from the Data fields of the N third label stack entries that follow the second label stack entry.
[0182] The packet is processed and forwarded according to the BIER forwarding table, and reaches BFER4 / 5 after being forwarded through the specified path. After the BFER device strips off the MPLS label stack, it sends the multicast data packet to the receiver.
[0183] When the BIER-TE path has the DNC (DoNotClear) feature, the BitString will not change after forwarding by the intermediate device. Therefore, regardless of whether there are traditional MPLS devices that do not support MNA in the network, the forwarding of BIER-TE in MNA encapsulation will not be affected.
[0184] The present application also provides an electronic device, such as Fig.19 As shown, the electronic device 1400 includes:
[0185] one or more processors 1410;
[0186] The memory 1420 stores one or more programs. When the one or more programs are executed by the one or more processors 1410, the one or more processors 1410 implement:
[0187] Such as the message processing method applied to BFIR equipment; or,
[0188] Such as the message processing method applied to BFR equipment.
[0189] The memory 1420, as a non-transient network system, can be used to store non-transient software programs and non-transient computer executable programs. In addition, the memory 1420 may include a high-speed random access memory, and may also include a non-transient memory, such as at least one disk storage device, a flash memory device, or other non-transient solid-state storage device. In some embodiments, the memory 1420 may optionally include a memory 1420 remotely arranged relative to the processor 1410, and these remote memories 1420 may be connected to the processor 1410 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.
[0190] The memory 1420 can be implemented in the form of a read-only memory (ROM), a static storage device, a dynamic storage device, or a random access memory (RAM). The memory 1420 can store an operating system and other application programs. When the technical solutions provided in the embodiments of this specification are implemented by software or firmware, the relevant program codes are stored in the memory 1420, and the processor 1410 calls and executes the methods of the embodiments of this application.
[0191] The processor 1410 can be implemented by a general-purpose CPU (Central Processing Unit), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits, and is used to execute relevant programs to implement the technical solutions provided in the embodiments of the present application.
[0192] In some embodiments, the electronic device further comprises:
[0193] Input / output interface, used to realize information input and output;
[0194] Communication interface, used to realize communication interaction between this device and other devices, which can be realized through wired mode (such as USB, network cable, etc.) or wireless mode (such as mobile network, WIFI, Bluetooth, etc.);
[0195] A bus that transmits information between various components of the device (e.g., processor 1410, memory 1420, input / output interface, and communication interface);
[0196] The processor 1410 , the memory 1420 , the input / output interface and the communication interface can be connected to each other in communication within the device via a bus.
[0197] An embodiment of the present application further provides a computer-readable storage medium storing computer-executable instructions for executing:
[0198] Such as the message processing method applied to BFIR equipment; or,
[0199] Such as the message processing method applied to BFR equipment.
[0200] An embodiment of the present application further provides a computer program product, including a computer program or a computer instruction, wherein the computer program or the computer instruction is stored in a computer-readable storage medium, and a processor of a computer device reads the computer program or the computer instruction from the computer-readable storage medium, and the processor executes the computer program or the computer instruction, so that the computer device executes and implements:
[0201] Such as the message processing method applied to BFIR equipment; or,
[0202] Such as the message processing method applied to BFR equipment.
[0203] The system architecture and application scenarios described in the embodiments of the present application are intended to more clearly illustrate the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided in the embodiments of the present application. Those skilled in the art will appreciate that with the evolution of the system architecture and the emergence of new application scenarios, the technical solutions provided in the embodiments of the present application are equally applicable to similar technical problems.
[0204] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiments can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to memory, storage, database or other media used in the embodiments provided in the present application can include non-volatile and / or volatile memory. Non-volatile memory can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM) or flash memory. Volatile memory can include random access memory (RAM) or external cache memory. As an illustration and not limitation, RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM).
[0205] It will be appreciated by those skilled in the art that all or some of the steps and systems in the disclosed method above may be implemented as software, firmware, hardware and appropriate combinations thereof. Some physical components or all physical components may be implemented as software executed by a processor, such as a central processing unit, a digital signal processor or a microprocessor, or may be implemented as hardware, or may be implemented as an integrated circuit, such as an application specific integrated circuit. Such software may be distributed on a computer-readable medium, which may include a computer storage medium (or a non-transitory medium) and a communication medium (or a temporary medium). As known to those skilled in the art, the term computer storage medium includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules or other data). Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tapes, disk storage or other magnetic storage devices, or any other medium that may be used to store desired information and may be accessed by a computer. Furthermore, it is well known to those skilled in the art that communication media typically embodies computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism, and may include any information delivery media.
[0206] The above describes some embodiments of the present application with reference to the accompanying drawings, but does not limit the scope of the present invention. Any modification, equivalent substitution and improvement made by those skilled in the art without departing from the scope and essence of the present invention shall be within the scope of the present application.
Claims
1. A message processing method, the method comprising: Determine the target encapsulation format for explicitly copying the BIER header with bit index; According to the target encapsulation format, a BIER Action identifier and an encapsulation BIER header are set in the multi-protocol label switching MPLS message, and a bit index forwarding table identifier BIFT-id and a bit string BitString are set in the BIER header; Send the MPLS message.
2. The method according to claim 1, characterized in that According to the target encapsulation format, a BIER Action identifier and a BIER header are set in a multi-protocol label switching MPLS message, and a bit index forwarding table identifier BIFT-id and a bit string BitString are set in the BIER header, including: When the target encapsulation format is the first encapsulation format, the BIER Action identifier is set in the label stack entry of the MPLS message, and a BIER header is encapsulated after the label stack entry of the MPLS message, wherein the BIER header includes a label field and a BitString field under the first encapsulation format; Setting the BIFT-id in the tag field; Set the BitString in the BitString field.
3. The method according to claim 2, characterized in that The BIER header also includes an S tag under the first encapsulation format; When the target encapsulation format is the first encapsulation format, encapsulating the BIER header after the label stack entry of the MPLS message includes one of the following: In the case where there is no PSD entry in the MPLS message, the BIER header is encapsulated after all label stack entries of the MPLS message, and the S label is set to a value representing the bottom of the stack; Alternatively, In the case where a PSD entry exists in the MPLS message, the BIER header is encapsulated after all label stack entries of the MPLS message and before the PSD entry, and the S label is set to a value representing the bottom of the stack; or, In the case where a PSD entry exists in the MPLS message, the BIER header is encapsulated after all label stack entries and the PSD entry of the MPLS message, and the S label is set to a value indicating a non-stack bottom; or, When a PSD entry exists in the MPLS message, the BIER header is encapsulated after all label stack entries of the MPLS message and is located in the PSD entry, and the S label is set to a value representing a non-bottom of the stack.
4. The method according to claim 2 or 3, characterized in that: The label stack entry of the MPLS message includes a first label stack entry, the BIER Action identifier is set in the first label stack entry, and the first label stack entry also carries a BIER header format indicator.
5. The method according to claim 1, characterized in that According to the target encapsulation format, a BIER Action identifier and a BIER header are set in a multi-protocol label switching MPLS message, and a bit index forwarding table identifier BIFT-id and a bit string BitString are set in the BIER header, including: When the target encapsulation format is the second encapsulation format, setting a first label stack entry, a second label stack entry, and a third label stack entry in the label stack of the MPLS message; Setting the BIER Action identifier in the first label stack entry; Setting the BIFT-id in the second label stack entry; The BitString is set in the third label stack entry.
6. The method according to claim 5, characterized in that The BIER Action identifier is set in the operation code Opcode field of the first label stack entry; or, the BIER Action identifier is set in a specific position of the data Data field of the first label stack entry.
7. The method according to claim 5, characterized in that The BIFT-id is set in the Data field of the second label stack entry, and the BIFT-id is formed by concatenating the first 16 bits and the last 4 bits of the Data field of the second label stack entry.
8. The method according to claim 7, characterized in that The second label stack entry also includes a NAL field, and a value of the NAL field is used to indicate the length of the BitString.
9. The method according to claim 8, characterized in that The BitString is set in the Data field of the third label stack entry; The BitString is formed by concatenating values at specific positions of the Data field of N third label stack entries, where N is a positive integer and the value of N depends on the value of the NAL field.
10. The method according to claim 9, characterized in that The BitString is set in the first 22 bits and the last 8 bits of the Data field of the third label stack entry; or, the BitString is set in the last 8 bits of the Data field of the third label stack entry.
11. The method according to claim 1, characterized in that: The method further comprises: Report the BIER header encapsulation format supported by this device to the controller; The target encapsulation format of the bit index explicit copy BIER header includes: Receive target encapsulation format indication information sent by the controller, wherein the target encapsulation format indication information is determined by the controller based on supported BIER header encapsulation formats reported by multiple BIER devices in the BIER domain; The target encapsulation format is determined according to the target encapsulation format indication information.
12. The method according to claim 1, characterized in that The method further comprises: Exchange the BIER header encapsulation formats supported by each of the other BIER devices in the BIER domain through the routing protocol to obtain the BIER header encapsulation formats supported by other BIER devices in the BIER domain; The target encapsulation format is determined based on the BIER header encapsulation format supported by each BIER device in the forwarding path of the MPLS message.
13. A message processing method, the method comprising: Receiving a multi-protocol label switching (MPLS) message, wherein the MPLS message carries a BIER Action identifier; Determine the encapsulation format of the bit index to explicitly copy the BIER header; According to the encapsulation format of the BIER header, obtain the BIER header in the MPLS message, and obtain the bit index forwarding table identifier BIFT-id and the bit string BitString in the BIER header; The message is forwarded according to the BIFT-id and the BitString.
14. The method according to claim 13, characterized in that The encapsulation format of the BIER header includes a first encapsulation format and a second encapsulation format; The obtaining the BIER header in the MPLS message according to the encapsulation format of the BIER header includes: When the encapsulation format is the first encapsulation format, obtaining the BIER header after the label stack entry of the MPLS message; When the encapsulation format is the second encapsulation format, the BIER header is obtained from the label stack entry of the MPLS message.
15. The method according to claim 14, characterized in that When the encapsulation format is the first encapsulation format, the BIER header is located at one of the following positions after the label stack entry of the MPLS message: The BIER header follows the last label stack entry of the MPLS message, and the S label in the BIER header is the value representing the bottom of the stack; or, In the case where a PSD entry exists in the MPLS message, the BIER header is immediately following the last label stack entry of the MPLS message and is located before the PSD entry, and the S label in the BIER header is a value representing the bottom of the stack; or, In the case where a PSD entry exists in the MPLS message, the BIER header is located after the PSD entry, and the S label in the BIER header is a value indicating a non-bottom of the stack; or, When a PSD entry exists in the MPLS message, the BIER header is located in the PSD entry, and the S label in the BIER header is a value indicating a non-bottom of the stack.
16. The method according to claim 14, characterized in that The method of obtaining the bit index forwarding table identifier BIFT-id and the bit string BitString in the BIER header includes: When the encapsulation format of the BIER header is the first encapsulation format, the BIFT-id is obtained in the tag field of the BIER header, and the BitString is obtained in the BitString field of the BIER header.
17. The method according to claim 14, characterized in that When the encapsulation format is the second encapsulation format, obtaining the BIER header in the label stack entry of the MPLS message includes: According to the first label stack entry identified by the BIER Action read in the MPLS label stack of the MPLS message, determine the label stack entry corresponding to the BIER header, and the label stack entry corresponding to the BIER header includes a second label stack entry and a third label stack entry; The method of obtaining the bit index forwarding table identifier BIFT-id and the bit string BitString in the BIER header includes: Acquire the BIFT-id in the second label stack entry; The BitString is obtained in the third label stack entry.
18. The method according to claim 17, characterized in that The BIER Action identifier is set in the operation code Opcode field of the first label stack entry; or, the BIER Action identifier is set in a specific position of the data Data field of the first label stack entry.
19. The method according to claim 17, characterized in that The BIFT-id is set in the Data field of the second label stack entry, and the BIFT-id is formed by concatenating the first 16 bits and the last 4 bits of the Data field of the second label stack entry.
20. The method according to claim 19, characterized in that The second label stack entry also includes a NAL field, and a value of the NAL field is used to indicate the length of the BitString.
21. The method according to claim 20, characterized in that The BitString is set in the Data field of the third label stack entry; The BitString is formed by concatenating values at specific positions of the Data field of N third label stack entries, where N is a positive integer and the value of N depends on the value of the NAL field.
22. The method according to claim 22, characterized in that The BitString is set in the first 22 bits and the last 8 bits of the Data field of the third label stack entry; or, the BitString is set in the last 8 bits of the Data field of the third label stack entry.
23. The method according to claim 13, characterized in that The forwarding of the message according to the BIFT-id and the BitString includes: Determine the target BIER forwarding table according to the BIFT-id; Determine a forwarding node or a forwarding link according to the BitString; Obtaining forwarding operation indication information corresponding to the forwarding node or the forwarding link in the target BIER forwarding table; The message is forwarded according to the forwarding operation instruction information.
24. The method according to claim 13, characterized in that The encapsulation format of the BIER header that is explicitly copied by the bit index includes: Triggered by reading a first label stack entry carrying a BIER Action identifier in the MPLS message, determining the encapsulation format of the BIER header from the BIER header format indicator carried by the first label stack entry; or, The encapsulation format of the BIER header is determined according to the pre-configuration information.
25. An electronic device comprising: one or more processors; A memory having one or more programs stored thereon, when the one or more programs are executed by the one or more processors, the one or more processors implement: The message processing method according to any one of claims 1 to 12; or, A message processing method as described in any one of claims 13 to 24.
26. A computer-readable storage medium having a computer program stored thereon, wherein when the computer program is executed by a processor, the computer program implements: The message processing method according to any one of claims 1 to 12; or, A message processing method as described in any one of claims 13 to 24.