All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: Menglong Dong <menglong8.dong@gmail.com>
Cc: davem@davemloft.net, edumazet@google.com, pabeni@redhat.com,
	dsahern@kernel.org, dongml2@chinatelecom.cn, idosch@nvidia.com,
	amcohen@nvidia.com, gnault@redhat.com, bpoirier@nvidia.com,
	b.galvani@gmail.com, razor@blackwall.org, petrm@nvidia.com,
	linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Subject: Re: [PATCH net-next 06/10] net: vxlan: add skb drop reasons to vxlan_rcv()
Date: Fri, 16 Aug 2024 19:22:43 -0700	[thread overview]
Message-ID: <20240816192243.050d0b1f@kernel.org> (raw)
In-Reply-To: <20240815124302.982711-7-dongml2@chinatelecom.cn>

On Thu, 15 Aug 2024 20:42:58 +0800 Menglong Dong wrote:
>  #define VXLAN_DROP_REASONS(R)			\
> +	R(VXLAN_DROP_FLAGS)			\
> +	R(VXLAN_DROP_VNI)			\
> +	R(VXLAN_DROP_MAC)			\

Drop reasons should be documented.
I don't think name of a header field is a great fit for a reason.

>  	/* deliberate comment for trailing \ */
>  
>  enum vxlan_drop_reason {
> diff --git a/drivers/net/vxlan/vxlan_core.c b/drivers/net/vxlan/vxlan_core.c
> index e971c4785962..9a61f04bb95d 100644
> --- a/drivers/net/vxlan/vxlan_core.c
> +++ b/drivers/net/vxlan/vxlan_core.c
> @@ -1668,6 +1668,7 @@ static bool vxlan_ecn_decapsulate(struct vxlan_sock *vs, void *oiph,
>  /* Callback from net/ipv4/udp.c to receive packets */
>  static int vxlan_rcv(struct sock *sk, struct sk_buff *skb)
>  {
> +	enum skb_drop_reason reason = pskb_may_pull_reason(skb, VXLAN_HLEN);

Do not call complex functions inline as variable init..

>  	struct vxlan_vni_node *vninode = NULL;
>  	struct vxlan_dev *vxlan;
>  	struct vxlan_sock *vs;
> @@ -1681,7 +1682,7 @@ static int vxlan_rcv(struct sock *sk, struct sk_buff *skb)
>  	int nh;
>  
>  	/* Need UDP and VXLAN header to be present */
> -	if (!pskb_may_pull(skb, VXLAN_HLEN))
> +	if (reason != SKB_NOT_DROPPED_YET)

please don't compare against "not dropped yet", just:

	if (reason)

> @@ -1815,8 +1831,9 @@ static int vxlan_rcv(struct sock *sk, struct sk_buff *skb)
>  	return 0;
>  
>  drop:
> +	SKB_DR_RESET(reason);

the name of this macro is very confusing, I don't think it should exist
in the first place. nothing should goto drop without initialing reason

>  	/* Consume bad packet */
> -	kfree_skb(skb);
> +	kfree_skb_reason(skb, reason);
>  	return 0;
>  }

  reply	other threads:[~2024-08-17  2:22 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-15 12:42 [PATCH net-next 00/10] net: vxlan: add skb drop reasons support Menglong Dong
2024-08-15 12:42 ` [PATCH net-next 01/10] net: vxlan: add vxlan to the drop reason subsystem Menglong Dong
2024-08-15 12:42 ` [PATCH net-next 02/10] net: skb: add SKB_DR_RESET Menglong Dong
2024-08-20 12:24   ` Ido Schimmel
2024-08-21 12:55     ` Menglong Dong
2024-08-15 12:42 ` [PATCH net-next 03/10] net: skb: introduce pskb_network_may_pull_reason() Menglong Dong
2024-08-15 12:42 ` [PATCH net-next 04/10] net: ip: introduce pskb_inet_may_pull_reason() Menglong Dong
2024-08-15 12:42 ` [PATCH net-next 05/10] net: vxlan: make vxlan_remcsum() return skb drop reasons Menglong Dong
2024-08-15 12:42 ` [PATCH net-next 06/10] net: vxlan: add skb drop reasons to vxlan_rcv() Menglong Dong
2024-08-17  2:22   ` Jakub Kicinski [this message]
2024-08-17 11:33     ` Menglong Dong
2024-08-19 22:59       ` Jakub Kicinski
2024-08-21 12:51         ` Menglong Dong
2024-08-20 12:26   ` Ido Schimmel
2024-08-21 12:54     ` Menglong Dong
2024-08-15 12:42 ` [PATCH net-next 07/10] net: vxlan: use vxlan_kfree_skb() in vxlan_xmit() Menglong Dong
2024-08-20 12:28   ` Ido Schimmel
2024-08-21 12:57     ` Menglong Dong
2024-08-15 12:43 ` [PATCH net-next 08/10] net: vxlan: add drop reasons support to vxlan_xmit_one() Menglong Dong
2024-08-20 12:33   ` Ido Schimmel
2024-08-21 13:02     ` Menglong Dong
2024-08-15 12:43 ` [PATCH net-next 09/10] net: vxlan: use kfree_skb_reason in vxlan_encap_bypass Menglong Dong
2024-08-15 12:43 ` [PATCH net-next 10/10] net: vxlan: use vxlan_kfree_skb in encap_bypass_if_local Menglong Dong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240816192243.050d0b1f@kernel.org \
    --to=kuba@kernel.org \
    --cc=amcohen@nvidia.com \
    --cc=b.galvani@gmail.com \
    --cc=bpoirier@nvidia.com \
    --cc=davem@davemloft.net \
    --cc=dongml2@chinatelecom.cn \
    --cc=dsahern@kernel.org \
    --cc=edumazet@google.com \
    --cc=gnault@redhat.com \
    --cc=idosch@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=menglong8.dong@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=petrm@nvidia.com \
    --cc=razor@blackwall.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.