MULTICAST ADDRESS LEARNING IN AN INPUT/OUTPUT ADAPTER OF A NETWORK PROCESSOR
First Claim
1. An apparatus for supporting multicast address learning for a packet to be sent to multiple destinations coupled to a network processor, the apparatus comprising:
- a task parameter decoder receiving the packet from a task ring interface of the network processor through a task start interface and determining at least one parameter of the packet including determining whether the packet corresponds to a multicast packet or a unicast packet;
a plurality of unlearned address counters recording a number of the packets that is in a flow to be multicast and determining whether the packet is being sent out;
a correlator determining destination addresses of the packet based on an output of a parsing and bridging logic for each packet to be generated and transmitted by the network processor;
a multicast replicator receiving the destination addresses determined by the correlator and replicating the packet multiple times based on a number of the destination addresses corresponding to the packet; and
a task generator generating a generated packet with a bitmap and sending out the generated packet to the I/O adaptor over the task ring interface,wherein the bitmap is analyzed in the I/O adaptor and multiple packets are created for transmitting to at least one processing module of the network processor for further processing based on the destination addresses determined by the correlator,wherein, if the task parameter decoder determines the packet is an unlearned packet, the unlearned address counter is incremented and the unlearned packet is sent back to a dedicated queue in the task start interface of the I/O adaptor over the task ring interface with an index to the bitmap for replicating by the multicast replicator, thereby reducing bandwidth for the replicating by replicating only header data of each multicast packet.
5 Assignments
0 Petitions
Accused Products
Abstract
An apparatus for supporting multicast address learning in a network processor includes a task parameter decoder receiving the packet and determining parameters of the packet, a plurality of unlearned address counters recording a number of the packets to be multicast, a correlator determining destination addresses of the packet, a multicast replicator replicating the packet multiple times, and a task generator generating a generated packet with a bitmap and sending out the generated packet to an I/O adaptor over a task ring interface of the network processor. If the packet is unlearned, the unlearned address counter is then incremented and the unlearned packet is sent back to a special queue in the I/O adaptor over the task ring interface with an index to the bitmap for replicating by the multicast replicator, after replicating, the unlearned address counter is decremented. Methods for replicating unlearned/learned multicast packets within a network processor are included.
44 Citations
32 Claims
-
1. An apparatus for supporting multicast address learning for a packet to be sent to multiple destinations coupled to a network processor, the apparatus comprising:
-
a task parameter decoder receiving the packet from a task ring interface of the network processor through a task start interface and determining at least one parameter of the packet including determining whether the packet corresponds to a multicast packet or a unicast packet; a plurality of unlearned address counters recording a number of the packets that is in a flow to be multicast and determining whether the packet is being sent out; a correlator determining destination addresses of the packet based on an output of a parsing and bridging logic for each packet to be generated and transmitted by the network processor; a multicast replicator receiving the destination addresses determined by the correlator and replicating the packet multiple times based on a number of the destination addresses corresponding to the packet; and a task generator generating a generated packet with a bitmap and sending out the generated packet to the I/O adaptor over the task ring interface, wherein the bitmap is analyzed in the I/O adaptor and multiple packets are created for transmitting to at least one processing module of the network processor for further processing based on the destination addresses determined by the correlator, wherein, if the task parameter decoder determines the packet is an unlearned packet, the unlearned address counter is incremented and the unlearned packet is sent back to a dedicated queue in the task start interface of the I/O adaptor over the task ring interface with an index to the bitmap for replicating by the multicast replicator, thereby reducing bandwidth for the replicating by replicating only header data of each multicast packet. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A multicast replication logic for supporting multicast address learning for a packet to be sent to multiple destinations coupled to a network processor, the multicast replication logic comprising:
-
a task parameter decoder receiving the packet from a task ring interface of the network processor through a task start interface and determining at least one parameter of the packet including determining whether the packet corresponds to a multicast packet or a unicast packet; a plurality of unlearned address counters recording a number of the packets that is in a flow to be multicast and determining whether the packet is being sent out; a correlator determining destination addresses of the packet based on an output of a parsing and bridging logic for each packet to be generated and transmitted by the network processor; a multicast replicator receiving the destination addresses determined by the correlator and replicating the packet multiple times based on a number of the destination addresses corresponding to the packet; and a task generator generating a generated packet with a bitmap and sending out the generated packet to the I/O adaptor over the task ring interface, wherein the bitmap is analyzed in the I/O adaptor and multiple packets are created for transmitting to at least one processing module of the network processor for further processing based on the destination addresses determined by the correlator, wherein, if the task parameter decoder determines the packet is an unlearned packet, the unlearned address counter is incremented and the unlearned packet is sent back to a dedicated queue in the task start interface of the I/O adaptor over the task ring interface with an index to the bitmap for replicating by the multicast replicator, thereby reducing bandwidth for the replicating by replicating only header data of each multicast packet. - View Dependent Claims (19, 20, 21)
-
-
22. A multicast network processor system comprising:
-
a task ring interface including at least one input/output (I/O) interface, at least one microprocessor and at least one hardware accelerator; and a switch coupled to the task ring interface and a shared memory, wherein the task ring interface is coupled through the switch to the shared memory, wherein the at least one I/O adaptor includes a multicast replication logic generating at least one multicast launch packet within the multicast network processor system, the multicast replication logic comprising; a task parameter decoder receiving the packet from a task ring interface of the network processor through a task start interface and determining at least one parameter of the packet including determining whether the packet corresponds to a multicast packet or a unicast packet; a plurality of unlearned address counters recording a number of the packets that is in a flow to be multicast and determining whether the packet is being sent out; a correlator determining destination addresses of the packet based on an output of a parsing and bridging logic for each packet to be generated and transmitted by the network processor; a multicast replicator receiving the destination addresses determined by the correlator and replicating the packet multiple times based on a number of the destination addresses corresponding to the packet; and a task generator generating a generated packet with a bitmap and sending out the generated packet to the I/O adaptor over the task ring interface, wherein the bitmap is analyzed in the I/O adaptor and multiple packets are created for transmitting to at least one processing module of the network processor for further processing based on the destination addresses determined by the correlator, wherein, if the task parameter decoder determines the packet is an unlearned packet, the unlearned address counter is incremented and the unlearned packet is sent back to a dedicated queue in the task start interface of the I/O adaptor over the task ring interface with an index to the bitmap for replicating by the multicast replicator, thereby reducing bandwidth for the replicating by replicating only header data of each multicast packet. - View Dependent Claims (23, 24, 25)
-
-
26. A method for replicating unlearned multicast packets within a network processor comprising:
-
receiving packet information on packet destinations from an I/O adaptor of a task ring interface and determining destination addresses by a correlator and sending the destination addresses to a multicast replicator; incrementing an unlearned address counter; sending the unlearned multicast packet back to a dedicated queue in the I/O adaptor over the task ring interface with a bitmap; analyzing the bitmap in the I/O adaptor; replicating a header of the unlearned multicast packet by the multicast replicator; decrementing the unlearned address counter after replicating; generating a generated packet through a task generator; and sending the generated packet back to the task ring interface with an index to the bitmap and creating a multicast launch packet thereon to at least one processing module of the network processor for further processing. - View Dependent Claims (27, 28, 29, 30)
-
-
31. A method for replicating learned multicast packets within a network processor comprising:
-
receiving packet information on packet destinations from an I/O adaptor of a task ring interface and determining destination addresses by a correlator and sending the destination addresses to a multicast replicator; sending the learned multicast packet back to a special queue in the I/O adaptor over the task ring interface with a bitmap; analyzing the bitmap in the I/O adaptor; replicating a header the learned multicast packet by the multicast replicator; generating a generated packet through a task generator; and sending the generated packet back to the task ring interface with an index to the bitmap and creating a multicast launch packet thereon to at least one processing module of the network processor for further processing. - View Dependent Claims (32)
-
Specification