In-line packet processing
First Claim
1. A device, comprising:
- an input queue to store a data packet;
a buffer to store a plurality of data blocks from the data packet,a data block, of the plurality of data blocks, being associated with a first data size; and
a processor to;
identify control information included in the data block,modify the data block to remove, from the data block, the identified control information,the identified control information being associated with a second data size,acquire, based on the first data size and the second data size, additional data included in the data packet,the additional data being associated with a third data size,when acquiring the additional data, the processor is to;
select another data block of the plurality of data blocks,
the other data block being associated with a fourth data size that is greater than or equal to the third data size,
the other data block being selected when the fourth data size is less than the first data size, andobtain the additional data from the other data block, andadd the additional data to the modified data block.
0 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for in-line processing a data packet while routing the packet through a router in a system transmitting data packets between a source and a destination over a network including the router. The method includes receiving the data packet and pre-processing layer header data for the data packet as the data packet is received and prior to transferring any portion of the data packet to packet memory. The data packet is thereafter stored in the packet memory. A routing through the router is determined including a next hop index describing the next connection in the network. The data packet is retrieved from the packet memory and a new layer header for the data packet is constructed from the next hop index while the data packet is being retrieved from memory. The new layer header is coupled to the data packet prior to transfer from the router.
83 Citations
17 Claims
-
1. A device, comprising:
-
an input queue to store a data packet; a buffer to store a plurality of data blocks from the data packet, a data block, of the plurality of data blocks, being associated with a first data size; and a processor to; identify control information included in the data block, modify the data block to remove, from the data block, the identified control information, the identified control information being associated with a second data size, acquire, based on the first data size and the second data size, additional data included in the data packet, the additional data being associated with a third data size, when acquiring the additional data, the processor is to; select another data block of the plurality of data blocks,
the other data block being associated with a fourth data size that is greater than or equal to the third data size,
the other data block being selected when the fourth data size is less than the first data size, andobtain the additional data from the other data block, and add the additional data to the modified data block. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method comprising:
-
dividing, by a network device, a data packet into a plurality of data blocks; storing, by the network device, the plurality of data blocks in a queue; storing, by the network device, codes for the plurality of data blocks, the codes including; first information associated with respective addresses, in the queue, of the plurality of data blocks, and second information associated with a sequence order, within the data packet, of the plurality of data blocks; removing, by the network device, control information from at least one data block of the plurality of data blocks; removing, by the network device, data from another data block of the plurality of data blocks; adding, by the network device and to the at least one data block, the data removed from the other data block, a size of the added data corresponding to a size of the removed control information modifying the codes based on removing the data from the other data block and adding the data to the at least one data block. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. A non-transitory computer readable medium storing instructions, the instructions comprising:
-
instructions which, when executed by a network device, cause the network device to store a plurality of data blocks of a data packet;
instructions which, when executed by the network device, cause the network device to store information for the plurality of data blocks in a queue,the information for the plurality of data blocks including; first information associated with respective addresses, in the queue, of the plurality of data blocks, and second information associated with a sequence order, within the data packet, of the plurality of data blocks; instructions which, when executed by the network device, cause the network device to remove header information from a data block, of the plurality of data blocks, to modify the data block; instructions which, when executed by the network device, cause the network device to remove data from another data block of the plurality of data blocks; instructions which, when executed by the network device, cause the network device to add the data, removed from the other data block, to the data block, a size of the added data corresponding to a size to the removed header information; and instructions which, when executed by the network device, cause the network device to modify the information for the plurality of data blocks based on removing the data from the other data block and adding the data to the data block. - View Dependent Claims (13, 14, 15, 16, 17)
-
Specification