From: Jay Vosburgh <jay.vosburgh@canonical.com> To: Jarod Wilson <jarod@redhat.com> Cc: linux-kernel@vger.kernel.org, Veaceslav Falico <vfalico@gmail.com>, Andy Gospodarek <andy@greyhouse.net>, "David S. Miller" <davem@davemloft.net>, Jakub Kicinski <kuba@kernel.org>, Thomas Davis <tadavis@lbl.gov>, netdev@vger.kernel.org Subject: Re: [PATCH 3/4] bond_alb: don't tx balance multicast traffic either Date: Wed, 19 May 2021 11:45:15 -0700 [thread overview] Message-ID: <32659.1621449915@famine> (raw) In-Reply-To: <20210518210849.1673577-4-jarod@redhat.com> Jarod Wilson <jarod@redhat.com> wrote: >Multicast traffic going out the non-primary interface can come back in >through the primary interface in alb mode. When there's a bridge sitting >on top of the bond, with virtual machines behind it, attached to vnetX >interfaces also acting as bridge ports, this can cause problems. The >multicast traffic ends up rewriting the bridge forwarding database >entries, replacing a vnetX entry in the fdb with the bond instead, at >which point, we lose traffic. If we don't tx balance multicast traffic, we >don't break connectivity. Just so I'm clear, the rewrite happens because the "looped" frame bears the source MAC of the VM behind the bridge, but is arriving at the bridge via the bond, correct? If so this change seems reasonable, with one minor nit, below. >Cc: Jay Vosburgh <j.vosburgh@gmail.com> >Cc: Veaceslav Falico <vfalico@gmail.com> >Cc: Andy Gospodarek <andy@greyhouse.net> >Cc: "David S. Miller" <davem@davemloft.net> >Cc: Jakub Kicinski <kuba@kernel.org> >Cc: Thomas Davis <tadavis@lbl.gov> >Cc: netdev@vger.kernel.org >Signed-off-by: Jarod Wilson <jarod@redhat.com> >--- > drivers/net/bonding/bond_alb.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > >diff --git a/drivers/net/bonding/bond_alb.c b/drivers/net/bonding/bond_alb.c >index ce8257c7cbea..4df661b77252 100644 >--- a/drivers/net/bonding/bond_alb.c >+++ b/drivers/net/bonding/bond_alb.c >@@ -1422,6 +1422,7 @@ struct slave *bond_xmit_alb_slave_get(struct bonding *bond, > const struct iphdr *iph; > > if (is_broadcast_ether_addr(eth_data->h_dest) || >+ is_multicast_ether_addr(eth_data->h_dest) || Note that is_multicast_ is a superset of is_broadcast_, so in this case (and the one below) is_broadcast_ can simply be replaced by is_multicast_. Granted, is_broadcast_ is cheap, but this is in the TX path for every packet. -J > !pskb_network_may_pull(skb, sizeof(*iph))) { > do_tx_balance = false; > break; >@@ -1441,7 +1442,8 @@ struct slave *bond_xmit_alb_slave_get(struct bonding *bond, > /* IPv6 doesn't really use broadcast mac address, but leave > * that here just in case. > */ >- if (is_broadcast_ether_addr(eth_data->h_dest)) { >+ if (is_broadcast_ether_addr(eth_data->h_dest) || >+ is_multicast_ether_addr(eth_data->h_dest)) { > do_tx_balance = false; > break; > } >-- >2.30.2 > --- -Jay Vosburgh, jay.vosburgh@canonical.com
next prev parent reply other threads:[~2021-05-19 18:45 UTC|newest] Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-18 21:08 [PATCH 0/4] bond_alb: support VMs behind bridges better Jarod Wilson 2021-05-18 21:08 ` [PATCH 1/4] bonding: add pure source-mac-based tx hashing option Jarod Wilson 2021-05-19 9:01 ` Nikolay Aleksandrov 2021-05-18 21:08 ` [PATCH 2/4] bond_alb: don't rewrite bridged non-local MACs Jarod Wilson 2021-05-19 22:31 ` Jay Vosburgh 2021-05-18 21:08 ` [PATCH 3/4] bond_alb: don't tx balance multicast traffic either Jarod Wilson 2021-05-19 18:45 ` Jay Vosburgh [this message] 2021-05-18 21:08 ` [PATCH 4/4] bond_alb: put all slaves into promisc Jarod Wilson 2021-05-19 16:47 ` Jay Vosburgh 2021-05-21 13:27 ` [PATCH net-next v2 0/4] bonding/balance-alb: support VMs behind bridges better Jarod Wilson 2021-05-21 13:27 ` [PATCH net-next v2 1/4] bonding: add pure source-mac-based tx hashing option Jarod Wilson 2021-05-21 13:39 ` Nikolay Aleksandrov 2021-05-21 13:41 ` Nikolay Aleksandrov 2021-05-21 18:01 ` Jay Vosburgh 2021-05-21 13:27 ` [PATCH net-next v2 2/4] bonding/balance-lb: don't rewrite bridged non-local MACs Jarod Wilson 2021-05-21 17:58 ` Jay Vosburgh 2021-05-21 13:27 ` [PATCH net-next v2 3/4] bonding/balance-alb: don't tx balance multicast traffic either Jarod Wilson 2021-05-21 17:02 ` Jay Vosburgh 2021-05-21 13:27 ` [PATCH net-next v2 4/4] bonding/balance-alb: put all slaves into promisc Jarod Wilson 2021-05-21 17:01 ` Jay Vosburgh
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=32659.1621449915@famine \ --to=jay.vosburgh@canonical.com \ --cc=andy@greyhouse.net \ --cc=davem@davemloft.net \ --cc=jarod@redhat.com \ --cc=kuba@kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=netdev@vger.kernel.org \ --cc=tadavis@lbl.gov \ --cc=vfalico@gmail.com \ --subject='Re: [PATCH 3/4] bond_alb: don'\''t tx balance multicast traffic either' \ /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
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.