# US 2021/0243117 A1 · 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 2021/0243117 A1
- Document ID: US20210243117A1
- Status: Published application
- Kind: A1
- Application number: 17/239,003
- Filed: 2021-04-23
- Published: 2021-08-05
- 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/US20210243117A1

## 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 and generating a histogram including statistics using the IOAM data.

### 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

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 and generating a histogram including statistics using the IOAM data.

### Claim 9 (depends on 8)

The one or more non-transitory computer readable storage media of claim 8, 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 10 (depends on 8)

The one or more non-transitory computer readable storage media of claim 8, 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 11 (depends on 8)

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

### Claim 12 (depends on 8)

The one or more non-transitory computer readable storage media of claim 8, 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 13 (depends on 8)

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

### Claim 14 (depends on 8)

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

### Claim 15

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 and generating a histogram including statistics using the IOAM data.

### Claim 16 (depends on 15)

The apparatus of claim 15, 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 17 (depends on 15)

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

### Claim 18 (depends on 15)

The apparatus of claim 15, 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 19 (depends on 15)

The apparatus of claim 15, wherein the apparatus is a transit node between an ingress node and an egress node in the MPLS network.

### Claim 20 (depends on 15)

The apparatus of claim 15, wherein the MPLS label is allocated to the apparatus by a network controller for the MPLS network.
