Intel Extensible Firmware Interface User Manual
Page 949
32/64-Bit UNDI Specification
Version 1.10
12/01/02
E-83
// Length of packet data in bytes (not including the media
// header).
PXE_UINT32
PacketLen;
// Protocol type. This will be copied into the media header
// without doing byte swapping. Protocol type numbers can be
// obtained from the Assigned Numbers RFC 1700.
PXE_UINT16
Protocol;
// Length of the media header in bytes.
PXE_UINT16
MediaHeaderLen;
} PXE_CPB_FILL_HEADER;
#pragma pack()
#define
PXE_PROTOCOL_ETHERNET_IP
0x0800
#define
PXE_PROTOCOL_ETHERNET_ARP 0x0806
Fragmented Frame
#pragma pack(1)
typedef struct s_pxe_cpb_fill_header_fragmented {
// Source and destination MAC addresses. These will be copied
// into the media header without doing byte swapping.
PXE_MAC_ADDR
SrcAddr;
PXE_MAC_ADDR
DestAddr;
// Length of packet data in bytes (not including the media
// header).
PXE_UINT32
PacketLen;
// Protocol type. This will be copied into the media header
// without doing byte swapping. Protocol type numbers can be
// obtained from the Assigned Numbers RFC 1700.
PXE_MEDIA_PROTOCOL
Protocol;
// Length of the media header in bytes.
PXE_UINT16
MediaHeaderLen;
// Number of packet fragment descriptors.
PXE_UINT16
FragCnt;
// Reserved, must be set to zero.
PXE_UINT16
reserved;