• Rasesh Mody's avatar
    bna: Enable Multi Buffer RX · e29aa339
    Rasesh Mody authored
    The CT2 HW supports multi-buffer Rx. This patch provides the necessary changes
    for bnad to use multi-buffer Rx feature. For BNAD, multi-buffer Rx is by
    default enabled when MTU is > 4096. For >4096 MTU, q0 data/large buffers are of
    2048 size. As the resource requirements of multi-buffer Rx are different new Rx
    needs to be created to use this feature. ASIC posts multiple completions if
    frame exceeds buffer size. The last completion is marked with EOP flag.
     - Separate HQ and DQ enums for resource allocations and configurations.
     - rx_config and rxq structure changes to pass the correct info from bnad.
     - DQ depth need not be same as HQ depth. So CQ depth is adjusted accordingly.
     - Rx CFG frame size is taken from configured MTU.
     - Rx q0 buffer size is configured from bnad s rx_config when multi-buffer is
       enabled.
     - Poll for entire frame completion.
     - Once EOP completion is received gather the number of vectors used by the
       frame to submit it to the stack.
     - Changed MTU to frame size wherever necessary.
    Signed-off-by: default avatarRasesh Mody <rmody@brocade.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    e29aa339
bnad.c 91.8 KB