summaryrefslogtreecommitdiffstats
path: root/src/config
diff options
context:
space:
mode:
authorMichael Brown2015-06-25 11:04:42 +0200
committerMichael Brown2015-06-25 17:58:38 +0200
commitfb28c4a97941c1ab21ee5eba725c69822f51aa1d (patch)
treebe39cd2b8412352e9dc7dbb2f831fef77a697a82 /src/config
parent[netdevice] Add a generic concept of a "blocked link" (diff)
downloadipxe-fb28c4a97941c1ab21ee5eba725c69822f51aa1d.tar.gz
ipxe-fb28c4a97941c1ab21ee5eba725c69822f51aa1d.tar.xz
ipxe-fb28c4a97941c1ab21ee5eba725c69822f51aa1d.zip
[stp] Add support for detecting Spanning Tree Protocol non-forwarding ports
A fairly common end-user problem is that the default configuration of a switch may leave the port in a non-forwarding state for a substantial length of time (tens of seconds) after link up. This can cause iPXE to time out and give up attempting to boot. We cannot force the switch to start forwarding packets sooner, since any attempt to send a Spanning Tree Protocol bridge PDU may cause the switch to disable our port (if the switch happens to have the Bridge PDU Guard feature enabled for the port). For non-ancient versions of the Spanning Tree Protocol, we can detect whether or not the port is currently forwarding and use this to inform the network device core that the link is currently blocked. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/config')
-rw-r--r--src/config/config_ethernet.c3
-rw-r--r--src/config/general.h1
2 files changed, 4 insertions, 0 deletions
diff --git a/src/config/config_ethernet.c b/src/config/config_ethernet.c
index 372ec993..de7a07c5 100644
--- a/src/config/config_ethernet.c
+++ b/src/config/config_ethernet.c
@@ -40,3 +40,6 @@ REQUIRE_OBJECT ( aoe );
#ifdef NET_PROTO_FCOE
REQUIRE_OBJECT ( fcoe );
#endif
+#ifdef NET_PROTO_STP
+REQUIRE_OBJECT ( stp );
+#endif
diff --git a/src/config/general.h b/src/config/general.h
index 7676f158..c8afc10a 100644
--- a/src/config/general.h
+++ b/src/config/general.h
@@ -37,6 +37,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
#define NET_PROTO_IPV4 /* IPv4 protocol */
#undef NET_PROTO_IPV6 /* IPv6 protocol */
#undef NET_PROTO_FCOE /* Fibre Channel over Ethernet protocol */
+#define NET_PROTO_STP /* Spanning Tree protocol */
/*
* PXE support