• David Howells's avatar
    rxrpc: Clone received jumbo subpackets and queue separately · d4d02d8b
    David Howells authored
    Split up received jumbo packets into separate skbuffs by cloning the
    original skbuff for each subpacket and setting the offset and length of the
    data in that subpacket in the skbuff's private data.  The subpackets are
    then placed on the recvmsg queue separately.  The security class then gets
    to revise the offset and length to remove its metadata.
    
    If we fail to clone a packet, we just drop it and let the peer resend it.
    The original packet gets used for the final subpacket.
    
    This should make it easier to handle parallel decryption of the subpackets.
    It also simplifies the handling of lost or misordered packets in the
    queuing/buffering loop as the possibility of overlapping jumbo packets no
    longer needs to be considered.
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    cc: Marc Dionne <marc.dionne@auristor.com>
    cc: linux-afs@lists.infradead.org
    d4d02d8b
protocol.h 6.85 KB