Message ID | 20240219032838.91723-2-kerneljasonxing@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | introduce drop reasons for tcp receive path | expand |
From: Jason Xing <kerneljasonxing@gmail.com> Date: Mon, 19 Feb 2024 11:28:28 +0800 > From: Jason Xing <kernelxing@tencent.com> > > Only add one drop reason to detect the condition of skb dropped > because of hook points in cookie check for later use. > > Signed-off-by: Jason Xing <kernelxing@tencent.com> > -- > v6 > Link: https://lore.kernel.org/netdev/20240215210922.19969-1-kuniyu@amazon.com/ > 1. Modify the description NO_SOCKET to extend other two kinds of invalid > socket cases. > What I think about it is we can use it as a general indicator for three kinds of > sockets which are invalid/NULL, like what we did to TCP_FLAGS. > Any better ideas/suggestions are welcome :) > > v5 > Link: https://lore.kernel.org/netdev/CANn89i+iELpsoea6+C-08m6+=JkneEEM=nAj-28eNtcOCkwQjw@mail.gmail.com/ > Link: https://lore.kernel.org/netdev/632c6fd4-e060-4b8e-a80e-5d545a6c6b6c@kernel.org/ > 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. Reuse IP_OUTNOROUTES instead of INVALID_DST (Eric) > 5. adjust the title and description. > > v4 > Link: https://lore.kernel.org/netdev/20240212172302.3f95e454@kernel.org/ > 1. fix misspelled name in kdoc as Jakub said > --- > include/net/dropreason-core.h | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/include/net/dropreason-core.h b/include/net/dropreason-core.h > index 6d3a20163260..3c867384dead 100644 > --- a/include/net/dropreason-core.h > +++ b/include/net/dropreason-core.h > @@ -54,6 +54,7 @@ > FN(NEIGH_QUEUEFULL) \ > FN(NEIGH_DEAD) \ > FN(TC_EGRESS) \ > + FN(SECURITY_HOOK) \ > FN(QDISC_DROP) \ > FN(CPU_BACKLOG) \ > FN(XDP) \ > @@ -105,7 +106,13 @@ enum skb_drop_reason { > SKB_CONSUMED, > /** @SKB_DROP_REASON_NOT_SPECIFIED: drop reason is not specified */ > SKB_DROP_REASON_NOT_SPECIFIED, > - /** @SKB_DROP_REASON_NO_SOCKET: socket not found */ > + /** > + * @SKB_DROP_REASON_NO_SOCKET: no invalid socket that can be used. s/invalid/valid/ Same for 2) and 3) below. > + * Reason could be one of three cases: > + * 1) no established/listening socket found during lookup process > + * 2) no invalid request socket during 3WHS process > + * 3) no invalid child socket during 3WHS process > + */ > SKB_DROP_REASON_NO_SOCKET, > /** @SKB_DROP_REASON_PKT_TOO_SMALL: packet size is too small */ > SKB_DROP_REASON_PKT_TOO_SMALL,
On Mon, Feb 19, 2024 at 12:06 PM Kuniyuki Iwashima <kuniyu@amazon.com> wrote: > > From: Jason Xing <kerneljasonxing@gmail.com> > Date: Mon, 19 Feb 2024 11:28:28 +0800 > > From: Jason Xing <kernelxing@tencent.com> > > > > Only add one drop reason to detect the condition of skb dropped > > because of hook points in cookie check for later use. > > > > Signed-off-by: Jason Xing <kernelxing@tencent.com> > > -- > > v6 > > Link: https://lore.kernel.org/netdev/20240215210922.19969-1-kuniyu@amazon.com/ > > 1. Modify the description NO_SOCKET to extend other two kinds of invalid > > socket cases. > > What I think about it is we can use it as a general indicator for three kinds of > > sockets which are invalid/NULL, like what we did to TCP_FLAGS. > > Any better ideas/suggestions are welcome :) > > > > v5 > > Link: https://lore.kernel.org/netdev/CANn89i+iELpsoea6+C-08m6+=JkneEEM=nAj-28eNtcOCkwQjw@mail.gmail.com/ > > Link: https://lore.kernel.org/netdev/632c6fd4-e060-4b8e-a80e-5d545a6c6b6c@kernel.org/ > > 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. Reuse IP_OUTNOROUTES instead of INVALID_DST (Eric) > > 5. adjust the title and description. > > > > v4 > > Link: https://lore.kernel.org/netdev/20240212172302.3f95e454@kernel.org/ > > 1. fix misspelled name in kdoc as Jakub said > > --- > > include/net/dropreason-core.h | 11 ++++++++++- > > 1 file changed, 10 insertions(+), 1 deletion(-) > > > > diff --git a/include/net/dropreason-core.h b/include/net/dropreason-core.h > > index 6d3a20163260..3c867384dead 100644 > > --- a/include/net/dropreason-core.h > > +++ b/include/net/dropreason-core.h > > @@ -54,6 +54,7 @@ > > FN(NEIGH_QUEUEFULL) \ > > FN(NEIGH_DEAD) \ > > FN(TC_EGRESS) \ > > + FN(SECURITY_HOOK) \ > > FN(QDISC_DROP) \ > > FN(CPU_BACKLOG) \ > > FN(XDP) \ > > @@ -105,7 +106,13 @@ enum skb_drop_reason { > > SKB_CONSUMED, > > /** @SKB_DROP_REASON_NOT_SPECIFIED: drop reason is not specified */ > > SKB_DROP_REASON_NOT_SPECIFIED, > > - /** @SKB_DROP_REASON_NO_SOCKET: socket not found */ > > + /** > > + * @SKB_DROP_REASON_NO_SOCKET: no invalid socket that can be used. > > s/invalid/valid/ > > Same for 2) and 3) below. Thanks for your check. Will update it :) > > > > + * Reason could be one of three cases: > > + * 1) no established/listening socket found during lookup process > > + * 2) no invalid request socket during 3WHS process > > + * 3) no invalid child socket during 3WHS process > > + */ > > SKB_DROP_REASON_NO_SOCKET, > > /** @SKB_DROP_REASON_PKT_TOO_SMALL: packet size is too small */ > > SKB_DROP_REASON_PKT_TOO_SMALL,
diff --git a/include/net/dropreason-core.h b/include/net/dropreason-core.h index 6d3a20163260..3c867384dead 100644 --- a/include/net/dropreason-core.h +++ b/include/net/dropreason-core.h @@ -54,6 +54,7 @@ FN(NEIGH_QUEUEFULL) \ FN(NEIGH_DEAD) \ FN(TC_EGRESS) \ + FN(SECURITY_HOOK) \ FN(QDISC_DROP) \ FN(CPU_BACKLOG) \ FN(XDP) \ @@ -105,7 +106,13 @@ enum skb_drop_reason { SKB_CONSUMED, /** @SKB_DROP_REASON_NOT_SPECIFIED: drop reason is not specified */ SKB_DROP_REASON_NOT_SPECIFIED, - /** @SKB_DROP_REASON_NO_SOCKET: socket not found */ + /** + * @SKB_DROP_REASON_NO_SOCKET: no invalid socket that can be used. + * Reason could be one of three cases: + * 1) no established/listening socket found during lookup process + * 2) no invalid request socket during 3WHS process + * 3) no invalid child socket during 3WHS process + */ SKB_DROP_REASON_NO_SOCKET, /** @SKB_DROP_REASON_PKT_TOO_SMALL: packet size is too small */ SKB_DROP_REASON_PKT_TOO_SMALL, @@ -271,6 +278,8 @@ enum skb_drop_reason { SKB_DROP_REASON_NEIGH_DEAD, /** @SKB_DROP_REASON_TC_EGRESS: dropped in TC egress HOOK */ SKB_DROP_REASON_TC_EGRESS, + /** @SKB_DROP_REASON_SECURITY_HOOK: dropped due to security HOOK */ + SKB_DROP_REASON_SECURITY_HOOK, /** * @SKB_DROP_REASON_QDISC_DROP: dropped by qdisc when packet outputting ( * failed to enqueue to current qdisc)