From b340971852912616de01b51848b224de23024177 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Thu, 23 Mar 2017 18:15:24 +0200 Subject: [PATCH] [iobuf] Increase minimum I/O buffer size to 128 bytes The eIPoIB translation layer needs to translate outbound ARP packets from Ethernet to IPoIB. A 64-byte buffer (starting with the Ethernet header) does not provide enough tailroom to expand to hold the two 20-byte IPoIB MAC addresses. The result is that an UNDI API user will be unable to send ARP packets. We could potentially shuffle the packet contents to reuse the space occupied by the stripped Ethernet link-layer header, but this would add complexity. Instead, fix by increasing the minimum allocation size to 128 bytes. Signed-off-by: Michael Brown --- src/include/ipxe/iobuf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/include/ipxe/iobuf.h b/src/include/ipxe/iobuf.h index 27d285d4..b40ade35 100644 --- a/src/include/ipxe/iobuf.h +++ b/src/include/ipxe/iobuf.h @@ -20,7 +20,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); * necessary. This is used on behalf of hardware that is not capable * of auto-padding. */ -#define IOB_ZLEN 64 +#define IOB_ZLEN 128 /** * A persistent I/O buffer