netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH bpf v2 0/3] bpf, sockmap complete fixes for avail bytes
@ 2023-09-25 20:24 John Fastabend
  2023-09-25 20:24 ` [PATCH bpf v2 1/3] bpf: tcp_read_skb needs to pop skb regardless of seq John Fastabend
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: John Fastabend @ 2023-09-25 20:24 UTC (permalink / raw)
  To: daniel, ast, andrii, jakub; +Cc: john.fastabend, bpf, netdev, edumazet

With e5c6de5fa0258 ("bpf, sockmap: Incorrectly handling copied_seq") we
started fixing the available bytes accounting by moving copied_seq to
where the user actually reads the bytes.

However we missed handling MSG_PEEK correctly and we need to ensure
that we don't kfree_skb() a skb off the receive_queue when the
copied_seq number is not incremented by user reads for some time.

v2: drop seq var in tcp_read_skb its no longer necessary per Jakub's
    suggestion

John Fastabend (3):
  bpf: tcp_read_skb needs to pop skb regardless of seq
  bpf: sockmap, do not inc copied_seq when PEEK flag set
  bpf: sockmap, add tests for MSG_F_PEEK

 net/ipv4/tcp.c                                |  3 +-
 net/ipv4/tcp_bpf.c                            |  4 +-
 .../selftests/bpf/prog_tests/sockmap_basic.c  | 52 +++++++++++++++++++
 3 files changed, 56 insertions(+), 3 deletions(-)

-- 
2.33.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-09-26  0:39 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-25 20:24 [PATCH bpf v2 0/3] bpf, sockmap complete fixes for avail bytes John Fastabend
2023-09-25 20:24 ` [PATCH bpf v2 1/3] bpf: tcp_read_skb needs to pop skb regardless of seq John Fastabend
2023-09-26  0:39   ` kernel test robot
2023-09-25 20:24 ` [PATCH bpf v2 2/3] bpf: sockmap, do not inc copied_seq when PEEK flag set John Fastabend
2023-09-25 20:24 ` [PATCH bpf v2 3/3] bpf: sockmap, add tests for MSG_F_PEEK John Fastabend

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).