Repository navigation
Initial Illumos support - #194
Merged
Merged
Conversation
7 tasks
Contributor
Author
Owner
|
Thanks for the contribution and for adding illumos support! I’ll review the changes soon. I noticed that the illumos cross build CI check is failing because cargo nextest archive uses --locked, but netdev intentionally doesn’t track Cargo.lock. Could you remove the --locked flag from this step? Thanks again! |
Contributor
Author
|
Removed --locked, thanks. Pushed in 1f9deb9 |
Closed
Owner
|
I’ve reviewed the changes and found no blocking issues or regressions affecting existing platforms. |
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Adds illumos (OmniOS) support: interface enumeration through getifaddrs plus
the illumos-specific ioctls.
What it does
src/os/illumosmodule, selected fortarget_os = "illumos".lifreq.rsreproducesstruct lifreqand theSIOCGLIFFLAGS/SIOCGLIFMTUioctl numbers, becauselibcdoes not bind them forillumos. The layout follows <net/if.h>: 376 bytes on LP64, with
lifr_typeat offset 36 and the union at offset 40 sized for
lif_nd_req.derived from the size via
_IOWRand a wrong layout silently producesfailing ioctls.
CI
An illumos workflow cross-builds the tests with the cross-rs image and runs them
in an OmniOS VM (adapted from the net-tools one).
Tested
OmniOS r151058, in a non-global zone, as a dependency of rayfish (through
netwatch): interface enumeration works and the daemon runs normally.
sizeof(struct lifreq)was cross-checked with a C program on the same system(376).
Notes
ioctl(fd, request: c_int, ...),so request codes are plain
c_int.32-bit (ILP32) builds, where
struct lifreqdiffers.Related
Used by the illumos support in net-tools (netwatch), which depends on this change.
n0-computer/net-tools#255