Patent ID: 8392672

Claim:
A method comprising: receiving, by a network device and from an input/output (I/O) device associated with the network device, a request to store packet information in a first memory associated with the network device; determining, by the network device and based on the request, whether an unallocated N-level summary bit is included among a plurality of N-level summary bits of a register, the unallocated N-level summary bit indicating that a plurality of allocation bits include a quantity of unallocated allocation bits that is greater than a threshold; searching, by the network device and when the unallocated N-level summary bit is not included among the plurality of N-level summary bits, a plurality of first-level summary bits, stored in a second memory associated with the network device, to identify at least one unallocated first-level summary bit of the plurality of first-level summary bits; identifying, by the network device and when the unallocated N-level summary bit is included among the plurality of N-level summary bits, the at least one unallocated first-level summary bit based on the unallocated N-level summary bit, the at least one unallocated first-level summary bit corresponding to a plurality of second-level summary bits stored in the second memory; searching, by the network device, the plurality of second-level summary bits to identify at least one unallocated second-level summary bit of the plurality of second-level summary bits, the at least one unallocated second-level summary bit corresponding to the plurality of allocation bits; generating, by the network device, a first address associated with the at least one unallocated second-level summary bit; reading, by the network device and from the second memory, the plurality of allocation bits based on the first address; generating, by the network device, a second address associated with an unallocated allocation bit of the plurality of allocation bits; determining, by the network device, a storage address associated with the first memory based on the first address and the second address; and sending, to the I/O device, the storage address, the storage address enabling the I/O device to store the packet information in the first memory.