IP Library Granted Patent US 8,443,103
Granted Patent B2
US 8,443,103 · App. 12/908,758 · Granted May 14, 2013

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 8,443,103
App. No.
12/908,758
Granted
May 14, 2013
Kind
B2
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 (121)

1. A method comprising:

by 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 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 towards 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 4 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:

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 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 13 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 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 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:

by 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:

by 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 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:

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 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 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 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:

by 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 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 (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 Mar 9, 2012
From: FOUNDRY NETWORKS, INC.
To: FOUNDRY NETWORKS, LLC
Reel/Frame 027840/0249 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2011
From: JAIN, NITIN; CHEN, LEE; FERGUSON, EARL; ZHU, MIN
To: FOUNDRY NETWORKS, INC.
Reel/Frame 026246/0627 →