Patent ID: 8634431

Claim:
A method of managing flow control of packet data from a host device to an optical network device for transmission on an optical network, the method comprising: receiving descriptor data from a descriptor ring buffer stored at the host device wherein the descriptor ring buffer stored at the host device includes one or more descriptor rings, wherein each descriptor ring corresponds to a different descriptor queue such that the descriptor data is from one descriptor ring in the descriptor ring buffer; storing the received descriptor data in a descriptor cache at the optical network device, wherein the optical network device is external to the host device; processing the descriptor data stored in the descriptor cache to identify, from the descriptor data, one or more data packets buffered in the host device; analyzing the descriptor data to identify a destination corresponding to one of a plurality of first in first out (FIFO) memories at the optical network device for the identified one or more data packets; copying the one or more data packets identified by the descriptor data from the host device to a buffer memory in the optical network device, the buffer memory having i) a first usage threshold of a first value and ii) a memory allocation size of a second value, the buffer memory comprising a plurality of first in first out (FIFO) memories each having a respective FIFO memory allocation size, wherein copying the one or more data packets to the buffer memory comprises writing the one or more data packets to the one of the plurality of FIFO memories; monitoring, in the optical network device, usage status of the buffer memory to determine if memory usage is above the first usage threshold; and in response to the memory usage being above the first usage threshold, i) increasing, at the optical network device, the memory allocation size of the buffer memory above the second value, and ii) increasing the first usage threshold above the first value.