Bug 1280318

Summary: Please build iPXE roms for QEMU with IPv6 support
Product: [Fedora] Fedora Reporter: Tore Anderson <tore>
Component: ipxeAssignee: Fedora Virtualization Maintainers <virt-maint>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 24CC: berrange, crobinso, kraxel, lersek, lprosek, mrezanin, pbonzini, psimerda, virt-maint
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-08-03 17:08:53 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 883152    
Attachments:
Description Flags
Patch to enable IPv6 none

Description Tore Anderson 2015-11-11 13:20:07 UTC
Description of problem:

The images in ipxe-roms-qemu.rpm are built without support for IPv6. This makes it impossible to boot virtual machines over IPv6.

Version-Release number of selected component (if applicable):

ipxe-roms-qemu-20150407-1.gitdc795b9f.fc22.noarch

How reproducible:

100%

Steps to Reproduce:
1. Attempt to network boot a virtual machine on an IPv6 network that supports network boot according to RFC 5970

Actual results:

The boot fails.

Expected results:

The boot succeeds.

Additional info:

All that is necessary to make iPXE support IPV6 is to enable (#define) NET_PROTO_IPV6 in src/config/general.h.

The current default IPv4-only behaviour is a violation of BCP-177 (RFC 6540), see http://tools.ietf.org/html/rfc6540.

Comment 1 Tore Anderson 2015-11-12 10:49:52 UTC
Created attachment 1093141 [details]
Patch to enable IPv6

FYI, rebuilding ipxe-20150407-1.gitdc795b9f.fc22.src.rpm with the attached patch included in the .spec file produces a set of iPXE ROMs that allowed me to successfully network boot a QEMU/KVM virtual machine over an IPv6-only network. (The hypervisor in question was running RHEL7 but the built RPM installed fine there without any dependency problems.)

Tore

Comment 2 Cole Robinson 2015-11-12 12:46:25 UTC
Thanks for the report and the patch.

I wonder why this isn't enabled by default in ipxe... Gerd or Paolo, any idea? I assume this is fine to enable but we tend to just mirror the qemu ipxe config for fedora, so maybe it should be changed at the qemu level as well

Comment 3 Tore Anderson 2015-11-12 12:55:12 UTC
AFAIK it's due to space constraints. IPv6 supports adds a few KiBs. In some cases you can't program more than 64k onto the firmware area in some types of hardware. I don't think that's relevant for KVM though. At least it worked fine when I tested it, and I note that at least one of the .rom files in the RPM already exceeds 64K (10ec8139.rom).

Also for UEFI builds space is less of an issue as I understand it.

Tore

Comment 4 Gerd Hoffmann 2015-11-13 08:20:19 UTC
qemu roms are 256k anyway (pci rom bar size is power of two).
ipv6 seems to add ~15k:

[ current qemu git master ]
-rw-rw-r--. 1 kraxel kraxel 196608 Nov 13 09:13 ../pc-bios/efi-e1000.rom
-rw-rw-r--. 1 kraxel kraxel 197120 Nov 13 09:13 ../pc-bios/efi-eepro100.rom
-rw-rw-r--. 1 kraxel kraxel 195584 Nov 13 09:13 ../pc-bios/efi-ne2k_pci.rom
-rw-rw-r--. 1 kraxel kraxel 195584 Nov 13 09:13 ../pc-bios/efi-pcnet.rom
-rw-rw-r--. 1 kraxel kraxel 199168 Nov 13 09:13 ../pc-bios/efi-rtl8139.rom
-rw-rw-r--. 1 kraxel kraxel 193024 Nov 13 09:13 ../pc-bios/efi-virtio.rom

[ rebuilt with ipv6 enabled ]
-rw-rw-r--. 1 kraxel kraxel 210944 Nov 13 07:46 ../pc-bios/efi-e1000.rom
-rw-rw-r--. 1 kraxel kraxel 211456 Nov 13 07:46 ../pc-bios/efi-eepro100.rom
-rw-rw-r--. 1 kraxel kraxel 209408 Nov 13 07:46 ../pc-bios/efi-ne2k_pci.rom
-rw-rw-r--. 1 kraxel kraxel 209920 Nov 13 07:46 ../pc-bios/efi-pcnet.rom
-rw-rw-r--. 1 kraxel kraxel 214016 Nov 13 07:46 ../pc-bios/efi-rtl8139.rom
-rw-rw-r--. 1 kraxel kraxel 207360 Nov 13 07:46 ../pc-bios/efi-virtio.rom

Can't see any reasons why we shouldn't flip the switch ;)

Comment 5 Cole Robinson 2015-11-17 18:47:39 UTC
I pushed a newer ipxe to rawhide, with ipv6 enabled, and sent a patch to upstream ipxe enabling it for the qemu build profile:

http://lists.ipxe.org/pipermail/ipxe-devel/2015-November/004494.html

Provided there isn't any controversy on the patch I'll push the newer ipxe to f22 and f23 as well

Comment 9 Cole Robinson 2016-08-03 17:08:53 UTC
This is in f24, so just closing against that version