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.

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 withTopicWhat differs
all fourcommand modeldladm 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, NetBSDaddresses and up/downBSD 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
Linuxlink state and attributesip 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 }
Linuxvirtual device typesdladm 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 fourlink name rulesA 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 fourpersistent vs temporary changesMost 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, NetBSDlisting and parsable outputdladm 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
FreeBSDjails vs alternate rootFreeBSD 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 fourbridge optionsdladm 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 fourWiFi handlingdladm 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

TaskSolnixLinuxFreeBSDOpenBSDNetBSD
show data linksdladm show-link (or dladm with no arguments)ip link showifconfig -aifconfig -aifconfig -a
list interface names onlydladm show-link -p -o field—ifconfig -l—ifconfig -l
create a VLANdladm create-vlan -l ether-link -v vid [vlan-link]ip link add link DEVICE NAME type vlan ARGS———
create an aggregation / bonddladm create-aggr -l ether-link ... aggr-linkip link add NAME type bond———
rename a linkdladm rename-link link new-linkip link set DEVICE name NEWNAME———
set a link propertydladm set-linkprop -p prop=value linkip link set DEVICE mtu MTU———
create a virtual interfacedladm create-vnic -l link vnic-linkip link add NAME type TYPEifconfig interface createifconfig interface create—
delete a virtual interfacedladm delete-vnic vnic-linkip link delete DEVICE type TYPEifconfig interface destroyifconfig interface destroy—
list creatable pseudo-devices—ip link helpifconfig -Cifconfig -Cifconfig -C
show statisticsdladm 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 -o field 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.