Author: royger
Date: Thu May 14 16:29:11 2015
New Revision: 282908
URL: https://svnweb.freebsd.org/changeset/base/282908

Log:
  netfront: wait for backend to connect before sending ARP
  
  Netfront has to wait for the backend to switch to state XenbusStateConnected
  before sending the ARP request, or else the backend might not be connected
  and thus the packet will be lost.
  
  Sponsored by: Citrix Systems R&D
  MFC after: 1 week

Modified:
  head/sys/dev/xen/netfront/netfront.c

Modified: head/sys/dev/xen/netfront/netfront.c
==============================================================================
--- head/sys/dev/xen/netfront/netfront.c        Thu May 14 15:49:48 2015        
(r282907)
+++ head/sys/dev/xen/netfront/netfront.c        Thu May 14 16:29:11 2015        
(r282908)
@@ -682,7 +682,6 @@ netfront_backend_changed(device_t dev, X
        switch (newstate) {
        case XenbusStateInitialising:
        case XenbusStateInitialised:
-       case XenbusStateConnected:
        case XenbusStateUnknown:
        case XenbusStateClosed:
        case XenbusStateReconfigured:
@@ -694,13 +693,15 @@ netfront_backend_changed(device_t dev, X
                if (network_connect(sc) != 0)
                        break;
                xenbus_set_state(dev, XenbusStateConnected);
-#ifdef INET
-               netfront_send_fake_arp(dev, sc);
-#endif
                break;
        case XenbusStateClosing:
                xenbus_set_state(dev, XenbusStateClosed);
                break;
+       case XenbusStateConnected:
+#ifdef INET
+               netfront_send_fake_arp(dev, sc);
+#endif
+               break;
        }
 }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to