IP Library Granted Patent US 9,143,335
Granted Patent B2
US 9,143,335 · App. 13/621,138 · Granted Sep 22, 2015

Multicast route cache system

Inventor: Ajeer Salil Pudiyapura (Sunnyvale, CA)
Assignee: Brocade Communications Systems, Inc.
H04L12/185H04L45/16H04L45/48H04L45/742
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 9,143,335
App. No.
13/621,138
Granted
Sep 22, 2015
Kind
B2
Abstract

Techniques for organizing and grouping memory contents related to multicast routing so as to enable more efficient multicast operations. For PIM multicast routing, techniques are provided for organizing and grouping multicast routing information into data structures according to a plurality of dimensions such that multicast routing cache entries are accessible when performing a multicast routing operation by traversing the one or more data structures according to at least two of the dimensions.

Claims (46)

1. A network device comprising:

a memory adapted to:

store multicast routing information including information about multicast routing cache entries;

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

generate a set of data structures based upon the multicast routing information; and

perform a multicast routing operation relating to one or more multicast routing cache entries, the performing comprising traversing one or more data structures in the set of data structures,

wherein the set of data structures includes at least a first data structure that is organized by a first dimension of a plurality of dimensions and a second data structure that is organized by a second dimension that differs from the first dimension in the plurality of dimensions; and

wherein the traversing comprises:

selecting a particular data structure from the set of data structures; and

traversing the particular data structure to locate one or more elements of the one or more multicast routing cache entries that satisfy specified criteria.

2. The network device of claim 1 wherein one or more data structures in the set of data structures represent a node of a tree structure based upon the multicast routing information.

3. The network device of claim 1 wherein a data structure in the set of data structures represents one of the following: a multicast routing cache entry, a multicast source, a multicast group, a rendezvous point, and a reverse path forwarding neighbor.

4. The network device of claim 1 wherein the plurality of dimensions include one or more of the following: multicast source, multicast group, rendezvous point, and reverse path forwarding neighbor.

5. The network device of claim 1 wherein the multicast routing operation is one of the following: searching for one or more multicast routing cache entries, traversing all multicast routing cache entries, processing a multicast route change, processing a rendezvous point up event, processing a rendezvous point down event, processing a reverse path forwarding neighbor up event, processing a reverse path forwarding neighbor down event, sending a Join/Prune message, and processing a Join/Prune message.

6. The network device of claim 1 wherein the performing comprises traversing the data structures according to ascending order of addresses of one of the following: multicast source, multicast group, rendezvous point, and reverse path forwarding neighbor.

7. The network device of claim 1 wherein the performing comprises traversing the data structures to perform a heuristic binary search for one or more of the following: a multicast routing cache entry, a multicast source, a multicast group, a rendezvous point, and a reverse path forwarding neighbor.

8. A method comprising:

storing multicast routing information including information about multicast routing cache entries;

generating a set of data structures based upon the multicast routing information; and

performing a multicast routing operation in response to an event affecting routing for one or more multicast routing cache entries, the performing comprising traversing one or more data structures in the set of data structures to identify the one or more multicast routing cache entries affected by the event,

wherein the set of data structures includes at least a first data structure that is organized by a first dimension of a plurality of dimensions and a second data structure that is organized by a second dimension that differs from the first dimension in the plurality of dimensions; and

wherein the traversing comprises:

selecting a particular data structure from the set of data structures; and

traversing the particular data structure to locate one or more elements of the one or more multicast routing cache entries that satisfy specified criteria.

9. The method of claim 8 wherein one or more data structures in the set of data structures represent a node of a tree structure based upon the multicast routing information.

10. The method of claim 8 wherein a data structure in the set of data structures represents one of the following: a multicast routing cache entry, a multicast source, a multicast group, a rendezvous point, and a reverse path forwarding neighbor.

11. The method of claim 8 wherein the plurality of dimensions include one or more of the following: multicast source, multicast group, rendezvous point, and reverse path forwarding neighbor.

12. The method of claim 8 wherein the multicast routing operation is one of the following: processing a multicast route change, processing a rendezvous point up event, processing a rendezvous point down event, processing a reverse path forwarding neighbor up event, processing a reverse path forwarding neighbor down event, and sending a Join/Prune message.

13. The method of claim 8 wherein the performing comprises traversing the data structures according to ascending order of addresses of one or more of the following: multicast source, multicast group, rendezvous point, and reverse path forwarding neighbor.

14. The method of claim 8 wherein the performing comprises traversing the data structures to perform a heuristic binary search for one or more of the following: a multicast routing cache entry, a multicast source, a multicast group, a rendezvous point, and a reverse path forwarding neighbor.

15. A computer-readable memory storing a plurality of instructions for controlling a router device, the plurality of instructions comprising:

instructions that cause a memory in the router device to store multicast routing information including information about multicast routing cache entries;

instructions that cause a processor in the router device to:

generate a set of data structures based upon the multicast routing information; and

perform a multicast routing operation relating to one or more multicast routing cache entries, the performing comprising traversing one or more data structures in the set of data structures,

wherein the set of data structures includes at least a first data structure that is organized by a first dimension of a plurality of dimensions and a second data structure that is organized by a second dimension that differs from the first dimension in the plurality of dimensions; and

wherein the traversing comprises:

selecting a particular data structure from the set of data structures; and

traversing the particular data structure to locate one or more elements of the one or more multicast routing cache entries that satisfy specified criteria.

16. The memory of claim 15 wherein one or more data structures in the set of data structures represent a node of a tree structure based upon the multicast routing information.

17. The memory of claim 15 wherein a data structure in the set of data structures represents one of the following: a multicast routing cache entry, a multicast source, a multicast group, a rendezvous point, and a reverse path forwarding neighbor.

18. The memory of claim 15 wherein the plurality of dimensions include one or more of the following: multicast source, multicast group, rendezvous point, and reverse path forwarding neighbor.

19. The memory of claim 15 wherein the multicast routing operation is one of the following: searching for one or more multicast routing cache entries, traversing all multicast routing cache entries, processing a multicast route change, processing a rendezvous point up event, processing a rendezvous point down event, processing a reverse path forwarding neighbor up event, processing a reverse path forwarding neighbor down event, sending a Join/Prune message, and processing a Join/Prune message.

20. The memory of claim 15 wherein the instructions that cause the processor to perform the multicast routing operation comprise instructions that cause the processor to traverse the data structures according to ascending order of addresses of one of the following: multicast source, multicast group, rendezvous point, and reverse path forwarding neighbor.

21. The memory of claim 15 wherein the instructions that cause the processor to perform the multicast routing operation comprise instructions that cause the processor to traverse the data structures to perform a heuristic binary search for one or more of the following: a multicast routing cache entry, a multicast source, a multicast group, a rendezvous point, and a reverse path forwarding neighbor.

22. The memory of claim 15 , wherein: selecting the particular data structure from the set of data structure comprises selecting a particular tree from a set of trees that includes at least a source tree that is organized primarily by a source dimension and a group tree that is organized primarily by a group dimension.

Assignments (3)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2012
From: PUDIYAPURA, AJEER SALIL
To: BROCADE COMMUNICATIONS SYSTEMS, INC.
Reel/Frame 029044/0604 →
Continuity (2)
Provisional Application 61535901 · Sep 16, 2011
Related Publication 20130070766A1 · Mar 21, 2013