flowadm(8) on Solnix vs Linux and the BSDs

flowadm is the illumos command at /usr/sbin/flowadm for creating and managing per-link flows. A flow is a set of Layer 3/4 attributes with its own kernel resources and optional bandwidth limits. The nearest Linux tool is tc, which uses qdiscs, classes and filters instead, and the option letters do not carry over.

What Solnix runs

A default Solnix system runs the illumos flowadm at /usr/sbin/flowadm (also /sbin/flowadm). No other variants are shipped. Statistics are no longer in flowadm; use flowstat(8). The bundle contains no FreeBSD, OpenBSD or NetBSD counterpart page, so nothing is claimed about the BSDs.

Differences

Compared withTopicWhat differs
Linuxtraffic modelflowadm defines a flow from Layer 3 and Layer 4 attributes, and the flow gets its own kernel queues and processing threads. tc builds traffic control from three object kinds: qdiscs, classes and filters.
Source: Solnix flowadm(8) DESCRIPTION; Linux tc(8) DESCRIPTION
Linuxcommand structureflowadm uses six subcommands: add-flow, remove-flow, show-flow, set-flowprop, reset-flowprop and show-flowprop. tc uses object words (qdisc, class, filter, chain, monitor) with add, change, replace, delete and show verbs.
Source: Solnix flowadm(8) SYNOPSIS; Linux tc(8) SYNOPSIS
Linuxidentifying the linkflowadm names the data link with -l link, and the page says physical links, virtual NICs and link aggregations all work. tc names the device as a positional dev DEV argument.
Source: Solnix flowadm(8) SYNOPSIS, DESCRIPTION; Linux tc(8) SYNOPSIS
Linux-o meaningIn flowadm show-flow and show-flowprop, -o field[,...] selects output fields. In tc, -o (-oneline) prints each record on one line.
Source: Solnix flowadm(8) SYNOPSIS (show-flow -o); Linux tc(8) OPTIONS -o, -oneline
Linux-p meaningIn flowadm add-flow, set-flowprop and reset-flowprop, -p takes property names or prop=value pairs. In show-flow it is a bare flag. In tc, -p (-pretty) is an output format.
Source: Solnix flowadm(8) SYNOPSIS; Linux tc(8) SYNOPSIS (FORMAT -p[retty])
Linux-t meaningflowadm add-flow, remove-flow, set-flowprop and reset-flowprop accept -t; the trimmed page does not describe it. In tc, -t (-timestamp) prints a timestamp before each tc monitor event.
Source: Solnix flowadm(8) SYNOPSIS; Linux tc(8) OPTIONS -t, -timestamp
LinuxstatisticsStatistics display from flowadm show-flow, and the show-usage subcommand, were removed; flowstat(8) replaces them. tc takes statistics from the -s format option on show commands.
Source: Solnix flowadm(8) NOTES; Linux tc(8) SYNOPSIS (FORMAT -s[tatistics])
Linuxalternate root and batch modeflowadm configuration subcommands take -R root-dir. The flowadm page documents no batch or network-namespace option. tc has -b/-batch to read commands from a file or stdin, and -n/-netns to select a network namespace.
Source: Solnix flowadm(8) SYNOPSIS; Linux tc(8) OPTIONS -b, -n
Linuxflow without a limitflowadm can create a flow with no bandwidth limit, only to give that traffic its own queues and resources. The tc page does not describe an equivalent.
Source: Solnix flowadm(8) DESCRIPTION; Linux tc(8) DESCRIPTION
LinuxdirectionThe tc page says shaping and scheduling happen only on egress, and policing on ingress. The flowadm page says inbound and outbound packets are matched to flows, and does not split behaviour by direction.
Source: Linux tc(8) DESCRIPTION; Solnix flowadm(8) DESCRIPTION
Linuxexit statusflowadm documents 0 for success and >0 for any error. The tc page documents an exit status only for batch mode: with -force it returns non-zero if any command failed.
Source: Solnix flowadm(8) EXIT STATUS; Linux tc(8) -force

Everyday tasks

TaskSolnixLinux
define a flow or traffic match on a linkflowadm add-flow -l link -a attr=value[,...] flowtc filter add dev DEV ... flowid flow-id
remove a flow or filterflowadm remove-flow -l link (or: flowadm remove-flow flow)tc filter delete dev DEV ...
set bandwidth or other propertiesflowadm set-flowprop -p prop=value[,...] flowtc class change dev DEV parent qdisc-id ... (qdisc specific parameters)
show configured flows or classesflowadm show-flow [-l link] [flow]tc class show dev DEV; tc filter show dev DEV
show flow propertiesflowadm show-flowprop [-l link] [flow]—
show traffic statisticsflowstat(8)tc -s qdisc show dev DEV

Standards

  • POSIX: flowadm is not a POSIX.1-2024 utility.
  • Solnix: Interface Stability: Committed.

Writing portable scripts

  • flowadm and tc share no syntax. Wrap them in separate per-OS functions and branch on which command exists rather than translating options.
  • Do not parse flowadm show-flow output for statistics; that was removed, so call flowstat(8) instead.

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.