IP Library Granted Patent US 10,187,293
Granted Patent B2
US 10,187,293 · App. 14/861,838 · Granted Jan 22, 2019

Apparatus and method for multicast data packet forwarding

Inventors: Donald B. Grosser (Apex, NC); Vanitha Neelamegam (Chennai, IN); Maruthamuthu Palani (Chennai, IN); Balasubramanian Ramu (Chennai, IN); Kannan Selvaraj (Chennai, IN)
Assignee: Extreme Networks, Inc.
H04L45/16H04L12/18H04L12/1886H04L12/4641H04L12/6418
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,187,293
App. No.
14/861,838
Granted
Jan 22, 2019
Kind
B2
Abstract

A switching device supports a mixed mode of operation using both layer 2 and layer 3 multicast forwarding tables for multicast forwarding of packets. In the mixed mode of operation the switching device programs multicast forwarding entries in a corresponding layer 2 or layer 3 table depending on a type of protocol to be used for multicast forwarding. The switching device programs multicast forwarding entries in the layer 3 table for multicast packets forwarded using layer 3 routing protocols, and in the layer 2 table for multicast packets forwarded using layer 2 protocols. The switching device converts layer 3 multicast information to layer 2 multicast information before programming multicast forwarding entries in the corresponding layer 2 table.

Claims (51)

1. In a switching device, a method comprising:

receiving a request to program a multicast entry in a forwarding table for forwarding a data packet to multiple destinations, the forwarding table including a layer 2 table and a layer 3 table, the request associated with a layer 3 multicast group address;

identifying a protocol with which the request is associated, the protocol identified from among a plurality of protocols supported in the switching device;

determining a cache mode of the identified protocol to determine whether the identified protocol is associated with the layer 2 table or the layer 3 table;

in response to determining that the identified protocol is associated with the layer 2 table, converting the layer 3 multicast group address associated with the request into a layer 2 multicast group address;

programming the multicast entry for the layer 2 multicast group address associated with the request into the layer 2 table;

receiving a layer 3 multicast packet comprising a layer 3 address and a layer 2 address;

determining that the layer 3 address is not indicated in the layer 3 table;

in response to determining that the layer 3 address is not indicated in the layer 3 table, determining whether the layer 2 address of the layer 3 multicast packet is indicated by the multicast entry for the layer 2 multicast group address in the layer 2 table; and

in response to determining that the layer 2 address of the layer 3 multicast packet is indicated by the multicast entry for the layer 2 multicast group address in the layer 2 table, forwarding the layer 3 multicast packet based on the layer 2 multicast group address.

2. The method of claim 1 , further comprising:

determining whether the identified protocol with which the request is associated requires forwarding across VLANs based on mapping the identified protocol to a corresponding one of the layer 2 and layer 3 tables.

3. The method of claim 2 , wherein the mapping is encoded in a cache distribution table that maps each of the plurality of protocols supported in the switching device to the corresponding one of the layer 2 and layer 3 tables.

4. The method of claim 1 , wherein programming the multicast entry into the layer 3 table includes:

allocating a layer 3 index for insertion into the layer 3 table, the layer 3 index corresponding to the multicast group address; and

programming table entries corresponding to the allocated layer 3 index for an egress VLAN and port lists associated with the request.

5. The method of claim 1 , wherein programming the multicast entry into the layer 2 table includes:

converting the multicast group address associated with the request into a layer 2 multicast group address, the converted layer 2 multicast group address composed of a multicast group MAC address and egress VLAN associated with the request;

allocating a layer 2 index for insertion into the layer 2 table, the layer 2 index corresponding to the converted layer 2 multicast group address; and

programming egress table entries corresponding to the allocated layer 2 index for ports in port lists associated with the request.

6. The method of claim 5 , wherein programming the multicast entry into the layer 2 table further includes linking the multicast group address associated with the request with the converted layer 2 multicast group address.

7. The method of claim 1 , wherein the identified protocol requires forwarding across VLANs when the identified protocol is any one of a Protocol Independent Multicast (PIM), Multicast VLAN Registration (MVR) and Private VLAN protocols.

8. The method of claim 1 , wherein the identified protocol does not require forwarding across VLANs when the identified protocol is a snooping protocol, the snooping protocol including any one of an Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) snooping protocol.

9. The method of claim 1 , wherein the multicast entry is programmed into the layer 2 table as a static entry.

10. The method of claim 1 , further comprising searching for a Virtual Local Area Network Identifier (VLAN ID) associated with the request in the layer 2 table.

11. An article of manufacture comprising:

a non-transitory computer-readable medium including instructions that, when executed on a computer processor, cause the processor to:

receive a request to program a multicast entry in a forwarding table for forwarding a data packet to multiple destinations, the forwarding table including a layer 2 table and a layer 3 table, the request associated with a multicast group address;

identify a protocol with which the request is associated, the protocol identified from among a plurality of protocols supported in a switching device;

determine a cache mode of the identified protocol to determine whether the identified protocol is associated with the layer 2 table or the layer 3 table;

in response to determining that the identified protocol is associated with the layer 2 table, convert the multicast group address associated with the request into a layer 2 multicast group address;

program the multicast entry for the layer 2 multicast group address associated with the request into the layer 2 table;

receive a layer 3 multicast packet comprising a layer 3 address and a layer 2 address;

determine that the layer 3 address is not indicated in the layer 3 table;

in response to determining that the layer 3 address is not indicated in the layer 3 table, determine whether the layer 2 address of the layer 3 multicast packet is indicated by the multicast entry for the layer 2 multicast group address in the layer 2 table; and

in response to determining that the layer 2 address of the layer 3 multicast packet is indicated by the multicast entry for the layer 2 multicast group address in the layer 2 table, forward the layer 3 multicast packet based on the layer 2 multicast group address.

12. The article of manufacture of claim 11 , wherein the instructions further cause the processor to:

determine whether the identified protocol with which the request is associated requires forwarding across VLANs based on mapping the identified protocol to a corresponding one of the layer 2 and layer 3 tables.

13. The article of manufacture of claim 12 , wherein the mapping is encoded in a cache distribution table that maps each of the plurality of protocols supported in the switching device to the corresponding one of the layer 2 and layer 3 tables.

14. The article of manufacture of claim 11 , wherein the instructions causing the processor to program the multicast entry into the layer 3 table include instructions to:

allocate a layer 3 index for insertion into the layer 3 table, the layer 3 index corresponding to the multicast group address; and

program table entries corresponding to the allocated layer 3 index for an egress VLAN and port lists associated with the request.

15. The article of manufacture of claim 11 , wherein the instructions causing the processor to program the multicast entry into the layer 2 table include instructions to:

convert the multicast group address associated with the request into a layer 2 multicast group address, the layer 2 multicast group address composed of a multicast group MAC address and egress VLAN associated with the request;

allocate a layer 2 index for insertion into the layer 2 table, the layer 2 index corresponding to the converted layer 2 multicast group address; and

program egress table entries corresponding to the allocated layer 2 index for ports in port lists associated with the request.

16. The article of manufacture of claim 15 , wherein programming the multicast entry into the layer 2 table further includes linking the multicast group address associated with the request with the converted layer 2 multicast group address.

17. The article of manufacture of claim 11 , wherein the identified protocol requires forwarding across VLANs when the identified protocol is any one of a Protocol Independent Multicast (PIM), Multicast VLAN Registration (MVR) and Private VLAN protocols.

18. The article of manufacture of claim 11 , wherein the identified protocol does not require forwarding across VLANs when the identified protocol is a snooping protocol, the snooping protocol including any one of an Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) snooping protocol.

19. The article of manufacture of claim 11 , wherein the multicast entry is programmed into the layer 2 table as a static entry.

20. The article of manufacture of claim 11 , wherein the instructions further cause the processor to search for a Virtual Local Area Network Identifier (VLAN ID) associated with the request in the layer 2 table.

Assignments (9)
RELEASE OF PATENT AND TRADEMARK SECURITY INTEREST AT REEL/FRAME NO. 46050/0546 Recorded Jul 30, 2026
From: BANK OF MONTREAL, AS AGENT
To: EXTREME NETWORKS, INC.
Reel/Frame 076081/0088 →
SECURITY INTEREST Recorded Jul 29, 2026
From: EXTREME NETWORKS, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 076078/0590 →
AMENDED SECURITY AGREEMENT Recorded Aug 18, 2023
From: EXTREME NETWORKS, INC.; AEROHIVE NETWORKS, INC.
To: BANK OF MONTREAL
Reel/Frame 064782/0971 →
RELEASE OF SECURITY INTEREST Recorded May 1, 2018
From: SILICON VALLEY BANK
To: EXTREME NETWORKS, INC.
Reel/Frame 046051/0775 →
SECURITY INTEREST Recorded May 1, 2018
From: EXTREME NETWORKS, INC.
To: BANK OF MONTREAL
Reel/Frame 046050/0546 →
THIRD AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Oct 31, 2017
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 044639/0300 →
SECOND AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Jul 14, 2017
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 043200/0614 →
AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Oct 31, 2016
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 040521/0762 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2016
From: GROSSER, DONALD B.; NEELAMEGAM, VANITHA; PALANI, MARUTHAMUTHU; RAMU, BALASUBRAMANIAN; SELVARAJ, KANNAN
To: EXTREME NETWORKS, INC.
Reel/Frame 038606/0953 →
Continuity (2)
Continuation 13842382 · Mar 15, 2013
Related Publication 20160014018A1 · Jan 14, 2016