IP Library Granted Patent US 7,877,508
Granted Patent B1
US 7,877,508 · App. 12/152,617 · Granted Jan 25, 2011

Method and system for intelligently forwarding multicast packets

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 7,877,508
App. No.
12/152,617
Granted
Jan 25, 2011
Kind
B1
Abstract

A routing system utilizes a layer 2 switch interconnecting several routers to intelligently forward multicast packets throughout an internet exchange carrying multicast content. The layer 2 switch performs protocol snooping to extract a lookup key that is based on network layer protocol information. The lookup key is uniquely formulated to support either shared or explicit source distribution trees. The lookup key is used to query a forwarding memory that returns an outgoing port index. The outgoing port index points to one or more outgoing ports that are eligible to receive the multicast packet. The outgoing ports are also connected to the neighboring device(s) that are designated to receive the multicast packet. The routing system also supports real time maintenance and updating of the forwarding memory based on the periodic exchange of control messages. The routing system is configured to support PIM routers operating in PIM SM or PIM SSM modes. However, the routing system can also support other multicast protocols and/or standards.

Claims (122)

1. A method comprising:

at an incoming port of a network device configured to perform layer 2 packet switching within a Virtual Local Area Network (VLAN), examining a multicast content message; and

identifying one or more outgoing ports of the device based at least in part on:

network layer information extracted from the multicast content message, the network layer information comprising a multicast group address comprising a destination Internet Protocol (IP) address; and

forwarding information stored in one or more memories of the network device, the forwarding information previously generated based on examination, by the device, of multicast control messages exchanged by multicast routers in the VLAN, the identifying for use in forwarding the multicast content message from the incoming port towards the one or more outgoing ports, the forwarding information comprising information for identifying the one or more outgoing ports based at least in part on the multicast group address.

2. The method of claim 1 wherein the forwarding information indicates one or more ports of the device that are connected to a neighboring device that directly or indirectly services members of a multicast group.

3. The method of claim 1 wherein the forwarding information further comprises a physical address derived from the multicast group address.

4. The method of claim 1 wherein the multicast control messages comprise multicast Hello messages and multicast Join/Prune messages.

5. The method of claim 3 wherein the forwarding information further comprises:

a discovery list for storing neighbor information for multicast routers;

a forwarding CAM to return an outgoing port index corresponding to the physical address; and

an outgoing port lookup table to return one or more outgoing ports for an outgoing port index.

6. The method of claim 1 wherein the forwarding information further comprises:

a discovery list for storing neighbor information for multicast routers;

a forwarding CAM to return an outgoing port index corresponding to a multicast group address; and

an outgoing port lookup table to return one or more outgoing ports for an outgoing port index.

7. The method of claim 3 wherein the physical address comprises a Media Access Control (MAC) address.

8. The method of claim 1 wherein the forwarding information further comprises:

a source address, a destination address, a protocol type, an incoming port, and a corresponding outgoing port index.

9. The method of claim 1 wherein the forwarding information further comprises a protocol type.

10. An apparatus comprising:

a memory, the apparatus configured to perform layer 2 packet switching within a Virtual Local Area Network (VLAN); and

one or more processors configured to:

at an incoming port of the apparatus, examine a multicast content message; and

identify one or more outgoing ports of the apparatus based at least in part on:

network layer information extracted from the multicast content message, the network layer information comprising a multicast group address comprising a destination Internet Protocol (IP) address; and

forwarding information stored in one or more memories of the apparatus, the forwarding information previously generated based on examination, by the apparatus, of multicast control messages exchanged by multicast routers in the VLAN, the identifying for use in forwarding the multicast content message from the incoming port towards the one or more outgoing ports, the forwarding information comprising information for identifying the one or more outgoing ports based at least in part on the multicast group address.

11. The apparatus of claim 10 wherein the forwarding information indicates one or more ports of the apparatus that are connected to a neighboring device that directly or indirectly services members of a multicast group.

12. The apparatus of claim 10 wherein the forwarding information further comprises a physical address derived from the multicast group address.

13. The method of claim 10 wherein the multicast control messages comprise multicast Hello messages and multicast Join/Prune messages.

14. The apparatus of claim 12 wherein the forwarding

information further comprises:

a discovery list for storing neighbor information for multicast routers;

a forwarding CAM to return an outgoing port index corresponding to the physical address; and

an outgoing port lookup table to return one or more outgoing ports for an outgoing port index.

15. The apparatus of claim 10 wherein the forwarding information further comprises:

a discovery list for storing neighbor information for multicast routers;

a forwarding CAM to return an outgoing port index corresponding to a multicast group address; and

an outgoing port lookup table to return one or more outgoing ports for an outgoing port index.

16. The apparatus of claim 12 wherein the physical address comprises a Media Access Control (MAC) address.

17. The apparatus of claim 10 wherein the forwarding information further comprises:

a source address, a destination address, a protocol type, an incoming port, and a corresponding outgoing port index.

18. The apparatus of claim 10 wherein the forwarding information further comprises a protocol type.

19. An apparatus comprising:

a memory;

means for performing layer 2 packet switching within a Virtual Local Area Network (VLAN); and

means for, at an incoming port of the apparatus, examining a multicast content message; and

means for identifying one or more outgoing ports of the apparatus based at least in part on:

network layer information extracted from the multicast content message, the network layer information comprising a multicast group address comprising a destination Internet Protocol (IP) address; and

forwarding information stored in one or more memories of the apparatus, the forwarding information previously generated based on examination, by the apparatus, of multicast control messages exchanged by multicast routers in the VLAN, the identifying for use in forwarding the multicast content message from the incoming port towards the one or more outgoing ports, the forwarding information comprising information for identifying the one or more outgoing ports based at least in part on the multicast group address.

20. A nontransitory program storage device readable by a computer, embodying a program of instructions executable by the computer to perform a method, the method comprising:

at an incoming port of a network device configured to perform layer 2 packet switching within a Virtual Local Area Network (VLAN), examining a multicast content message; and

identifying one or more outgoing ports of the device based at least in part on:

network layer information extracted from the multicast content message, the network layer information comprising a multicast group address comprising a destination Internet Protocol (IP) address; and

forwarding information stored in one or more memories of the network device, the forwarding information previously generated based on examination, by the device, of multicast control messages exchanged by multicast routers in the VLAN, the identifying for use in forwarding the multicast content message from the incoming port towards the one or more outgoing ports, the forwarding information comprising information for identifying the one or more outgoing ports based at least in part on the multicast group address.

21. A method comprising:

at an incoming port of a network device configured to perform layer 2 packet switching within a Virtual Local Area Network (VLAN), examining a multicast content message; and

identifying one or more outgoing ports of the device based at least in part on:

network layer information extracted from the multicast content message, the network layer information comprising a multicast group address comprising a destination Internet Protocol (IP) address for neighboring multicast routers; and

forwarding information stored in one or more memories of the network device, the forwarding information previously generated based on examination, by the device, of multicast control messages exchanged by multicast routers in the VLAN, the identifying for use in forwarding the multicast content message from the incoming port towards the one or more outgoing ports, the forwarding information comprising information for identifying the one or more outgoing ports based at least in part on:

a source address;

a destination address; and

an incoming port.

22. The method of claim 21 wherein the forwarding information indicates one or more ports of the device that are connected to a neighboring device that directly or indirectly services members of a multicast group.

23. The method of claim 21 wherein the forwarding information further comprises a physical address derived from the multicast group address.

24. The method of claim 21 wherein the multicast control messages comprise multicast Hello messages and multicast Join/Prune messages.

25. The method of claim 23 wherein the forwarding information further comprises:

a discovery list for storing neighbor information for multicast routers;

a forwarding CAM to return an outgoing port index corresponding to the physical address; and

an outgoing port lookup table to return one or more outgoing ports for an outgoing port index.

26. The method of claim 21 wherein the forwarding information further comprises:

a discovery list for storing neighbor information for multicast routers;

a forwarding CAM to return an outgoing port index corresponding to a multicast group address; and

an outgoing port lookup table to return one or more outgoing ports for an outgoing port index.

27. The method of claim 23 wherein the physical address comprises a Media Access Control (MAC) address.

28. The method of claim 21 wherein the forwarding information further comprises:

a source address, a destination address, a protocol type, an incoming port, and a corresponding outgoing port index.

29. The method of claim 21 wherein the forwarding information further comprises a protocol type.

30. An apparatus comprising:

a memory, the apparatus configured to perform layer 2 packet switching within a Virtual Local Area Network (VLAN); and

one or more processors configured to:

at an incoming port of the apparatus, examine a multicast content message; and

identify one or more outgoing ports of the apparatus based at least in part on:

network layer information extracted from the multicast content message, the network layer information comprising a multicast group address comprising a destination Internet Protocol (IP) address for neighboring multicast routers; and

forwarding information stored in one or more memories of the apparatus, the forwarding information previously generated based on examination, by the apparatus, of multicast control messages exchanged by multicast routers in the VLAN, the identifying for use in forwarding the multicast content message from the incoming port towards the one or more outgoing ports, the forwarding information comprising information for identifying the one or more outgoing ports based at least in part on:

a source address;

a destination address; and

an incoming port.

31. The apparatus of claim 30 wherein the forwarding information indicates one or more ports of the apparatus that are connected to a neighboring device that directly or indirectly services members of a multicast group.

32. The apparatus of claim 30 wherein the forwarding information further comprises a physical address derived from the multicast group address.

33. The apparatus of claim 30 wherein the multicast control messages comprise multicast Hello messages and multicast Join/Prune messages.

34. The apparatus of claim 32 wherein the forwarding information further comprises:

a discovery list for storing neighbor information for multicast routers;

a forwarding CAM to return an outgoing port index corresponding to the physical address; and

an outgoing port lookup table to return one or more outgoing ports for an outgoing port index.

35. The apparatus of claim 30 wherein the forwarding information further comprises:

a discovery list for storing neighbor information for multicast routers;

a forwarding CAM to return an outgoing port index corresponding to a multicast group address; and

an outgoing port lookup table to return one or more outgoing ports for an outgoing port index.

36. The apparatus of claim 30 wherein the forwarding information further comprises a protocol type.

37. The apparatus of claim 32 wherein the physical address comprises a Media Access Control (MAC) address.

38. The apparatus of claim 30 wherein the forwarding information further comprises:

a source address, a destination address, a protocol type, an incoming port, and a corresponding outgoing port index.

39. The apparatus of claim 30 wherein the forwarding information further comprises a protocol type.

40. An apparatus comprising:

a memory;

means for performing layer 2 packet switching within a Virtual Local Area Network (VLAN); and

means for, at an incoming port of the apparatus, examining a multicast content message; and

means for identifying one or more outgoing ports of the device based at least in part on:

network layer information extracted from the multicast content message, the network layer information comprising a multicast group address comprising a destination Internet Protocol (IP) address for neighboring multicast routers; and

forwarding information stored in one or more memories of the apparatus, the forwarding information previously generated based on examination, by the apparatus, of multicast control messages exchanged by multicast routers in the VLAN, the identifying for use in forwarding the multicast content message from the incoming port towards the one or more outgoing ports, the forwarding information comprising information for identifying the one or more outgoing ports based at least in part on:

a source address;

a destination address; and

an incoming port.

41. A nontransitory program storage device readable by a computer, embodying a program of instructions executable by the computer to perform a method, the method comprising:

at an incoming port of a network device configured to perform layer 2 packet switching within a Virtual Local Area Network (VLAN), examining a multicast content message; and

identifying one or more outgoing ports of the device based at least in part on:

network layer information extracted from the multicast content message, the network layer information comprising a multicast group address comprising a destination Internet Protocol (IP) address for neighboring multicast routers; and

forwarding information stored in one or more memories of the network device, the forwarding information previously generated based on examination, by the device, of multicast control messages exchanged by multicast routers in the VLAN, the identifying for use in forwarding the multicast content message from the incoming port towards the one or more outgoing ports, the forwarding information comprising information for identifying the one or more outgoing ports based at least in part on:

a source address;

a destination address; and

an incoming port.

Assignments (7)
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 →
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 →
RELEASE OF SECURITY INTEREST Recorded Jan 21, 2015
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: BROCADE COMMUNICATIONS SYSTEMS, INC.; INRANGE TECHNOLOGIES CORPORATION; FOUNDRY NETWORKS, LLC
Reel/Frame 034792/0540 →
CHANGE OF NAME Recorded Jul 21, 2010
From: FOUNDRY NETWORKS, INC.
To: FOUNDRY NETWORKS, LLC
Reel/Frame 024733/0739 →
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 →
SECURITY AGREEMENT Recorded Dec 22, 2008
From: BROCADE COMMUNICATIONS SYSTEMS, INC.; FOUNDRY NETWORKS, INC.; INRANGE TECHNOLOGIES CORPORATION; MCDATA CORPORATION
To: BANK OF AMERICA, N.A. AS ADMINISTRATIVE AGENT
Reel/Frame 022012/0204 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2008
From: JAIN, NITIN; CHEN, LEE; FERGUSON, EARL; ZHU, MIN
To: FOUNDRY NETWORKS, INC.
Reel/Frame 021007/0076 →