From edfbd4e4fa63ded7df7232d38cfeb16bc5662f6d Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Fri, 5 Jun 2009 01:06:07 +0100 Subject: [PATCH] [netdevice] Fix incorrect value for MAX_LL_HEADER_LEN MAX_LL_HEADER_LEN is erroneously set to 6 rather than 14, resulting in possible data corruption whenever we send an ARP packet. Fix value and add a comment explaining why MAX_LL_ADDR_LEN is greater than MAX_LL_HEADER_LEN. Reported-by: Joshua Oreman --- src/include/gpxe/netdevice.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/include/gpxe/netdevice.h b/src/include/gpxe/netdevice.h index a2126fac..cfcfb777 100644 --- a/src/include/gpxe/netdevice.h +++ b/src/include/gpxe/netdevice.h @@ -21,11 +21,19 @@ struct net_protocol; struct ll_protocol; struct device; -/** Maximum length of a link-layer address */ +/** Maximum length of a link-layer address + * + * The longest currently-supported link-layer address is for IPoIB. + */ #define MAX_LL_ADDR_LEN 20 -/** Maximum length of a link-layer header */ -#define MAX_LL_HEADER_LEN 6 +/** Maximum length of a link-layer header + * + * The longest currently-supported link-layer header is for Ethernet. + * (The IPoIB link-layer pseudo-header doesn't actually include + * link-layer addresses; see ipoib.c for details). + */ +#define MAX_LL_HEADER_LEN 14 /** Maximum length of a network-layer address */ #define MAX_NET_ADDR_LEN 4