To avoid under-run conditions that result in corrupt packets at I/O
interfaces, a FIFO buffer controller monitors key aspects of the contents
of FIFO buffers of I/O interfaces. The FIFO buffer controller initiates
transmission of data from the FIFO buffer when at least one complete
packet is stored in the FIFO buffer or when the size of a partial packet
stored therein is large enough so that the remainder of the packet would
normally be received by the FIFO buffer before the stored part can be
transmitted from the FIFO buffer; thereby avoiding an under-run error
condition.