route(8) on Solnix vs Linux and the BSDs

On Solnix, route is the illumos route at /usr/sbin/route (also /sbin/route). Its main difference from Linux and the BSDs is -p: it saves a route to the list applied at boot, with -R choosing an alternate root and `route -p show` listing the saved routes.

What Solnix runs

A default Solnix system runs the illumos route at /usr/sbin/route and /sbin/route. No other variants are shipped. The page says route normally leaves the tables to a routing daemon such as in.routed(8) or in.ripngd(8). Only superusers can modify the tables, but the get operation is allowed for non-privileged users.

Differences

Compared withTopicWhat differs
all fourpersistent routes (-p, -R)Only Solnix route has -p, which applies the change to the live table and then to the saved list used at startup. -R root-dir changes only that saved list, and only together with -p. The other pages in the bundle show no equivalent option.
Source: Solnix route(8) -p, -R; Linux/FreeBSD/OpenBSD/NetBSD route(8) OPTIONS
FreeBSDmeaning of showOn Solnix, show displays the routes saved for system startup and works only with -p. On FreeBSD, show is another name for get, which looks up the route for a destination.
Source: Solnix route(8) Subcommands (show); FreeBSD route(8) commands (show)
NetBSDmeaning of showOn NetBSD, show prints the live routing table, similar to netstat -r. On Solnix, show prints only the saved startup routes and requires -p.
Source: NetBSD route(8) commands (show); Solnix route(8) show
Linuxcommand languageLinux route has only add and del, with keyword arguments (gw, netmask, metric, dev). Run with neither, it displays the table. Solnix has add, change, delete, flush, get, monitor and show, and takes -inet/-inet6/-net/-host/-interface modifiers. Its page does not say what a bare route does.
Source: Linux route(8) SYNOPSIS, DESCRIPTION; Solnix route(8) SYNOPSIS, Subcommands
Linuxshowing the table and -eLinux route prints the table by default and -e switches to netstat-format output. The Solnix page documents no table-listing form other than `route -p show` (saved routes). It documents `get` for single lookups.
Source: Linux route(8) DESCRIPTION, -e; Solnix route(8) Subcommands (get, show)
FreeBSD, OpenBSD, NetBSD-f flagSolnix -f flushes gateway entries before running the subcommand. The inet or inet6 modifier right after -f picks the table, and IPv4 is the default. NetBSD -f is similar. FreeBSD and OpenBSD have no -f and use the flush command only.
Source: Solnix route(8) -f; NetBSD route(8) -f; FreeBSD route(8) SYNOPSIS; OpenBSD route(8) SYNOPSIS
FreeBSD, OpenBSD, NetBSD-d and -t test optionsSolnix has neither -d nor -t. FreeBSD and OpenBSD -d means debug-only, with no change made to the table. NetBSD -d means turn on debugging, and -t means test only. FreeBSD and OpenBSD -t write messages to /dev/null instead of a socket.
Source: Solnix route(8) OPTIONS; FreeBSD route(8) -d, -t; OpenBSD route(8) -d, -t; NetBSD route(8) -d, -t
FreeBSD, OpenBSD, NetBSD-q scopeSolnix -q suppresses all output. FreeBSD -q suppresses output only from add, change, delete and flush. NetBSD -q covers commands that manipulate the routing table. OpenBSD -q suppresses all output.
Source: Solnix route(8) -q; FreeBSD route(8) -q; NetBSD route(8) -q; OpenBSD route(8) -q
FreeBSD, OpenBSDjails and alternate routing tablesFreeBSD route -j runs inside a jail, and the FreeBSD commands take -fib number. OpenBSD route -T rtable selects an alternate routing table, and `route exec` runs a command bound to one. The Solnix synopsis has neither -j nor -T.
Source: FreeBSD route(8) -j, -fib; OpenBSD route(8) -T, exec; Solnix route(8) SYNOPSIS
NetBSDNetBSD-only optionsNetBSD has -L (hide link-layer entries), -S (align flags), -s (short get output) and -T (show tags), plus flushall and `monitor -c count`. Solnix has none of these. Its monitor takes only an optional -inet or -inet6.
Source: NetBSD route(8) -L, -S, -s, -T, commands, monitor; Solnix route(8) monitor syntax
FreeBSD, OpenBSD, NetBSDdelete subcommand spellingThe Solnix page lists only delete. FreeBSD documents del as another name for delete, and OpenBSD documents del[ete]. Linux accepts del but has no delete in its synopsis.
Source: Solnix route(8) Subcommands; FreeBSD route(8) commands (del); OpenBSD route(8) del[ete]; Linux route(8) SYNOPSIS
Linuxdirectly reachable routesSolnix marks a route as reachable through an interface with the -interface or -iface modifier, and the gateway operand names that interface's address. Linux uses `dev If`, which is optional unless the interface must be forced.
Source: Solnix route(8) Destinations and Gateways (-interface, -iface); Linux route(8) dev If

Everyday tasks

TaskSolnixLinuxFreeBSDOpenBSDNetBSD
look up the route for a destinationroute get destination—route get destinationroute get destinationroute get destination
add a routeroute add destination gatewayroute add target gw Gwroute add destination gatewayroute add destination gatewayroute add destination gateway
add a route that survives rebootroute -p add destination gateway————
list routes saved for bootroute -p show————
remove all gateway routesroute flush—route flushroute flushroute flush
watch routing changesroute monitor—route monitorroute monitorroute monitor

Standards

  • POSIX: route is not a POSIX.1-2024 utility.
  • Solnix: The Solnix page text in the bundle has no STANDARDS or interface-stability section.

Writing portable scripts

  • Use -n and the add, delete and get subcommands with an explicit destination and gateway. Do not rely on bare `route`, show, or del, which differ across Solnix, Linux and the BSDs.
  • Do not use -p, -f, -d or -t in portable scripts. -p exists only on Solnix, and -d, -t and -f differ or are absent elsewhere.

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.