Network processor having multicasting protocol
US-9094219-B2 · Jul 28, 2015 · US
US9864633B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9864633-B2 |
| Application number | US-201514810039-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jul 27, 2015 |
| Priority date | Mar 8, 2013 |
| Publication date | Jan 9, 2018 |
| Grant date | Jan 9, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
An network processor is described that is configured to multicast multiple data packets to one or more engines. In one or more implementations, the network processor includes an input/output adapter configured to parse a plurality of tasks. The input/output adapter includes a multicast module configured to determine a reference count value based upon a maximum multicast value of the plurality of tasks. The input/output adapter is also configured to set a reference count decrement value within the control data portion of the plurality of tasks. The reference count decrement value is based upon the maximum multicast value. The input/output adapter is also configured to decrement the reference count value by a corresponding reference count decrement value upon receiving an indication from an engine.
Opening claim text (preview).
The invention claimed is: 1. One or more non-transitory, computer-readable media having stored therein a plurality of instructions that, when executed, cause a network processor to: parse a plurality of data packet copies, wherein the plurality of data packet copies include a control data portion and a data portion; set a reference count value prior to multicast transmission a plurality of data packet copies; set a decrement reference count value within the control data portion of each one of the plurality of data packet copies; determine whether an indication to decrement the reference count value has been received from one or more engines, the one or more engines configured to process one or more of the plurality of data packet copies; decrement the reference count value by the decrement reference count value after the indication is received, wherein the indication includes the decrement reference count value; and deallocate a corresponding block of memory when the reference count value is zero, the block of memory configured to store data representing the data multicast within the plurality of data packet copies. 2. The one or more non-transitory, computer-readable media of claim 1 , wherein the plurality of instructions, when executed, further cause the network processor to determine whether the reference count value is zero. 3. The one or more non-transitory, computer-readable media of claim 1 , wherein to deallocate a corresponding block of memory comprises to delete a linked list representing positions within shared memory of the stored data. 4. The one or more non-transitory, computer-readable media of claim 1 , wherein the initial reference count value comprises a maximum multicast value minus one. 5. The one or more non-transitory, computer-readable media of claim 1 , wherein the reference count decrement value for a first subset of the plurality of data packet copies is one and the reference count decrement value for a second subset of the plurality of data packet copies is the maximum multicast value minus a number of times each data packet copy within the plurality of data packet copies is multicast. 6. One or more non-transitory, computer-readable media having stored therein a plurality of instructions that, when executed, cause a network processor to: determine a reference count value based upon a maximum multicast value of the plurality of tasks; set a reference count decrement value within the control data portion of the plurality of tasks, the reference count decrement value based upon the maximum multicast value; and decrement the reference count value by a corresponding reference count decrement value upon receiving an indication from an engine, wherein the indication represents the engine has completed operations on at least one of the plurality of tasks and wherein the indication includes the reference count decrement value. 7. The one or more non-transitory, computer-readable media of claim 6 , wherein the plurality of instructions, when executed, further cause the network processor to multicast the plurality of tasks to one or more engines. 8. The one or more non-transitory, computer-readable media of claim 6 , wherein the initial reference count value comprises the maximum multicast value minus one. 9. The one or more non-transitory, computer-readable media of claim 6 , wherein the reference count decrement value for a first subset of the plurality of tasks is one and the reference count decrement value for a second subset of the plurality of data packets is the maximum multicast value minus a number of times each task within the plurality of tasks is multicast. 10. The one or more non-transitory, computer-readable media of claim 9 , wherein the first subset of the plurality of tasks is P minus one (P−1), where P is an integer value that represents a total number of tasks that comprises the plurality of tasks. 11. The one or more non-transitory, computer-readable media of claim 6 , wherein the plurality of instructions, when executed, further cause the network processor to maintain a linked list that represents a position of one or more blocks of data, wherein the one or more blocks of data includes data multicast within the plurality of tasks. 12. The one or more non-transitory, computer-readable media of claim 11 , wherein the plurality of instructions, when executed, further cause the network processor to deallocate the one or more blocks of data when the reference count value reaches zero. 13. The one or more non-transitory, computer-readable media of claim 6 , wherein the control data portion comprises a header portion of each one of the plurality of tasks. 14. One or more non-transitory, computer-readable media having stored therein a plurality of instructions that, when executed, cause a network processor to: parse a plurality of data packet copies, wherein the plurality of data packet copies include a control data portion and a data portion; determine a reference count value based upon a maximum multicast value of the plurality of data packet copies; set a reference count decrement value within the control data portion of the plurality of data packet copies, the reference count decrement value based upon the maximum multicast value; decrement the reference count value by a corresponding reference count decrement value in response to receipt of an indication from an engine, wherein the indication represents the engine has completed operations on at least one of the plurality of data packet copies and wherein the indication includes the reference count decrement value; and deallocate memory storing one or more blocks of data when the reference count is zero, wherein the one or more blocks of data represents data multicast within the plurality of data packet copies. 15. The one or more non-transitory, computer-readable media of claim 14 , wherein the plurality of instructions, when executed, further cause the network processor to multicast the plurality of data packet copies to one or more engines. 16. The one or more non-transitory, computer-readable media of claim 14 , wherein the initial reference count value comprises the maximum multicast value minus one. 17. The one or more non-transitory, computer-readable media of claim 14 , wherein the reference count decrement value for a first subset of the plurality of data packet copies is one and the reference count decrement value for a second subset of the plurality of data packet copies is the maximum multicast value minus a number of times each data packet copy within the plurality of data packet copies is multicast. 18. The one or more non-transitory, computer-readable media of claim 17 , wherein the first subset of the plurality of data packet copies is P minus one (P−1), where P is an integer value that represents a total number of data packet copies that comprises the plurality of data packet copies. 19. The one or more non-transitory, computer-readable media of claim 14 , wherein the plurality of instructions, when executed, further cause the network processor to maintain a linked list representing a position of one or more blocks of data, wherein the one or more blocks of data includes data multicast within the plurality of data packet copies. 20. The one or more non-transitory, computer-readable media of claim 14 , wherein the control data portion comprises a header portion of each one of the plurality of data packet copies.
with traffic restrictions for efficiency improvement, e.g. involving subnets or subdomains · CPC title
where the program performs an interfacing function, e.g. device driver (G06F13/105 takes precedence; contention policies within device drivers G06F9/4881; scheduling within device drivers G06F9/52) · CPC title
for broadcast or conference {, e.g. multicast} · CPC title
Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.