[pxe] Fix interoperability with the Symantec (undipd) DOS UNDI driver
authorMichael Brown <mcb30@etherboot.org>
Tue, 23 Jun 2009 21:53:29 +0000 (22:53 +0100)
committerMichael Brown <mcb30@etherboot.org>
Tue, 23 Jun 2009 21:56:21 +0000 (22:56 +0100)
The Symantec UNDI DOS driver fails when run on top of gPXE because we
return our interface type as "gPXE" rather than one of the predefined
NDIS interface type strings.

Fix by returning the standard "DIX+802.3" string; this isn't
necessarily always accurate, but it's highly unlikely that anything
trying to use the UNDI API would understand our IPoIB link-layer
pseudo-header anyway.

src/arch/i386/interface/pxe/pxe_undi.c

index fd07f14..95267b6 100644 (file)
@@ -532,7 +532,7 @@ PXENV_EXIT_t pxenv_undi_get_iface_info ( struct s_PXENV_UNDI_GET_IFACE_INFO
         * Most PXE stacks seem to take this approach.
         */
        snprintf ( ( char * ) undi_get_iface_info->IfaceType,
-                  sizeof ( undi_get_iface_info->IfaceType ), "gPXE" );
+                  sizeof ( undi_get_iface_info->IfaceType ), "DIX+802.3" );
        undi_get_iface_info->LinkSpeed = 10000000; /* 10 Mbps */
        undi_get_iface_info->ServiceFlags =
                ( SUPPORTED_BROADCAST | SUPPORTED_MULTICAST |