Method and device for processing data in at least one network implementing label switching routing, and corresponding computer program and signal
The method of using multiple label stacks with additional indicators in MPLS networks addresses the challenge of processing actions for separate domains, enhancing network management and security by allowing independent processing and load balancing.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- ORANGE SA
- Filing Date
- 2025-11-07
- Publication Date
- 2026-05-21
AI Technical Summary
Existing MPLS networks lack the ability to transmit and process actions intended for separate equipment or domains within the same data packet, leading to incompatibilities and security issues between operator and customer networks.
Implementing a data processing method that allows for multiple label stacks within a single data packet, using additional stack indicators to signal the presence of subsequent stacks, enabling independent processing by separate equipment or domains.
Enables independent processing of multiple label stacks, ensuring domain isolation, optimizing packet processing, and maintaining backward compatibility, while allowing for advanced network management and load balancing.
Smart Images

Figure EP2025082339_21052026_PF_FP_ABST
Abstract
Description
[0001] DESCRIPTION
[0002] Title: Method and device for data processing in at least one network implementing label-switched routing, corresponding computer program and signal.
[0003] 1. Scope of the invention
[0004] The field of the invention is that of communication networks, and more particularly of networks implementing label switching routing, such as IP / MPLS networks (“Internet Protocol / MultiProtocol Label Switching” in English).
[0005] 2. Prior art
[0006] The MPLS architecture is notably described in the RFC3031 document "Multiprotocol Label Switching Architecture", E. Rosen et al., January 2001.
[0007] Generally, an IP / MPLS network comprises routers that forward IP or MPLS packets. The data transport mechanism implemented in such a network is based on label switching, where labels can be inserted into packets by one node of the MPLS network and removed from those packets by another node of the MPLS network. According to this technology, packet transmission paths within the MPLS network are defined between routers of the MPLS network, referred to as PE (Provider Edge Router) or LER (Label Edge Router).
[0008] At the entry point of the MPLS network, an ingress router (PE ingress) inserts at least one label into the received data packets, enabling the transmission of these packets across the MPLS network along the path associated with the label(s). The label(s) inserted into a packet can be determined from lookup tables, which associate one or more labels with a Forwarding Equivalence Class (FEC). The same FEC class is assigned to a group of data packets sharing at least one common characteristic. Packets associated with the same FEC class can, for example, follow the same transmission path within the MPLS network.
[0009] In particular, the value of the first label of a packet can be modified by a router in the MPLS network before continuing the packet's forwarding. Specifically, the value of the first label of a packet can be modified at each hop within the network. Such a label value is therefore local between two adjacent routers.
[0010] Typically, a label contains 32 bits (or 4 bytes), divided into:
[0011] a label value, also called label value, L (“Label”), coded on 20 bits, a traffic class TC (“Traffic Class”), for quality of service (QoS) management, coded on 3 bits, a stacking bit S (“Stacking bit” or “Bottom of Stack”) indicating whether it is the last label in a label stack, coded on 1 bit,
[0012] a TTL (“Time To Live” expiration value), set according to the TTL field of the IP packet or to a default value by the MPLS network's ingress router, and decremented at each hop, coded on 8 bits.
[0013] The structure of such a label is illustrated in the following table:
[0014]
[0015] Such a label is classically inserted into an MPLS packet, or more precisely into an MPLS header, also called a "Shim header".
[0016] An MPLS packet can carry one or more labels, arranged in a label stack. The number of labels in a stack depends, for example, on the MPLS services used. The end-of-stack flag S, set to 1, indicates the last label in a label stack.
[0017] The structure of such a stack of labels is illustrated in the following table:
[0018] Table 2]
[0019]
[0020] To provide more functionality to MPLS networks, the MPLS working group published a document on May 30, 2024, entitled "Requirements for Solutions that Support MPLS Network Actions (MNA)" (M. Bocci et al.), proposing the use of these tags to carry information relating to processes or actions intended to be applied to data packets or impacting the routing of data packets. Such actions are more generally called "MPLS Network Actions" or MNAs. Examples include "slicing" actions (e.g., how to partition network resources into several subnets or "slices," each slice potentially having different characteristics in terms of latency, bandwidth, packet loss probability, etc.), and packet tracking within the MPLS network (e.g., marking a rerouted packet according to the "No-Further Fast Reroute" solution, etc.).Examples of MNAs are notably proposed in the document "Use Cases for MPLS Network Action Indicators and MPLS Ancillary Data" published on September 23, 2024 (T. Saad et al.). In particular, the MPLS working group published on October 18, 2024 a document entitled "MPLS Network Actions (MNA) framework" (L. Andersson et al.) proposing to redefine the semantics of the Label, Traffic Class (TC) and Time to Live (TTL) fields of an entry in an MPLS label stack ("Label Stack Entry" or LSE in English) to transport such actions or processing.
[0021] Although promising, these solutions do not allow actions intended to be implemented by different equipment to be carried out in the same package, for example in the domain of an operator and the domain of a customer, or in the aggregation network and the core network.
[0022] A method for partitioning an MPLS header stack based on the insertion of a network delimiter between two partitions was proposed in document US2010 / 0040061.
[0023] There is therefore a need for a new solution enabling the transmission, in the same data packet, of actions intended to be implemented by separate equipment, belonging for example to different networks.
[0024] 3. Description of the invention
[0025] The invention proposes a solution in the form of a data processing method in at least one network implementing label-switched routing (e.g. MPLS).
[0026] According to one embodiment of the invention, the process includes obtaining at least one data packet comprising N stacks of labels, with N an integer greater than or equal to 2.
[0027] The data packet also includes at least one additional stack flag, present in at least one entry of a current label stack (e.g., in the i-th label stack, with 1 < i < N), signaling at least one subsequent label stack (e.g., signaling the n-th label stack, with 1 < i < n < N).
[0028] In particular, at least one entry in the first stack of labels carries an additional stack indicator.
[0029] In this way, a data packet according to one embodiment of the invention can carry N stacks of labels, including a first stack bearing an additional stack indicator and (Nl) additional stacks, each stack comprising at least one label stack entry. Thus, even if the first stack of labels carries an end-of-stack indicator signaling the bottom of the first stack, it is possible according to one embodiment of the invention to have, in the same data packet, a second stack of labels, an nth stack of labels, with n being an integer between 2 and N.
[0030] It is worth recalling that an MPLS stack is conventionally processed starting from the top of the stack ("top of stack"), and analyzing each entry down to the bottom of the stack, identified by the end-of-stack indicator. In the context of this invention, the stacks of a data packet are processed sequentially, beginning with the first stack (at the top of the stack of N label stacks).
[0031] In particular, each label stack can be associated with a distinct processing operation: for example, a first label stack can be associated with processing carried out by a first device, and a second label stack can be associated with processing carried out by a second device, separate from the first. This makes it possible to ensure independent processing of the different label stacks within the same data packet.
[0032] Obtaining a data packet according to the invention can be achieved by receiving a data packet comprising N stacks of labels. Alternatively, obtaining a data packet according to the invention can be achieved by generating a data packet comprising N stacks of labels.
[0033] construction of a data package comprising N label stacks,
[0034] receiving a data packet containing NM label stacks, with N — M > 1 and inserting M additional stacks into the data packet,
[0035] etc.
[0036] For example, if obtaining a data packet according to the invention includes receiving a data packet comprising NM stacks of labels and inserting M additional stacks of labels, one or more additional stack indicators may be inserted into the data packet to signal the M additional stacks.
[0037] An additional stack indicator can be inserted into a new entry or into a previously defined entry of a data packet label stack, or correspond to a change in the meaning of a previously defined entry, for example.
[0038] In this way, it is easy for equipment in at least one network implementing label-switched routing to detect the presence of multiple label stacks within the same data packet.
[0039] In particular, the fact that the additional battery indicator is present in at least one input of a current battery offers at least one of the following advantages:
[0040] to allow a piece of equipment (in particular an LSR router) to anticipate the presence of a subsequent stack of labels and therefore prepare its processing (resource allocation, parsing adaptation, etc.),
[0041] optimize packet processing, as the equipment can know in advance that it should not stop at the first end-of-stack indicator (S=l) encountered, but should continue to process the following stack(s), facilitate the management of multiple stacks in complex scenarios (e.g., multiple domains, multiple MNAs, etc.),
[0042] dynamically adapt the signaling according to the needs of the network or service; the additional stack indicator can be placed in any entry of a previous stack; combine several types of indicators (special label, MNA, operational code, etc.) for advanced uses.
[0043] maintain backward compatibility (for example, modifying the meaning of an existing label to indicate the presence of a subsequent stack),
[0044] Avoid adding extra inputs if it is not necessary, which reduces overhead; strictly isolate processing between domains (e.g., operator domain and client domain), with each domain only processing the stack intended for it.
[0045] prevent one domain from being influenced by the actions (MNA) of another domain, and allow the processing of both a data packet containing a single label stack and a packet containing multiple label stacks.
[0046] etc.
[0047] Thus, in a particular embodiment, a router implementing the invention (for example, an LSR egress domain exit router) knows, when processing the first current stack and encountering an additional stack indicator, that at least one stack follows this first stack, even if it encounters an end-of-stack indicator for that first stack. The router therefore naturally reads the additional stack indicator and processes the additional stack. It can proceed similarly with the second stack, and so on until it has processed all N stacks. If it does not encounter an additional stack indicator in the first stack, it processes the stack in the conventional manner and stops processing the packet when it encounters an end-of-stack indicator equal to 1. The router can therefore process both "conventional" packets carrying a single stack of labels and packets according to the invention carrying a plurality of label stacks.
[0048] In particular, the N stacks of labels each include an end-of-stack indicator signaling the bottom of the corresponding stack.
[0049] For example, the last entry in a stack carries a stack end indicator, such as the "Bottom of Stack" bit (S) shown in relation to prior art. In this way, each stack remains compliant with the MPLS architecture, for example.
[0050] Thus, if obtaining a data packet according to the invention involves receiving a data packet comprising NM label stacks, with N − M > 1, and inserting M additional stacks, then inserting M additional stacks includes inserting M end-of-stack indicators into said NM label stacks. For example, inserting an end-of-stack indicator involves changing the value of a bit S in an existing input of a stack in the received data packet (changing from a value of "0" to a value of "1").
[0051] In particular, N=2 and M=l.
[0052] In a particular embodiment, said additional stack indicator signals an nth label stack (next stack) and is present in at least one LSE (“Label Stack Entry”) type entry of an (nl)th label stack (current stack).
[0053] In particular, such an LSE type entry has the structure illustrated in [Table 1]. For example, said additional stack indicator signaling the nth label stack is present in the last LSE type entry of the (nl)th label stack, i.e. in the entry bearing the end-of-stack indicator of the current stack.
[0054] For example, an additional stack indicator signaling the presence of a second stack of labels can be inserted into the last entry of the first stack of labels, an additional stack indicator signaling the presence of a third stack of labels can be inserted into the last entry of the second stack of labels, and so on. In this way, each stack is fully processed or consumed before moving on to the next stack, if there is one.
[0055] Alternatively, said additional stack indicator signaling the nth label stack is present in another entry of the (nl)th label stack.
[0056] The structure of an LSE-type input is therefore not modified according to the invention. Rather, the invention proposes, in at least one embodiment, to carry in an LSE-type input at least one additional stack indicator allowing the presence of at least one stack following a current stack to be signaled.
[0057] According to a first embodiment, at least one input dedicated to such an additional stack indicator is provided in a label stack. At least one additional input is therefore provided in the first stack, and possibly in at least one additional stack, to signal the presence of multiple stacks.
[0058] According to a first example, said at least one additional stack indicator is composed of at least one special-purpose label value of type SPL (“Special-Purpose Labels”).
[0059] An additional stack indicator according to the invention may, in particular, be a basic special-purpose label value of 0 to 15, of type bSPL, on an entry in a data packet stack. Alternatively, said at least one additional stack indicator may consist of a bSPL label value of 15 on an entry in a data packet stack, and an eSPL label value of 16 to 1048575 on a subsequent entry in said data packet stack. Such special-purpose labels are notably described in RFC 9017 "Special-Purpose Label Terminology" published in April 2021 (L. Andersson et al.).
[0060] According to a second example, said at least one additional stack indicator is a dynamic label value.
[0061] For example, a label value X can be chosen by router B to indicate the presence of multiple label stacks, and signaled to the preceding router A according to the data packet's routing path through the network. Thus, router B can indicate to router A that if router A wants to send it a data packet with multiple label stacks, it should use the label value X to signal this.
[0062] Alternatively, a label value Y can be configured in the network, for example, for a time interval or a communication session. Thus, if router A wants to send router B a data packet with multiple label stacks, it must use the label value Y to indicate the presence of multiple label stacks in the data packet.
[0063] According to a third example, said at least one additional stack indicator is present in at least one MNA (“MPLS Network Action”) type entry.
[0064] Such an MNA entry typically carries information relating to processing or actions intended to be applied to data packets or impacting the routing of data packets.
[0065] For example, such an MNA entry belongs to a NAS (MPLS Network Action Sub-Stack), i.e., to a subset of LSE entries in a label stack used to encode information about the network actions to be invoked for the packet in question. A NAS can therefore have multiple MNA entries, and multiple NAS entries can be present in a label stack.
[0066] In this way, it is possible to define separate stacks corresponding to actions intended to be performed independently, for example by separate devices or separate network domains. Thus, a first stack can include at least one NAS encoding actions intended to be implemented on the operator side, and a second stack can include at least one NAS encoding actions intended to be implemented on the customer side.
[0067] Said at least one additional stack indicator may be an operational code or a flag of said at least one MNA type entry.
[0068] Thus, a NAS can have one MNA entry with an operational code associated with a network action (such as "slicing"), and another MNA entry with an operational code indicating an additional stack. In a second embodiment, the meaning of at least one entry in a label stack is modified to include said additional stack indicator. In this case, it is not necessary to add an additional entry to the data packet stack(s), thus avoiding the overhead incurred by using a dedicated entry to signal the presence of multiple stacks.
[0069] In particular, said at least one additional stack flag is a previously defined label value of one of said stacks of said data packet, modified to assign it a particular meaning.
[0070] For example, a label value X can be configured to indicate a destination Z for a data packet. The meaning of the label value X can be modified to indicate both a destination Z for a data packet and the presence of at least one additional stack.
[0071] In another example, the operational code of an MNA-type input can be modified to add a new meaning, such as "slicing" and signaling an additional stack. In at least one embodiment, said at least one additional stack indicator signals a plurality of stacks in K consecutive LSE-type inputs of said data packet.
[0072] For example, an additional stack indicator present in an LSE input indicates the number of subsequent LSE inputs in which an end-of-stack indicator is followed by another stack.
[0073] Thus, an additional stack flag present in an LSEJ entry can signal that multiple end-of-stack flags may be found in the following J entries LSEi+1, ..., LSEi+J. Therefore, there can be multiple LSE entries with an end-of-stack flag S equal to 1 in the entries LSEi+1, ..., LSEi+J. A router receiving such a data packet should not stop processing a stack when it detects an end-of-stack flag in the entry LSEi+j, for example, where j is between 1 and J, but should also consider the subsequent entries LSEi+j to LSEi+J, which belong to at least one other stack.
[0074] For at least one NAS, the number of consecutive LSE entries involved is, for example, equal to the value NAL - 1 ("Network Action Length") or to the value NASL - 1 ("Network Action Sub-Stack Length"). Alternatively, the number of consecutive LSE entries involved is implicit based on a parameter, such as the operational code or the flag associated with an MNA.
[0075] This mode is particularly interesting for allowing the reuse of the "S" bit in certain NAS, notably in an LSE input in Format D. In at least one embodiment, the IHS field of an MNA type input of a subset of inputs (NAS) of one of said stacks, among the N stacks, carries an indicator specifying that at least one action associated with said subset (NAS) applies to several of said stacks.
[0076] In at least one embodiment, the first M bits of the first input of at least one nth stack of labels, with n an integer between 2 and N, for example the first four bytes, are chosen so as to satisfy certain conditions.
[0077] For example, we want to avoid values of 4 or 6 in the first entry of each additional stack. This way, we can't confuse them with IPv4 or IPv6 packets. For the first stack, the first entry can have a standard or reserved label value.
[0078] For the additional stack(s), the first M bits of the first input, for example the first nibble (“MPLS First Nibble” or MFN), can be constructed in different ways, including based on the solutions proposed in the document “Post-Stack MPLS Network Action (MNA) Solution” published on June 25, 2024 (J. Rajamanickam et al.) or in the document “IANA Registry for the First Nibble Following a Label Stack”, published on October 13, 2024 (K. Kompella et al.).
[0079] Thus, for example, the first entry in an additional stack could include:
[0080] a label value whose first four bits represent a value other than "4" or "6",
[0081] a reserved bSPL label value that owns this property.
[0082] Alternatively, it could be defined that an additional stack always starts with, for example:
[0083] an M NA LSE in format B or format C
[0084] a Post-Stack Header as defined in the aforementioned document "Post-Stack MPLS Network Action (MNA) Solution",
[0085] a control word or header as defined in the aforementioned document "IANA Registry for the First Nibble Following a Label Stack".
[0086] In a particular embodiment, the method includes a reset, for example a zeroing, of an end-of-stack indicator of a stack of labels being processed among the N stacks of labels.
[0087] In this way, it is possible to merge the label stack currently being processed with a subsequent label stack. The next router along the packet's path then receives only a label stack resulting from the merging of these two stacks.
[0088] In another embodiment, the invention relates to a data processing device in at least one network implementing label-switched routing, comprising at least one processing unit configured to obtain at least one data packet comprising N label stacks, with N an integer greater than or equal to 2.
[0089] For example, such a processing device is a router in an MPLS network.
[0090] Such a device or equipment is particularly suited to implementing the treatment process described above. It may, of course, include the various features relating to the treatment process according to the invention, which may be combined or considered individually. Thus, the characteristics and advantages of the device are the same as those of the process described above. Consequently, they are not detailed further.
[0091] The invention further relates to one or more computer programs comprising instructions for implementing a process as described above when this or these programs are executed by at least one processor.
[0092] The invention also relates to a computer-readable information carrier, comprising instructions for a computer program as mentioned above.
[0093] The invention also relates to a signal carrying at least one data packet in at least one network implementing label-switched routing, said data packet comprising N stacks of labels, with N an integer greater than or equal to 2.
[0094] 4. List of figures
[0095] Other features and advantages of the invention will become more apparent upon reading the following description of a particular embodiment, given by way of simple illustration and not limitation, and the accompanying drawings, among which:
[0096] Figure 1 illustrates the main steps implemented by a treatment process according to one embodiment of the invention.
[0097] Figures 2 to 4 illustrate examples of networks in which the treatment process according to one embodiment of the invention can be implemented.
[0098] Figure 5 shows the simplified structure of a processing device according to one embodiment of the invention.
[0099] 5. Description of an embodiment
[0100] 5.1 General Principle
[0101] The general principle of the invention is based on obtaining at least one data packet comprising several label stacks, in at least one network implementing label-switched routing, for example MPLS. Several label stacks are thus available in the same data packet and can be processed independently of each other, for example by separate equipment, separate networks, etc. The processing of a stack can therefore be isolated.
[0102] Figure 1 illustrates the main steps of a data processing method in at least one network implementing label-switched routing, according to one embodiment of the invention.
[0103] Such a process includes obtaining 11 at least one data packet comprising N stacks of labels, with N an integer greater than or equal to 2.
[0104] For example, such an achievement 11 implements:
[0105] the reception 111 of a data packet carrying at least one first stack of LSI labels, the insertion 112, in said data packet, of at least one additional stack of LSn labels, with n an integer between 2 and N,
[0106] the insertion 113, in at least one entry of a current label stack, of at least one additional stack indicator signaling at least one subsequent label stack.
[0107] Alternatively, obtaining 11 at least one data packet comprising N label stacks includes receiving a data packet comprising N label stacks, or constructing a data packet comprising N label stacks, at least one entry of a current label stack (among the first Nl stacks) comprising at least one additional stack flag, signaling at least one subsequent label stack.
[0108] In particular, the insertion 112, in said data packet, of at least one additional LSn label stack includes the insertion of at least one end-of-stack flag into the corresponding stack. Such an insertion of at least one end-of-stack flag includes, for example, modifying the value of an S bit in an existing LSE input.
[0109] An additional stack indicator can be inserted during step 113 into the data packet by adding a new entry to one of the label stacks, or by modifying an entry in one of the label stacks, for example, by changing its meaning. The additional stack indicator signaling the nth label stack can, in particular, be inserted into at least one LSE-type entry of the (nl)th label stack, for example, in the last entry of the (n-1)th label stack.
[0110] Such a packet comprising N stacks of labels can then be transmitted to another piece of equipment on the network.
[0111] For example, such steps of obtaining at least one data packet comprising N label stacks, inserting an additional stack indicator signaling the presence of multiple stacks in the packet, and / or transmitting said at least one packet are implemented by a router in an MPLS network.
[0112] The ability to have multiple label stacks within a single data packet offers numerous advantages, including:
[0113] The ability to separate information intended for a first domain and information intended for a second domain, particularly between an MPLS operator domain and an MPLS client domain within the framework of an MPLS Carrier's Carrier architecture (multiple MNA responsibility domains). Indeed, in the absence of multiple MPLS tag stacks, the MPLS operator cannot distinguish between MNAs concerning actions to be implemented in the client domain and MNAs concerning actions to be implemented in the operator domain, which can lead to incompatibilities or security problems for the operator (because a client can activate functionalities normally reserved for the operator) or functionality problems for the client (who cannot use MNA type entries for its own needs);
[0114] The possibility of separately handling load balancing (i.e., how to distribute packets across different paths) and MNAs. Traditionally, load balancing is determined from MPLS packets, or more precisely, MPLS headers, and in particular, MNAs. Consequently, MNAs are very constrained in terms of usage and functionality, and it is practically impossible to modify this information encoded in a packet, as explained in section 5.2 of the document "MPLS Network Action (MNA) Sub-Stack Solution" published on June 5, 2024 (J. Rajamanickam et al.). This significantly restricts certain uses of MNAs or necessitates the implementation of complementary solutions such as "Post-Stack Data." With current techniques, there is no way to prevent equipment from analyzing the header (IP or Ethernet) of packets encapsulated in MPLS during load balancing;
[0115] The ability to separate several MNAs in an MPLS packet. Indeed, it can be useful to insert several MNAs representing the same type of action in a packet, for example to distinguish the "slicing" needs in the aggregation network and in the core network, these two types of networks having different needs and constraints.
[0116] 5.2 Implementation Examples
[0117] We describe below various implementation examples, within the context of an MPLS network. The structure of a label stack is therefore that described in [Table 2]. Furthermore, in accordance with MPLS, the last entry of each stack carries an end-of-stack indicator signaling the bottom of the stack (bit "S" or "BoS" set to 1).
[0118] The additional stack indicator signaling the presence of multiple stacks of labels can then be:
[0119] a special purpose label value of type SPL (e.g. bSPL, eSPL),
[0120] a dynamic label value (e.g., signaled or configured in the MPLS network), an MNA using a specific operational code or flag,
[0121] a label value having a FEC, but whose meaning is modified to indicate the presence of at least one additional stack,
[0122] etc.
[0123] 5.2.1 Example of MPLS packets comprising multiple label stacks
[0124] As stated above, a data packet according to the invention comprises at least two stacks of labels.
[0125] An example of an MPLS packet, or more precisely an MPLS header, comprising several stacks of labels is illustrated below.
[0126] In this example, the MPLS packet comprises five LSE entries distributed across two label stacks: a first stack containing the first three LSE entries (whose label values are Label, Label2, and Labels), and a second stack containing the next two LSE entries (whose label values are Label4 and Labels). The last entry in each stack carries an end-of-stack flag indicating the bottom of the stack (S = 1).
[0127] Table 3]
[0128]
[0129] According to a particular embodiment, the MPLS package also includes at least one additional stack indicator signaling a second stack of labels (or more generally at least an nth stack of labels, with n an integer between 2 and N).
[0130] Such an additional stack indicator can be a static or dynamic label value inserted into a new LSE entry. As a first example, such an additional stack indicator is present in an LSE entry of the first stack, for example, in the last LSE entry of the first stack. Such an additional stack indicator can be a basic bSPL special-purpose label value (e.g., Labels = 12), an MNA entry with a specific operational code or flag, etc.
[0131] In another example, such an additional stack indicator is present in two LSE inputs of the first stack, for example, in the last two LSE inputs of the first stack. Such an additional stack indicator can consist of a basic special-purpose label value (bSPL) (Label2 = 15) and an extended special-purpose label value (eSPL) (Labels = 52, for example). Alternatively, such an additional stack indicator can be a new feature added to a previously defined LSE input.
[0132] 5.2.2 Application Examples with Multiple MNA Responsibility Domains As mentioned previously, the ability to have multiple label stacks within the same data packet allows, in particular, the separation of information intended for independent processing, for example, in an MPLS operator domain and an MPLS customer domain. A) Use of Customer and Operator MNAs
[0133] A first example of application involving multiple areas of responsibility for MNA is presented below. We consider a VPN network of an operator as illustrated in Figure 2.
[0134] In this first example, the telecommunications operator wants to use its own MNAs (MNA-OP) on its OP network perimeter (including for example the ingress "Provider Edge" routers PE1 and egress PE2 of the operator domain, as well as two intermediate routers PI and P2 located on a path between the PE1 and PE2 routers) and the customer wants to use its own MNAs (MNA-C) on its C network perimeter (including for example the "Customer Edge" routers CEI and CE2 of the customer domain, and the Cl and C2 routers).
[0135] The client's router Cl can send the following MPLS packet to router C2 identified in the first LSE entry ("Label L to C2"):
[0136] Table 4]
[0137]
[0138] This MPLS package includes a single label stack, called the client stack, with at least one NAS-C client containing one or more MNA-C type LSE entries, for example, one MNA-C LSE entry in A format and one MNA-C LSE entry in B format. Typically, an LSE entry in A format indicates the start of a NAS.
[0139] More generally, a subset of LSE entries in a label stack, used to encode information about the network actions to be invoked for the packet in question, forms a NAS. A NAS can therefore have multiple MNAs, and multiple NAS can be present in a label stack.
[0140] Here, the MPLS package stack includes a NAS carrying, for example, instructions or data for services or functions internal to the client domain.
[0141] Upon receiving the MPLS packet transmitted by router Cl, the IEC router can modify ("swap") the value of the first entry "Label L to C2" to "Label L' to C2" and continue the routing of the MPLS packet including the client stack (first stack of the MPLS packet):
[0142] Table 5]
[0143]
[0144] Upon receiving the MPLS packet transmitted by the IEC router, the operator's PE1 router can encapsulate the MPLS packet in a VPN packet by adding an LSE entry to identify the PE2 router "Label L2 to PE2", and replacing the label value of the first LSE entry "Label L' to C2" with a VPN label value "VPN label to C2" (in this example, label by route_VPN, corresponding to the final destination C2).
[0145] The operator's PE1 router can also add one or more operator NAS-OPs, each containing one or more MNA-OP type LSE entries, carrying, for example, instructions or data for services or functions internal to the operator domain. Such entries can be inserted into a second stack so that the MNA-Cs of the customer stack do not interfere with the MNA-OPs of the operator stack.
[0146] Table 6]
[0147] "
[0148]
[0149]
[0150] This VPN packet thus contains two label stacks: an operator stack with MNA-OPs and a client stack with MNA-Cs. The operator stack can be placed on top of the client stack. In this case, the operator stack becomes the first stack in the data packet. An additional stack indicator of the operational code type ("op code: Next MPLS Stack") can be inserted into an MNA entry, for example, the last entry of the operator stack, to indicate that an additional stack follows the operator stack, even if the latter entry has an end-of-stack indicator of 1. This additional stack (client stack) is not processed by the subsequent equipment in the operator domain.
[0151] Router PE1 can then forward the packet to router PE2, via routers PI and P2. The first stack of the data packet (operator stack) can thus be processed by the next equipment in the operator domain.
[0152] Within the customer's network perimeter, customer domain equipment also only processes the first stack of their data packet, which corresponds to the customer stack (the operator stack can be ignored or removed when it is no longer useful or meaningful).
[0153] Thus, MNA-OPs can be processed in the operator domain, and MNA-Cs, present in the same MPLS packet, can be processed in the customer domain (in its two network parts: PE1 / CE1 and PE2 / CE2). Thanks to the two MPLS stacks, the operator is not influenced by the customer's MNA-Cs, and the customer can use its MNA-Cs without needing to coordinate with the operator. There are numerous use cases, as network independence can be advantageous for both the customer and the operator. For example, such MNAs can be operator-side and customer-side slicing instructions and parameters, No Further Fast Reroute instructions that the customer can use but that must not influence the operator, and so on.
[0154] B) Protection of a domain against MNAs from another domain
[0155] A second application example involving multiple MNA responsibility domains is presented below. We again consider a VPN operator network as illustrated in Figure 2. In this second example, the telecommunications operator does not wish to use MNAs within its OP network perimeter. Furthermore, it does not want to be impacted by its customer's potential use of MNAs, as such MNA-Cs could compromise the operator's network security.
[0156] The client's router Cl can send the following MPLS packet to router C2 identified in the first LSE entry ("Label L to C2"):
[0157]
[0158]
[0159] As with the first example, this MPLS package includes a client stack with a NAS comprising two MNA-C entries corresponding to actions in the client domain.
[0160] Upon receiving the MPLS packet transmitted by router Cl, the IEC router can modify ("swap") the value of the first entry "Label L to C2" to "Label L' to C2" and continue routing the MPLS packet:
[0161] Table 8]
[0162]
[0163] Upon receiving the MPLS packet transmitted by the IEC router, the operator's PE1 router can encapsulate the MPLS packet in a VPN packet by adding an LSE entry to identify the PE2 router "Label L2 to PE2", and by swapping the label value of the first LSE entry "Label L' to C2" with a VPN label value "Label L' to C2" (in this example, label by _route_VPN, corresponding to the final destination C2).
[0164] In order to isolate the operator's domain from the customer's MNA-C, the operator's PE1 and PE2 routers can implement the following actions:
[0165] The PEI ingress router ("PE ingress") can set the stacking bit of its VPN label to "1" to indicate that this MPLS stack ends after this label.
[0166] The PE2 egress router ("PE egress") can set the end-of-stack indicator of the VPN label to "0".
[0167] In particular, the PE2 router can determine if another stack is present after the VPN label.
[0168] To achieve this, an additional stack indicator signaling the presence of multiple label stacks can be inserted by router PE1. For example, as already mentioned, such an additional stack indicator could be a special purpose label value (SPL), a dynamic label value (e.g., signaled or configured in the MPLS network), an MNA using a specific operational code or flag, a label value with a FEC but whose meaning is modified to indicate the presence of at least one additional stack, and so on. In particular, router PE2 can instruct a previous router (especially router PE1) that if the previous router wants to send it an MPLS packet with multiple stacks, it must add an additional stack indicator to signal that after this VPN label, another MPLS label stack can be added.For this VPN use case, we consider, for example, two VPN labels: one indicating that the first stack is not followed by a second stack (the classic meaning of the VPN label), and the other indicating that the first stack is followed by a second stack (a modified meaning of the VPN label). This way, it is not necessary to add a new entry to the MPLS packet. Alternatively, one or more new entries can be added to signal the presence of multiple label stacks.
[0169] In the case where two VPN labels are allocated, backward compatibility can be ensured by not changing the behavior of the already announced VPN label (the classic meaning of the VPN label), and by announcing a modified VPN label with the new behavior (the modified meaning of the VPN label). This different behavior is that, in the event of an MPLS swap and if it is at the end of the stack, PE1 router uses (swaps to) this modified VPN label instead of the classic VPN label and sets the end-of-stack indicator to "1". Upon receiving the modified VPN label, PE2 router can set the end-of-stack indicator to "0".
[0170] The VPN packet routed by the various routers in the operator's domain is described in more detail below.
[0171] As mentioned above, the ingress router PE1 sets the end-of-stack indicator of its VPN label to "1", to indicate that this MPLS stack ends after this VPN label:
[0172] Table 9]
[0173] "
[0174]
[0175] We can thus distinguish two stacks of labels in this VPN packet: an operator stack with the VPN label, without MNA, and a client stack with the MNA-C.
[0176] Router PE1 can modify ("swap") the meaning of the standard VPN label, replacing it with a modified VPN label, for example, in the last entry of the operator stack, to signal that another stack follows the operator stack, even if that last entry includes an end-of-stack indicator of 1. Upon receiving the VPN packet transmitted by router PE1, router PI can replace the label value of the first entry, "Label L2 to PE2", with a label value of "Label L2' to PE2" and continue forwarding the VPN packet.
[0177] Table 10]
[0178] "
[0179]
[0180] Upon receiving the VPN packet transmitted by router PI, router P2 can replace the label value of the first entry "Label L2' to PE2" with a label value "Label L2" to PE2" and continue forwarding the packet.
[0181] Alternatively, if we consider that PHP mode ("Penultimate Hop Popping") is enabled, this means that the second-to-last router (P2) removes the first LSE entry and copies the TTL value to the next LSE:
[0182] Table 11]
[0183] "
[0184]
[0185] Upon receiving the packet transmitted by router P2, the outgoing router PE2 detects the presence of a VPN label, the meaning of which is modified to indicate the presence of a following stack. Router PE2 can then forward the packet based on the first entry (VPN label), replace the value of the first entry "Label L2" to PE2" with a label value "Label L2'" to PE2", and set the end-of-stack flag of the VPN label to "0" so that the client receives a packet containing only a single stack of labels.
[0186] The PE2 exit router therefore sends the following packet:
[0187] Table 12]
[0188] "
[0189]
[0190] Upon receiving the MPLS packet transmitted by the exit router PE2, assuming PHP mode is enabled, router CE2 can remove the first LSE entry and copy the TTL value to the next LSE, and continue forwarding the MPLS packet:
[0191] The CE2 router therefore sends the following packet:
[0192] Table 13]
[0193]
[0194] Thus, MNA-Cs can be processed in the customer domain, across both network segments (PE1 and PE2), without impacting the operator's network. Thanks to the two MPLS stacks, the operator is not affected by the customer's MNA-Cs, and the customer can use their own MNA-Cs without needing to coordinate with the operator.
[0195] Again, there are many examples of use, as independence between networks can be advantageous for both the customer and the operator.
[0196] For example, the presence of multiple stacks can provide isolation and security for the operator. This is particularly beneficial for VPN network operators, who are expected to offer a secure and isolated network, and more generally for any telecommunications operator. Furthermore, in some embodiments, the proposed solution does not require the addition of extra labels to an MPLS packet.
[0197] 5.2.3 Example of application to load-balancing
[0198] As mentioned earlier, the ability to have multiple label stacks in the same data packet allows, in particular, for the separate processing of "load-balancing" and MNA type inputs.
[0199] According to prior art techniques, MNAs can only carry virtually invariant data, so as not to affect load balancing. Indeed, load balancing typically relies on a hash of the packet header, and therefore produces different results if the content of an MNA changes. The use of MNAs is thus very limited.
[0200] An example of using MPLS packets with multiple stacks to enable the use of MNAs without affecting load-balancing is shown below.
[0201] Consider an operator's network as illustrated in Figure 3, comprising an ingress router PE1 and an egress router PE2, and routers PI and P2 located on a path between routers PE1 and PE2. In this example, the telecommunications operator wishes to use MNAs (specifically MNA2s) that do not affect load balancing.
[0202] Router PE1 can send the following MPLS packet to router PE2 identified in the first LSE entry ("Label to PE2"):
[0203] Table 14]
[0204]
[0205] The PE1 router can push two MPLS stacks: a first stack containing a NAS1 with three MNA1 LSE inputs, and a second stack containing a NAS2 with two MNA2 LSE inputs. An additional stack indicator of the opcode type ("Op Code: Next MPLS Stack") can be inserted into an MNA-type input, for example, into the last input of the first stack containing an MNA1, to signal that an additional stack follows the first stack, even if the latter input has an end-of-stack indicator of 1.
[0206] Indeed, load balancing is typically applied to a single MPLS stack. Therefore, load balancing can be determined based on MNA1 values, and it is best to avoid modifying these values when traversing the network.
[0207] On the other hand, according to the proposed solution, the values of the MNA2 of the second stack can be modified during the crossing of the network, for example by routers PI and P2 located on a path between the entry router PE1 and the exit router PE2, since load-balancing only applies to the first MPLS stack.
[0208] In particular, as described in the following paragraphs, the action of the MNAs (defined by the operational code Op Code x carried in the MNA1 LSE B (in the "backbone" domain)) can be specified so that in the case of a plurality of MPLS stacks, the action of the MNAs can apply to all subsequent stacks of labels (or at least to the next one) and not only to the stack in which it is located.
[0209] Optionally, the IHS field of an MNA-type entry on a NAS in one of the N stacks can carry an indicator specifying that at least one action associated with the NAS applies to several of said stacks. This defines a new scope in the IHS field, for example, by using a previously unspecified free value for that IHS field.
[0210] 5.2.4 Example of application to a plurality of MNAs
[0211] As previously mentioned, the ability to have multiple label stacks in the same data package allows, in particular, for the separate processing of several MNAs, especially when these MNAs relate to the same type of action.
[0212] We consider as an example a network of a mobile operator as illustrated in figure 4, between an antenna A of the "mobile backhaul" domain BH and a packet core PC ("Packet Core") of the "backbone" domain BB.
[0213] The BB backbone domain includes an ABRI (“Area Border Router”) and PI and P2 routers on a path between the ABRI router and the PC packet core.
[0214] The BH backhaul domain includes a P3 router.
[0215] In this example, the operator wants to use several independent MNAs within the same MPLS packet.
[0216] Antenna A can send the following MPLS packet, destined for the PC packet core identified in the first LSE entry ("Label to PC"):
[0217] Table 15]
[0218]
[0219] This MPLS packet thus distinguishes two label stacks: one stack with a NAS1 containing three MNA1 entries and one stack with a NAS2 containing two MNA2 entries. An additional stack indicator of the operational code type ("Op code: Next MPLS Stack") can be inserted into an MNA-type entry, for example, into the last entry of the first stack, to signal that an additional stack follows the first stack, even if the latter entry contains an end-of-stack indicator of 1.
[0220] The two MNAs (MNA1 and MNA2) can optionally carry instructions or data for services or functions of the same type (Op Code x), for example, "slicing," "No-Further Fast Reroute," etc. Specifically, MNA1 can be processed in the backhaul domain and MNA2 in the backbone domain, with each device in a different domain (backhaul domain, backbone domain) processing the first stack of its MPLS packet. Thanks to the two MPLS stacks, these two MNAs can indicate the same type of action (e.g., slicing) with different values, without conflict between the different MNAs.
[0221] 5.2.5 Example of applying an indicator to a plurality of LSE inputs
[0222] In one particular embodiment, an additional stack indicator can signal a plurality of stacks in K consecutive LSE entries in at least one NAS of an MPLS packet. Such an additional stack indicator is, for example, a special operational code signaling that the next K LSE entries can belong to one or more stacks, i.e., carry one or more end-of-stack indicators equal to 1.
[0223] As a first example, such a specific operational code is present in an MNA entry in LSE C format on a NAS. For example, the value of K is equal to the NAL value - 1. The last LSE entry (which corresponds to the NAL value) also has an end-of-stack indicator equal to 1.
[0224] In the MPLS packet shown below, the particular operational code present in the MNA, LSE C (NAL=4) entry indicates that in the following K=NAL-1=3 consecutive MNA, LSE D entries of the NAS, an end-of-stack flag of 1 means that an additional stack follows this stack.
[0225] Table 16]
[0226]
[0227] According to a second example, the stack includes at least one NAS and a specific operational code is present in an MNA entry in LSE B format. For example, the value of K is equal to the NASL value - 1. The last LSE entry of a NAS (which corresponds to the NASL value) also carries an end-of-stack flag equal to 1. According to a third example, the number K of LSE entries that can carry an end-of-stack flag equal to 1 is not explicitly indicated in the MPLS packet, but may be implicit depending on a parameter (for example, depending on the value of the operational code).
[0228] 5.3 Variants
[0229] Several application examples in which an MPLS package comprises two stacks have been described above. These are, of course, mere examples, and the number N of stacks can be greater than 2. Similarly, one NAS per stack has been considered. However, multiple NAS can be present in a single stack. A single NAS can have multiple MNAs, for example, one MNA with an operational code for slicing and a second MNA with an operational code to indicate the presence of an additional stack. Alternatively, the meaning of a "classic" operational code could be modified to add a second function: indicating the presence of an additional stack. Thus, an operational code can have two meanings, such as slicing and indicating an additional stack.In the examples described above, it was also assumed that the flag indicating the presence of an additional stack (n-th stack) is present in the last entry of the previous stack (n-1-th stack). Alternatively, such an additional stack flag is present in another entry of the previous stack (nl-th stack), but not in the last entry. Specifically, the processing / router device that encounters this additional stack flag can remove it (since it knows an additional stack is present) and reset the end-of-stack flag of the stack being processed (nl-th stack) to merge the stack being processed with the additional stack (n-th stack).
[0230] 5.4 Processing Device
[0231] Finally, in relation to Figure 5, we present the simplified structure of a processing device, for example an MPLS router, according to at least one embodiment of the invention. As illustrated in Figure 5, such a device comprises at least one memory 51, at least one processing unit 52, equipped, for example, with a programmable computing machine or a dedicated computing machine, for example a processor P, and controlled by the computer program 53, implementing the steps of the processing method according to at least one embodiment of the invention. At initialization, the code instructions of the program 53 are, for example, loaded into RAM before being executed by the processor of the processing unit 52.
[0232] The processor of the processing unit 52 implements steps of the processing procedure described above, according to the instructions of the computer program 53, to obtain at least one data packet comprising several stacks of labels.
Claims
DEMANDS 1. A method for processing data in at least one network implementing label-switched routing, comprising obtaining (11) at least one data packet comprising: - N stacks of labels, with N an integer greater than or equal to 2, and - at least one entry in at least one current label stack, the first label stack of which has at least one additional stack indicator signaling at least one subsequent label stack.
2. A method according to claim 1, characterized in that the N stacks of labels each comprise an end-of-stack indicator signaling the bottom of the corresponding stack.
3. A method according to any one of claims 1 and 2, characterized in that said at least one additional stack indicator signals an nth label stack, with n an integer between 2 and N, and is present in at least one LSE (“Label Stack Entry”) type entry of an (n-1)th label stack.
4. A method according to any one of claims 1 to 3, characterized in that said at least one additional battery indicator is composed of at least one special-purpose label value of type SPL (“Special-Purpose Labels”).
5. A method according to any one of claims 1 to 3, characterized in that said at least one additional stack indicator is a dynamic label value.
6. A method according to any one of claims 1 to 3, characterized in that said at least one additional stack indicator is present in at least one MNA (“MPLS Network Action”) type input.
7. Method according to claim 6, characterized in that said at least one additional stack indicator is an operational code or a flag.
8. A method according to any one of claims 1 to 3, characterized in that said at least one additional stack indicator is a previously defined label value of one of said stacks of said data packet, modified to assign it a particular meaning.
9. A method according to any one of claims 1 to 8, characterized in that said at least one additional stack indicator signals a plurality of stacks in K consecutive LSE-type inputs of said data packet.
10. A method according to any one of claims 1 to 9, characterized in that the IHS field of an MNA type input of a subset of inputs of one of said stacks carries an indicator specifying that at least one action associated with said subset applies to several of said stacks.
11. A method according to any one of claims 1 to 10, characterized in that the first four bits of the first input of at least one nth stack of labels, with n an integer between 2 and N, do not have the value 4 or the value 6.
12. A method according to any one of claims 1 to 11, characterized in that it comprises a reset of an end-of-stack indicator of a stack of labels being processed among said N stacks.
13. Data processing device in at least one network implementing label-switched routing, comprising at least one processing unit configured to obtain at least one data packet comprising: - N stacks of labels, with N an integer greater than or equal to 2, and - at least one entry in at least one current label stack, the first label stack of which has at least one additional stack indicator signaling at least one subsequent label stack.
14. Computer program comprising instructions for carrying out a method according to any one of claims 1 to 12 when this program is executed by a processor.
15. A signal carrying at least one data packet in at least one network implementing label-switched routing, said data packet comprising: - N stacks of labels, with N an integer greater than or equal to 2, and - at least one entry in at least one current label stack, the first label stack of which has at least one additional stack indicator signaling at least one subsequent label stack.