linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 net-next 0/8] net: use kfree_skb_reason() for ip/udp packet receive
@ 2022-01-27  9:13 menglong8.dong
  2022-01-27  9:13 ` [PATCH v2 net-next 1/8] net: socket: intrudoce SKB_DROP_REASON_SOCKET_FILTER menglong8.dong
                   ` (7 more replies)
  0 siblings, 8 replies; 14+ messages in thread
From: menglong8.dong @ 2022-01-27  9:13 UTC (permalink / raw)
  To: dsahern, kuba
  Cc: rostedt, mingo, davem, yoshfuji, edumazet, pablo, kadlec, fw,
	imagedong, alobakin, pabeni, cong.wang, talalahmad, haokexin,
	keescook, memxor, linux-kernel, netdev, netfilter-devel,
	coreteam, mengensun

From: Menglong Dong <imagedong@tencent.com>

In this series patches, kfree_skb() is replaced with kfree_skb_reason()
during ipv4 and udp4 packet receiving path, and following drop reasons
are introduced:

SKB_DROP_REASON_SOCKET_FILTER
SKB_DROP_REASON_NETFILTER_DROP
SKB_DROP_REASON_OTHERHOST
SKB_DROP_REASON_IP_CSUM
SKB_DROP_REASON_IP_INHDR
SKB_DROP_REASON_IP_RPFILTER
SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST
SKB_DROP_REASON_XFRM_POLICY
SKB_DROP_REASON_IP_NOPROTO
SKB_DROP_REASON_SOCKET_RCVBUFF
SKB_DROP_REASON_PROTO_MEM

TCP is more complex, so I left it in the next series.

I just figure out how __print_symbolic() works. It doesn't base on the
array index, but searching for symbols by loop. So I'm a little afraid
it's performance.

Changes since v1:
- add document for all drop reasons, as David advised
- remove unreleated cleanup
- remove EARLY_DEMUX and IP_ROUTE_INPUT drop reason
- replace {UDP, TCP}_FILTER with SOCKET_FILTER


Menglong Dong (8):
  net: socket: intrudoce SKB_DROP_REASON_SOCKET_FILTER
  net: skb_drop_reason: add document for drop reasons
  net: netfilter: use kfree_drop_reason() for NF_DROP
  net: ipv4: use kfree_skb_reason() in ip_rcv_core()
  net: ipv4: use kfree_skb_reason() in ip_rcv_finish_core()
  net: ipv4: use kfree_skb_reason() in ip_protocol_deliver_rcu()
  net: udp: use kfree_skb_reason() in udp_queue_rcv_one_skb()
  net: udp: use kfree_skb_reason() in __udp_queue_rcv_skb()

 include/linux/skbuff.h     | 38 ++++++++++++++++++++++++++++++++------
 include/trace/events/skb.h | 13 ++++++++++++-
 net/ipv4/ip_input.c        | 30 ++++++++++++++++++++++--------
 net/ipv4/tcp_ipv4.c        |  2 +-
 net/ipv4/udp.c             | 22 ++++++++++++++++------
 net/netfilter/core.c       |  3 ++-
 6 files changed, 85 insertions(+), 23 deletions(-)

-- 
2.27.0


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

* [PATCH v2 net-next 1/8] net: socket: intrudoce SKB_DROP_REASON_SOCKET_FILTER
  2022-01-27  9:13 [PATCH v2 net-next 0/8] net: use kfree_skb_reason() for ip/udp packet receive menglong8.dong
@ 2022-01-27  9:13 ` menglong8.dong
  2022-01-27 15:37   ` David Ahern
  2022-01-27  9:13 ` [PATCH v2 net-next 2/8] net: skb_drop_reason: add document for drop reasons menglong8.dong
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 14+ messages in thread
From: menglong8.dong @ 2022-01-27  9:13 UTC (permalink / raw)
  To: dsahern, kuba
  Cc: rostedt, mingo, davem, yoshfuji, edumazet, pablo, kadlec, fw,
	imagedong, alobakin, pabeni, cong.wang, talalahmad, haokexin,
	keescook, memxor, linux-kernel, netdev, netfilter-devel,
	coreteam, mengensun

From: Menglong Dong <imagedong@tencent.com>

Introduce SKB_DROP_REASON_SOCKET_FILTER, which is used as the reason
of skb drop out of socket filter. Meanwhile, replace
SKB_DROP_REASON_TCP_FILTER with it.

Signed-off-by: Menglong Dong <imagedong@tencent.com>
---
 include/linux/skbuff.h     | 2 +-
 include/trace/events/skb.h | 2 +-
 net/ipv4/tcp_ipv4.c        | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index bf11e1fbd69b..8a636e678902 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -318,7 +318,7 @@ enum skb_drop_reason {
 	SKB_DROP_REASON_NO_SOCKET,
 	SKB_DROP_REASON_PKT_TOO_SMALL,
 	SKB_DROP_REASON_TCP_CSUM,
-	SKB_DROP_REASON_TCP_FILTER,
+	SKB_DROP_REASON_SOCKET_FILTER,
 	SKB_DROP_REASON_UDP_CSUM,
 	SKB_DROP_REASON_MAX,
 };
diff --git a/include/trace/events/skb.h b/include/trace/events/skb.h
index 3e042ca2cedb..a8a64b97504d 100644
--- a/include/trace/events/skb.h
+++ b/include/trace/events/skb.h
@@ -14,7 +14,7 @@
 	EM(SKB_DROP_REASON_NO_SOCKET, NO_SOCKET)		\
 	EM(SKB_DROP_REASON_PKT_TOO_SMALL, PKT_TOO_SMALL)	\
 	EM(SKB_DROP_REASON_TCP_CSUM, TCP_CSUM)			\
-	EM(SKB_DROP_REASON_TCP_FILTER, TCP_FILTER)		\
+	EM(SKB_DROP_REASON_SOCKET_FILTER, SOCKET_FILTER)	\
 	EM(SKB_DROP_REASON_UDP_CSUM, UDP_CSUM)			\
 	EMe(SKB_DROP_REASON_MAX, MAX)
 
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
index b3f34e366b27..938b59636578 100644
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -2095,7 +2095,7 @@ int tcp_v4_rcv(struct sk_buff *skb)
 	nf_reset_ct(skb);
 
 	if (tcp_filter(sk, skb)) {
-		drop_reason = SKB_DROP_REASON_TCP_FILTER;
+		drop_reason = SKB_DROP_REASON_SOCKET_FILTER;
 		goto discard_and_relse;
 	}
 	th = (const struct tcphdr *)skb->data;
-- 
2.34.1


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

* [PATCH v2 net-next 2/8] net: skb_drop_reason: add document for drop reasons
  2022-01-27  9:13 [PATCH v2 net-next 0/8] net: use kfree_skb_reason() for ip/udp packet receive menglong8.dong
  2022-01-27  9:13 ` [PATCH v2 net-next 1/8] net: socket: intrudoce SKB_DROP_REASON_SOCKET_FILTER menglong8.dong
@ 2022-01-27  9:13 ` menglong8.dong
  2022-01-27 15:39   ` David Ahern
  2022-01-27  9:13 ` [PATCH v2 net-next 3/8] net: netfilter: use kfree_drop_reason() for NF_DROP menglong8.dong
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 14+ messages in thread
From: menglong8.dong @ 2022-01-27  9:13 UTC (permalink / raw)
  To: dsahern, kuba
  Cc: rostedt, mingo, davem, yoshfuji, edumazet, pablo, kadlec, fw,
	imagedong, alobakin, pabeni, cong.wang, talalahmad, haokexin,
	keescook, memxor, linux-kernel, netdev, netfilter-devel,
	coreteam, mengensun

From: Menglong Dong <imagedong@tencent.com>

Add document for following existing drop reasons:

SKB_DROP_REASON_NOT_SPECIFIED
SKB_DROP_REASON_NO_SOCKET
SKB_DROP_REASON_PKT_TOO_SMALL
SKB_DROP_REASON_TCP_CSUM
SKB_DROP_REASON_SOCKET_FILTER
SKB_DROP_REASON_UDP_CSUM

Signed-off-by: Menglong Dong <imagedong@tencent.com>
---
 include/linux/skbuff.h | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 8a636e678902..5c5615a487e7 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -314,12 +314,12 @@ struct sk_buff;
  * used to translate the reason to string.
  */
 enum skb_drop_reason {
-	SKB_DROP_REASON_NOT_SPECIFIED,
-	SKB_DROP_REASON_NO_SOCKET,
-	SKB_DROP_REASON_PKT_TOO_SMALL,
-	SKB_DROP_REASON_TCP_CSUM,
-	SKB_DROP_REASON_SOCKET_FILTER,
-	SKB_DROP_REASON_UDP_CSUM,
+	SKB_DROP_REASON_NOT_SPECIFIED,	/* drop reason is not specified */
+	SKB_DROP_REASON_NO_SOCKET,	/* socket not found */
+	SKB_DROP_REASON_PKT_TOO_SMALL,	/* packet size is too small */
+	SKB_DROP_REASON_TCP_CSUM,	/* TCP checksum error */
+	SKB_DROP_REASON_SOCKET_FILTER,	/* dropped by socket filter */
+	SKB_DROP_REASON_UDP_CSUM,	/* UDP checksum error */
 	SKB_DROP_REASON_MAX,
 };
 
-- 
2.34.1


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

* [PATCH v2 net-next 3/8] net: netfilter: use kfree_drop_reason() for NF_DROP
  2022-01-27  9:13 [PATCH v2 net-next 0/8] net: use kfree_skb_reason() for ip/udp packet receive menglong8.dong
  2022-01-27  9:13 ` [PATCH v2 net-next 1/8] net: socket: intrudoce SKB_DROP_REASON_SOCKET_FILTER menglong8.dong
  2022-01-27  9:13 ` [PATCH v2 net-next 2/8] net: skb_drop_reason: add document for drop reasons menglong8.dong
@ 2022-01-27  9:13 ` menglong8.dong
  2022-01-27  9:13 ` [PATCH v2 net-next 4/8] net: ipv4: use kfree_skb_reason() in ip_rcv_core() menglong8.dong
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: menglong8.dong @ 2022-01-27  9:13 UTC (permalink / raw)
  To: dsahern, kuba
  Cc: rostedt, mingo, davem, yoshfuji, edumazet, pablo, kadlec, fw,
	imagedong, alobakin, pabeni, cong.wang, talalahmad, haokexin,
	keescook, memxor, linux-kernel, netdev, netfilter-devel,
	coreteam, mengensun

From: Menglong Dong <imagedong@tencent.com>

Replace kfree_skb() with kfree_skb_reason() in nf_hook_slow() when
skb is dropped by reason of NF_DROP. Following new drop reasons
are introduced:

SKB_DROP_REASON_NETFILTER_DROP

Signed-off-by: Menglong Dong <imagedong@tencent.com>
---
v2:
- add document for SKB_DROP_REASON_NETFILTER_DROP
---
 include/linux/skbuff.h     | 1 +
 include/trace/events/skb.h | 1 +
 net/netfilter/core.c       | 3 ++-
 3 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 5c5615a487e7..786ea2c2334e 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -320,6 +320,7 @@ enum skb_drop_reason {
 	SKB_DROP_REASON_TCP_CSUM,	/* TCP checksum error */
 	SKB_DROP_REASON_SOCKET_FILTER,	/* dropped by socket filter */
 	SKB_DROP_REASON_UDP_CSUM,	/* UDP checksum error */
+	SKB_DROP_REASON_NETFILTER_DROP,	/* dropped by netfilter */
 	SKB_DROP_REASON_MAX,
 };
 
diff --git a/include/trace/events/skb.h b/include/trace/events/skb.h
index a8a64b97504d..3d89f7b09a43 100644
--- a/include/trace/events/skb.h
+++ b/include/trace/events/skb.h
@@ -16,6 +16,7 @@
 	EM(SKB_DROP_REASON_TCP_CSUM, TCP_CSUM)			\
 	EM(SKB_DROP_REASON_SOCKET_FILTER, SOCKET_FILTER)	\
 	EM(SKB_DROP_REASON_UDP_CSUM, UDP_CSUM)			\
+	EM(SKB_DROP_REASON_NETFILTER_DROP, NETFILTER_DROP)	\
 	EMe(SKB_DROP_REASON_MAX, MAX)
 
 #undef EM
diff --git a/net/netfilter/core.c b/net/netfilter/core.c
index 354cb472f386..d1c9dfbb11fa 100644
--- a/net/netfilter/core.c
+++ b/net/netfilter/core.c
@@ -621,7 +621,8 @@ int nf_hook_slow(struct sk_buff *skb, struct nf_hook_state *state,
 		case NF_ACCEPT:
 			break;
 		case NF_DROP:
-			kfree_skb(skb);
+			kfree_skb_reason(skb,
+					 SKB_DROP_REASON_NETFILTER_DROP);
 			ret = NF_DROP_GETERR(verdict);
 			if (ret == 0)
 				ret = -EPERM;
-- 
2.34.1


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

* [PATCH v2 net-next 4/8] net: ipv4: use kfree_skb_reason() in ip_rcv_core()
  2022-01-27  9:13 [PATCH v2 net-next 0/8] net: use kfree_skb_reason() for ip/udp packet receive menglong8.dong
                   ` (2 preceding siblings ...)
  2022-01-27  9:13 ` [PATCH v2 net-next 3/8] net: netfilter: use kfree_drop_reason() for NF_DROP menglong8.dong
@ 2022-01-27  9:13 ` menglong8.dong
  2022-01-27 16:33   ` David Ahern
  2022-01-27  9:13 ` [PATCH v2 net-next 5/8] net: ipv4: use kfree_skb_reason() in ip_rcv_finish_core() menglong8.dong
                   ` (3 subsequent siblings)
  7 siblings, 1 reply; 14+ messages in thread
From: menglong8.dong @ 2022-01-27  9:13 UTC (permalink / raw)
  To: dsahern, kuba
  Cc: rostedt, mingo, davem, yoshfuji, edumazet, pablo, kadlec, fw,
	imagedong, alobakin, pabeni, cong.wang, talalahmad, haokexin,
	keescook, memxor, linux-kernel, netdev, netfilter-devel,
	coreteam, mengensun

From: Menglong Dong <imagedong@tencent.com>

Replace kfree_skb() with kfree_skb_reason() in ip_rcv_core(). Three new
drop reasons are introduced:

SKB_DROP_REASON_OTHERHOST
SKB_DROP_REASON_IP_CSUM
SKB_DROP_REASON_IP_INHDR

Signed-off-by: Menglong Dong <imagedong@tencent.com>
---
v2:
- remove unrelated cleanup
- add document for introduced drop reasons
---
 include/linux/skbuff.h     |  9 +++++++++
 include/trace/events/skb.h |  3 +++
 net/ipv4/ip_input.c        | 11 +++++++++--
 3 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 786ea2c2334e..2e87da91424f 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -321,6 +321,15 @@ enum skb_drop_reason {
 	SKB_DROP_REASON_SOCKET_FILTER,	/* dropped by socket filter */
 	SKB_DROP_REASON_UDP_CSUM,	/* UDP checksum error */
 	SKB_DROP_REASON_NETFILTER_DROP,	/* dropped by netfilter */
+	SKB_DROP_REASON_OTHERHOST,	/* packet don't belong to current
+					 * host (interface is in promisc
+					 * mode)
+					 */
+	SKB_DROP_REASON_IP_CSUM,	/* IP checksum error */
+	SKB_DROP_REASON_IP_INHDR,	/* there is something wrong with
+					 * IP header (see
+					 * IPSTATS_MIB_INHDRERRORS)
+					 */
 	SKB_DROP_REASON_MAX,
 };
 
diff --git a/include/trace/events/skb.h b/include/trace/events/skb.h
index 3d89f7b09a43..f2b1778485f0 100644
--- a/include/trace/events/skb.h
+++ b/include/trace/events/skb.h
@@ -17,6 +17,9 @@
 	EM(SKB_DROP_REASON_SOCKET_FILTER, SOCKET_FILTER)	\
 	EM(SKB_DROP_REASON_UDP_CSUM, UDP_CSUM)			\
 	EM(SKB_DROP_REASON_NETFILTER_DROP, NETFILTER_DROP)	\
+	EM(SKB_DROP_REASON_OTHERHOST, OTHERHOST)		\
+	EM(SKB_DROP_REASON_IP_CSUM, IP_CSUM)			\
+	EM(SKB_DROP_REASON_IP_INHDR, IP_INHDR)			\
 	EMe(SKB_DROP_REASON_MAX, MAX)
 
 #undef EM
diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c
index 3a025c011971..7f64c5432cba 100644
--- a/net/ipv4/ip_input.c
+++ b/net/ipv4/ip_input.c
@@ -436,13 +436,18 @@ static int ip_rcv_finish(struct net *net, struct sock *sk, struct sk_buff *skb)
 static struct sk_buff *ip_rcv_core(struct sk_buff *skb, struct net *net)
 {
 	const struct iphdr *iph;
+	int drop_reason;
 	u32 len;
 
+	drop_reason = SKB_DROP_REASON_NOT_SPECIFIED;
+
 	/* When the interface is in promisc. mode, drop all the crap
 	 * that it receives, do not try to analyse it.
 	 */
-	if (skb->pkt_type == PACKET_OTHERHOST)
+	if (skb->pkt_type == PACKET_OTHERHOST) {
+		drop_reason = SKB_DROP_REASON_OTHERHOST;
 		goto drop;
+	}
 
 	__IP_UPD_PO_STATS(net, IPSTATS_MIB_IN, skb->len);
 
@@ -516,11 +521,13 @@ static struct sk_buff *ip_rcv_core(struct sk_buff *skb, struct net *net)
 	return skb;
 
 csum_error:
+	drop_reason = SKB_DROP_REASON_IP_CSUM;
 	__IP_INC_STATS(net, IPSTATS_MIB_CSUMERRORS);
 inhdr_error:
+	drop_reason = drop_reason ?: SKB_DROP_REASON_IP_INHDR;
 	__IP_INC_STATS(net, IPSTATS_MIB_INHDRERRORS);
 drop:
-	kfree_skb(skb);
+	kfree_skb_reason(skb, drop_reason);
 out:
 	return NULL;
 }
-- 
2.34.1


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

* [PATCH v2 net-next 5/8] net: ipv4: use kfree_skb_reason() in ip_rcv_finish_core()
  2022-01-27  9:13 [PATCH v2 net-next 0/8] net: use kfree_skb_reason() for ip/udp packet receive menglong8.dong
                   ` (3 preceding siblings ...)
  2022-01-27  9:13 ` [PATCH v2 net-next 4/8] net: ipv4: use kfree_skb_reason() in ip_rcv_core() menglong8.dong
@ 2022-01-27  9:13 ` menglong8.dong
  2022-01-27  9:13 ` [PATCH v2 net-next 6/8] net: ipv4: use kfree_skb_reason() in ip_protocol_deliver_rcu() menglong8.dong
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: menglong8.dong @ 2022-01-27  9:13 UTC (permalink / raw)
  To: dsahern, kuba
  Cc: rostedt, mingo, davem, yoshfuji, edumazet, pablo, kadlec, fw,
	imagedong, alobakin, pabeni, cong.wang, talalahmad, haokexin,
	keescook, memxor, linux-kernel, netdev, netfilter-devel,
	coreteam, mengensun

From: Menglong Dong <imagedong@tencent.com>

Replace kfree_skb() with kfree_skb_reason() in ip_rcv_finish_core(),
following drop reasons are introduced:

SKB_DROP_REASON_IP_RPFILTER
SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST

Signed-off-by: Menglong Dong <imagedong@tencent.com>
---
v2:
- remove SKB_DROP_REASON_EARLY_DEMUX and SKB_DROP_REASON_IP_ROUTE_INPUT
- add document for SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST and
  SKB_DROP_REASON_IP_RPFILTER
---
 include/linux/skbuff.h     |  9 +++++++++
 include/trace/events/skb.h |  3 +++
 net/ipv4/ip_input.c        | 14 ++++++++++----
 3 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 2e87da91424f..2d712459d564 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -330,6 +330,15 @@ enum skb_drop_reason {
 					 * IP header (see
 					 * IPSTATS_MIB_INHDRERRORS)
 					 */
+	SKB_DROP_REASON_IP_RPFILTER,	/* IP rpfilter validate failed.
+					 * see the document for rp_filter
+					 * in ip-sysctl.rst for more
+					 * information
+					 */
+	SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST, /* destination address of L2
+						  * is multicast, but L3 is
+						  * unicast.
+						  */
 	SKB_DROP_REASON_MAX,
 };
 
diff --git a/include/trace/events/skb.h b/include/trace/events/skb.h
index f2b1778485f0..485a1d3034a4 100644
--- a/include/trace/events/skb.h
+++ b/include/trace/events/skb.h
@@ -20,6 +20,9 @@
 	EM(SKB_DROP_REASON_OTHERHOST, OTHERHOST)		\
 	EM(SKB_DROP_REASON_IP_CSUM, IP_CSUM)			\
 	EM(SKB_DROP_REASON_IP_INHDR, IP_INHDR)			\
+	EM(SKB_DROP_REASON_IP_RPFILTER, IP_RPFILTER)		\
+	EM(SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST,		\
+	   UNICAST_IN_L2_MULTICAST)				\
 	EMe(SKB_DROP_REASON_MAX, MAX)
 
 #undef EM
diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c
index 7f64c5432cba..184decb1c8eb 100644
--- a/net/ipv4/ip_input.c
+++ b/net/ipv4/ip_input.c
@@ -318,8 +318,10 @@ static int ip_rcv_finish_core(struct net *net, struct sock *sk,
 {
 	const struct iphdr *iph = ip_hdr(skb);
 	int (*edemux)(struct sk_buff *skb);
+	int err, drop_reason;
 	struct rtable *rt;
-	int err;
+
+	drop_reason = SKB_DROP_REASON_NOT_SPECIFIED;
 
 	if (ip_can_use_hint(skb, iph, hint)) {
 		err = ip_route_use_hint(skb, iph->daddr, iph->saddr, iph->tos,
@@ -396,19 +398,23 @@ static int ip_rcv_finish_core(struct net *net, struct sock *sk,
 		 * so-called "hole-196" attack) so do it for both.
 		 */
 		if (in_dev &&
-		    IN_DEV_ORCONF(in_dev, DROP_UNICAST_IN_L2_MULTICAST))
+		    IN_DEV_ORCONF(in_dev, DROP_UNICAST_IN_L2_MULTICAST)) {
+			drop_reason = SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST;
 			goto drop;
+		}
 	}
 
 	return NET_RX_SUCCESS;
 
 drop:
-	kfree_skb(skb);
+	kfree_skb_reason(skb, drop_reason);
 	return NET_RX_DROP;
 
 drop_error:
-	if (err == -EXDEV)
+	if (err == -EXDEV) {
+		drop_reason = SKB_DROP_REASON_IP_RPFILTER;
 		__NET_INC_STATS(net, LINUX_MIB_IPRPFILTER);
+	}
 	goto drop;
 }
 
-- 
2.34.1


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

* [PATCH v2 net-next 6/8] net: ipv4: use kfree_skb_reason() in ip_protocol_deliver_rcu()
  2022-01-27  9:13 [PATCH v2 net-next 0/8] net: use kfree_skb_reason() for ip/udp packet receive menglong8.dong
                   ` (4 preceding siblings ...)
  2022-01-27  9:13 ` [PATCH v2 net-next 5/8] net: ipv4: use kfree_skb_reason() in ip_rcv_finish_core() menglong8.dong
@ 2022-01-27  9:13 ` menglong8.dong
  2022-01-27  9:13 ` [PATCH v2 net-next 7/8] net: udp: use kfree_skb_reason() in udp_queue_rcv_one_skb() menglong8.dong
  2022-01-27  9:13 ` [PATCH v2 net-next 8/8] net: udp: use kfree_skb_reason() in __udp_queue_rcv_skb() menglong8.dong
  7 siblings, 0 replies; 14+ messages in thread
From: menglong8.dong @ 2022-01-27  9:13 UTC (permalink / raw)
  To: dsahern, kuba
  Cc: rostedt, mingo, davem, yoshfuji, edumazet, pablo, kadlec, fw,
	imagedong, alobakin, pabeni, cong.wang, talalahmad, haokexin,
	keescook, memxor, linux-kernel, netdev, netfilter-devel,
	coreteam, mengensun

From: Menglong Dong <imagedong@tencent.com>

Replace kfree_skb() with kfree_skb_reason() in ip_protocol_deliver_rcu().
Following new drop reasons are introduced:

SKB_DROP_REASON_XFRM_POLICY
SKB_DROP_REASON_IP_NOPROTO

Signed-off-by: Menglong Dong <imagedong@tencent.com>
---
v2:
- add document for the introduced drop reasons
---
 include/linux/skbuff.h     | 2 ++
 include/trace/events/skb.h | 2 ++
 net/ipv4/ip_input.c        | 5 +++--
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 2d712459d564..4e55321e2fc2 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -339,6 +339,8 @@ enum skb_drop_reason {
 						  * is multicast, but L3 is
 						  * unicast.
 						  */
+	SKB_DROP_REASON_XFRM_POLICY,	/* xfrm policy check failed */
+	SKB_DROP_REASON_IP_NOPROTO,	/* no support for IP protocol */
 	SKB_DROP_REASON_MAX,
 };
 
diff --git a/include/trace/events/skb.h b/include/trace/events/skb.h
index 485a1d3034a4..985e481c092d 100644
--- a/include/trace/events/skb.h
+++ b/include/trace/events/skb.h
@@ -23,6 +23,8 @@
 	EM(SKB_DROP_REASON_IP_RPFILTER, IP_RPFILTER)		\
 	EM(SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST,		\
 	   UNICAST_IN_L2_MULTICAST)				\
+	EM(SKB_DROP_REASON_XFRM_POLICY, XFRM_POLICY)		\
+	EM(SKB_DROP_REASON_IP_NOPROTO, IP_NOPROTO)		\
 	EMe(SKB_DROP_REASON_MAX, MAX)
 
 #undef EM
diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c
index 184decb1c8eb..74c090f6eb9d 100644
--- a/net/ipv4/ip_input.c
+++ b/net/ipv4/ip_input.c
@@ -196,7 +196,8 @@ void ip_protocol_deliver_rcu(struct net *net, struct sk_buff *skb, int protocol)
 	if (ipprot) {
 		if (!ipprot->no_policy) {
 			if (!xfrm4_policy_check(NULL, XFRM_POLICY_IN, skb)) {
-				kfree_skb(skb);
+				kfree_skb_reason(skb,
+						 SKB_DROP_REASON_XFRM_POLICY);
 				return;
 			}
 			nf_reset_ct(skb);
@@ -215,7 +216,7 @@ void ip_protocol_deliver_rcu(struct net *net, struct sk_buff *skb, int protocol)
 				icmp_send(skb, ICMP_DEST_UNREACH,
 					  ICMP_PROT_UNREACH, 0);
 			}
-			kfree_skb(skb);
+			kfree_skb_reason(skb, SKB_DROP_REASON_IP_NOPROTO);
 		} else {
 			__IP_INC_STATS(net, IPSTATS_MIB_INDELIVERS);
 			consume_skb(skb);
-- 
2.34.1


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

* [PATCH v2 net-next 7/8] net: udp: use kfree_skb_reason() in udp_queue_rcv_one_skb()
  2022-01-27  9:13 [PATCH v2 net-next 0/8] net: use kfree_skb_reason() for ip/udp packet receive menglong8.dong
                   ` (5 preceding siblings ...)
  2022-01-27  9:13 ` [PATCH v2 net-next 6/8] net: ipv4: use kfree_skb_reason() in ip_protocol_deliver_rcu() menglong8.dong
@ 2022-01-27  9:13 ` menglong8.dong
  2022-01-27  9:13 ` [PATCH v2 net-next 8/8] net: udp: use kfree_skb_reason() in __udp_queue_rcv_skb() menglong8.dong
  7 siblings, 0 replies; 14+ messages in thread
From: menglong8.dong @ 2022-01-27  9:13 UTC (permalink / raw)
  To: dsahern, kuba
  Cc: rostedt, mingo, davem, yoshfuji, edumazet, pablo, kadlec, fw,
	imagedong, alobakin, pabeni, cong.wang, talalahmad, haokexin,
	keescook, memxor, linux-kernel, netdev, netfilter-devel,
	coreteam, mengensun

From: Menglong Dong <imagedong@tencent.com>

Replace kfree_skb() with kfree_skb_reason() in udp_queue_rcv_one_skb().

Signed-off-by: Menglong Dong <imagedong@tencent.com>
---
v2:
- use SKB_DROP_REASON_SOCKET_FILTER instead of
  SKB_DROP_REASON_UDP_FILTER
---
 net/ipv4/udp.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
index 464590ea922e..9e28e76e95b8 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -2120,14 +2120,17 @@ static int __udp_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
  */
 static int udp_queue_rcv_one_skb(struct sock *sk, struct sk_buff *skb)
 {
+	int drop_reason = SKB_DROP_REASON_NOT_SPECIFIED;
 	struct udp_sock *up = udp_sk(sk);
 	int is_udplite = IS_UDPLITE(sk);
 
 	/*
 	 *	Charge it to the socket, dropping if the queue is full.
 	 */
-	if (!xfrm4_policy_check(sk, XFRM_POLICY_IN, skb))
+	if (!xfrm4_policy_check(sk, XFRM_POLICY_IN, skb)) {
+		drop_reason = SKB_DROP_REASON_XFRM_POLICY;
 		goto drop;
+	}
 	nf_reset_ct(skb);
 
 	if (static_branch_unlikely(&udp_encap_needed_key) && up->encap_type) {
@@ -2204,8 +2207,10 @@ static int udp_queue_rcv_one_skb(struct sock *sk, struct sk_buff *skb)
 	    udp_lib_checksum_complete(skb))
 			goto csum_error;
 
-	if (sk_filter_trim_cap(sk, skb, sizeof(struct udphdr)))
+	if (sk_filter_trim_cap(sk, skb, sizeof(struct udphdr))) {
+		drop_reason = SKB_DROP_REASON_SOCKET_FILTER;
 		goto drop;
+	}
 
 	udp_csum_pull_header(skb);
 
@@ -2213,11 +2218,12 @@ static int udp_queue_rcv_one_skb(struct sock *sk, struct sk_buff *skb)
 	return __udp_queue_rcv_skb(sk, skb);
 
 csum_error:
+	drop_reason = SKB_DROP_REASON_UDP_CSUM;
 	__UDP_INC_STATS(sock_net(sk), UDP_MIB_CSUMERRORS, is_udplite);
 drop:
 	__UDP_INC_STATS(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
 	atomic_inc(&sk->sk_drops);
-	kfree_skb(skb);
+	kfree_skb_reason(skb, drop_reason);
 	return -1;
 }
 
-- 
2.34.1


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

* [PATCH v2 net-next 8/8] net: udp: use kfree_skb_reason() in __udp_queue_rcv_skb()
  2022-01-27  9:13 [PATCH v2 net-next 0/8] net: use kfree_skb_reason() for ip/udp packet receive menglong8.dong
                   ` (6 preceding siblings ...)
  2022-01-27  9:13 ` [PATCH v2 net-next 7/8] net: udp: use kfree_skb_reason() in udp_queue_rcv_one_skb() menglong8.dong
@ 2022-01-27  9:13 ` menglong8.dong
  7 siblings, 0 replies; 14+ messages in thread
From: menglong8.dong @ 2022-01-27  9:13 UTC (permalink / raw)
  To: dsahern, kuba
  Cc: rostedt, mingo, davem, yoshfuji, edumazet, pablo, kadlec, fw,
	imagedong, alobakin, pabeni, cong.wang, talalahmad, haokexin,
	keescook, memxor, linux-kernel, netdev, netfilter-devel,
	coreteam, mengensun

From: Menglong Dong <imagedong@tencent.com>

Replace kfree_skb() with kfree_skb_reason() in __udp_queue_rcv_skb().
Following new drop reasons are introduced:

SKB_DROP_REASON_SOCKET_RCVBUFF
SKB_DROP_REASON_PROTO_MEM

Signed-off-by: Menglong Dong <imagedong@tencent.com>
---
 include/linux/skbuff.h     |  5 +++++
 include/trace/events/skb.h |  2 ++
 net/ipv4/udp.c             | 10 +++++++---
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 4e55321e2fc2..2390f6e230fb 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -341,6 +341,11 @@ enum skb_drop_reason {
 						  */
 	SKB_DROP_REASON_XFRM_POLICY,	/* xfrm policy check failed */
 	SKB_DROP_REASON_IP_NOPROTO,	/* no support for IP protocol */
+	SKB_DROP_REASON_SOCKET_RCVBUFF,	/* socket receive buff is full */
+	SKB_DROP_REASON_PROTO_MEM,	/* proto memory limition, such as
+					 * udp packet drop out of
+					 * udp_memory_allocated.
+					 */
 	SKB_DROP_REASON_MAX,
 };
 
diff --git a/include/trace/events/skb.h b/include/trace/events/skb.h
index 985e481c092d..cfcfd26399f7 100644
--- a/include/trace/events/skb.h
+++ b/include/trace/events/skb.h
@@ -25,6 +25,8 @@
 	   UNICAST_IN_L2_MULTICAST)				\
 	EM(SKB_DROP_REASON_XFRM_POLICY, XFRM_POLICY)		\
 	EM(SKB_DROP_REASON_IP_NOPROTO, IP_NOPROTO)		\
+	EM(SKB_DROP_REASON_SOCKET_RCVBUFF, SOCKET_RCVBUFF)	\
+	EM(SKB_DROP_REASON_PROTO_MEM, PROTO_MEM)		\
 	EMe(SKB_DROP_REASON_MAX, MAX)
 
 #undef EM
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
index e295f7f38398..1f756bb0bb1f 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -2093,16 +2093,20 @@ static int __udp_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
 	rc = __udp_enqueue_schedule_skb(sk, skb);
 	if (rc < 0) {
 		int is_udplite = IS_UDPLITE(sk);
+		int drop_reason;
 
 		/* Note that an ENOMEM error is charged twice */
-		if (rc == -ENOMEM)
+		if (rc == -ENOMEM) {
 			UDP_INC_STATS(sock_net(sk), UDP_MIB_RCVBUFERRORS,
 					is_udplite);
-		else
+			drop_reason = SKB_DROP_REASON_SOCKET_RCVBUFF;
+		} else {
 			UDP_INC_STATS(sock_net(sk), UDP_MIB_MEMERRORS,
 				      is_udplite);
+			drop_reason = SKB_DROP_REASON_PROTO_MEM;
+		}
 		UDP_INC_STATS(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
-		kfree_skb(skb);
+		kfree_skb_reason(skb, drop_reason);
 		trace_udp_fail_queue_rcv_skb(rc, sk);
 		return -1;
 	}
-- 
2.34.1


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

* Re: [PATCH v2 net-next 1/8] net: socket: intrudoce SKB_DROP_REASON_SOCKET_FILTER
  2022-01-27  9:13 ` [PATCH v2 net-next 1/8] net: socket: intrudoce SKB_DROP_REASON_SOCKET_FILTER menglong8.dong
@ 2022-01-27 15:37   ` David Ahern
  2022-01-27 16:42     ` Jakub Kicinski
  0 siblings, 1 reply; 14+ messages in thread
From: David Ahern @ 2022-01-27 15:37 UTC (permalink / raw)
  To: menglong8.dong, dsahern, kuba
  Cc: rostedt, mingo, davem, yoshfuji, edumazet, pablo, kadlec, fw,
	imagedong, alobakin, pabeni, cong.wang, talalahmad, haokexin,
	keescook, memxor, linux-kernel, netdev, netfilter-devel,
	coreteam, mengensun

On 1/27/22 2:13 AM, menglong8.dong@gmail.com wrote:
> From: Menglong Dong <imagedong@tencent.com>
> 
> Introduce SKB_DROP_REASON_SOCKET_FILTER, which is used as the reason
> of skb drop out of socket filter. Meanwhile, replace
> SKB_DROP_REASON_TCP_FILTER with it.
> 
> Signed-off-by: Menglong Dong <imagedong@tencent.com>
> ---
>  include/linux/skbuff.h     | 2 +-
>  include/trace/events/skb.h | 2 +-
>  net/ipv4/tcp_ipv4.c        | 2 +-
>  3 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
> index bf11e1fbd69b..8a636e678902 100644
> --- a/include/linux/skbuff.h
> +++ b/include/linux/skbuff.h
> @@ -318,7 +318,7 @@ enum skb_drop_reason {
>  	SKB_DROP_REASON_NO_SOCKET,
>  	SKB_DROP_REASON_PKT_TOO_SMALL,
>  	SKB_DROP_REASON_TCP_CSUM,
> -	SKB_DROP_REASON_TCP_FILTER,
> +	SKB_DROP_REASON_SOCKET_FILTER,
>  	SKB_DROP_REASON_UDP_CSUM,
>  	SKB_DROP_REASON_MAX,
>  };
> diff --git a/include/trace/events/skb.h b/include/trace/events/skb.h
> index 3e042ca2cedb..a8a64b97504d 100644
> --- a/include/trace/events/skb.h
> +++ b/include/trace/events/skb.h
> @@ -14,7 +14,7 @@
>  	EM(SKB_DROP_REASON_NO_SOCKET, NO_SOCKET)		\
>  	EM(SKB_DROP_REASON_PKT_TOO_SMALL, PKT_TOO_SMALL)	\
>  	EM(SKB_DROP_REASON_TCP_CSUM, TCP_CSUM)			\
> -	EM(SKB_DROP_REASON_TCP_FILTER, TCP_FILTER)		\
> +	EM(SKB_DROP_REASON_SOCKET_FILTER, SOCKET_FILTER)	\
>  	EM(SKB_DROP_REASON_UDP_CSUM, UDP_CSUM)			\
>  	EMe(SKB_DROP_REASON_MAX, MAX)
>  
> diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
> index b3f34e366b27..938b59636578 100644
> --- a/net/ipv4/tcp_ipv4.c
> +++ b/net/ipv4/tcp_ipv4.c
> @@ -2095,7 +2095,7 @@ int tcp_v4_rcv(struct sk_buff *skb)
>  	nf_reset_ct(skb);
>  
>  	if (tcp_filter(sk, skb)) {
> -		drop_reason = SKB_DROP_REASON_TCP_FILTER;
> +		drop_reason = SKB_DROP_REASON_SOCKET_FILTER;
>  		goto discard_and_relse;
>  	}
>  	th = (const struct tcphdr *)skb->data;

This should go to net, not net-next.

Reviewed-by: David Ahern <dsahern@kernel.org>


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

* Re: [PATCH v2 net-next 2/8] net: skb_drop_reason: add document for drop reasons
  2022-01-27  9:13 ` [PATCH v2 net-next 2/8] net: skb_drop_reason: add document for drop reasons menglong8.dong
@ 2022-01-27 15:39   ` David Ahern
  0 siblings, 0 replies; 14+ messages in thread
From: David Ahern @ 2022-01-27 15:39 UTC (permalink / raw)
  To: menglong8.dong, dsahern, kuba
  Cc: rostedt, mingo, davem, yoshfuji, edumazet, pablo, kadlec, fw,
	imagedong, alobakin, pabeni, cong.wang, talalahmad, haokexin,
	keescook, memxor, linux-kernel, netdev, netfilter-devel,
	coreteam, mengensun

On 1/27/22 2:13 AM, menglong8.dong@gmail.com wrote:
> From: Menglong Dong <imagedong@tencent.com>
> 
> Add document for following existing drop reasons:
> 
> SKB_DROP_REASON_NOT_SPECIFIED
> SKB_DROP_REASON_NO_SOCKET
> SKB_DROP_REASON_PKT_TOO_SMALL
> SKB_DROP_REASON_TCP_CSUM
> SKB_DROP_REASON_SOCKET_FILTER
> SKB_DROP_REASON_UDP_CSUM
> 
> Signed-off-by: Menglong Dong <imagedong@tencent.com>
> ---
>  include/linux/skbuff.h | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 

Reviewed-by: David Ahern <dsahern@kernel.org>



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

* Re: [PATCH v2 net-next 4/8] net: ipv4: use kfree_skb_reason() in ip_rcv_core()
  2022-01-27  9:13 ` [PATCH v2 net-next 4/8] net: ipv4: use kfree_skb_reason() in ip_rcv_core() menglong8.dong
@ 2022-01-27 16:33   ` David Ahern
  0 siblings, 0 replies; 14+ messages in thread
From: David Ahern @ 2022-01-27 16:33 UTC (permalink / raw)
  To: menglong8.dong, dsahern, kuba
  Cc: rostedt, mingo, davem, yoshfuji, edumazet, pablo, kadlec, fw,
	imagedong, alobakin, pabeni, cong.wang, talalahmad, haokexin,
	keescook, memxor, linux-kernel, netdev, netfilter-devel,
	coreteam, mengensun

On 1/27/22 2:13 AM, menglong8.dong@gmail.com wrote:
> diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c
> index 3a025c011971..7f64c5432cba 100644
> --- a/net/ipv4/ip_input.c
> +++ b/net/ipv4/ip_input.c
> @@ -436,13 +436,18 @@ static int ip_rcv_finish(struct net *net, struct sock *sk, struct sk_buff *skb)
>  static struct sk_buff *ip_rcv_core(struct sk_buff *skb, struct net *net)
>  {
>  	const struct iphdr *iph;
> +	int drop_reason;
>  	u32 len;
>  
> +	drop_reason = SKB_DROP_REASON_NOT_SPECIFIED;
> +
>  	/* When the interface is in promisc. mode, drop all the crap
>  	 * that it receives, do not try to analyse it.
>  	 */
> -	if (skb->pkt_type == PACKET_OTHERHOST)
> +	if (skb->pkt_type == PACKET_OTHERHOST) {
> +		drop_reason = SKB_DROP_REASON_OTHERHOST;
>  		goto drop;
> +	}
>  
>  	__IP_UPD_PO_STATS(net, IPSTATS_MIB_IN, skb->len);
>  
> @@ -516,11 +521,13 @@ static struct sk_buff *ip_rcv_core(struct sk_buff *skb, struct net *net)

There's another path:
        len = ntohs(iph->tot_len);
        if (skb->len < len) {
                __IP_INC_STATS(net, IPSTATS_MIB_INTRUNCATEDPKTS);
                goto drop;
        } else if (len < (iph->ihl*4))
...

where reason = SKB_DROP_REASON_PKT_TOO_SMALL

rest looks ok to me.


>  	return skb;
>  
>  csum_error:
> +	drop_reason = SKB_DROP_REASON_IP_CSUM;
>  	__IP_INC_STATS(net, IPSTATS_MIB_CSUMERRORS);
>  inhdr_error:
> +	drop_reason = drop_reason ?: SKB_DROP_REASON_IP_INHDR;
>  	__IP_INC_STATS(net, IPSTATS_MIB_INHDRERRORS);
>  drop:
> -	kfree_skb(skb);
> +	kfree_skb_reason(skb, drop_reason);
>  out:
>  	return NULL;
>  }


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

* Re: [PATCH v2 net-next 1/8] net: socket: intrudoce SKB_DROP_REASON_SOCKET_FILTER
  2022-01-27 15:37   ` David Ahern
@ 2022-01-27 16:42     ` Jakub Kicinski
  2022-01-28  7:31       ` Menglong Dong
  0 siblings, 1 reply; 14+ messages in thread
From: Jakub Kicinski @ 2022-01-27 16:42 UTC (permalink / raw)
  To: David Ahern, menglong8.dong
  Cc: dsahern, rostedt, mingo, davem, yoshfuji, edumazet, pablo,
	kadlec, fw, imagedong, alobakin, pabeni, cong.wang, talalahmad,
	haokexin, keescook, memxor, linux-kernel, netdev,
	netfilter-devel, coreteam, mengensun

On Thu, 27 Jan 2022 08:37:06 -0700 David Ahern wrote:
> On 1/27/22 2:13 AM, menglong8.dong@gmail.com wrote:
> > From: Menglong Dong <imagedong@tencent.com>
> > 
> > Introduce SKB_DROP_REASON_SOCKET_FILTER, which is used as the reason
> > of skb drop out of socket filter. Meanwhile, replace
> > SKB_DROP_REASON_TCP_FILTER with it.

> > diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
> > index bf11e1fbd69b..8a636e678902 100644
> > --- a/include/linux/skbuff.h
> > +++ b/include/linux/skbuff.h
> > @@ -318,7 +318,7 @@ enum skb_drop_reason {
> >  	SKB_DROP_REASON_NO_SOCKET,
> >  	SKB_DROP_REASON_PKT_TOO_SMALL,
> >  	SKB_DROP_REASON_TCP_CSUM,
> > -	SKB_DROP_REASON_TCP_FILTER,
> > +	SKB_DROP_REASON_SOCKET_FILTER,
> >  	SKB_DROP_REASON_UDP_CSUM,
> >  	SKB_DROP_REASON_MAX,
> 
> This should go to net, not net-next.

Let me make an exception and apply this patch out of the series 
to avoid a conflict / week long wait for another merge.

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

* Re: [PATCH v2 net-next 1/8] net: socket: intrudoce SKB_DROP_REASON_SOCKET_FILTER
  2022-01-27 16:42     ` Jakub Kicinski
@ 2022-01-28  7:31       ` Menglong Dong
  0 siblings, 0 replies; 14+ messages in thread
From: Menglong Dong @ 2022-01-28  7:31 UTC (permalink / raw)
  To: Jakub Kicinski
  Cc: David Ahern, David Ahern, Steven Rostedt, mingo, David Miller,
	Hideaki YOSHIFUJI, Eric Dumazet, pablo, kadlec, Florian Westphal,
	Menglong Dong, alobakin, Paolo Abeni, Cong Wang, talalahmad,
	haokexin, Kees Cook, memxor, LKML, netdev, netfilter-devel,
	coreteam, Mengen Sun

On Fri, Jan 28, 2022 at 12:42 AM Jakub Kicinski <kuba@kernel.org> wrote:
>
> On Thu, 27 Jan 2022 08:37:06 -0700 David Ahern wrote:
> > On 1/27/22 2:13 AM, menglong8.dong@gmail.com wrote:
> > > From: Menglong Dong <imagedong@tencent.com>
> > >
> > > Introduce SKB_DROP_REASON_SOCKET_FILTER, which is used as the reason
> > > of skb drop out of socket filter. Meanwhile, replace
> > > SKB_DROP_REASON_TCP_FILTER with it.
>
> > > diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
> > > index bf11e1fbd69b..8a636e678902 100644
> > > --- a/include/linux/skbuff.h
> > > +++ b/include/linux/skbuff.h
> > > @@ -318,7 +318,7 @@ enum skb_drop_reason {
> > >     SKB_DROP_REASON_NO_SOCKET,
> > >     SKB_DROP_REASON_PKT_TOO_SMALL,
> > >     SKB_DROP_REASON_TCP_CSUM,
> > > -   SKB_DROP_REASON_TCP_FILTER,
> > > +   SKB_DROP_REASON_SOCKET_FILTER,
> > >     SKB_DROP_REASON_UDP_CSUM,
> > >     SKB_DROP_REASON_MAX,
> >
> > This should go to net, not net-next.
>
> Let me make an exception and apply this patch out of the series
> to avoid a conflict / week long wait for another merge.

Thank you! I'll send v3 of this series patches without this one.

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

end of thread, other threads:[~2022-01-28  7:35 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-27  9:13 [PATCH v2 net-next 0/8] net: use kfree_skb_reason() for ip/udp packet receive menglong8.dong
2022-01-27  9:13 ` [PATCH v2 net-next 1/8] net: socket: intrudoce SKB_DROP_REASON_SOCKET_FILTER menglong8.dong
2022-01-27 15:37   ` David Ahern
2022-01-27 16:42     ` Jakub Kicinski
2022-01-28  7:31       ` Menglong Dong
2022-01-27  9:13 ` [PATCH v2 net-next 2/8] net: skb_drop_reason: add document for drop reasons menglong8.dong
2022-01-27 15:39   ` David Ahern
2022-01-27  9:13 ` [PATCH v2 net-next 3/8] net: netfilter: use kfree_drop_reason() for NF_DROP menglong8.dong
2022-01-27  9:13 ` [PATCH v2 net-next 4/8] net: ipv4: use kfree_skb_reason() in ip_rcv_core() menglong8.dong
2022-01-27 16:33   ` David Ahern
2022-01-27  9:13 ` [PATCH v2 net-next 5/8] net: ipv4: use kfree_skb_reason() in ip_rcv_finish_core() menglong8.dong
2022-01-27  9:13 ` [PATCH v2 net-next 6/8] net: ipv4: use kfree_skb_reason() in ip_protocol_deliver_rcu() menglong8.dong
2022-01-27  9:13 ` [PATCH v2 net-next 7/8] net: udp: use kfree_skb_reason() in udp_queue_rcv_one_skb() menglong8.dong
2022-01-27  9:13 ` [PATCH v2 net-next 8/8] net: udp: use kfree_skb_reason() in __udp_queue_rcv_skb() menglong8.dong

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).