• Boris Pismenny's avatar
    net/tls: Add asynchronous resync · ed9b7646
    Boris Pismenny authored
    This patch adds support for asynchronous resynchronization in tls_device.
    Async resync follows two distinct stages:
    
    1. The NIC driver indicates that it would like to resync on some TLS
    record within the received packet (P), but the driver does not
    know (yet) which of the TLS records within the packet.
    At this stage, the NIC driver will query the device to find the exact
    TCP sequence for resync (tcpsn), however, the driver does not wait
    for the device to provide the response.
    
    2. Eventually, the device responds, and the driver provides the tcpsn
    within the resync packet to KTLS. Now, KTLS can check the tcpsn against
    any processed TLS records within packet P, and also against any record
    that is processed in the future within packet P.
    
    The asynchronous resync path simplifies the device driver, as it can
    save bits on the packet completion (32-bit TCP sequence), and pass this
    information on an asynchronous command instead.
    Signed-off-by: default avatarBoris Pismenny <borisp@mellanox.com>
    Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
    ed9b7646
tls_device.c 33.9 KB