Message ID | 20240215012027.11467-1-kerneljasonxing@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | introduce drop reasons for tcp receive path | expand |
Hi, On Thu, 2024-02-15 at 09:20 +0800, Jason Xing wrote: > From: Jason Xing <kernelxing@tencent.com> > > When I was debugging the reason about why the skb should be dropped in > syn cookie mode, I found out that this NOT_SPECIFIED reason is too > general. Thus I decided to refine it. > > v5: > Link: https://lore.kernel.org/netdev/20240213134205.8705-1-kerneljasonxing@gmail.com/ > Link: https://lore.kernel.org/netdev/20240213140508.10878-1-kerneljasonxing@gmail.com/ > 1. Use SKB_DROP_REASON_IP_OUTNOROUTES instead of introducing a new > one (Eric, David) > 2. Reuse SKB_DROP_REASON_NOMEM to handle failure of request socket > allocation (Eric) > 3. Reuse NO_SOCKET instead of introducing COOKIE_NOCHILD > 4. avoid duplication of these opt_skb tests/actions (Eric) > 5. Use new name (TCP_ABORT_ON_DATA) for readability (David) > 6. Reuse IP_OUTNOROUTES instead of INVALID_DST (Eric) It looks like this is causing a lot of self-test failures: https://netdev.bots.linux.dev/contest.html?pw-n=0&branch=net-next-2024-02-15--06-00&pass=0&skip=0 due to tcp connect timeout, e.g.: https://netdev-3.bots.linux.dev/vmksft-net-dbg/results/466281/9-tcp-fastopen-backup-key-sh/stdout please have look. Thanks! Paolo
On Thu, Feb 15, 2024 at 6:12 PM Paolo Abeni <pabeni@redhat.com> wrote: > > Hi, > > On Thu, 2024-02-15 at 09:20 +0800, Jason Xing wrote: > > From: Jason Xing <kernelxing@tencent.com> > > > > When I was debugging the reason about why the skb should be dropped in > > syn cookie mode, I found out that this NOT_SPECIFIED reason is too > > general. Thus I decided to refine it. > > > > v5: > > Link: https://lore.kernel.org/netdev/20240213134205.8705-1-kerneljasonxing@gmail.com/ > > Link: https://lore.kernel.org/netdev/20240213140508.10878-1-kerneljasonxing@gmail.com/ > > 1. Use SKB_DROP_REASON_IP_OUTNOROUTES instead of introducing a new > > one (Eric, David) > > 2. Reuse SKB_DROP_REASON_NOMEM to handle failure of request socket > > allocation (Eric) > > 3. Reuse NO_SOCKET instead of introducing COOKIE_NOCHILD > > 4. avoid duplication of these opt_skb tests/actions (Eric) > > 5. Use new name (TCP_ABORT_ON_DATA) for readability (David) > > 6. Reuse IP_OUTNOROUTES instead of INVALID_DST (Eric) > > It looks like this is causing a lot of self-test failures: > > https://netdev.bots.linux.dev/contest.html?pw-n=0&branch=net-next-2024-02-15--06-00&pass=0&skip=0 > > due to tcp connect timeout, e.g.: > > https://netdev-3.bots.linux.dev/vmksft-net-dbg/results/466281/9-tcp-fastopen-backup-key-sh/stdout > > please have look. Thanks for your report. I double checked the series and found out my new version of patch [4/11] is wrong. I will fix that. I will continue to check the logic of the rest. Thanks, Jason > > Thanks! > > Paolo >
From: Jason Xing <kernelxing@tencent.com> When I was debugging the reason about why the skb should be dropped in syn cookie mode, I found out that this NOT_SPECIFIED reason is too general. Thus I decided to refine it. v5: Link: https://lore.kernel.org/netdev/20240213134205.8705-1-kerneljasonxing@gmail.com/ Link: https://lore.kernel.org/netdev/20240213140508.10878-1-kerneljasonxing@gmail.com/ 1. Use SKB_DROP_REASON_IP_OUTNOROUTES instead of introducing a new one (Eric, David) 2. Reuse SKB_DROP_REASON_NOMEM to handle failure of request socket allocation (Eric) 3. Reuse NO_SOCKET instead of introducing COOKIE_NOCHILD 4. avoid duplication of these opt_skb tests/actions (Eric) 5. Use new name (TCP_ABORT_ON_DATA) for readability (David) 6. Reuse IP_OUTNOROUTES instead of INVALID_DST (Eric) --- HISTORY This series is combined with 2 series sent before suggested by Jakub. So I'm going to separately write changelogs for each of them. PATCH 1/11 - 5/11 preivious Link: https://lore.kernel.org/netdev/20240213134205.8705-1-kerneljasonxing@gmail.com/ Summary 1. introduce all the dropreasons we need, [1/11] patch. 2. use new dropreasons in ipv4 cookie check, [2/11],[3/11] patch. 3. use new dropreasons ipv6 cookie check, [4/11],[5/11] patch. v4: Link: https://lore.kernel.org/netdev/20240212172302.3f95e454@kernel.org/ 1. Fix misspelled name in Kdoc as suggested by Jakub. v3: Link: https://lore.kernel.org/all/CANn89iK40SoyJ8fS2U5kp3pDruo=zfQNPL-ppOF+LYaS9z-MVA@mail.gmail.com/ 1. Split that patch into some smaller ones as suggested by Eric. v2: Link: https://lore.kernel.org/all/20240204104601.55760-1-kerneljasonxing@gmail.com/ 1. change the title of 2/2 patch. 2. fix some warnings checkpatch tool showed before. 3. use return value instead of adding more parameters suggested by Eric. PATCH 6/11 - 11/11 previous Link: https://lore.kernel.org/netdev/20240213140508.10878-1-kerneljasonxing@gmail.com/ v4: Link: https://lore.kernel.org/netdev/CANn89iJar+H3XkQ8HpsirH7b-_sbFe9NBUdAAO3pNJK3CKr_bg@mail.gmail.com/ Link: https://lore.kernel.org/netdev/20240213131205.4309-1-kerneljasonxing@gmail.com/ Already got rid of @acceptable in tcp_rcv_state_process(), so I need to remove *TCP_CONNREQNOTACCEPTABLE related codes which I wrote in the v3 series. v3: Link: https://lore.kernel.org/all/CANn89iK40SoyJ8fS2U5kp3pDruo=zfQNPL-ppOF+LYaS9z-MVA@mail.gmail.com/ 1. Split that patch into some smaller ones as suggested by Eric. v2: Link: https://lore.kernel.org/all/20240204104601.55760-1-kerneljasonxing@gmail.com/ 1. change the title of 2/2 patch. 2. fix some warnings checkpatch tool showed before. 3. use return value instead of adding more parameters suggested by Eric. Jason Xing (11): tcp: add dropreasons definitions and prepare for cookie check tcp: directly drop skb in cookie check for ipv4 tcp: use drop reasons in cookie check for ipv4 tcp: directly drop skb in cookie check for ipv6 tcp: use drop reasons in cookie check for ipv6 tcp: introduce dropreasons in receive path tcp: add more specific possible drop reasons in tcp_rcv_synsent_state_process() tcp: add dropreasons in tcp_rcv_state_process() tcp: make the dropreason really work when calling tcp_rcv_state_process() tcp: make dropreason in tcp_child_process() work tcp: get rid of NOT_SPECIFIED reason in tcp_v4/6_do_rcv include/net/dropreason-core.h | 21 ++++++++++++++++++++- include/net/tcp.h | 4 ++-- net/ipv4/syncookies.c | 20 ++++++++++++++++---- net/ipv4/tcp_input.c | 25 +++++++++++++++++-------- net/ipv4/tcp_ipv4.c | 22 +++++++++++++--------- net/ipv4/tcp_minisocks.c | 9 +++++---- net/ipv6/syncookies.c | 18 +++++++++++++++--- net/ipv6/tcp_ipv6.c | 31 ++++++++++++++++--------------- 8 files changed, 104 insertions(+), 46 deletions(-)