dladm(8) on Solnix vs Linux and the BSDs
dladm is the illumos command that administers data links (physical NICs, aggregations, VLANs, bridges, VNICs, etherstubs, tunnels, WiFi and more) as named objects with create-*, delete-*, show-* subcommands. Linux ip link and BSD ifconfig do the same jobs, but they are different tools: ifconfig also assigns addresses and sets interface state, and the dladm synopsis has no operand for either.
The manual pages
- Solnix: dladm(8) from
pkgs.solnix.illumos-world-man· illumos.org - Linux: ip-link(8) iproute2-7.0.0 (different command, similar job)
- FreeBSD: ifconfig(8) 15.1-RELEASE (different command, similar job)
- OpenBSD: ifconfig(8) 8.0 (different command, similar job)
- NetBSD: ifconfig(8) 11.0 (different command, similar job)
What Solnix runs
A default Solnix system runs the illumos dladm at /usr/sbin/dladm (also /sbin/dladm). No other variants are shipped. The page is published by pkgs.solnix.illumos-world-man. Run with no arguments, dladm behaves like dladm show-link.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| all four | command model | dladm uses one subcommand per object and action (create-aggr, show-vlan, delete-vnic, ...). ip link uses add/delete/set/show with a TYPE argument. ifconfig uses interface-first syntax with parameters, plus create and destroy on the BSDs. Source: Solnix dladm(8) SYNOPSIS; Linux ip-link(8) SYNOPSIS (ip link add ... type TYPE); FreeBSD ifconfig(8) SYNOPSIS (interface create, interface destroy); OpenBSD ifconfig(8) create, destroy |
| FreeBSD, OpenBSD, NetBSD | addresses and up/down | BSD ifconfig assigns network addresses (address, alias, delete) and marks interfaces down. The dladm synopsis has no IP address operand or up/down subcommand. Its -u address option on create-aggr, create-simnet and create-vnic -m sets a MAC address. The visible page does not say which tool configures IP on a link.Source: Solnix dladm(8) SYNOPSIS (create-aggr -u address); FreeBSD/OpenBSD/NetBSD ifconfig(8) DESCRIPTION, alias, down |
| Linux | link state and attributes | ip link set takes up, down, mtu, address, promisc and name on an existing device. dladm uses set-linkprop -p prop=value[,...] and reset-linkprop -p prop for link properties, and rename-link for renaming. The visible dladm text does not list property names.Source: Solnix dladm(8) set-linkprop, reset-linkprop, rename-link; Linux ip-link(8) ip link { set | change } |
| Linux | virtual device types | dladm has dedicated subcommands for aggr, bridge, vlan, vnic, etherstub, simnet, iptun, overlay and IB partitions (create-part). ip link add reaches similar devices through type values such as bond, bridge, vlan, veth, ipoib, gre, vxlan and geneve. Names and options differ per tool. Source: Solnix dladm(8) SYNOPSIS; Linux ip-link(8) TYPE list and Link types |
| all four | link name rules | A dladm link name must start with a letter and end with a number, be at most 31 characters, and the number must be 0-4294967294 with no leading zero. A bridge name must start and end with a letter, so the link name for observability is the bridge name plus 0. The other pages shown do not state these rules. Source: Solnix dladm(8) DESCRIPTION (link, bridge); OpenBSD ifconfig(8) interface |
| all four | persistent vs temporary changes | Most dladm create/modify/delete/set subcommands take -t and -R root-dir; -R applies the operation to an alternate root directory. The visible text does not define -t or say where persistent state is stored. OpenBSD points to hostname.if(5) files for boot-time setup. FreeBSD and NetBSD say ifconfig is used at boot.Source: Solnix dladm(8) SYNOPSIS (-t), Options (-R root-dir); OpenBSD ifconfig(8) DESCRIPTION (hostname.if(5)); FreeBSD ifconfig(8) DESCRIPTION |
| FreeBSD, OpenBSD, NetBSD | listing and parsable output | dladm show-* subcommands take -o field[,...] and -p for parsable output, and -P on several shows. show-link and show-aggr add -s [-i interval] for statistics. ifconfig -l prints only interface names (FreeBSD, NetBSD); -a prints everything. Neither BSD page shown has a field selector.Source: Solnix dladm(8) show-link -o, -p, -s, -i; FreeBSD ifconfig(8) -l, -a; NetBSD ifconfig(8) SYNOPSIS; OpenBSD ifconfig(8) -a |
| FreeBSD | jails vs alternate root | FreeBSD ifconfig -j jid acts inside a jail, including a vnet jail without ifconfig installed. dladm's common option is -R root-dir, an alternate root directory. The visible dladm text has no zone option.Source: FreeBSD ifconfig(8) -j; Solnix dladm(8) Options (-R root-dir) |
| all four | bridge options | dladm create-bridge sets spanning-tree values directly: -P protect, -p priority, -m max-age, -h hello-time, -d forward-delay, -f force-protocol, and member links with -l link. The name "default" and names starting with SUNW are reserved.Source: Solnix dladm(8) create-bridge, DESCRIPTION (bridge); Linux ip-link(8) bridge type |
| all four | WiFi handling | dladm has scan-wifi, connect-wifi (-e essid, -k key, -s none|wep|wpa, -b bss|ibss), disconnect-wifi and show-wifi, plus secure objects (create-secobj). The visible ifconfig text sets 802.11 behaviour through ifconfig parameters such as mode.Source: Solnix dladm(8) SYNOPSIS (WiFi, secobj); NetBSD ifconfig(8) mode |
Everyday tasks
| Task | Solnix | Linux | FreeBSD | OpenBSD | NetBSD |
|---|---|---|---|---|---|
| show data links | dladm show-link (or dladm with no arguments) | ip link show | ifconfig -a | ifconfig -a | ifconfig -a |
| list interface names only | dladm show-link -p -o field | — | ifconfig -l | — | ifconfig -l |
| create a VLAN | dladm create-vlan -l ether-link -v vid [vlan-link] | ip link add link DEVICE NAME type vlan ARGS | — | — | — |
| create an aggregation / bond | dladm create-aggr -l ether-link ... aggr-link | ip link add NAME type bond | — | — | — |
| rename a link | dladm rename-link link new-link | ip link set DEVICE name NEWNAME | — | — | — |
| set a link property | dladm set-linkprop -p prop=value link | ip link set DEVICE mtu MTU | — | — | — |
| create a virtual interface | dladm create-vnic -l link vnic-link | ip link add NAME type TYPE | ifconfig interface create | ifconfig interface create | — |
| delete a virtual interface | dladm delete-vnic vnic-link | ip link delete DEVICE type TYPE | ifconfig interface destroy | ifconfig interface destroy | — |
| list creatable pseudo-devices | — | ip link help | ifconfig -C | ifconfig -C | ifconfig -C |
| show statistics | dladm show-link -s [-i interval] | — | — | — | — |
Standards
- POSIX: dladm is not a POSIX.1-2024 utility.
Writing portable scripts
- Do not expect one script to drive all systems: dladm, ip link and ifconfig have different syntax. Branch on which tool exists and keep link names for each in a small per-OS function.
- On Solnix, parse dladm show-* output with
-p-ofield rather than the default table.
Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.