• Jason Xing's avatar
    net-timestamp: introduce SOF_TIMESTAMPING_OPT_RX_FILTER flag · be8e9eb3
    Jason Xing authored
    introduce a new flag SOF_TIMESTAMPING_OPT_RX_FILTER in the receive
    path. User can set it with SOF_TIMESTAMPING_SOFTWARE to filter
    out rx software timestamp report, especially after a process turns on
    netstamp_needed_key which can time stamp every incoming skb.
    
    Previously, we found out if an application starts first which turns on
    netstamp_needed_key, then another one only passing SOF_TIMESTAMPING_SOFTWARE
    could also get rx timestamp. Now we handle this case by introducing this
    new flag without breaking users.
    
    Quoting Willem to explain why we need the flag:
    "why a process would want to request software timestamp reporting, but
    not receive software timestamp generation. The only use I see is when
    the application does request
    SOF_TIMESTAMPING_SOFTWARE | SOF_TIMESTAMPING_TX_SOFTWARE."
    
    Similarly, this new flag could also be used for hardware case where we
    can set it with SOF_TIMESTAMPING_RAW_HARDWARE, then we won't receive
    hardware receive timestamp.
    
    Another thing about errqueue in this patch I have a few words to say:
    In this case, we need to handle the egress path carefully, or else
    reporting the tx timestamp will fail. Egress path and ingress path will
    finally call sock_recv_timestamp(). We have to distinguish them.
    Errqueue is a good indicator to reflect the flow direction.
    Suggested-by: default avatarWillem de Bruijn <willemb@google.com>
    Signed-off-by: default avatarJason Xing <kernelxing@tencent.com>
    Reviewed-by: default avatarWillem de Bruijn <willemb@google.com>
    Link: https://patch.msgid.link/20240909015612.3856-2-kerneljasonxing@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    be8e9eb3
tcp.c 134 KB