Home · About · Download · Documentation · Getting Help · Google+

Ticket #40 (closed enhancement: fixed)

Opened 7 years ago

Last modified 6 years ago

Need to fix Warewulf to be able to accept IB MAC address

Reported by: ikaufman Owned by: gmk
Priority: minor Milestone:
Component: common Version:
Keywords: Cc:


Still haven't figured out exactly where this happens, but Warewulf assumes all PXEboot interfaces are Ethernet, looking for an initial "00" prefix to signify Ethernet, and only looks for 6 octets (48 bits). IB uses the prefix "20" and uses 8 octets.

Change History

comment:1 Changed 7 years ago by ikaufman

OK, more info from playing around.

On DHCP request, normal Ethernet sends a "01:XX:XX:XX:XX:XX:XX", with the "01" signifying Ethernet. IB interfaces send "20:XX:XX:XX:XX:XX:XX:XX:XX", with "20" signifying Infiniband. SO, wherever Warewulf collects and defines the interface, a switch on the lead "01" or "20", plus the correct number of followign octets is necessary.

Still digging to see where this all happens.


comment:2 Changed 7 years ago by ikaufman

OK, figured this out somewhat.

In Node.pm, change:

if ($opt_hwaddr =~ /((?:[0-9a-f]{2}:){5}[0-9a-f]{2})$/)


if ($opt_hwaddr =~ /((?:[0-9a-f]{2}:){5,7}[0-9a-f]{2})$/)

This will check for 6 - 8 total pairs, which will work for Ethernet and IB.

In Provision.pm, when creating the pxelinux config, you probably need to do a quick check for 6 or 8 octets. This should work:

if ($opt_hwaddr =~ /(([0-9a-f]{2}:){7}[0-9a-f]{2})$/) {

my $hwprefix = "20-";

} else {

my $hwprefix = "01-";


and then add the prefix using:

my $config = $hwprefix . $hwaddr;


comment:3 Changed 6 years ago by gmk

Hi Ian,

Please look at commit [818] to see if this provides what you need.


comment:4 Changed 6 years ago by gmk

  • Status changed from new to closed
  • Resolution set to fixed

This should be fixed at this point. Closing ticket, but feel free to reopen if needed.

Note: See TracTickets for help on using tickets.