• Michal Kalderon's avatar
    qed: Add unaligned and packed packet processing · 469981b1
    Michal Kalderon authored
    The fpdu data structure is preallocated per connection.
    Each connection stores the current status of the connection:
    either nothing pending, or there is a partial fpdu that is waiting for
    the rest of the fpdu (incomplete bytes != 0).
    The same structure is also used for splitting a packet when there are
    packed fpdus. The structure is initialized with all data required
    for sending the fpdu back to the FW. A fpdu will always be spanned across
    a maximum of 3 tx bds. One for the header, one for the partial fdpu
    received and one for the remainder (unaligned) packet.
    In case of packed fpdu's, two fragments are used, one for the header
    and one for the data.
    Corner cases are not handled in the patch for clarity, and will be added
    as a separate patch.
    Signed-off-by: default avatarMichal Kalderon <Michal.Kalderon@cavium.com>
    Signed-off-by: default avatarAriel Elior <Ariel.Elior@cavium.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    469981b1
qed_iwarp.c 80.2 KB