Skip to content
  • Daniel Borkmann's avatar
    bpf: also call skb_postpush_rcsum on xmit occasions · a2bfe6bf
    Daniel Borkmann authored
    Follow-up to commit f8ffad69 ("bpf: add skb_postpush_rcsum and fix
    dev_forward_skb occasions") to fix an issue for dev_queue_xmit() redirect
    locations which need CHECKSUM_COMPLETE fixups on ingress.
    
    For the same reasons as described in f8ffad69 already, we of course
    also need this here, since dev_queue_xmit() on a veth device will let us
    end up in the dev_forward_skb() helper again to cross namespaces.
    
    Latter then calls into skb_postpull_rcsum() to pull out L2 header, so
    that netif_rx_internal() sees CHECKSUM_COMPLETE as it is expected. That
    is, CHECKSUM_COMPLETE on ingress covering L2 _payload_, not L2 headers.
    
    Also here we have to address bpf_redirect() and bpf_clone_redirect().
    
    Fixes: 3896d655 ("bpf: introduce bpf_clone_redirect() helper")
    Fixes: 27b29f63
    
     ("bpf: add bpf_redirect() helper")
    Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    Acked-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    a2bfe6bf