IP Library Granted Patent US 8,873,563
Granted Patent B2
US 8,873,563 · App. 12/610,143 · Granted Oct 28, 2014

Techniques for next-hop optimization

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 8,873,563
App. No.
12/610,143
Granted
Oct 28, 2014
Kind
B2
Abstract

Techniques for efficiently storing and using routing and associated next-hop information in a network device. The amount of next-hop information that is stored for routes in a routing table is reduced by reducing the amount of duplicate next-hop information that is stored by a network device.

Claims (33)

1. A network device comprising:

a memory configurable to:

store a routing table comprising a plurality of routes; and

store next-hop information associated with the routing table, the next-hop information comprising a set of two or more next-hops, each next-hop associated with an attribute, each next-hop associated with a set of one or more pairs, each pair identifying a link and an address, the set of two or more next-hops comprising a first next-hop associated with a first route in the plurality of routes, the first next-hop stored in a first portion of the memory, the attribute associated with the first next-hop set to a first value; and

a processor communicatively coupled to the memory, the processor configurable to:

associate a second route in the plurality of routes with the first next-hop stored in the first portion of the memory; and

associate a third route in the plurality of routes with a second next-hop stored in a second portion of the memory,

wherein the set of one or more pairs associated with the second next-hop is identical to the set of one or more pairs associated with the first next-hop, and the attribute associated with the second next-hop is set to a second value that is different from the first value, and

wherein when the set of one or more pairs associated with the second next-hop changes, the set of one or more pairs associated with the first next-hop does not change due to the second value being different from the first value.

2. The network device of claim 1 wherein the processor is configurable to:

determine a first set of pairs for the second route; and

determine whether the set of two or more next-hops comprises a next-hop that comprises exactly the first set of pairs.

3. The network device of claim 2 wherein the processor is configurable to determine that the first next-hop comprises exactly the first set of pairs.

4. The network device of claim 1 wherein the number of next-hops in the set of two or more next-hops is less than the number of routes in the plurality of routes.

5. A computer-readable memory comprising a plurality of instructions for controlling a processor to store information used for forwarding data packets received by a network device, the plurality of instructions comprising:

instructions that cause the processor to store a routing table comprising a plurality of routes;

instructions that cause the processor to store next-hop information associated with the routing table, the next-hop information comprising a set of two or more next-hops, each next-hop associated with an attribute, each next-hop associated with a set of one or more pairs, each pair identifying a link and an address, the set of two or more next-hops comprising a first next-hop associated with a first route in the plurality of routes, the first next-hop stored in a first memory portion, the attribute associated with the first next-hop set to a first value;

instructions that cause the processor to associate a second route in the plurality of routes with the first next-hop stored in the first memory portion; and

instructions that cause the processor to associate a third route in the plurality of routes with a second next-hop stored in a second memory portion,

wherein the set of one or more pairs associated with the second next-hop is identical to the set of one or more pairs associated with the first next-hop, and the attribute associated with the second next-hop is set to a second value that is different from the first value, and

wherein when the set of one or more pairs associated with the second next-hop changes, the set of one or more pairs associated with the first next-hop does not change due to the second value being different from the first value.

6. The computer-readable memory of claim 5 wherein the plurality of instructions comprises:

instructions that cause the processor to determine a first set of pairs for the second route; and

instructions that cause the processor to determine whether the set of two or more next-hops comprises a next-hop that comprises exactly the first set of pairs.

7. The computer-readable memory of claim 6 wherein the instructions that cause the processor to determine whether the set of two or more next-hops comprises a next-hop that comprises exactly the first set of pairs comprises instructions that cause the processor to determine that the first next-hop comprises exactly the first set of pairs.

8. The computer-readable memory of claim 5 wherein the number of next-hops in the set of two or more next-hops is less than the number of routes in the plurality of routes.

9. A method comprising:

storing, in a network device, a routing table comprising a plurality of routes;

storing, in the network device, next-hop information associated with the routing table, the next-hop information comprising a set of two or more next-hops, each next-hop associated with an attribute, each next-hop associated with a set of one or more pairs, each pair identifying a link and an address, the set of two or more next-hops comprising a first next-hop associated with a first route in the plurality of routes, the first next-hop stored in a first memory portion of the network device, the attribute associated with the first next-hop set to a first value;

associating, by the network device, a second route in the plurality of routes with the first next-hop stored in the first memory portion of the network device; and

associating, by the network device, a third route in the plurality of routes with a second next-hop stored in a second memory portion of the network device,

wherein the set of one or more pairs associated with the second next-hop is identical to the set of one or more pairs associated with the first next-hop, and the attribute associated with the second next-hop is set to a second value that is different from the first value, and

wherein when the set of one or more pairs associated with the second next-hop changes, the set of one or more pairs associated with the first next-hop does not change due to the second value being different from the first value.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2018
From: BROCADE COMMUNICATIONS SYSTEMS LLC
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047270/0247 →
CHANGE OF NAME Recorded Dec 13, 2017
From: BROCADE COMMUNICATIONS SYSTEMS, INC.
To: BROCADE COMMUNICATIONS SYSTEMS LLC
Reel/Frame 044891/0536 →
RELEASE OF SECURITY INTEREST Recorded Jan 22, 2015
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: BROCADE COMMUNICATIONS SYSTEMS, INC.; FOUNDRY NETWORKS, LLC
Reel/Frame 034804/0793 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2010
From: SEN, SIDDHARTHA; ZHANG, YI; KARAMPURWALA, HASNAIN; SINGH, RAM DULAR
To: BROCADE COMMUNICATIONS SYSTEMS, INC.
Reel/Frame 023920/0648 →
SECURITY AGREEMENT Recorded Jan 20, 2010
From: BROCADE COMMUNICATIONS SYSTEMS, INC.; FOUNDRY NETWORKS, LLC; INRANGE TECHNOLOGIES CORPORATION; MCDATA CORPORATION; MCDATA SERVICES CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 023814/0587 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2009
From: SEN, SIDDHARTHA; ZHANG, YI; KARAMPURWALA, HASNAIN; SINGH, RAM DULAR
To: BROCADE COMMUNICATIONS SYSTEMS, INC.
Reel/Frame 023547/0013 →