Merging Result from a Parser in a Network Processor with Result from an External Coprocessor
First Claim
1. A method for managing in a network processor results from a parser analyzing an incoming data packet, the method comprising:
- enqueueing in a result queue a parser result coming from the parser, wherein the parser result indicates whether the parser result is complete or needs to be completed by a coprocessor result;
enqueuing in an additional queue an entry containing an address of the entry in the result queue and the indication that the parser result is complete or needs to be completed;
determining whether a first entry in the additional queue refers to a parser result to be completed; and
responsive to determining the first entry in the additional queue refers to a parser result to be completed, responsive to receiving a coprocessor result in a response register, merging the coprocessor result from the response register with a parser result read from the result queue using the address from the first entry in the additional queue to form a completed result, writing the completed result in the result queue, and exposing the completed result to a dequeue and sequential sending process for further processing by the network processor.
1 Assignment
0 Petitions
Accused Products
Abstract
A mechanism is provided for merging in a network processor results from a parser and results from an external coprocessor providing processing support requested by said parser. The mechanism enqueues in a result queue both parser results needing to be merged with a coprocessor result and parser results which have no need to be merged with a coprocessor result. An additional queue is used to enqueue the addresses of the result queue where the parser results are stored. The result from the coprocessor is received in a simple response register. The coprocessor result is read by the result queue management logic from the response register and merged to the corresponding incomplete parser result read in the result queue at the address enqueued in the additional queue.
2 Citations
21 Claims
-
1. A method for managing in a network processor results from a parser analyzing an incoming data packet, the method comprising:
-
enqueueing in a result queue a parser result coming from the parser, wherein the parser result indicates whether the parser result is complete or needs to be completed by a coprocessor result; enqueuing in an additional queue an entry containing an address of the entry in the result queue and the indication that the parser result is complete or needs to be completed; determining whether a first entry in the additional queue refers to a parser result to be completed; and responsive to determining the first entry in the additional queue refers to a parser result to be completed, responsive to receiving a coprocessor result in a response register, merging the coprocessor result from the response register with a parser result read from the result queue using the address from the first entry in the additional queue to form a completed result, writing the completed result in the result queue, and exposing the completed result to a dequeue and sequential sending process for further processing by the network processor. - View Dependent Claims (3, 4, 5, 6, 7)
-
-
2. (canceled)
-
8. (canceled)
-
9. (canceled)
-
10. A network processor comprising:
-
a processor bus; at least one processor connected to the processor bus; and a network adapter connected to the processor bus and an external coprocessor, wherein the network adapter comprises a result queue, an additional queue, a response register, a parser, and result queue management logic, wherein the result queue management logic enqueues in the result queue a parser result coming from the parser, wherein the parser result indicates whether the parser result is complete or needs to be completed by a coprocessor result from the external coprocessor; wherein result queue management logic enqueues in the additional queue an entry containing an address of the entry in the result queue and the indication that the parser result is complete or needs to be completed; wherein the result queue management logic determines whether a first entry in the additional queue refers to a parser result to be completed; and wherein responsive to determining the first entry in the additional queue refers to a parser result to be completed and responsive to receiving a coprocessor result in a response register, the result queue management logic merges the coprocessor result from the response register with a parser result read from the result queue using the address from the first entry in the additional queue to form a completed result, writes the completed result in the result queue, and exposes the completed result to a dequeue and sequential sending process for further processing by the network processor. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A computer program product comprising a computer readable storage medium having a computer readable program stored therein, wherein the computer readable program, when executed on a network adapter in a network processor, causes the network adapter to:
-
enqueue in a result queue a parser result coming from a parser, wherein the parser result indicates whether the parser result is complete or needs to be completed by a coprocessor result from the external coprocessor; enqueue in an additional queue an entry containing an address of the entry in result queue and the indication that the parser result is complete or needs to be completed; determine whether a first entry in the additional queue refers to a parser esult to be completed; and responsive to determining the first entry in the additional queue refers to a parser result to be completed and responsive to receiving a coprocessor result in a response register, merge the coprocessor result from the response register with a parser result read from the result queue using the address from the first entry in the additional queue to form a completed result, write the completed result in the result queue, and expose the completed result to a dequeue and sequential sending process for further processing by the network processor. - View Dependent Claims (17, 18, 19, 20, 21)
-
Specification