[gPXE] resolving layer-2/layer-3 readiness issues

Silver, Geoffrey Geoffrey.Silver at citadelgroup.com
Tue Nov 30 13:58:04 EST 2010


Our network infrastructure seems to have a significant delay between Layer 2 and Layer 3 readiness. This can cause failures to download bootfile; the request times out.  This patch is a bit of a hack - we've done some testing and with a 2 second sleep we still sometimes have issues, but have never had an issue with a 3 second sleep after 10,000+ gPXEs.

As a suggestion, probably the correct way to resolve this is to have boot_next_server_and_filename() or maybe imgfetch() go through a series of sleeps and retries until it succeeds or times out.  Unfortunately what I have below works for me, and being short-staffed I don't have the time to turn it into a proper patch.

--- gpxe.orig/src/usr/autoboot.c 2009-10-21 14:05:47.000000000 -0500
+++ gpxe.new/src/usr/autoboot.c 2009-11-23 10:49:07.000000000 -0600
@@ -21,6 +21,7 @@
#include <string.h>
#include <stdio.h>
#include <errno.h>
+#include <unistd.h>
#include <gpxe/netdevice.h>
#include <gpxe/dhcp.h>
#include <gpxe/settings.h>
@@ -172,6 +173,8 @@
        fetch_ipv4_setting ( NULL, &next_server_setting, &next_server );
        fetch_string_setting ( NULL, &filename_setting, buf, sizeof ( buf ) );
        if ( buf[0] ) {
+               printf ( "Sleeping 3 seconds to complete port init...\n" );
+               sleep(3);
                printf ( "Booting from filename \"%s\"\n", buf );
                return boot_next_server_and_filename ( next_server, buf );
        }


--
Geoffrey Silver
Global Infrastructure
CITADEL


________________________________

CONFIDENTIALITY AND SECURITY NOTICE

The contents of this message and any attachments may be confidential and proprietary and also may be covered by the Electronic Communications Privacy Act. This message is not intended to be used by, and should not be relied upon in any way, by any third party. If you are not an intended recipient, please inform the sender of the transmission error and delete this message immediately without reading, disseminating, distributing or copying the contents. Citadel makes no assurances that this e-mail and any attachments are free of viruses and other harmful code.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://etherboot.org/pipermail/gpxe/attachments/20101130/e72ccf70/attachment.html 


More information about the gPXE mailing list