IP Library Granted Patent US 12,641,015
Granted Patent B2
US 12,641,015 · App. 18/109,679 · Granted May 26, 2026

Encoding source routes using MPLS sub-labels

Inventors: Alexander Krentsel (Berkeley, CA); Ashok Narayanan (Lexington, MA); Sylvia Ratnasamy (Berkeley, CA); Robert Shakir (San Francisco, CA)
Assignee: Google LLC
H04L45/507H04L45/34
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 12,641,015
App. No.
18/109,679
Granted
May 26, 2026
Kind
B2
Abstract

Generally disclosed herein is an approach for modifying use of segment routing multiprotocol label switching (SR-MPLS) allowing an arbitrary MPLS control plane and traditional MPLS data plane to utilize a single MPLS label to represent two or more edges in a path. MPLS labels may be divided into smaller sub-labels, which together uniquely represent a pair of edges along a route. In one example, a single MPLS label may be divided into two sub-labels, the first sub-label representing a first edge, and the second sub-label representing a second edge. In this regard, longer source routes may be supported in a packet header in network designs that implement strict source routing.

Claims (30)

1 . A method for encoding source routes using multiprotocol label switching (MPLS) sub-labels, the method comprising:

dividing, by one or more processors, a memory segment of a packet corresponding to an MPLS label in an MPLS header into at least a first sub-segment and a second sub-segment;

storing, by the one or more processors, first information for a first edge of a route in the first sub-segment and second information for a second edge of the route in the second sub-segment, padding the second sub-segment with zeros when only a subset of the second sub-segment is required.

2 . The method of 1 , wherein the MPLS label in the MPLS header is divided into N numbers of sub-segments.

3 . The method of 2 , wherein the N numbers of sub-segments store information of N numbers of edges in the route.

4 . The method of 1 , further comprising:

receiving, by the one or more processors, the packet including the MPLS header; and

transmitting, by the one or more processors, the packet from a source node to a destination node based on a combination of the information stored in the first sub-segment and the information stored in the second sub-segment.

5 . The method of 1 , further comprising:

assigning an identifier for each of one or more edges that is unique from any other edge originating from a node within a N degree of neighbors.

6 . The method of 1 , further comprising:

distributing a combination of the first information stored in the first sub-segment and the second information stored in the second sub-segment using an intermediate system to intermediate system (IS-IS) protocol.

7 . The method of 1 , wherein the first information and the second information is programmed using an application programming interface (API) with a remote call procedure call (RPC)-based protocol.

8 . The method of 1 , wherein each of the first sub-segment and the second sub-segment store 10 bits of information.

9 . The method of 8 , wherein each 10-bit sub-labels may encode a link ID as distributed by a link-state protocol.

10 . A system comprising:

one or more processors;

memory in communication with the one or more processors, wherein the memory contains instructions configured to cause the one or more processors to:

divide a memory segment of a packet corresponding to an MPLS label in an MPLS header into at least a first sub-segment and a second sub-segment; and

store first information for a first edge of a route in the first sub-segment and second information for a second edge of the route in the second sub-segment, wherein the instructions are further configured to cause the one or more processors to pad the second sub-segment with zeros when only a subset of the second sub-segment is required.

11 . The system of 10 , wherein the MPLS label in the MPLS header is divided into N numbers of sub-segments.

12 . The system of 11 , wherein the N numbers of sub-segments store information of N numbers of edges in the route.

13 . The system of 10 , wherein the instructions are further configured to cause the one or more processors to:

receive the packet including the MPLS header; and

transmit the packet from a source node to a destination node based on a combination of the information stored in the first sub-segment and the information stored in the second sub-segment.

14 . The system of 10 , wherein the instructions are further configured to cause the one or more processors to assign an identifier for each of one or more edges that is unique from any other edge originating from a node within a N degree of neighbors.

15 . The system of 10 , wherein the instructions are further configured to cause the one or more processors to distribute the combination of the first information stored in the first sub-segment and the second information stored in the second sub-segment using an intermediate system to intermediate system (IS-IS) protocol.

16 . The system of 10 , wherein the first information and the second information is programmed using an application programming interface (API) with a remote call procedure call (RPC) based protocol.

17 . The system of 10 , wherein each of the first sub-segment and the second sub-segment store 10 bits of information.

18 . The system of 17 , wherein each 10-bit sub-labels may encode a link ID as distributed by a link-state protocol.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 15, 2023
From: KRENTSEL, ALEXANDER; NARAYANAN, ASHOK; RATNASAMY, SYLVIA; SHAKIR, ROBERT
To: GOOGLE LLC
Reel/Frame 062702/0736 →
Continuity (1)
Related Publication 20240297845A1 · Sep 5, 2024
References Cited (18)
US 8976682B2 · Boutros · 2015 [cited by examiner]
US 10218610B2 · Frost · 2019 [cited by examiner]
US 10404600B2 · Shakir · 2019 [cited by examiner]
US 10924389B2 · Ceccarelli · 2021 [cited by examiner]
US 10965590B2 · Xu · 2021 [cited by examiner]
US 11201820B2 · Song · 2021 [cited by examiner]
US 20130336324A1 · Solomon · 2013 [cited by examiner]
US 20150207736A1 · Roch · 2015 [cited by examiner]
US 20200358698A1 · Song · 2020 [cited by examiner]
US 20210021513A1 · Filsfils · 2021 [cited by examiner]
US 20230028147A1 · Dutta · 2023 [cited by examiner]
US 20230103816A1 · Trujillo · 2023 [cited by examiner]
US 20230370358A1 · Song · 2023 [cited by examiner]
US 20240235994A1 · He · 2024 [cited by examiner]
WO 2021011392A1 · 2021 [cited by applicant]
Ridwan, et al. Recent trends in MPLS networks: technologies, applications and challenges. The Institution of Engineering and Technology Journals. 2020, vol. 14 Iss. 2, pp. 117-185, 9 pages Published Dec. 13, 2019. [cited by applicant]
Hesselbach, et al. Hashing based traffic partitioning in a multicast-multipath MPLS network model. Retrieved on Jan. 6, 2023 7 Pages. [cited by applicant]
Extended European Search Report for European Patent Application No. 23191839.2 dated Dec. 15, 2023. 10 pages. [cited by applicant]