IP Library Granted Patent US 10,313,229
Granted Patent B2
US 10,313,229 · App. 15/367,059 · Granted Jun 4, 2019

Method and apparatus for path selection

Inventors: Sudeep Modi (Milpitas, CA); Joyu Wu (San Francisco, CA); Anoop A. Gupta (San Francisco, CA); Devanath Srinivasa (San Francisco, CA); Gabriel Levy (Oakland, CA); Luca Niccolini (San Francisco, CA); Sarath Kumar Sankaran Kutty (San Francisco, CA)
Assignee: Riverbed Technology, Inc.
H04L45/28H04L45/22H04L45/26H04L45/38H04L45/74H04L49/252H04L67/2814H04L12/2854H04L45/66
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,313,229
App. No.
15/367,059
Granted
Jun 4, 2019
Kind
B2
Abstract

Systems and techniques are described for path selection. A packet can be transparently intercepted at an intermediary device. Next, the intermediary device may modify one or more bits in the header of the packet. The intermediary device can then forward the packet to the next hop device. In some network configurations, the modifications to the one or more bits in the header of the packet may cause a downstream device to select a path that is different from the path that would have been selected by the downstream device if the one or more bits in the header of the packet had not been modified. A path selection policy can be used to determine whether or not one or more bits in the header of the packet are to be modified.

Claims (62)

1. A method performed by an intermediary device in a network, the network comprising a first router, a second router, a third router, and the intermediary device, wherein the intermediary device is interposed between the first router and the second router, wherein the third router is coupled to the intermediary device, and wherein, at the first router, the second router is a next hop router for packets destined to a network-layer destination address, the method comprising:

transparently intercepting a packet forwarded by the first router to the second router, wherein the packet is destined to the network-layer destination address, and wherein a link-layer header of the packet includes a first link-layer address associated with the first router and a second link-layer address associated with the second router;

determining that the packet is to be routed via the third router instead of the second router;

replacing the second link-layer address in the link-layer header of the packet with a third link-layer address associated with the third router; and

forwarding the packet to the third router.

2. The method of claim 1 , wherein said determining that the packet is to be routed via the third router instead of the second router comprises determining that a path to the network-layer destination address that passes through the second router has a fault.

3. The method of claim 2 , wherein said determining that the path to the network-layer destination address that passes through the second router has the fault comprises:

sending a probe packet along the path; and

determining that the path has the fault if a response to the probe packet includes an error message or if no response is received to the probe packet within a predetermined time period.

4. The method of claim 1 , wherein said determining that the packet is to be routed via the third router instead of the second router comprises:

determining a network flow associated with the packet; and

using a path selection table to determine that the third router is associated with the network flow.

5. The method of claim 4 , further comprising creating the path selection table based on a path selection policy that specifies that packets belonging to the network flow are to be routed via a path that passes through the third router.

6. The method of claim 5 , wherein said creating the path selection table comprises:

for a first packet in a set of packets,

analyzing the first packet to determine a first fingerprint associated with the first packet,

identifying a first application associated with the first fingerprint,

selecting a first path associated with the first application based on the path selection policy;

determining a first network flow associated with the first packet; and

storing an association between the first network flow and the first path in the path selection table.

7. A non-transitory computer-readable storage medium storing instructions that, when executed by an intermediary device in a network, cause the intermediary device to perform a method, wherein the network comprises a first router, a second router, a third router, and the intermediary device, wherein the intermediary device is interposed between the first router and the second router, wherein the third router is coupled to the intermediary device, wherein, at the first router, the second router is a next hop router for packets destined to a network-layer destination address, and wherein the method comprising:

transparently intercepting a packet forwarded by the first router to the second router, wherein the packet is destined to the network-layer destination address, and wherein a link-layer header of the packet includes a first link-layer address associated with the first router and a second link-layer address associated with the second router;

determining that the packet is to be routed via the third router instead of the second router;

replacing the second link-layer address in the link-layer header of the packet with a third link-layer address associated with the third router; and

forwarding the packet to the third router.

8. The non-transitory computer-readable storage medium of claim 7 , wherein said determining that the packet is to be routed via the third router instead of the second router comprises determining that a path to the network-layer destination address that passes through the second router has a fault.

9. The non-transitory computer-readable storage medium of claim 8 , wherein said determining that the path to the network-layer destination address that passes through the second router has the fault comprises:

sending a probe packet along the path; and

determining that the path has the fault if a response to the probe packet includes an error message or if no response is received to the probe packet within a predetermined time period.

10. The non-transitory computer-readable storage medium of claim 7 , wherein said determining that the packet is to be routed via the third router instead of the second router comprises:

determining a network flow associated with the packet; and

using a path selection table to determine that the third router is associated with the network flow.

11. The non-transitory computer-readable storage medium of claim 10 , further comprising creating the path selection table based on a path selection policy that specifies that packets belonging to the network flow are to be routed via a path that passes through the third router.

12. The non-transitory computer-readable storage medium of claim 11 , wherein said creating the path selection table comprises:

for a first packet in a set of packets,

analyzing the first packet to determine a first fingerprint associated with the first packet,

identifying a first application associated with the first fingerprint,

selecting a first path associated with the first application based on the path selection policy;

determining a first network flow associated with the first packet; and

storing an association between the first network flow and the first path in the path selection table.

13. An intermediary device, wherein the intermediary device is in a network comprising a first router, a second router, a third router, and the intermediary device, wherein the intermediary device is interposed between the first router and the second router, wherein the third router is coupled to the intermediary device, wherein, at the first router, the second router is a next hop router for packets destined to a network-layer destination address, and wherein the intermediary device comprising:

a processor; and

a non-transitory computer-readable storage medium storing instructions that, when executed by the processor, cause the processor to perform a method comprising:

transparently intercepting a packet forwarded by the first router to the second router, wherein the packet is destined to the network-layer destination address, and wherein a link-layer header of the packet includes a first link-layer address associated with the first router and a second link-layer address associated with the second router;

determining that the packet is to be routed via the third router instead of the second router;

replacing the second link-layer address in the link-layer header of the packet with a third link-layer address associated with the third router; and

forwarding the packet to the third router.

14. The intermediary device of claim 13 , wherein said determining that the packet is to be routed via the third router instead of the second router comprises determining that a path to the network-layer destination address that passes through the second router has a fault.

15. The intermediary device of claim 14 , wherein said determining that the path to the network-layer destination address that passes through the second router has the fault comprises:

sending a probe packet along the path; and

determining that the path has the fault if a response to the probe packet includes an error message or if no response is received to the probe packet within a predetermined time period.

16. The intermediary device of claim 13 , wherein said determining that the packet is to be routed via the third router instead of the second router comprises:

determining a network flow associated with the packet; and

using a path selection table to determine that the third router is associated with the network flow.

17. The intermediary device of claim 16 , further comprising creating the path selection table based on a path selection policy that specifies that packets belonging to the network flow are to be routed via a path that passes through the third router.

18. The intermediary device of claim 17 , wherein said creating the path selection table comprises:

for a first packet in a set of packets,

analyzing the first packet to determine a first fingerprint associated with the first packet,

identifying a first application associated with the first fingerprint,

selecting a first path associated with the first application based on the path selection policy;

determining a first network flow associated with the first packet; and

storing an association between the first network flow and the first path in the path selection table.

Assignments (14)
RELEASE OF SECURITY INTEREST Recorded Aug 11, 2023
From: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC; RIVERBED HOLDINGS, INC.
Reel/Frame 064673/0739 →
CHANGE OF NAME Recorded Feb 18, 2022
From: RIVERBED TECHNOLOGY, INC.
To: RIVERBED TECHNOLOGY LLC
Reel/Frame 059232/0551 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0108 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS U.S. COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0169 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0046 →
SECURITY INTEREST Recorded Dec 10, 2021
From: RIVERBED TECHNOLOGY LLC (FORMERLY RIVERBED TECHNOLOGY, INC.); ATERNITY LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS U.S. COLLATERAL AGENT
Reel/Frame 058486/0216 →
PATENT SECURITY AGREEMENT Recorded Oct 27, 2021
From: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 057943/0386 →
PATENT SECURITY AGREEMENT SUPPLEMENT - SECOND LIEN Recorded Oct 14, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 057810/0559 →
PATENT SECURITY AGREEMENT SUPPLEMENT - FIRST LIEN Recorded Oct 14, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 057810/0502 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORED AT REEL 056397, FRAME 0750 Recorded Oct 13, 2021
From: MACQUARIE CAPITAL FUNDING LLC
To: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 057983/0356 →
SECURITY INTEREST Recorded May 26, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: MACQUARIE CAPITAL FUNDING LLC
Reel/Frame 056397/0750 →
PATENT SECURITY AGREEMENT Recorded Mar 5, 2021
From: RIVERBED TECHNOLOGY, INC.
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 055514/0249 →
PATENT SECURITY AGREEMENT Recorded Jul 10, 2019
From: RIVERBED TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 049720/0808 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2018
From: MODI, SUDEEP; WU, JOYU; GUPTA, ANOOP; SRINIVASAN, DEVANATH; LEVY, GABRIEL; NICCOLINI, LUCA; KUTTY, SARATH KUMAR SANKARAN
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 047684/0754 →
Continuity (3)
Continuation 14450033 · Aug 1, 2014
Provisional Application 61862388 · Aug 5, 2013
Related Publication 20170085468A1 · Mar 23, 2017