IP Library Granted Patent US 7,974,284
Granted Patent B2
US 7,974,284 · App. 10/874,550 · Granted Jul 5, 2011

Single and double tagging schemes for packet processing in a network device

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,974,284
App. No.
10/874,550
Granted
Jul 5, 2011
Kind
B2
Abstract

A method of handling datagrams in a network device is disclosed. The method includes the steps of receiving an incoming datagram at a port of the network device, determining a type for the incoming datagram based on fields in the incoming datagram and a destination address, adding a tag to the datagram to assist in routing the datagram, obtaining a multiprotocol label switching (MPLS) label when the datagram is a MPLS datagram, processing the datagram based on the MPLS label and the destination address and discarding or forwarding the datagram based upon the processing step. The tag is stripped from the datagram before it is sent from an egress port of the network switch.

Claims (37)

1. A method performed by a network device, comprising: receiving an incoming datagram at a port of a network device;

comparing a destination address of an inner header of the datagram to a source address of an outer header of the datagram;

dropping the datagram if the destination address of the inner header is not the same as the source address of the outer header;

if the destination address of the inner header is the same as the source address of the outer header, determining, based on a multiprotocol label switching (MPLS) label stack included in the datagram, a number of tags in the MPLS label stack;

if it is determined that the number of tags in the MPLS label stack is one, discarding a first number of bytes from the datagram;

if it is determined that the number of tags in the MPLS label stack is two, discarding a second number of bytes from the datagram; and

if it is determined that the number of tags in the datagram is greater than two, dropping the datagram.

2. A method as recited in claim 1 , wherein the number of tags in the MPLS label stack is two, further comprising obtaining a tunnel label from the first tag in the MPLS label stack.

3. A method as recited in claim 2 , further comprising obtaining a virtual channel (VC) label from the second tag in the MPLS label stack.

4. A method as recited in claim 1 , wherein the number of tags in the MPLS label stack is one, further comprising obtaining a virtual channel label from the tag in the MPLS label stack.

5. A method as recited in claim 4 further comprising assigning a new virtual channel label based on a classification made of the datagram by a fast filtering processor.

6. A method as recited in claim 1 , wherein the receiving of the incoming datagram comprises receiving an incoming data packet.

7. An apparatus comprising: means for receiving an incoming datagram at a port of the network device;

means for comparing a destination address of an inner header of the datagram to a source address of an outer header of the datagram;

means for dropping the datagram if the destination address of the inner header is not the same as the source address of the outer header;

means for determining, based on a multiprotocol label switching (MPLS) label stack included in the datagram, a number of tags in the MPLS label stack, if the destination address of the inner header is the same as the source address of the outer header;

means for discarding a first number of bytes from the datagram if the number of tags in the MPLS label stack is determined to be one;

means for discarding a second number of bytes from the datagram if it is determined that the number of tags in the MPLS label stack is two; and

means for dropping the datagram if it is determined that the number of tags in the MPLS label stack is greater than two.

8. An apparatus as recited in claim 7 , further comprising:

means for obtaining a tunnel label from a first tag in the MPLS label stack of the datagram if it is determined that the number of tags in the MPLS label stack is two.

9. An apparatus as recited in claim 7 , wherein the incoming datagram comprises an incoming data packet.

10. An apparatus, comprising:

at least one data port interface configured to support a plurality of data ports, the plurality of data ports configured to transmit and receive data;

a memory configured to communicate with the at least one data port interface; and

a fast filtering processor configured to communicate with the at least one data port interface and the memory,

wherein the at least one data port interface is configured to:

compare a destination address of an inner header of the datagram to a source address of an outer header of the datagram;

drop the datagram if the destination address of the inner header is not the same as the source address of the outer header;

if the destination address of the inner header is the same as the source address of the outer header, determine, based on a multiprotocol label switching (MPLS) label stack included in the datagram, a number of tags in the MPLS label stack;

discard a first number of bytes from the datagram if it is determined that the number of tags in the MPLS label stack is one;

discard a second number of bytes from the datagram if it is determined that the number of tags in the MPLS label stack is two; and

drop the datagram if it is determined that the number of tags in the MPLS label stack is greater than two.

11. An apparatus as recited in claim 10 , wherein the at least one data port interface is configured to obtain a tunnel label in the first MPLS label of the datagram if the number of tags in the MPLS label stack is determined to be one.

12. An apparatus as recited in claim 11 , wherein the at least one data port interface is configured to process the datagram based on the tunnel label.

13. An apparatus as recited in claim 10 , wherein the at least one data port interface is configured to determine a virtual channel label from a tag in the MPLS label stack.

14. An apparatus as recited in claim 9 , wherein the fast filtering processor is configured to assign a new virtual channel label based on a classification made for the datagram.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 47630 FRAME: 344. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 21, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0267 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER TO 9/5/2018 PREVIOUSLY RECORDED AT REEL: 047196 FRAME: 0687. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047630/0344 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047196/0687 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE FIRST ASSIGNORS NAME. DOCUMENT PREVIOUSLY RECORDED AT REEL 015514 FRAME 0684. Recorded Apr 18, 2005
From: CHEN, YIH-CHUAN S.; DULL, JEFF
To: BROADCOM CORPORATION
Reel/Frame 016467/0299 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2004
From: CHIN, YIH-CHUAN S.; DULL, JEFF
To: BROADCOM CORPORATION
Reel/Frame 015514/0684 →