Page MenuHomeFreeBSD

[WIP] Add IPv6 NFS Root support
Needs ReviewPublic

Authored by bz on Nov 21 2019, 8:45 PM.
This revision needs review, but there are no reviewers specified.

Details

Reviewers
None
Summary

A first cut at NFS Root over IPv6 support.
So far no bootp support as it is unclear how we'll
be called when doing UEFI IPv6 booting yet.
Needs investigation probably with bhyve.

To be clear, this is a work-in-progress.

Test Plan

Set a few loader variables and can see the initial TCP
packet but the NFS handle and state will not be right
if booted from a different IPv4 server initially.

boot.netif.ip6="2001:db8:7c78::2/64"
boot.netif.gateway6="0"
boot.nfsroot.server6="2001:db8:7c78::1"

Diff Detail

Repository
rS FreeBSD src repository
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 27752
Build 25949: arc lint + arc unit

Event Timeline

bz created this revision.Nov 21 2019, 8:45 PM

Trying to understand your bootp comment in summary. Are you pointing at no support yet for https://tools.ietf.org/html/rfc5970 or that there just isn't a ipv6 option for defining boot info like bootp had?

bz added a comment.Nov 22 2019, 12:21 AM

Trying to understand your bootp comment in summary. Are you pointing at no support yet for https://tools.ietf.org/html/rfc5970 or that there just isn't a ipv6 option for defining boot info like bootp had?

I think neither yet. Just trying to figure out how all this will be passed in/on from each stage to the next; We need to get the info from efi in the loader and from there on also to the kernel, and depending on how we do that we'll need to right glue code.

I'd prefer to have bootp instead of the NFS_ROOT stuff. But we have a good mix of options (including the standalone NFS client) and until I have my test setup to work from EFI forward I've deferred a decision and am just trying to get the 2nd half sorted.

Unrelated, I think I broke IPv4 ...

bz updated this revision to Diff 64835.Nov 24 2019, 10:56 PM

inet_pton() stroes network byte order, so lose the original (now extra)
htonl() and unbreak IPv4 support.