From: Hangbin Liu <liuhangbin@gmail.com>
To: Paolo Abeni <pabeni@redhat.com>
Cc: netdev@vger.kernel.org, Jay Vosburgh <j.vosburgh@gmail.com>,
"David S . Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
Eric Dumazet <edumazet@google.com>, Liang Li <liali@redhat.com>,
Jiri Pirko <jiri@nvidia.com>,
Nikolay Aleksandrov <razor@blackwall.org>
Subject: Re: [PATCHv3 net 2/2] team: reset team's flags when down link is P2P device
Date: Fri, 21 Jul 2023 11:43:39 +0800 [thread overview]
Message-ID: <ZLn+65hLufxEibUN@Laptop-X1> (raw)
In-Reply-To: <dcb23aaea64e5a890dd3c819dd6ba1ab2799dbfd.camel@redhat.com>
On Thu, Jul 20, 2023 at 12:40:56PM +0200, Paolo Abeni wrote:
> > I don't see the reason why we should inherited a none ethernet dev's mtu
> > to an ethernet dev (i.e. add a none ethernet dev to team, then delete it and
> > re-add a ethernet dev to team). I think the dev type has changed, so the
> > mtu should also be updated.
> >
> > BTW, after adding the port, team will also set port's mtu to team's mtu.
>
> Let suppose the user has set the lower dev MTU to some N (< 1500) for
> whatever reason (e.g. lower is a vxlan tunnel). After this change, team
> will use mtu = 1500 breaking the connectivity in such scenario/
This looks like a team bug here. Team will not inherited port mtu if
they are some dev type. This would cause adding vxlan to team failed.
But if we change the team dev type and then adding vxlan. Team will
reset the mtu and add vxlan success.
With my patch, if we reset team to 1500, the later adding will failed.
So, as consistency, you suggestion is right.
> As far as I can see team_setup_by_port() takes care of that, inheriting
> such infor from the current slave. What I mean is something alike the
> following.
>
> Cheers,
>
> Paolo
>
> ---
> diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
> index 555b0b1e9a78..17c8056adbe9 100644
> --- a/drivers/net/team/team.c
> +++ b/drivers/net/team/team.c
> @@ -2135,6 +2135,15 @@ static void team_setup_by_port(struct net_device *dev,
> dev->mtu = port_dev->mtu;
> memcpy(dev->broadcast, port_dev->broadcast, port_dev->addr_len);
> eth_hw_addr_inherit(dev, port_dev);
> +
> + if (port_dev->flags & IFF_POINTOPOINT) {
> + dev->flags &= ~(IFF_BROADCAST | IFF_MULTICAST);
> + dev->flags |= (IFF_POINTOPOINT | IFF_NOARP);
> + } else if ((port_dev->flags & (IFF_BROADCAST | IFF_MULTICAST)) ==
> + (IFF_BROADCAST | IFF_MULTICAST)) {
> + dev->flags |= IFF_BROADCAST | IFF_MULTICAST;
> + dev->flags &= ~(IFF_POINTOPOINT | IFF_NOARP)
> + }
> }
Thanks, this looks good to me. I will update the patch.
Hangbin
prev parent reply other threads:[~2023-07-21 3:43 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-18 10:17 [PATCHv3 net 0/2] Fix up dev flags when add P2P down link Hangbin Liu
2023-07-18 10:17 ` [PATCHv3 net 1/2] bonding: reset bond's flags when down link is P2P device Hangbin Liu
2023-07-18 10:17 ` [PATCHv3 net 2/2] team: reset team's " Hangbin Liu
2023-07-20 8:29 ` Paolo Abeni
2023-07-20 9:46 ` Hangbin Liu
2023-07-20 10:40 ` Paolo Abeni
2023-07-21 3:43 ` Hangbin Liu [this message]
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=ZLn+65hLufxEibUN@Laptop-X1 \
--to=liuhangbin@gmail.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=j.vosburgh@gmail.com \
--cc=jiri@nvidia.com \
--cc=kuba@kernel.org \
--cc=liali@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.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).