• Jakub Kicinski's avatar
    tls: rx: don't store the record type in socket context · c3f6bb74
    Jakub Kicinski authored
    Original TLS implementation was handling one record at a time.
    It stashed the type of the record inside tls context (per socket
    structure) for convenience. When async crypto support was added
    [1] the author had to use skb->cb to store the type per-message.
    
    The use of skb->cb overlaps with strparser, however, so a hybrid
    approach was taken where type is stored in context while parsing
    (since we parse a message at a time) but once parsed its copied
    to skb->cb.
    
    Recently a workaround for sockmaps [2] exposed the previously
    private struct _strp_msg and started a trend of adding user
    fields directly in strparser's header. This is cleaner than
    storing information about an skb in the context.
    
    This change is not strictly necessary, but IMHO the ownership
    of the context field is confusing. Information naturally
    belongs to the skb.
    
    [1] commit 94524d8f ("net/tls: Add support for async decryption of tls records")
    [2] commit b2c46181 ("bpf, sockmap: sk_skb data_end access incorrect when src_reg = dst_reg")
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c3f6bb74
tls_sw.c 64.8 KB