Repository navigation
netlink: create, move and modify links on FreeBSD - #10
Merged
Merged
Conversation
Found by running link operations against a VNET jail: FreeBSD has no RTM_SETLINK (RTM_NEWLINK without NLM_F_CREATE modifies instead), its strict mode rejects the header flags a link modification carries while dumps filter fine without it, it reports errno positive, and RTM_DELLINK takes an index, not a name. So: link modifications go through one set_link helper that picks the message type per OS; strict checking is only requested on Linux and the FreeBSD socket shim drops it; netlink errors are normalized to the Linux sign; del_link resolves a name to its index on FreeBSD. create_link makes a bridge through the ioctl module and renames it, other kinds are refused with a clear error, set_link_ns is SIOCSIFVNET and a set_mtu helper joins the link setters. Linux paths are unchanged. Signed-off-by: Michael Johnson <buhnux@gmail.com>
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.
Found by running link operations against a VNET jail: FreeBSD has no
RTM_SETLINK (RTM_NEWLINK without NLM_F_CREATE modifies instead), its
strict mode rejects the header flags a link modification carries while
dumps filter fine without it, it reports errno positive, and
RTM_DELLINK takes an index, not a name.
So: link modifications go through one set_link helper that picks the
message type per OS; strict checking is only requested on Linux and the
FreeBSD socket shim drops it; netlink errors are normalized to the Linux
sign; del_link resolves a name to its index on FreeBSD. create_link
makes a bridge through the ioctl module and renames it, other kinds are
refused with a clear error, set_link_ns is SIOCSIFVNET and a set_mtu
helper joins the link setters. Linux paths are unchanged.
Signed-off-by: Michael Johnson buhnux@gmail.com