IP Library Granted Patent US 11,582,148
Granted Patent B2
US 11,582,148 · App. 17/147,208 · Granted Feb 14, 2023

MPLS extension headers for in-network services

Inventors: Haoyu Song (San Jose, CA); Zhenbin Li (Beijing, CN); Tianran Zhou (Beijing, CN); James N. Guichard (Hollis, NH); Stewart Frederick Bryant (Redhill, GB); Andrew G. Malis (Andover, MA)
Assignee: Huawei Technologies Co., Ltd.
H04L45/507H04L45/16H04L69/22
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,582,148
App. No.
17/147,208
Granted
Feb 14, 2023
Kind
B2
Abstract

Described herein are methods and devices (e.g., routers) that add in-network services to a multiprotocol label switching (MPLS) network. A method can include a router of the MPLS network receiving a packet and modifying the packet by adding one or more MPLS extension headers, adding a header of the extension header(s), and adding an indication within an MPLS label stack that one or more MPLS extension headers have been added to the packet. The method can also include the router forwarding the packet as modified to another router of the MPLS network. In certain embodiments, an extension header label (EHL) within a label value field of a label stack entry indicates that one or more MPLS extension headers have been added to the packet. In other embodiments, a forward equivalent class (FEC) indicates that one or more MPLS extension headers follow the MPLS label stack.

Claims (63)

1. A method for adding one or more in-network services to a multiprotocol label switching (MPLS) network, the method comprising:

a router of the MPLS network receiving a packet;

the router of the MPLS network modifying the packet by adding a plurality of MPLS extension headers, adding a header of the extension headers, and adding an indication within an MPLS label stack that the plurality of MPLS extension headers have been added to the packet; and

the router of the MPLS network forwarding the packet as modified to another router of the MPLS network;

wherein the header of the extension headers added by the router includes an extension header count (EH Count) field that specifies a total number of the MPLS extension headers added to the packet, a total length field that specifies a total length of the MPLS extension headers included in the packet as modified, and a field that specifies a type of the next header included in the packet as modified.

2. The method of claim 1 , wherein at least one of the plurality of MPLS extension headers supports an in-network service that is not supported by the MPLS network, and wherein one or more in-network services added to the MPLS network includes one or more of a network service header (NSH) service, an in-situ operations, administration, and maintenance (IOAM) service, a segment routing (SR) service, or a network programming service.

3. The method of any of claim 1 , wherein:

each MPLS extension header of the plurality of MPLS extension headers added by the router includes a field that specifies a type of the next header included in the packet as modified, and a field that specifies a length of the MPLS extension header.

4. The method of claim 3 , wherein the type of the next header that is specified in the header of the extension headers and the type of the next header that is specified in each MPLS extension header includes one or more of a network service header (NSH) type, an in-situ operations, administration, and maintenance (IOAM) type, a segment routing (SR) type, an Internet Protocol version 4 (IPv4) type, an Internet Protocol version 6 (IPv6) type, a none type, or an unknown type.

5. The method of claim 3 , wherein each of the fields that specifies the type of the next header can include a none indication indicating that there is no next header, or an unknown indication indicating that the type of the next header is unknown.

6. A method for adding one or more in-network services to a multiprotocol label switching (MPLS) network, the method comprising:

a router of the MPLS network receiving a packet;

the router of the MPLS network modifying the packet by adding one or more MPLS extension headers, adding a header of the extension header(s), and adding an indication within an MPLS label stack that one or more MPLS extension headers have been added to the packet; and

the router of the MPLS network forwarding the packet as modified to another router of the MPLS network;

wherein the MPLS label stack includes a plurality of MPLS label stack entries; and

wherein the indication within the MPLS label stack that one or more MPLS extension headers have been added to the packet comprises an extension header label (EHL) within a label value field within one of the plurality of MPLS label stack entries included in the MPLS label stack.

7. The method of claim 6 , wherein the EHL comprises one of sixteen special-purpose label values that are reserved by the MPLS working group of the Internet Engineering Task Force (IETF).

8. The method of claim 6 , wherein another one of the plurality of MPLS label stack entries included within the MPLS label stack includes a special-purpose label value of 15, which is reserved by the MPLS working group of the Internet Engineering Task Force (IETF) to indicate that an Extension Label is included in the MPLS label stack and enables the router to identify the EHL.

9. The method of claim 1 , wherein a forward equivalent class (FEC) indicates that one or more MPLS extension headers follow the MPLS label stack.

10. The method of claim 1 , wherein:

the router that modifies the packet comprises a label edge router (LER);

the packet modified by the LER comprises an original inner packet; and

the LER adds the MPLS label stack to the original inner packet.

11. The method of claim 1 , wherein:

the router that modifies the packet comprises a label switch router (LSR); and

the packet modified by the LSR comprises an MPLS packet that already includes the MPLS label stack or at least a portion thereof.

12. A router comprising:

a network interface configured to receive and forward packets over a multiprotocol label switching (MPLS) network;

a memory storage comprising instructions; and

one or more processors in communication with the memory and with the network interface, wherein the one or more processors execute the instructions to:

modify a packet received via the network interface by adding a plurality of MPLS extension headers, adding a header of the extension headers, and adding an indication within an MPLS label stack that the plurality of MPLS extension headers have been added to the packet; and

forward the packet as modified via the network interface to another router of the MPLS network;

wherein the header of the extension headers added by the router includes an extension header count (EH Count) field that specifies a total number of the MPLS extension headers added to the packet, a total length field that specifies a total length of the MPLS extension headers included in the packet as modified, and a field that specifies a type of the next header included in the packet as modified.

13. The router of claim 12 , wherein:

the router comprises a label edge router (LER);

the packet modified by the LER comprises an original inner packet; and

the one or more processors of the LER adds the MPLS label stack to the original inner packet.

14. The router of claim 12 , wherein:

the router comprises a label switch router (LSR); and

the packet modified by the LSR comprises an MPLS packet that already includes the MPLS label stack or at least a portion thereof.

15. The router of claim 12 , wherein at least one of the plurality of MPLS extension headers supports an in-network service that is not otherwise supported by the MPLS network, and wherein the one or more in-network services added to the MPLS network includes one or more of a network service header (NSH) service, an in-situ operations, administration, and maintenance (IOAM) service, a segment routing (SR) service, or a network programming service.

16. The router of claim 12 , wherein:

each MPLS extension header of the plurality of MPLS extension headers added by the router includes a field that specifies a type of the next header included in the packet as modified, and a field that specifies a length of the MPLS extension header.

17. The router of claim 16 , wherein the type of the next header that is specified in the header of the extension headers and the type of the next header that is specified in each MPLS extension header includes one or more of a network service header (NSH) type, an in-situ operations, administration, and maintenance (IOAM) type, a segment routing (SR) type, an Internet Protocol version 4 (IPv4) type, an Internet Protocol version 6 (IPv6) type, a none type, or an unknown type.

18. The router of claim 16 , wherein each of the fields that specifies the type of the next header can include an indication of “none” which represents there is no next header.

19. The router of claim 16 , wherein each of the fields that specifies the type of the next header can include an indication of “unknown” which represents that the type of the next header is unknown.

20. A router comprising:

a network interface configured to receive and forward packets over a multiprotocol label switching (MPLS) network;

a memory storage comprising instructions; and

one or more processors in communication with the memory and with the network interface, wherein the one or more processors execute the instructions to:

modify a packet received via the network interface by adding one or more MPLS extension headers, adding a header of the extension header(s), and adding an indication within an MPLS label stack that one or more MPLS extension headers have been added to the packet; and

forward the packet as modified via the network interface to another router of the MPLS network;

wherein the MPLS label stack includes a plurality of MPLS label stack entries; and

wherein the indication within the MPLS label stack that one or more MPLS extension headers have been added to the packet comprises an extension header label (EHL) within a label value field within one of the plurality of MPLS label stack entries included in the MPLS label stack.

21. The router of claim 20 , wherein the EHL comprises one of sixteen special-purpose label values that are reserved by the MPLS working group of the Internet Engineering Task Force (IETF).

22. The router of claim 20 , wherein another one of the plurality of MPLS label stack entries included within the MPLS label stack includes a special-purpose label value of 15, which is reserved by the MPLS working group of the Internet Engineering Task Force (IETF) to indicate that an Extension Label is included in the MPLS label stack and enables the router to identify the EHL.

23. The router of claim 12 , wherein a forward equivalent class (FEC) indicates that one or more MPLS extension headers follow the MPLS label stack.

24. A non-transitory computer-readable medium storing computer instructions that when executed by one or more processors of a router of a multiprotocol label switching (MPLS) network cause the router to perform the steps of:

modifying a packet received by the router by adding a plurality of MPLS extension headers, adding a header of the extension headers, and adding an indication within an MPLS label stack that the plurality of MPLS extension headers have been added to the packet; and

forwarding the packet as modified to another router of the MPLS network;

wherein the header of the extension headers added to the packet received by the router includes an extension header count (EH Count) field that specifies a total number of the MPLS extension headers added to the packet, a total length field that specifies a total length of the MPLS extension headers included in the packet as modified, and a field that specifies a type of the next header included in the packet as modified.

25. The non-transitory computer-readable medium of claim 24 , wherein:

each MPLS extension header of the plurality of MPLS extension headers added by the router includes a field that specifies a type of the next header included in the packet as modified, and a field that specifies a length of the MPLS extension header.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2021
From: SONG, HAOYU; LI, ZHENBIN; ZHOU, TIANRAN; GUICHARD, JAMES N.; BRYANT, STEWART FREDERICK; MALIS, ANDREW G.
To: FUTUREWEI TECHNOLOGIES, INC.
Reel/Frame 054897/0447 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2021
From: FUTUREWEI TEHNOLOGIES, INC.
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 054897/0463 →
Continuity (3)
Continuation PCTCN2019095180 · Jul 9, 2019
Provisional Application 62697783 · Jul 13, 2018
Related Publication 20210135986A1 · May 6, 2021
Cited By (1)
US 12,641,016