A packet duplication control system including an input port for receiving a packet and a plurality of output ports for outputting duplications of the packet is disclosed. The duplications can be suitable to support a virtual local area network (vlan) system. The duplications can be controlled by descriptors arranged in a linked-list table. Also, the descriptors can have encoding formats, such as contiguous range encoding, non-contiguous range encoding, and discrete encoding. Further, the linked-list table can include at least one shared descriptor.
|
1. A multicast packet duplication system, comprising:
an input port configured to receive a multicast packet including multicast address data;
a pointer table including a plurality of pointers that are selectable based upon the multicast address data, each pointer from among the plurality of pointers including a plurality of entries;
a linked-list table including a plurality of multicast descriptors that are identifiable by a corresponding entry from among the plurality of entries; and
a plurality of output ports configured to output a plurality of duplicates of the multicast packet based upon an identified multicast descriptor from among the plurality of multicast descriptors,
the plurality of duplicates being distributed on a per port basis on at least one of the plurality of the output ports based upon the identified multicast descriptor, rather than by distributing the packet on all of the plurality of output ports;
wherein at least one of the plurality of multicast descriptors is shared among multiple output ports from among the plurality of output ports.
3. A multicast packet duplication system, comprising:
an input port configured to receive a multicast packet including multicast address data;
a pointer table including a plurality of pointers that are selectable based upon the multicast address data, each pointer from among the plurality of pointers including a plurality of entries;
a linked-list table including one or more multicast virtual local area network (vlan) descriptors that are identifiable by a corresponding entry from among the plurality of entries; and
a plurality of output ports, coupled to one or more VLANs, configured to output a plurality of duplicates of the multicast packet to the one or more VLANs based upon an identified vlan multicast descriptor from among the one or more multicast vlan descriptors,
the plurality of duplicates being distributed on a per port basis on at least one of the plurality of the output ports based upon the identified vlan multicast descriptor, rather than by distributing the multicast packet on all of the plurality of output ports;
wherein at least one of the one or more multicast vlan descriptors is shared among multiple output ports of the plurality of output ports.
14. A multicast packet duplication system, comprising:
an input port configured to receive a multicast packet comprising multicast address data;
a memory including:
a multicast table including a plurality of first pointers that are selectable based upon the multicast address data, each first pointer from among the plurality of first pointers including a multicast descriptor,
a multicast virtual local area network (vlan) table including a plurality of second pointers that are selectable based upon a corresponding multicast descriptor of a corresponding first pointer from among the plurality of first pointers, each second pointer from among the plurality of second pointers including a plurality of entries, and
a vlan linked-list table including a plurality of multicast vlan descriptors that are identifiable by a corresponding entry from among the plurality of entries of a corresponding second pointer from among the plurality of second pointers; and
a plurality of output ports configured to receive a plurality of duplicates of the multicast packet on a per port basis at only those output ports designated in an identified multicast vlan descriptor from among the plurality of multicast vlan descriptors.
2. The multicast packet duplication system of
4. The multicast packet duplication system of
duplicating a first Lumber of the plurality of duplicates of the multicast packet on a first output port from among the plurality of output ports; and
duplicating a second number of the plurality of duplicates of the multicast packet on a second output port from among the plurality of output ports, the first number being different from the second number.
5. The multicast packet duplication system of
duplicating a first number of the plurality of duplicates of the multicast packet on a first output port from among the plurality of output ports; and
duplicating a second number of the plurality of duplicates of the multicast packet on a second output port from among the plurality of output ports, the first number being different from the second number.
6. The multicast packet duplication system of
a multicast table comprising a plurality of second pointers,
wherein each pointer from among plurality of second pointers is used to select a corresponding pointer from among the plurality of pointers.
7. The multicast packet duplication system of
8. The multicast packet duplication system of
9. The multicast packet duplication system of
10. The multicast packet duplication system of
a contiguous range encoding that includes a starting vlan indicator and an ending vlan indicator for a first set of multicast vlan descriptors from among the plurality of multicast vlan descriptors within the contiguous range;
a non-contiguous range encoding that includes information or data of a most significant bit (MSB) portion of a vlan indicator; and
a discrete encoding that includes a first vlan indicator and a second vlan indicator.
11. The multicast packet duplication system of
12. The multicast packet duplication system of
a multicast table comprising a plurality of second pointers,
wherein each pointer from among the plurality of second pointers links to a corresponding pointer from among the plurality of pointers.
13. The multicast packet duplication system of
a contiguous range encoding that includes a starting vlan indicator and an ending vlan indicator for a first set of multicast vlan descriptors or the one or more multicast vlan descriptors within the contiguous range;
a non-contiguous range encoding that includes information or data of a most significant bit (MSB) portion of a vlan indicator; and
a discrete encoding that includes a first vlan indicator and a second vlan indicator.
15. The multicast packet duplication system of
duplicating a first number of the plurality of duplicates on a first output port from among the plurality of output ports; and
duplicating a second number of the plurality of duplicates on a second output port from among the plurality of output ports, the first number being different from the second number.
16. The multicast packet duplication system of
17. The multicast packet duplication system of
18. The multicast packet duplication system of
19. The multicast packet duplication system of
20. The multicast packet duplication system of
|
The invention relates generally to the field of networking, and more particularly to packet duplication control.
In networking systems, routers and/or switches typically move packets of information from one of a number of input ports to one or more output ports. In many applications, such as multicasting, a packet may need to be duplicated on multiple output ports. Further, for support of Virtual Local Area Network (VLAN or “Vlan”) systems, a packet may need to be duplicated according to a wide variety of possibilities. In a typical Vlan system, 12-bits may be used to indicate a particular Vlan, so the number of possible distinct Vlans that need to be supported in the system can be as high as 4096. These requirements pose a challenge to architect the multicast packet duplication logic for Vlan systems where up to about 4K distinct Vlans can be supported per port while also maintaining the minimum duplication requirements.
A block diagram of a conventional router/switch port arrangement used for packet duplication for Vlan systems is shown in
Such a wide disparity of options is typically implemented in conventional approaches by simply expanding the memory used to cover all the possible cases, with little flexibility. However, such an inefficient use of memory is not desirable due to cost factors.
Consequently, what is needed is a solution that can control packet duplication in a flexible and memory efficient manner.
The invention provides a structure and method for controlling packet duplication in a flexible and memory efficient manner.
According to embodiments of the invention, a packet duplication system includes an input port for receiving a packet and a plurality of output ports for outputting duplications of the packet. The duplications can be suitable to support a Virtual Local Area Network (VLAN) system. The duplications can be controlled by descriptors arranged in a linked-list table. Also, the descriptors can have encoding formats, such as contiguous range encoding, non-contiguous range encoding, and discrete encoding. Further, the linked-list table can include at least one shared descriptor.
According to another aspect of the invention, a method of controlling a duplication of a packet includes receiving the packet, accessing a first pointer, accessing a second pointer, accessing a descriptor in response to the second pointer, and applying an encoding format for the duplication of the packet. The encoding format can include contiguous range encoding, non-contiguous range encoding, and/or discrete encoding. Further, the method can include the use of a hashing type function. The method can also be suitable to support a Virtual Local Area Network (VLAN) system.
The invention can provide a fully configurable and flexible duplication scheme. This approach allows for efficient use of on-chip memory for systems requiring a wide range of duplication options over multiple ports.
Embodiments of the invention are described with reference to the FIGS, in which:
Embodiments of the invention are described with reference to specific diagrams depicting system arrangements and methods. Those skilled in the art will recognize that the description is for illustration and to provide the best mode of practicing the invention. The description is not meant to be limiting. For example, reference is made to several types of packets and application systems, such as Virtual Local Area Network (VLAN or “Vlan”) systems, but the invention is applicable to other types of packets and/or systems as well. Further, pointer and/or descriptor table organization, including separate tables and the like, merely provide example implementations and should not be construed as limiting.
Referring now to
Referring now to
Next, a few example encoding formats will be described. Such formats can allow for optimized use of the available table space depending on the particular distribution of the Vlans in the system. Of course, other possible encoding formats can also be used according to embodiments.
Referring now to
Referring now to
Referring now to
Referring now to
Referring now to
Advantages of the invention include the control of packet duplication over a variety of output ports in a memory efficient and flexible manner.
Having disclosed exemplary embodiments and the best mode, modifications and variations may be made to the disclosed embodiments while remaining within the subject and spirit of the invention as defined by the following claims.
Malalur, Govind, Yang, Brian Hang Wai, Singh, Gaurav
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
5684800, | Nov 15 1995 | Extreme Networks, Inc | Method for establishing restricted broadcast groups in a switched network |
5929792, | Jun 30 1997 | Oracle America, Inc | Method and apparatus for encoding multiple character sets |
6553028, | Apr 30 1999 | Cisco Technology, Inc | Method and apparatus for multicast switching using a centralized switching engine |
6614787, | Mar 30 1999 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | System and method for efficiently handling multicast packets by aggregating VLAN context |
6775283, | Nov 16 1999 | GLOBALFOUNDRIES Inc | Passing vlan information through descriptors |
6963566, | May 10 2001 | Advanced Micro Devices, Inc. | Multiple address lookup engines running in parallel in a switch for a packet-switched network |
7397809, | Dec 13 2002 | Synaptics Incorporated | Scheduling methods for combined unicast and multicast queuing |
20020110139, | |||
20040264464, | |||
20050080869, | |||
20050083839, | |||
20050157741, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Oct 16 2003 | YANG, BRIAN HANG WEI | Raza Microelectronics, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014628 | /0169 | |
Oct 16 2003 | SINGH, GAURAV | Raza Microelectronics, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014628 | /0169 | |
Oct 16 2003 | MALALUR, GOVIND | Raza Microelectronics, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014628 | /0169 | |
Oct 17 2003 | NetLogic Microsystems, Inc. | (assignment on the face of the patent) | / | |||
Dec 26 2006 | Raza Microelectronics, Inc | VENTURE LENDING & LEASING IV, INC | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 019224 | /0254 | |
Dec 17 2007 | Raza Microelectronics, Inc | RMI Corporation | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 020886 | /0454 | |
Dec 29 2009 | RMI Corporation | NetLogic Microsystems, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 023926 | /0338 | |
Sep 02 2011 | VENTURE LENDING & LEASING, INC | NetLogic Microsystems, Inc | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 026855 | /0108 | |
Jan 23 2013 | NetLogic Microsystems, Inc | NETLOGIC I LLC | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 035443 | /0824 | |
Mar 27 2015 | NETLOGIC I LLC | Broadcom Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 035443 | /0763 | |
Feb 01 2016 | Broadcom Corporation | BANK OF AMERICA, N A , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 037806 | /0001 | |
Jan 19 2017 | BANK OF AMERICA, N A , AS COLLATERAL AGENT | Broadcom Corporation | TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS | 041712 | /0001 | |
Jan 20 2017 | Broadcom Corporation | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 041706 | /0001 | |
May 09 2018 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | MERGER SEE DOCUMENT FOR DETAILS | 047230 | /0910 | |
Sep 05 2018 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER IN THE INCORRECT US PATENT NO 8,876,094 PREVIOUSLY RECORDED ON REEL 047351 FRAME 0384 ASSIGNOR S HEREBY CONFIRMS THE MERGER | 049248 | /0558 | |
Sep 05 2018 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE MERGER PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0910 ASSIGNOR S HEREBY CONFIRMS THE MERGER | 047351 | /0384 |
Date | Maintenance Fee Events |
May 26 2017 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
May 24 2021 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Nov 26 2016 | 4 years fee payment window open |
May 26 2017 | 6 months grace period start (w surcharge) |
Nov 26 2017 | patent expiry (for year 4) |
Nov 26 2019 | 2 years to revive unintentionally abandoned end. (for year 4) |
Nov 26 2020 | 8 years fee payment window open |
May 26 2021 | 6 months grace period start (w surcharge) |
Nov 26 2021 | patent expiry (for year 8) |
Nov 26 2023 | 2 years to revive unintentionally abandoned end. (for year 8) |
Nov 26 2024 | 12 years fee payment window open |
May 26 2025 | 6 months grace period start (w surcharge) |
Nov 26 2025 | patent expiry (for year 12) |
Nov 26 2027 | 2 years to revive unintentionally abandoned end. (for year 12) |