IP Library Granted Patent US 10,601,704
Granted Patent B2
US 10,601,704 · App. 16/019,466 · Granted Mar 24, 2020

Asymmetric routing minimization

Inventor: Himanshu Shah (Milpitas, CA)
Assignee: CISCO TECHNOLOGY, INC.
H04L45/38H04L12/4633
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,601,704
App. No.
16/019,466
Granted
Mar 24, 2020
Kind
B2
Abstract

In some examples, an example method to minimize asymmetric routing at a network node may include maintaining a flow table including one or more records, each record indicating a packet flow and a corresponding tunnel, receiving a data packet to process at a network node, and determining whether to process the data packet as a follower node. The method may also include, responsive to a determination to process the data packet as a follower node, determining whether there is an entry in the flow table for a packet flow associated with the received packet, and, responsive to a determination that there is an entry in the flow table for the packet flow, transmitting the received data packet through a tunnel corresponding to the packet flow.

Claims (38)

1. A method to minimize asymmetric routing at a network node, the method comprising:

maintaining a flow table including one or more records, each record indicating a packet flow and a corresponding tunnel;

receiving a data packet to process at a network node;

first determining whether the received data packet is outbound or inbound to the network node;

second determining, based on the result of the first determining, whether the network node will process the received data packet as a follower node or a selector node, where a selector node is programmed to independently select from available tunnels a selected tunnel for the data packet to reach a specified destination;

responsive to a determination to process the data packet as a follower node, determining whether there is an entry in the flow table for a packet flow associated with the received data packet, the entry having a pre-selected tunnel for the packet flow; and

responsive to a determination that there is an entry in the flow table for the packet flow, transmitting the received data packet through the pre-selected tunnel corresponding to the packet flow.

2. The method of claim 1 , further comprising responsive to a determination that the received data packet cannot be transmitted through the pre-selected tunnel corresponding to the packet flow, transmitting the data packet in accordance with a routing rule for the data packet.

3. The method of claim 1 , wherein the packet flow is identified by a source IP address, a destination IP address, a source port number, a destination port number, and a transport protocol indicator.

4. The method of claim 1 , wherein the network node includes a router.

5. The method of claim 4 , wherein the router is a provider edge router.

6. The method of claim 4 , wherein the router is a customer edge router.

7. A network node configured to minimize asymmetric routing, the network node comprising:

a memory configured to store instructions; and

a processor configured to execute the instructions, wherein execution of the instructions causes the processor to:

maintain a flow table including one or more records, each record indicating a packet flow and a corresponding tunnel;

receive a data packet to process;

first determine whether the received data packet is outbound or inbound to the network node;

second determine, based on the result of the first determine, whether the network node will process the received data packet as a follower node or a selector node, where a selector node is programmed to independently select from available tunnels a selected tunnel for the data packet to reach a specified destination;

responsive to a determination to process the data packet as a follower node, determine whether there is an entry in the flow table for a packet flow associated with the received data packet, the entry having a pre-selected tunnel for the packet flow; and

responsive to a determination that there is an entry in the flow table for the packet flow, transmit the received data packet through the pre-selected tunnel corresponding to the packet flow.

8. The network node of claim 7 , wherein execution of the instructions causes the processor to, responsive to a determination that the received data packet cannot be transmitted through the pre-selected tunnel corresponding to the packet flow, transmit the data packet in accordance with a routing rule for the data packet.

9. The network node of claim 7 , wherein the packet flow is identified by a source IP address, a destination IP address, a source port number, a destination port number, and a transport protocol indicator.

10. The network node of claim 7 , wherein the network node includes a router.

11. The network node of claim 10 , wherein the router is a provider edge router.

12. The network node of claim 10 , wherein the router is a customer edge router.

13. A non-transitory computer-readable storage media storing thereon instructions that, in response to execution by a processor of a network node, causes the processor to:

maintain a flow table including one or more records, each record indicating a packet flow and a corresponding tunnel;

first determine whether the received data packet is outbound or inbound to the network node;

receive a data packet to process;

second determine, based on the result of the first determine, whether the network node will process the received data packet as a follower node or a selector node, where a selector node is programmed to independently select from available tunnels a selected tunnel for the data packet to reach a specified destination;

responsive to a determination to process the data packet as a follower node, determine whether there is an entry in the flow table for a packet flow associated with the received data packet, the entry having a pre-selected tunnel for the packet flow; and

responsive to a determination that there is an entry in the flow table for the packet flow, transmit the received data packet through the pre-selected tunnel corresponding to the packet flow.

14. The non-transitory computer-readable storage media of claim 13 , further storing thereon instructions that, in response to execution by the processor, causes the processor to, responsive to a determination that the received data packet cannot be transmitted through the pre-selected tunnel corresponding to the packet flow, transmit the data packet in accordance with a routing rule for the data packet.

15. The non-transitory computer-readable storage media of claim 13 , wherein the packet flow is identified by a source IP address, a destination IP address, a source port number, a destination port number, and a transport protocol indicator.

16. The non-transitory computer-readable storage media of claim 13 , wherein the network node includes a router.

17. The non-transitory computer-readable storage media of claim 16 , wherein the router is a provider edge router.

18. The non-transitory computer-readable storage media of claim 16 , wherein the router is a customer edge router.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2019
From: SHAH, HIMANSHU
To: CISCO TECHNOLOGY, INC.
Reel/Frame 048315/0766 →
Continuity (2)
Provisional Application 62539394 · Jul 31, 2017
Related Publication 20190140940A1 · May 9, 2019