arp(8) on Solnix vs Linux and the BSDs

On Solnix, arp is the illumos arp at /usr/sbin/arp. It takes only -a, -d, -f, -n and -s. Entries are permanent unless you add the word temp, and -a flags are single letters such as L, P and S. Linux, FreeBSD and OpenBSD add interface selection, which Solnix lacks.

What Solnix runs

A default Solnix system runs the illumos arp at /usr/sbin/arp. No other variants are shipped. The page says arp -a is equivalent to netstat -p -f inet, and arp -an to netstat -pn -f inet. Changing the tables (-d, -f, -s) needs the PRIV_SYS_NET_CONFIG privilege.

Differences

Compared withTopicWhat differs
Linux, FreeBSDinterface selection (-i)Solnix arp has no -i option. Linux -i selects an interface when dumping, setting or deleting entries. FreeBSD -i limits display one, display all and delete all to one interface.
Source: Solnix arp(8) SYNOPSIS; Linux arp(8) -i; FreeBSD arp(8) -i
Linux-a and -e output styleOn Solnix, -a displays all entries and takes -n. On Linux, -a selects the alternate BSD-style output format, and -e selects the default Linux style with fixed columns. Linux lists all entries with no option at all.
Source: Solnix arp(8) -a; Linux arp(8) SYNOPSIS, -a, -e
all four-a flag lettersSolnix -a output marks entries with flags d, o, y, A, L, M, P, S and U. Linux marks C, M and P. OpenBSD uses l and p. NetBSD shows state letters D, I, N, P, R, S, U, W. FreeBSD documents no flag letters.
Source: Solnix arp(8) -a; Linux arp(8) DESCRIPTION; OpenBSD arp(8) -a; NetBSD arp(8) DESCRIPTION
Linux, FreeBSD, NetBSDdefault lifetime of -s entriesOn Solnix, an entry made with -s is not deleted by aging unless temp is given. FreeBSD and NetBSD say it is permanent unless temp is given. OpenBSD calls it static and overwritable by network traffic unless permanent is given. Solnix permanent means MAC changes from the network are refused.
Source: Solnix arp(8) -s; FreeBSD arp(8) -s; NetBSD arp(8) -s; OpenBSD arp(8) -s
FreeBSD, OpenBSD, NetBSDdeleting all entriesSolnix -d takes only a hostname, and the page documents no delete-all form. FreeBSD, OpenBSD and NetBSD allow -d combined with -a to delete every entry.
Source: Solnix arp(8) -d; FreeBSD arp(8) -d, -a; OpenBSD arp(8) -d; NetBSD arp(8) -d
FreeBSD, OpenBSD, NetBSDoverwriting an existing entrySolnix has no -S or -F. FreeBSD -S deletes an existing entry before setting it. OpenBSD -F forces overwrite, otherwise an existing entry is not replaced. The Solnix page does not say what -s does to an existing entry.
Source: Solnix arp(8) SYNOPSIS; FreeBSD arp(8) -S; OpenBSD arp(8) -F, -s
FreeBSDblackhole and rejectSolnix -s accepts temp, pub, trail and permanent only. FreeBSD also accepts blackhole and reject, to discard traffic to a host without a firewall.
Source: Solnix arp(8) SYNOPSIS, -s; FreeBSD arp(8) -s
Linux, FreeBSD, NetBSDauto or interface MAC for proxy entriesSolnix -s needs an explicit MAC address. FreeBSD and NetBSD accept auto as ether_addr for published entries, and Linux -D takes an interface name instead. The Solnix page documents neither.
Source: Solnix arp(8) -s; FreeBSD arp(8) -s; NetBSD arp(8) -s; Linux arp(8) -D
all four-f file formatSolnix -f needs a filename and reads lines of hostname MACaddress [temp] [pub] [trail] [permanent]. Linux -f defaults to /etc/ethers if no file is given. FreeBSD ignores blank lines and # comments. The Solnix page does not mention comments.
Source: Solnix arp(8) -f; Linux arp(8) -f; FreeBSD arp(8) -f
OpenBSDWake on LAN and routing domainOpenBSD arp has -W to send Wake on LAN frames and -V to select a routing domain. Solnix arp has neither.
Source: OpenBSD arp(8) -W, -V; Solnix arp(8) SYNOPSIS
Linux, NetBSDverbose optionSolnix arp has no -v. Linux -v and NetBSD -v print verbose information. NetBSD -v applies when adding or deleting entries.
Source: Linux arp(8) -v; NetBSD arp(8) -v; Solnix arp(8) SYNOPSIS
FreeBSDmachine-readable outputFreeBSD arp takes --libxo for machine-readable output formats. Solnix does not.
Source: FreeBSD arp(8) --libxo; Solnix arp(8) SYNOPSIS

Standards

  • POSIX: arp is not a POSIX.1-2024 utility.

Writing portable scripts

  • Use only arp hostname, arp -a, arp -d hostname and arp -s hostname ether_addr. Avoid -i, -v and -S. Meanings and output differ between systems.
  • Do not parse arp -a output across systems. Columns, flag letters and state letters differ on Solnix, Linux and each BSD.

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.