# US 12,184,543 B2 · In-situ operation, administration, and maintenance in segment routing with multiprotocol label switching networks

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,184,543 B2
- Document ID: US12184543B2
- Status: Granted
- Kind: B2
- Application number: 17/239,003
- Filed: 2021-04-23
- Published: 2021-08-05
- Granted: 2024-12-31
- Earliest claimed: 2018-09-11
- Assignees: Cisco Technology, Inc.
- Applicants: Cisco Technology, Inc.
- Inventors: Rakesh Gandhi; Sagar Soni; Patrick Khordoc
- Web page: https://patentgrep.com/patent/US12184543B2

## CPC

- H04L 43/106: using time related information in packets, e.g. by adding timestamps
- H04L 45/507: {Label distribution}
- H04L 41/142: using statistical or mathematical methods
- H04L 43/0852: Delays
- H04L 45/24: Multipath
- H04L 45/34: {Source routing}
- H04L 69/22: Parsing or analysis of headers
- H04L 45/50: using label swapping, e.g. multi-protocol label switch [MPLS]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Presented herein is an “In-situ OAM” (IOAM) mechanism that uses a Segment Routing-Multiprotocol Label Switching (SR-MPLS) IOAM segment identifier that can selectively collect IOAM data from “target” network nodes along a data packet path. In one embodiment, a method includes receiving, at a first network node in the SR-MPLS network, a data packet that includes an MPLS label stack comprising a plurality of segment identifiers (SIDs) associated with a plurality of network nodes. The MPLS label stack includes a first SID associated with the first network node. The method includes determining whether the first SID is an IOAM SID or a regular SID. Upon determining that the first SID is the IOAM SID, the method includes implementing an IOAM function at the first network node. Upon determining that the first SID is the regular SID, the method includes processing the data packet without implementing an IOAM function.

## Claims

### Claim 1

A method comprising:
receiving a data packet that includes a Multiprotocol Label Switching (MPLS) label stack including an MPLS label that prompts a first network node in an MPLS network to implement one or more in-situ operation, administration, and maintenance (IOAM) functions;
determining that the MPLS label stack includes the MPLS label; and
upon determining that the MPLS label stack includes the MPLS label, implementing the one or more IOAM functions at the first network node, wherein the one or more IOAM functions include collecting IOAM data, computing a delay value based on the IOAM data, and generating a histogram based on the computed delay value.

### Claim 2 (depends on 1)

The method of claim 1, wherein the one or more IOAM functions further include:
inserting and/or processing IOAM data in an IOAM header of the data packet; and
forwarding the data packet to a second network node in the MPLS network, wherein the second network node is associated with a next MPLS label included in the MPLS label stack.

### Claim 3 (depends on 1)

The method of claim 1, wherein the one or more IOAM functions further include:
forwarding the data packet to a second network node in the MPLS network, wherein the second network node is associated with a next MPLS label included in the MPLS label stack; and
sending an out-of-band response packet from the first network node to a designated network node.

### Claim 4 (depends on 1)

The method of claim 1, wherein the one or more IOAM functions further include:
sending the histogram to a network controller.

### Claim 5 (depends on 1)

The method of claim 1, wherein the MPLS network includes an Ethernet virtual private network.

### Claim 6 (depends on 1)

The method of claim 1, wherein the data packet is associated with a service function chain; and
wherein the MPLS label identifies a service function to be implemented on the data packet.

### Claim 7 (depends on 1)

The method of claim 1, wherein the MPLS label is allocated to the first network node by a network controller for the MPLS network.

### Claim 8 (depends on 1)

The method of claim 1, wherein generating the histogram further comprises:
providing the computed delay value in a bin of the histogram; and
incrementing a counter value for the bin of the histogram.

### Claim 9 (depends on 8)

The method of claim 8, further comprising
comparing the counter value of the bin of the histogram to a threshold value; and
upon determining that the counter value crosses a threshold value, sending the histogram to a network controller.

### Claim 10

One or more non-transitory computer readable storage media encoded with instructions that, when executed by a processor, cause the processor to:
receive a data packet that includes a Multiprotocol Label Switching (MPLS) label stack including an MPLS label that prompts a first network node in an MPLS network to implement one or more in-situ operation, administration, and maintenance (IOAM) functions;
determine that the MPLS label stack includes the MPLS label; and
upon determining that the MPLS label stack includes the MPLS label, implement the one or more IOAM functions at the first network node, wherein the one or more IOAM functions include collecting IOAM data, computing a delay value based on the IOAM data, and generating a histogram based on the computed delay value.

### Claim 11 (depends on 10)

The one or more non-transitory computer readable storage media of claim 10, wherein the one or more IOAM functions further include:
inserting and/or processing IOAM data in an IOAM header of the data packet; and
forwarding the data packet to a second network node in the MPLS network, wherein the second network node is associated with a next MPLS label included in the MPLS label stack.

### Claim 12 (depends on 10)

The one or more non-transitory computer readable storage media of claim 10, wherein the one or more IOAM functions further include:
forwarding the data packet to a second network node in the MPLS network, wherein the second network node is associated with a next MPLS label included in the MPLS label stack; and
sending an out-of-band response packet from the first network node to a designated network node.

### Claim 13 (depends on 10)

The one or more non-transitory computer readable storage media of claim 10, wherein the MPLS network includes an Ethernet virtual private network.

### Claim 14 (depends on 10)

The one or more non-transitory computer readable storage media of claim 10, wherein the data packet is associated with a service function chain; and
wherein the MPLS label identifies a service function to be implemented on the data packet.

### Claim 15 (depends on 10)

The one or more non-transitory computer readable storage media of claim 10, wherein the first network node is a transit node between an ingress node and an egress node in the MPLS network.

### Claim 16 (depends on 10)

The one or more non-transitory computer readable storage media of claim 10, wherein the MPLS label is allocated to the first network node by a network controller for the MPLS network.

### Claim 17

An apparatus comprising:
a plurality of network ports configured to receive inbound packets and to send outbound packets in a Multiprotocol Label Switching (MPLS) network;
a memory; and
a processor coupled to the memory and to the plurality of network ports, wherein the processor is configured to:
receive a data packet that includes a MPLS label stack including an MPLS label that prompts the apparatus to implement one or more in-situ operation, administration, and maintenance (IOAM) functions;
determine that the MPLS label stack includes the MPLS label; and
upon determining that the MPLS label stack includes the MPLS label, implement the one or more IOAM functions at the apparatus, wherein the one or more IOAM functions include collecting IOAM data, computing a delay value based on the IOAM data, and generating a histogram based on the computed delay value.

### Claim 18 (depends on 17)

The apparatus of claim 17, wherein the one or more IOAM functions further include:
inserting and/or processing IOAM data in an IOAM header of the data packet; and
forwarding the data packet to a next apparatus in the MPLS network, wherein the next apparatus is associated with a next MPLS label included in the MPLS label stack.

### Claim 19 (depends on 17)

The apparatus of claim 17, wherein the MPLS network includes an Ethernet virtual private network.

### Claim 20 (depends on 17)

The apparatus of claim 17, wherein the data packet is associated with a service function chain; and
wherein the MPLS label identifies a service function to be implemented on the data packet.
