IP Library › Granted Patent US 7,586,895
Granted Patent B2
US 7,586,895 · App. 11/096,738 · Granted Sep 8, 2009

Performing extended lookups on MAC-based tables including level 3 multicast group destination addresses

Assignee: Cisco Technology, Inc.
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,586,895
App. No.
11/096,738
Granted
Sep 8, 2009
Kind
B2
Abstract

A method, system, and computer program product are presented to optimize OSI Level 2 switch forwarding of frames comprising IP addresses, 802.1 QinQ VLAN identifiers, multi-protocol label switching labels, and any other usable information meaningful to derive an L2 forwarding result on frames. In one embodiment, a 16-bit key is included as a prefix to a 48-bit OSI Level 2 address entry, thereby allowing the inclusion of a 32-bit OSI Level 3 address in the lookup table (e.g., a complete IP version 4 address). Implementations of such a solution are presented to resolve address aliasing issues experienced with multicast group destination addresses, including single source multicast. Solutions to optimizing forwarding of frames in an IEEE 802.1 QinQ environment are also presented. A result of these implementations can be reduction of the amount of unnecessary network traffic generated by a network switch incorporating such an OSI Level 2 address lookup table.

Claims (126)

1. A method implemented by a network device using an OSI Level 2 address table, said method comprising:

forming, by the network device, an L2 group address (L2 GRP) comprising an OSI Level 3 multicast group destination address (L3 GDA) and a first key;

storing the L2 GRP in a first table entry of the OSI Level 2 address table;

setting a bit in the first key identifying that the first table entry comprises a multicast address;

reading, by the network device, a first OSI Level 3 group destination address from a multicast frame;

forming, by the network device, a first search term comprising

the first key, and

the first OSI Level 3 group destination address; and

comparing, by the network device, the first search term with the L2 GRP.

2. The method of claim 1 , wherein

the first key identifies the first table entry as containing the first L3 GDA.

3. The method of claim 1 further comprising:

transmitting the multicast frame via one or more ports of the network device designated in the first table entry, if said comparing the first search term with the L2 GRP results in a match.

4. The method of claim 1 further comprising:

forming, by the network device, an L2 source address (L2 SRC) comprising a first OSI Level 3 multicast source address (L3 SRC) and a second key; and

storing the L2 SRC in a second table entry of the OSI Level 2 address table.

5. The method of claim 4 further comprising:

if the first search term matches L2 GRP,

forming, by the network device, a second search term comprising

an index of the first table entry, and

an OSI Level 3 source address from the multicast frame; and

comparing, by the network device, the second search term with L2 SRC.

6. The method of claim 5 further comprising:

transmitting the multicast frame via one or more ports of the network device designated in the second table entry, if said comparing the second search term with the L2 SRC results in a match.

7. A method implemented by a network device using an OSI Level 2 address table, said method comprising:

forming, by the network device, an L2 group address (L2 GRP) comprising an OSI Level 3 multicast group destination address (L3 GDA) and a first key;

storing the L2 GRP in a first table entry of the OSI Level 2 address table;

the first key identifies the first table entry as containing the first L3 GDA;

storing a first provider virtual LAN (PE_VLAN) identifier in the first table entry; and

storing a first customer virtual LAN (CE_VLAN) identifier in a third table entry of the OSI Level 2 address table.

8. The method of claim 7 further comprising:

reading, by the network device, a second OSI Level 3 group destination address from a QinQ formatted multicast frame;

forming, by the network device, a third search term comprising

the first key, and

the second OSI Level 3 group destination address; and

comparing, by the network device, the third search term and a first VLAN designator from the QinQ formatted multicast frame with L2 GRP and the PE_VLAN identifier in the first table entry; and

if the third search term and the first VLAN designator match L2 GRP and the PE_VLAN identifier,

forming, by the network device, a fourth search term comprising

an index of the first table entry, and

a second VLAN identifier from the QinQ formatted multicast frame, and

comparing, by the network device, the fourth search term with a second key and the CE_VLAN identifier stored in the third table entry, and

transmitting data from the QinQ formatted multicast packet to one or more network switch ports of the network device designated in the third table entry, if the fourth search term matches the second key and the CE_VLAN.

9. A computer-readable storage medium storing program instructions executable by a network device using an OSI Level 2 address table to perform steps comprising:

forming an L2 group address (L2 GRP) comprising an OSI Level 3 multicast group destination address (L3 GDA) and a first key; and

storing the L2 GRP in a first table entry of an OSI Level 2 address table;

reading a first OSI Level 3 group destination address from a multicast frame;

forming a first search term comprising

the first key, and

the first OSI Level 3 group destination address;

comparing the first search term with the L2 GRP; and

transmitting the multicast frame via one or more ports designated in the first table entry, if said comparing the first search tem with the L2 GRP results in a match.

10. The computer-readable storage medium of claim 9 storing program instructions executable by the network device to perform steps further comprising:

forming an L2 source address (L2 SRC) comprising a first OSI Level 3 multicast source address (L3 SRC) and a second key;

storing the L2 SRC in a second table entry of the OSI Level 2 address table;

in response to said comparing the first search term with the L2 GRP resulting in a match:

forming a second search term comprising

an index of the first table entry, and

an OSI Level 3 source address from the multicast packet;

comparing the second search term with L2 SRC; and

transmitting the multicast frame via one or more ports designated in the second table entry, if the second search term and L2 SRC match.

11. A computer-readable storage medium storing program instructions executable by a network device using an OSI Level 2 address table to perform steps comprising:

forming an L2 group address (L2 GRP) comprising an OSI Level 3 multicast group destination address (L3 GDA) and a first key;

storing the L2 GRP in a first table entry of an OSI Level 2 address table;

storing a first provider virtual LAN (PE_VLAN) identifier in the first table entry;

storing a first customer virtual LAN (CE_VLAN) identifier in a third table entry of the OSI Level 2 address table;

reading a second OSI Level 3 group destination address from a QinQ formatted multicast frame;

forming a third search term comprising

the first key, and

the second OSI Level 3 group destination address;

comparing the third search term and a first VLAN designator from the QinQ formatted multicast frame with L2 GRP and the PE_VLAN identifier in the first table entry; and

in response to said comparing resulting in a match:

forming a fourth search term comprising

an index of the first table entry, and

a second VLAN identifier from the QinQ formatted multicast frame,

comparing the fourth search term with a second key and the CE_VLAN identifier stored in the third table entry, and

transmitting data from the QinQ formatted multicast frame to one or more network switch ports designated in the third table entry, if the fourth search term matches the second key and CE_VLAN identifier stored in the third table entry.

12. A system comprising:

a first processor configured to generate an OSI Level 2 address table comprising a first table entry, wherein

the first table entry includes an L2 group address (L2 GRP) comprising an OSI Level 3 multicast group destination address (L3 GDA) and a first key, wherein

a bit in the first key identifies that the first table entry comprises a multicast address;

a memory, coupled to the first processor, and configured to store the OSI Level 2 address table;

a first port configured to receive a multicast frame; and

a second processor, coupled to the first port and the OSI Level 2 address table, and configured to

read a first OSI Level 3 group destination address from the multicast frame,

form a first search term comprising

the first key, and

the first OSI Level 3 group destination address, and

compare the first search term with the L2 GRP; and

a switch fabric, coupled to the second processor and the first port, and, in response to the first search term matching the L2 GRP, configured to replicate the multicast frame, and

transmit replicated multicast frames to one or more ports coupled to the switch fabric, wherein

the one or more ports coupled to the switch fabric are designated in the first table entry.

13. The system of claim 12 wherein the OSI Level 2 address table further comprises:

a second table entry including an L2 source address (L2 SRC) comprising a first OSI Level 3 multicast source address (L3 SRC) and a second key.

14. The system of claim 13 further comprising:

the second processor, in response to the first search term matching L2 GRP, further configured to

form a second search term comprising

an index of the first table entry, and

an OSI Level 3 source address from the multicast frame, and

compare the second search term with L2 SRC; and

the switch fabric, in response to the second search term matching L2 SRC, further configured to

replicate the multicast frame, and

transmit replicated multicast frames to one or more ports coupled to the switch fabric, wherein

the one or more ports coupled to the switch fabric are designated in the second table entry.

15. A system comprising:

a first processor configured to generate an OSI Level 2 address table comprising a first table entry, wherein

the first table entry includes an L2 group address (L2 GRP) comprising an OSI Level 3 multicast group destination address (L3 GDA) and a first key, wherein

a bit in the first key identifies that the first table entry comprises a multicast address;

a memory, coupled to the first processor, and configured to store the OSI Level 2 address table;

the first table entry further includes a first provider virtual LAN (PE_VLAN) identifier; and

a third table entry including a first customer virtual LAN (CE_VLAN) identifier.

16. The system of claim 15 further comprising:

a second port configured to receive a QinQ formatted frame;

a third processor, coupled to the first port and the OSI Level 2 address table, and configured to

read a second OSI Level 3 group destination address from the QinQ formatted frame,

form a third search term comprising

the first key, and

the second OSI Level 3 group destination address, and

compare the third search term and a first VLAN designator from the QinQ formatted frame with L2 GRP and the PE_VLAN identifier in the first table entry, and

if the third search term and the first VLAN designator match L2 GRP and the PE_VLAN identifier,

form a fourth search term comprising

an index of the first table entry, and

a second VLAN identifier from the QinQ formatted frame, and

compare the fourth search term with a second key and the CE_VLAN identifier stored in the third table entry; and

a switch fabric, coupled to the third processor and the second port, and, in response to the fourth search term matching the second key and the CE_VLAN, configured to

transmit the QinQ formatted frame to one or more ports coupled to the switch fabric, wherein

the one or more ports coupled to the switch fabric are designated in the third table entry.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2005
From: BORGIONE, GAETANO
To: CISCO TECHNOLOGY, INC.
Reel/Frame 016475/0494 →
Continuity (1)
Related Publication 20060221960A1 · Oct 5, 2006