Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Apr 2015 15:42:51 -0400
From:      Jeremiah Lott <jlott@averesystems.com>
To:        "freebsd-net@freebsd.org" <freebsd-net@freebsd.org>
Subject:   pxeboot with newer Intel NICs
Message-ID:  <CANG7ib-2MhbM-3jASiNeoFMRjiTfRS=9czQMCGo_yD%2B0hr=ixg@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
I am having trouble using pxeboot with new-ish Intel NICs. We have been
using pxeboot with Intel NICs as part of our infrastructure for a while
successfully. Recently, I got some new 2x10G (ixgbe) cards as well as a
motherboard with built-in 4x1G (igb). Neither will work with pxeboot. If I
install an older 4x1G PCI card in the same server, then it will boot with
pxeboot just fine.

It fails at the point that it tries to load the kernel over NFS:

PXE version 2.1, real mode entry point @94ee:0106
BIOS 619kB/1983288kB available memory

FreeBSD/x86 bootstrap loader, Revision 1.1
(root@releng1.nyi.freebsd.org, Tue Nov 11 20:57:26 UTC 2014)
pxe_open: server addr: 10.2.16.3
pxe_open: server path: /usr/tftpboot/mfg_FXT5000_WIP
/

It just sticks there indefinitely. I took a packet capture on the
dhcp/tftp/nfs server (limited to the ip address I know this client is
getting). The initial tftp download of the pxeboot program goes through.
Then I see more dhcp packets (which I assume are from pxeboot program).
Then it sends a portmapper request to get the port for the mount program.
The packet capture on the server shows a proper response, but I assume the
client is not accepting it, because it seems to retry the portmapper
request repeatedly.

  2   2.018066  10.2.15.238 -> 10.2.16.3    TFTP Read Request, File:
pxeboot, Transfer type: octet, tsize\000=0\000 66
  3   2.025813    10.2.16.3 -> 10.2.15.238  TFTP Option Acknowledgement,
tsize\000=231424\000 57
  4   2.025869  10.2.15.238 -> 10.2.16.3    TFTP Error Code, Code: Not
defined, Message: TFTP Aborted 60
  5   2.026980  10.2.15.238 -> 10.2.16.3    TFTP Read Request, File:
pxeboot, Transfer type: octet, blksize\000=1456\000 71
  6   2.034408    10.2.16.3 -> 10.2.15.238  TFTP Option Acknowledgement,
blksize\000=1456\000 57
  7   2.034462  10.2.15.238 -> 10.2.16.3    TFTP Acknowledgement, Block: 0
60
  8   2.034544    10.2.16.3 -> 10.2.15.238  TFTP Data Packet, Block: 1 1502
  9   2.034675  10.2.15.238 -> 10.2.16.3    TFTP Acknowledgement, Block: 1
60
 10   2.034699    10.2.16.3 -> 10.2.15.238  TFTP Data Packet, Block: 2 1502
 11   2.034829  10.2.15.238 -> 10.2.16.3    TFTP Acknowledgement, Block: 2
60

.. clipped a bunch of uninteresting data packets ..

324   2.058989    10.2.16.3 -> 10.2.15.238  TFTP Data Packet, Block: 159
1422
325   2.059115  10.2.15.238 -> 10.2.16.3    TFTP Acknowledgement, Block:
159 60
326   2.124531  10.2.15.238 -> 10.2.16.3    DHCP DHCP Discover -
Transaction ID 0x2005fe90 590
327   2.638748  10.2.15.238 -> 10.2.16.3    DHCP DHCP Request  -
Transaction ID 0x2005fe90 590
328   2.657297  10.2.15.238 -> 10.2.16.3    Portmap V2 GETPORT Call
MOUNT(100005) V:3 UDP 118
329   2.657398    10.2.16.3 -> 10.2.15.238  Portmap V2 GETPORT Reply (Call
In 328) Port:644 70
330   4.293463  10.2.15.238 -> 10.2.16.3    Portmap [RPC retransmission of
#328]V2 GETPORT Call (Reply In 329) MOUNT(100005) V:3 UDP 118
331   4.293536    10.2.16.3 -> 10.2.15.238  Portmap [RPC duplicate of
#329]V2 GETPORT Reply (Call In 328) Port:644 70
332   8.138219  10.2.15.238 -> 10.2.16.3    Portmap [RPC retransmission of
#328]V2 GETPORT Call (Reply In 329) MOUNT(100005) V:3 UDP 118
333   8.138301    10.2.16.3 -> 10.2.15.238  Portmap [RPC duplicate of
#329]V2 GETPORT Reply (Call In 328) Port:644 70
334  14.179978  10.2.15.238 -> 10.2.16.3    Portmap [RPC retransmission of
#328]V2 GETPORT Call (Reply In 329) MOUNT(100005) V:3 UDP 118
335  14.180084    10.2.16.3 -> 10.2.15.238  Portmap [RPC duplicate of
#329]V2 GETPORT Reply (Call In 328) Port:644 70

I did notice that these new cards have newer versions of the "Intel Boot
Agent" firmware. Here is a summary of the versions I tried:

Intel Boot Agent XE v2.3.04 (10G) -> FAILED
Intel Boot Agent GE v1.5.12 (1G) -> FAILED
Intel Boot Agent XE v2.1.60 (10G) -> WORKS
Intel Boot Agent GE v1.3.51 (1g) -> WORKS

Also, the 1G that works is an 82580, while the one that fails is an i350.
The working and failed 10G NICs are both 82599EB.

My assumption is that there is some incompatibility between the PXE
firmware on the newer cards and the pxeboot program. However, these are
very widely used NICs and if this is really the problem it's a little hard
to believe other people haven't hit this. Are other people using newer
Intel 10G (ixgbe) or 1G (igb) NICs with pxeboot successfully?

  Jeremiah Lott
  Avere Systems



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANG7ib-2MhbM-3jASiNeoFMRjiTfRS=9czQMCGo_yD%2B0hr=ixg>