Patent ID: 7801140

Claim:
A method, comprising: receiving, at a router device, a data packet at a buffer; dividing, by the router device, the data packet into cells; storing, via the router device, the cells in a first queue, where storing the cells further includes: identifying a layer two (L2) header in the data packet, removing the L2 header from at least one of the cells prior to storing the at least one of the cells in the first queue, transferring data from the buffer in one or more N byte blocks, where N is less than a particular number, determining that removing the L2 header would result in a resulting cell having less than the particular number of bytes, receiving an additional block of data, replacing, in response to determining that removing the L2 header would result in a cell having less than particular number of bytes, the data corresponding to the L2 header with data from the additional block of data sufficient to make the resulting cell have the particular number of bytes, and transferring leftover data from the additional block of data to an overflow queue, where the overflow queue is different from first queue; and storing, via the router device and for each of the cells, a cell state code that indicates an address of the corresponding cell in the first queue and an indication of a sequence order of the cell within the data packet.