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.
The manual pages
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 with | Topic | What differs |
|---|---|---|
| Linux, FreeBSD | interface 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 style | On 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 letters | Solnix -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, NetBSD | default lifetime of -s entries | On 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, NetBSD | deleting all entries | Solnix -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, NetBSD | overwriting an existing entry | Solnix 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 |
| FreeBSD | blackhole and reject | Solnix -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, NetBSD | auto or interface MAC for proxy entries | Solnix -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 format | Solnix -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 |
| OpenBSD | Wake on LAN and routing domain | OpenBSD 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, NetBSD | verbose option | Solnix 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 |
| FreeBSD | machine-readable output | FreeBSD 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-dhostname and arp-shostname ether_addr. Avoid-i,-vand-S. Meanings and output differ between systems. - Do not parse arp
-aoutput 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.