# US 10,122,590 B2 · ECMP path tracing in an MPLS enabled network

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

- Number: US 10,122,590 B2
- Document ID: US10122590B2
- Status: Granted
- Kind: B2
- Application number: 15/638,713
- Filed: 2017-06-30
- Published: 2017-11-16
- Granted: 2018-11-06
- Earliest claimed: 2007-12-28
- Assignees: AT&T Intellectual Property I, L.P.
- Applicants: AT&T Intellectual Property I, L.P.
- Inventors: Raymond Washburn
- Web page: https://patentgrep.com/patent/US10122590B2

## CPC

- H04L 41/22: comprising specially adapted graphical user interfaces [GUI]
- H04L 41/12: Discovery or management of network topologies
- H04L 41/5074: Handling of user complaints or trouble tickets
- H04L 45/02: Topology update or discovery
- H04L 45/26: {Route discovery packet}
- H04L 45/50: using label swapping, e.g. multi-protocol label switch [MPLS]
- H04L 41/06: Management of faults, events, alarms or notifications
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A network tracing engine is configured to trace and depict a topology (i.e., a network configuration) of a network using, for example, a network diagram. The network tracing engine preferably queries/telnets to interfaces of routers associated with one or more source-to-destination paths in a network concurrently and independently to ensure proper configuration of the routers and/or to generate a true depiction of a routing configuration without redundantly querying routers.

## Claims

### Claim 1

A label switching network device, the device comprising:
a processing device; and
a computer-readable medium storing instructions that, when executed by the processing device, perform operations comprising:
transmitting a parent trace thread to a first edge router;
generating a child trace thread according to trace information obtained from the first edge router;
receiving trace information associated with a plurality of paths, the trace information received by tracing the plurality of paths using the child trace thread that hops from the first edge router to a second edge router;
terminating the child trace thread to identify a terminated trace thread in response to two of the plurality of paths converging, the trace information of the terminated trace thread stored in another trace thread;
generating a network configuration representation using the trace information associated with the plurality of paths; and
displaying the network configuration representation on a graphical user interface, wherein the plurality of paths are equal cost paths, and wherein the trace information is obtained by independently and concurrently tracing the plurality of paths using the child trace thread.

### Claim 2 (depends on 1)

The device of claim 1, wherein the processing device comprises a plurality of processing devices operating in a distributed processing environment, the operations further comprising initializing a diverging trace thread in response to one of the plurality of paths diverging.

### Claim 3 (depends on 1)

The device of claim 1, wherein the child trace thread terminates before the parent trace thread.

### Claim 4 (depends on 1)

The device of claim 1, wherein a first identification of the first edge router and a second identification of the second edge router are obtained using the graphical user interface.

### Claim 5 (depends on 1)

The device of claim 1, wherein the trace information is obtained by independently and concurrently tracing the plurality of paths using the child trace thread.

### Claim 6 (depends on 1)

The device of claim 1, wherein the trace information is obtained using the child trace thread associated with the parent trace thread.

### Claim 7 (depends on 1)

The device of claim 1, wherein the trace information is obtained by reusing trace information associated with a converging router in response to the two paths converging at the converging router.

### Claim 8 (depends on 1)

The device of claim 1, wherein the network configuration representation graphically depicts the network configuration as a plurality of routers and connections.

### Claim 9 (depends on 1)

The device of claim 1, wherein the network configuration representation further comprises a trouble ticket.

### Claim 10 (depends on 1)

The device of claim 1, wherein the operations further comprise:
generating a first trace thread to obtain trace information associated with a first router in the plurality of paths;
generating a second trace thread to obtain trace information associated with a second router in the plurality of paths, the second router connected to the first router; and
generating a third trace thread to obtain trace information associated with a third router in the plurality of paths, the third router connected to the second router.

### Claim 11

A method of representing a network configuration in a label switching network, the method comprising:
transmitting, by a system comprising a processing device, a parent trace thread to a first edge router;
generating, by the system, a child trace thread according to trace information obtained from the first edge router;
obtaining, by the system, trace information associated with a plurality of paths, the trace information obtained by tracing the plurality of paths using the child trace thread that hop from the first edge router to a second edge router;
terminating, by the system, the child trace thread to identify a terminated trace thread in response to two of the plurality of paths converging, the trace information of the terminated trace thread stored in another trace thread;
generating, by the system, a network configuration representation using the trace information associated with the plurality of paths; and
displaying, by the system, the network configuration representation on a graphical user interface, wherein the plurality of paths are equal cost paths, and wherein the trace information is obtained by independently and concurrently tracing the plurality of paths using the child trace thread.

### Claim 12 (depends on 11)

The method of claim 11, wherein the processing device comprises a plurality of processing devices operating in a distributed processing environment, the method further comprising terminating the child trace thread to identify a terminated trace thread in response to two of the plurality of paths converging, the trace information of the terminated trace thread stored in another trace thread.

### Claim 13 (depends on 12)

The method of claim 12, wherein the trace information is obtained by reusing trace information associated with the converging router in response to the two paths converging.

### Claim 14 (depends on 11)

The method of claim 11, wherein the child trace thread terminates before the parent trace thread.

### Claim 15 (depends on 11)

The method of claim 11, wherein a first identification of the first edge router and a second identification of the second edge router are obtained using the graphical user interface.

### Claim 16

A machine-readable storage device storing instructions that, when executed by a processing device, perform operations in a label switching network, the operations comprising:
transmitting a parent trace thread to a first edge router;
generating a child thread according to trace information obtained from the first edge router;
receiving trace information associated with a plurality of paths, the trace information received by tracing the plurality of paths using the child trace thread that hops from the first edge router to a second edge router;
terminating the child trace thread to identify a terminated trace thread in response to two of the plurality of paths converging, the trace information of the terminated trace thread stored in another trace thread;
generating a network configuration representation using the trace information associated with the plurality of paths; and
displaying the network configuration representation on a graphical user interface, wherein the plurality of paths are equal cost paths, and wherein the trace information is obtained by independently and concurrently tracing the plurality of paths using the child trace thread.

### Claim 17 (depends on 16)

The machine-readable storage device of claim 16, wherein the processing device comprises a plurality of processing devices operating in a distributed processing environment, the operations further comprising terminating the child trace thread to identify a terminated trace thread in response to two of the plurality of paths converging, the trace information stored in another trace thread.

### Claim 18 (depends on 16)

The machine-readable storage device of claim 16, wherein the operations further comprise initializing a diverging trace thread in response to one of the plurality of paths diverging.
