On Tue, Jan 21, 2025 at 03:18:38PM +0100, Jakub Sitnicki wrote:
On Tue, Jan 21, 2025 at 01:07 PM +08, Jiayuan Chen wrote:
'sk->copied_seq' was updated in the tcp_eat_skb() function when the action of a BPF program was SK_REDIRECT. For other actions, like SK_PASS, the update logic for 'sk->copied_seq' was moved to tcp_bpf_recvmsg_parser() to ensure the accuracy of the 'fionread' feature.
It works for a single stream_verdict scenario, as it also modified 'sk_data_ready->sk_psock_verdict_data_ready->tcp_read_skb' to remove updating 'sk->copied_seq'.
However, for programs where both stream_parser and stream_verdict are active(strparser purpose), tcp_read_sock() was used instead of
Nit: missing space, "active (strparser purpose)" ^
tcp_read_skb() (sk_data_ready->strp_data_ready->tcp_read_sock)
Nit: missing period, "… (sk_data_ready->strp_data_ready->tcp_read_sock)." ^
tcp_read_sock() now still update 'sk->copied_seq', leading to duplicated
Nit: grammar "still updates" ^ Please run commit descriptions through a language tool or an LLM, if possible. This makes reviewing easier.
Thanks Jakub, I'll review all commit messages and code comments, and also use LLLM for grammar checks.