From: Daniel Borkmann <dan...@iogearbox.net> Date: Wed, 19 Apr 2017 23:01:17 +0200
> Add napi_id access to __sk_buff for socket filter program types, tc > program types and other bpf_convert_ctx_access() users. Having access > to skb->napi_id is useful for per RX queue listener siloing, f.e. > in combination with SO_ATTACH_REUSEPORT_EBPF and when busy polling is > used, meaning SO_REUSEPORT enabled listeners can then select the > corresponding socket at SYN time already [1]. The skb is marked via > skb_mark_napi_id() early in the receive path (e.g., napi_gro_receive()). > > Currently, sockets can only use SO_INCOMING_NAPI_ID from 6d4339028b35 > ("net: Introduce SO_INCOMING_NAPI_ID") as a socket option to look up > the NAPI ID associated with the queue for steering, which requires a > prior sk_mark_napi_id() after the socket was looked up. > > Semantics for the __sk_buff napi_id access are similar, meaning if > skb->napi_id is < MIN_NAPI_ID (e.g. outgoing packets using sender_cpu), > then an invalid napi_id of 0 is returned to the program, otherwise a > valid non-zero napi_id. > > [1] > http://netdevconf.org/2.1/slides/apr6/dumazet-BUSY-POLLING-Netdev-2.1.pdf > > Suggested-by: Eric Dumazet <eduma...@google.com> > Signed-off-by: Daniel Borkmann <dan...@iogearbox.net> > Acked-by: Alexei Starovoitov <a...@kernel.org> Applied, thanks Daniel.