IP Library › Granted Patent US 10,833,976
Granted Patent B2
US 10,833,976 · App. 16/185,239 · Granted Nov 10, 2020

Loop detection and avoidance for segment routed traffic engineered paths

Inventors: Tarek Saad (Nepean, CA); Clarence Filsfils (Brussels, BE); Muthurajah Sivabalan (Kanata, CA)
Assignee: Cisco Technology, Inc.
H04L45/22H04L12/4633H04L45/12H04L47/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 10,833,976
App. No.
16/185,239
Granted
Nov 10, 2020
Kind
B2
Abstract

A method is described and in one embodiment includes receiving a packet of a traffic flow at an ingress node of a communications network; routing the packet to an egress node of the communications network via a first path comprising a tunnel if the packet was received from a node external to the communications network; and routing the packet to the egress node of the communications network via a second path that does not traverse the tunnel if the packet was received from a node internal to the communications network. The first path is identified by a first Forwarding Information Base (“FIB”) entry corresponding to the flow and the second path is identified by a second FIB entry corresponding to the flow.

Claims (62)

1. A method comprising:

obtaining a packet of a traffic flow at an ingress node of a communications network;

calculating a shortest path between a beginning of a current segment of a tunnel associated with a first segment-switched path and an end of the current segment;

routing the packet to an egress node of the communications network via either the first segment-switched path or a second segment-switched path different than the first segment-switched path depending on whether the packet was obtained from a first node external to the communications network or from a second node internal to the communications network;

determining whether or not the shortest path traverses a head end of the tunnel; and

using either the tunnel or a different tunnel to implement the first segment-switched path depending on whether the shortest path traverses the head end of the tunnel.

2. The method of claim 1 , wherein the first segment-switched path is identified by a first Forwarding Information Base (“FIB”) entry corresponding to the traffic flow and wherein the second segment-switched path is identified by a second FIB entry corresponding to the traffic flow.

3. The method of claim 2 , wherein the first FIB entry is for external Internet Protocol (IP)-to-Multi-protocol Label Switching (MPLS) traffic and the second FIB entry is for internal MPLS-to-MPLS traffic.

4. The method of claim 1 , further comprising, if the tunnel is deemed suboptimal, taking corrective action with respect to the tunnel.

5. The method of claim 1 , further comprising if it is determined that the shortest path does not traverse the head end of the tunnel:

identifying a next segment of the tunnel;

calculating for the next segment a shortest path between a beginning of the next segment and an end of the next segment; and

determining whether the shortest path calculated for the next segment traverses the head end of the tunnel.

6. The method of claim 5 , further comprising, if it is determined that the shortest path calculated for the next segment traverses the head end of the tunnel, deeming the tunnel suboptimal and using another tunnel to implement the first segment-switched path.

7. The method of claim 5 , wherein the tunnel comprises a plurality of additional segments, and the method further comprising:

for each of the additional segments:

calculating for the additional segment a shortest path between a beginning of the additional segment and an end of the additional segment;

determining whether the shortest path calculated for the additional segment traverses the head end of the tunnel; and

if none of the shortest paths calculated for the current segment and each of the additional segments traverses the head end of the tunnel, deeming the tunnel non-looping.

8. The method of claim 1 , wherein the tunnel is a segment routing traffic engineering (“SR-TE”) tunnel.

9. One or more non-transitory tangible media that includes code for execution and when executed by a processor is operable to perform operations comprising:

obtaining a packet of a traffic flow at an ingress node of a communications network;

calculating a shortest path between a beginning of a current segment of a tunnel associated with a first segment-switched path and an end of the current segment;

routing the packet to an egress node of the communications network via either the first segment-switched path or a second segment-switched path different than the first segment-switched path depending on whether the packet was obtained from a first node external to the communications network or from a second node internal to the communications network;

determining whether or not the shortest path traverses a head end of the tunnel; and

using either the tunnel or a different tunnel to implement the first segment-switched path depending on whether the shortest path traverses the head end of the tunnel.

10. The media of claim 9 , wherein the first segment-switched path is identified by a first Forwarding Information Base (“FIB”) entry corresponding to the traffic flow and wherein the second segment-switched path is identified by a second FIB entry corresponding to the traffic flow.

11. The media of claim 10 , wherein the first FIB entry is for external Internet Protocol (IP)-to-Multi-protocol Label Switching (MPLS) traffic and the second FIB entry is for internal MPLS-to-MPLS traffic.

12. The media of claim 9 , wherein the operations further include if it is determined that the shortest path does not traverse the head end of the tunnel:

identifying a next segment of the tunnel;

calculating for the next segment a shortest path between a beginning of the next segment and an end of the next segment; and

determining whether the shortest path calculated for the next segment traverses the head end of the tunnel.

13. The media of claim 12 , wherein the tunnel comprises a plurality of additional segments, the operations further comprising:

for each of the additional segments:

calculating for the additional segment a shortest path between a beginning of the additional segment and an end of the additional segment;

determining whether the shortest path calculated for the additional segment traverses the head end of the tunnel; and

if none of the shortest paths calculated for the current segment and each of the additional segments traverses the head end of the tunnel, deeming the tunnel non-looping.

14. An apparatus comprising:

a memory configured to store data;

a network interface configured to enable communications over a communications network;

a processor operable to execute instructions associated with the data, wherein the processor is operable to:

obtain a packet of a traffic flow at an ingress node of the communications network;

calculate a shortest path between a beginning of a current segment of a tunnel associated with a first segment-switched path and an end of the current segment;

route the packet to an egress node of the communications network via either the first segment-switched path or a second segment-switched path different than the first segment-switched path depending on whether the packet was obtained from a first node external to the communications network or from a second node internal to the communications network;

determine whether or not the shortest path traverses a head end of the tunnel; and

use either the tunnel or a different tunnel to implement the first segment-switched path depending on whether the shortest path traverses the head end of the tunnel.

15. The apparatus of claim 14 , wherein the first segment-switched path is identified by a first Forwarding Information Base (“FIB”) entry corresponding to the traffic flow and wherein the second segment-switched path is identified by a second FIB entry corresponding to the traffic flow.

16. The apparatus of claim 15 , wherein the first FIB entry is for external Internet Protocol (IP)-to-Multi-protocol Label Switching (MPLS) traffic and the second FIB entry is for internal MPLS-to-MPLS traffic.

17. The apparatus of claim 15 , wherein the processor is configured to, if it is determined that the shortest path does not traverse the head end of the tunnel:

identify a next segment of the tunnel;

calculate for the next segment a shortest path between a beginning of the next segment and an end of the next segment; and

determine whether the shortest path calculated for the next segment traverses the head end of the tunnel.

18. The apparatus of claim 17 , wherein the tunnel comprises a plurality of additional segments, the processor is further operable to:

for each of the additional segments:

calculate for the additional segment a shortest path between a beginning of the additional segment and an end of the additional segment;

determine whether the shortest path calculated for the additional segment traverses the head end of the tunnel; and

if none of the shortest paths calculated for the current segment and each of the additional segments traverses the head end of the tunnel, deem the tunnel non-looping.

19. The method of claim 1 , further comprising:

determining whether the shortest path is deemed looping to the ingress node based on whether the shortest path is determined to traverse the head end of the tunnel.

20. The method of claim 1 , wherein using either the tunnel or the different tunnel to implement the first segment-switched path includes:

using the tunnel based on determining that the shortest path does not traverse the head end of the tunnel; and

using the different tunnel based on determining that the shortest path traverses the head end of the tunnel.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2020
From: SAAD, TAREK; FILSFILS, CLARENCE; SIVABALAN, MUTHURAJAH
To: CISCO TECHNOLOGY, INC.
Reel/Frame 053214/0694 →
Continuity (2)
Continuation 15227721 · Aug 3, 2016
Related Publication 20190081887A1 · Mar 14, 2019
Cited By (7)
US 12,452,168 US 12,476,906 US 12,500,832 US 12,519,712 US 12,647,348 US 12,676,812 US 12,683,866