lkml.org 
[lkml]   [2011]   [Mar]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
SubjectRE: [17/18] arp_notify: unconditionally send gratuitous ARP for NETDEV_NOTIFY_PEERS.
Date
Hi Ian/Greg

I just tested your patch with a custom kernel Greg compiled for me and it works for hyperv too as one would expect.
I can now see that a GARP is sent (using wireshark) and that my switch tables are updating.

Many thanks for your work on this and Thanks to Greg for his help.

Regards

Mike

________________________________________
From: Ian Campbell [Ian.Campbell@eu.citrix.com]
Sent: 05 March 2011 09:36
To: Greg KH
Cc: linux-kernel@vger.kernel.org; stable@kernel.org; stable-review@kernel.org; torvalds@linux-foundation.org; akpm@linux-foundation.org; alan@lxorguk.ukuu.org.uk; David S. Miller; Haiyang Zhang; Mike Surcouf; Hank Janssen
Subject: Re: [17/18] arp_notify: unconditionally send gratuitous ARP for NETDEV_NOTIFY_PEERS.

On Sat, 2011-03-05 at 01:03 +0000, Greg KH wrote:
> 2.6.32-longterm review patch. If anyone has any objections, please let us know.
>
> ------------------
>
> From: Ian Campbell <Ian.Campbell@citrix.com>
>
> commit d11327ad6695db8117c78d70611e71102ceec2ac upstream.
>
> NETDEV_NOTIFY_PEER is an explicit request by the driver to send a link
> notification while NETDEV_UP/NETDEV_CHANGEADDR generate link
> notifications as a sort of side effect.
>
> In the later cases the sysctl option is present because link
> notification events can have undesired effects e.g. if the link is
> flapping. I don't think this applies in the case of an explicit
> request from a driver.
>
> This patch makes NETDEV_NOTIFY_PEER unconditional, if preferred we
> could add a new sysctl for this case which defaults to on.
>
> This change causes Xen post-migration ARP notifications (which cause
> switches to relearn their MAC tables etc) to be sent by default.
>
> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
> Signed-off-by: David S. Miller <davem@davemloft.net>
> [reported to solve hyperv live migration problem - gkh]

I hadn't spotted this second caller of netif_notify_peers under
drivers/staging but, yes, I rather suspect it will help hyperv as well
as Xen given that 7c161d0b900ea9bd9fc5ea5d3fa9916e9eb0dd88 "staging: hv:
Enable sending GARP packet after live migration" is already in the
stable and longterm trees.

Ian.

> Cc: Haiyang Zhang <haiyangz@microsoft.com>
> Cc: Mike Surcouf <mike@surcouf.co.uk>
> Cc: Hank Janssen <hjanssen@microsoft.com>
> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
>
> ---
> net/ipv4/devinet.c | 30 ++++++++++++++++++++----------
> 1 file changed, 20 insertions(+), 10 deletions(-)
>
> --- a/net/ipv4/devinet.c
> +++ b/net/ipv4/devinet.c
> @@ -1025,6 +1025,21 @@ static inline bool inetdev_valid_mtu(uns
> return mtu >= 68;
> }
>
> +static void inetdev_send_gratuitous_arp(struct net_device *dev,
> + struct in_device *in_dev)
> +
> +{
> + struct in_ifaddr *ifa = in_dev->ifa_list;
> +
> + if (!ifa)
> + return;
> +
> + arp_send(ARPOP_REQUEST, ETH_P_ARP,
> + ifa->ifa_address, dev,
> + ifa->ifa_address, NULL,
> + dev->dev_addr, NULL);
> +}
> +
> /* Called only under RTNL semaphore */
>
> static int inetdev_event(struct notifier_block *this, unsigned long event,
> @@ -1076,18 +1091,13 @@ static int inetdev_event(struct notifier
> }
> ip_mc_up(in_dev);
> /* fall through */
> - case NETDEV_NOTIFY_PEERS:
> case NETDEV_CHANGEADDR:
> + if (!IN_DEV_ARP_NOTIFY(in_dev))
> + break;
> + /* fall through */
> + case NETDEV_NOTIFY_PEERS:
> /* Send gratuitous ARP to notify of link change */
> - if (IN_DEV_ARP_NOTIFY(in_dev)) {
> - struct in_ifaddr *ifa = in_dev->ifa_list;
> -
> - if (ifa)
> - arp_send(ARPOP_REQUEST, ETH_P_ARP,
> - ifa->ifa_address, dev,
> - ifa->ifa_address, NULL,
> - dev->dev_addr, NULL);
> - }
> + inetdev_send_gratuitous_arp(dev, in_dev);
> break;
> case NETDEV_DOWN:
> ip_mc_down(in_dev);
>
>

----------------------------------------------------------------------
A E Surcouf and Sons Ltd. - Privacy, Security and Confidentiality Notice

This e-mail and any attachments may contain confidential and privileged
information. If you have received this e-mail in error please notify us
immediately and delete it from your system. You must not copy, distribute,
disclose or otherwise use any part of it. This email has been scanned
by current virus software, however it is the responsibility of the
recipient to ensure that this e-mail is virus free and no responsibility
is accepted by A E Surcouf and Sons Ltd. for any loss or damage arising in
any way from receipt or use of it. Unencrypted electronic mail is not
secure and may not be authentic.
-----------------------------------------------------------------------




--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2011-03-06 12:19    [W:0.223 / U:0.048 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site