netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: Menglong Dong <menglong8.dong@gmail.com>
Cc: idosch@nvidia.com, davem@davemloft.net, edumazet@google.com,
	pabeni@redhat.com, dsahern@kernel.org, dongml2@chinatelecom.cn,
	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 v2 06/12] net: vxlan: make vxlan_set_mac() return drop reasons
Date: Mon, 2 Sep 2024 18:12:11 -0700	[thread overview]
Message-ID: <20240902181211.7ca407f1@kernel.org> (raw)
In-Reply-To: <CADxym3bkVFApps1wJpSQME=WcN_Xy1_biL94TZyhQucBHaRc5w@mail.gmail.com>

On Sun, 1 Sep 2024 20:47:27 +0800 Menglong Dong wrote:
> > > @@ -1620,7 +1620,7 @@ static bool vxlan_set_mac(struct vxlan_dev *vxlan,
> > >
> > >       /* Ignore packet loops (and multicast echo) */
> > >       if (ether_addr_equal(eth_hdr(skb)->h_source, vxlan->dev->dev_addr))
> > > -             return false;
> > > +             return (u32)VXLAN_DROP_INVALID_SMAC;  
> >
> > It's the MAC address of the local interface, not just invalid...
> >  
> 
> Yeah, my mistake. It seems that we need to add a
> VXLAN_DROP_LOOP_SMAC here? I'm not sure if it is worth here,
> or can we reuse VXLAN_DROP_INVALID_SMAC here too?

Could you take a look at the bridge code and see if it has similar
checks? Learning the addresses and dropping frames which don't match
static FDB entries seem like fairly normal L2 switching drop reasons.
Perhaps we could add these as non-VXLAN specific?

The subsystem reason API was added for wireless, because wireless
folks had their own encoding, and they have their own development
tree (we don't merge their patches directly into net-next).
I keep thinking that we should add the VXLAN reason to the "core"
group rather than creating a subsystem..

> > >       /* Get address from the outer IP header */
> > >       if (vxlan_get_sk_family(vs) == AF_INET) {
> > > @@ -1635,9 +1635,9 @@ static bool vxlan_set_mac(struct vxlan_dev *vxlan,
> > >
> > >       if ((vxlan->cfg.flags & VXLAN_F_LEARN) &&
> > >           vxlan_snoop(skb->dev, &saddr, eth_hdr(skb)->h_source, ifindex, vni))
> > > -             return false;
> > > +             return (u32)VXLAN_DROP_ENTRY_EXISTS;  
> >
> > ... because it's vxlan_snoop() that checks:
> >
> >         if (!is_valid_ether_addr(src_mac))  
> 
> It seems that we need to make vxlan_snoop() return skb drop reasons
> too, and we need to add a new patch, which makes this series too many
> patches. Any  advice?

You could save some indentation by inverting the condition:

 	if (!(vxlan->cfg.flags & VXLAN_F_LEARN))
		return (u32)SKB_NOT_DROPPED_YET;

	return vxlan_snoop(skb->dev, &saddr, eth_hdr(skb)->h_source, ifindex, vni);

But yes, I don't see a better way than having vxlan_snoop() return a
reason code :(

The patch limit count is 15, 12 is our preferred number but you can go
higher if it helps the clarity of the series.

  reply	other threads:[~2024-09-03  1:12 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-30  1:59 [PATCH net-next v2 00/12] net: vxlan: add skb drop reasons support Menglong Dong
2024-08-30  1:59 ` [PATCH net-next v2 01/12] net: vxlan: add vxlan to the drop reason subsystem Menglong Dong
2024-08-30 14:42   ` Alexander Lobakin
2024-09-01  3:30     ` Menglong Dong
2024-08-30  1:59 ` [PATCH net-next v2 02/12] net: skb: add pskb_network_may_pull_reason() helper Menglong Dong
2024-08-30 14:45   ` Alexander Lobakin
2024-09-01 12:34     ` Menglong Dong
2024-08-30  1:59 ` [PATCH net-next v2 03/12] net: tunnel: add pskb_inet_may_pull_reason() helper Menglong Dong
2024-08-30  1:59 ` [PATCH net-next v2 04/12] net: tunnel: add skb_vlan_inet_prepare_reason() helper Menglong Dong
2024-08-30 14:47   ` Alexander Lobakin
2024-09-01 12:36     ` Menglong Dong
2024-08-30  1:59 ` [PATCH net-next v2 05/12] net: vxlan: make vxlan_remcsum() return drop reasons Menglong Dong
2024-08-30 14:49   ` Alexander Lobakin
2024-08-30  1:59 ` [PATCH net-next v2 06/12] net: vxlan: make vxlan_set_mac() " Menglong Dong
2024-08-30 14:57   ` Alexander Lobakin
2024-09-01 12:56     ` Menglong Dong
2024-08-30 15:31   ` Simon Horman
2024-09-01 12:37     ` Menglong Dong
2024-08-30 23:26   ` Jakub Kicinski
2024-09-01 12:47     ` Menglong Dong
2024-09-03  1:12       ` Jakub Kicinski [this message]
2024-09-04  1:59         ` Menglong Dong
2024-08-30  1:59 ` [PATCH net-next v2 07/12] net: vxlan: add skb drop reasons to vxlan_rcv() Menglong Dong
2024-08-30 15:04   ` Alexander Lobakin
2024-09-01 13:02     ` Menglong Dong
2024-09-03 12:32       ` Alexander Lobakin
2024-08-30 15:36   ` Simon Horman
2024-09-01 12:48     ` Menglong Dong
2024-08-30  1:59 ` [PATCH net-next v2 08/12] net: vxlan: use vxlan_kfree_skb() in vxlan_xmit() Menglong Dong
2024-08-30 15:34   ` Simon Horman
2024-09-01 13:02     ` Menglong Dong
2024-08-30  1:59 ` [PATCH net-next v2 09/12] net: vxlan: add drop reasons support to vxlan_xmit_one() Menglong Dong
2024-08-30  1:59 ` [PATCH net-next v2 10/12] net: vxlan: use kfree_skb_reason in vxlan_mdb_xmit Menglong Dong
2024-08-30  2:00 ` [PATCH net-next v2 11/12] net: vxlan: use kfree_skb_reason in vxlan_encap_bypass Menglong Dong
2024-08-30  2:00 ` [PATCH net-next v2 12/12] 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=20240902181211.7ca407f1@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 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).