Add boot file selection for Kea #7987
Open
+88
−8
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I would like to use Kea, but it would be good to be able to select which boot file is served. So, I implemented this. However, it has some downsides and I imagine will need some revisions before it's ready to be committed.
The biggest downside is that it moves the location of the default boot file, so it is a breaking change. I did this because it seems that the Kea config doesn't allow client classifications (which seem to be the only way to use conditional statements) directly in the
subnet4
block.I've also only tested this with one subnet, but I have designed it so that I expect it should work with multiple subnets, and select boot files appropriately. But, I will probably need some help with that testing.
I could also use assistance in testing the x86 UEFI boot process, as I don't actually have any UEFI-based x86 machines that support network booting. The code I used to identify 32-bit UEFI machines does match the RFC, though, so I don't see any reason why it wouldn't work. I just haven't been able to personally verify it. I have, however, been able to verify booting x64 UEFI and BIOS systems through payloads configured with this code.