Message ID | 20210322154527.224886-1-razor@blackwall.org |
---|---|
State | New |
Headers | show |
Series | [net-next] net: bridge: when suppression is enabled exclude RARP packets | expand |
Hello: This patch was applied to netdev/net-next.git (refs/heads/master): On Mon, 22 Mar 2021 17:45:27 +0200 you wrote: > From: Nikolay Aleksandrov <nikolay@nvidia.com> > > Recently we had an interop issue where RARP packets got suppressed with > bridge neigh suppression enabled, but the check in the code was meant to > suppress GARP. Exclude RARP packets from it which would allow some VMWare > setups to work, to quote the report: > "Those RARP packets usually get generated by vMware to notify physical > switches when vMotion occurs. vMware may use random sip/tip or just use > sip=tip=0. So the RARP packet sometimes get properly flooded by the vtep > and other times get dropped by the logic" > > [...] Here is the summary with links: - [net-next] net: bridge: when suppression is enabled exclude RARP packets https://git.kernel.org/netdev/net-next/c/0353b4a96b7a You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html
diff --git a/net/bridge/br_arp_nd_proxy.c b/net/bridge/br_arp_nd_proxy.c index dfec65eca8a6..3db1def4437b 100644 --- a/net/bridge/br_arp_nd_proxy.c +++ b/net/bridge/br_arp_nd_proxy.c @@ -160,7 +160,9 @@ void br_do_proxy_suppress_arp(struct sk_buff *skb, struct net_bridge *br, if (br_opt_get(br, BROPT_NEIGH_SUPPRESS_ENABLED)) { if (p && (p->flags & BR_NEIGH_SUPPRESS)) return; - if (ipv4_is_zeronet(sip) || sip == tip) { + if (parp->ar_op != htons(ARPOP_RREQUEST) && + parp->ar_op != htons(ARPOP_RREPLY) && + (ipv4_is_zeronet(sip) || sip == tip)) { /* prevent flooding to neigh suppress ports */ BR_INPUT_SKB_CB(skb)->proxyarp_replied = 1; return;