ndp(8) on Solnix vs Linux and the BSDs
On Solnix, ndp is the illumos ndp at /usr/sbin/ndp. It shows and edits the IPv6 neighbor table, but it is much smaller than the BSD ndp: -a just runs netstat -p -f inet6, and there is no -c, -p, -r, -t or -V. Entries made with -s take the keywords temp, any and router, not proxy.
The manual pages
- Solnix: ndp(8) from
pkgs.solnix.illumos-world-man· illumos.org - FreeBSD: ndp(8) 15.1-RELEASE
- OpenBSD: ndp(8) 8.0
- NetBSD: ndp(8) 11.0
What Solnix runs
A default Solnix system runs the illumos ndp at /usr/sbin/ndp. No other variants are shipped. Changing the table with -d, -s or -f needs the PRIV_SYS_NET_CONFIG privilege.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| FreeBSD, OpenBSD, NetBSD | -a implementation | On Solnix, ndp -a is documented as equivalent to `netstat -p -f inet6`, and -n is passed on to netstat. The BSD pages describe -a as ndp's own dump with Neighbor, Linklayer Address, Netif, Expire, S and Flags columns.Source: Solnix ndp(8) -a; FreeBSD ndp(8) -a; OpenBSD ndp(8) -a; NetBSD ndp(8) -a |
| FreeBSD, OpenBSD, NetBSD | -c erase all entries | Solnix ndp has no -c. The FreeBSD, OpenBSD and NetBSD pages use -c to erase all NDP entries. On Solnix, delete entries one at a time with -d hostname.Source: Solnix ndp(8) SYNOPSIS; FreeBSD ndp(8) -c; OpenBSD ndp(8) -c; NetBSD ndp(8) -c |
| FreeBSD, OpenBSD, NetBSD | -s keywords | Solnix -s takes `lladdr [temp] [any] [router]`. The BSD pages take `etheraddr [temp] [proxy]`. Solnix has no proxy keyword; any marks an anycast address and router marks a router address. The manual does not say how to proxy on Solnix.Source: Solnix ndp(8) SYNOPSIS, -s; FreeBSD ndp(8) SYNOPSIS; OpenBSD ndp(8) -s; NetBSD ndp(8) -s |
| FreeBSD, OpenBSD, NetBSD | -s replaces the flag set | On Solnix, the flags listed on -s are the full set wanted. Leaving one out removes it from an existing entry. To make a static entry temporary, delete and recreate it with temp. The BSD pages do not say this.Source: Solnix ndp(8) -s; FreeBSD ndp(8) -s; OpenBSD ndp(8) -s; NetBSD ndp(8) -s |
| FreeBSD, NetBSD | -i meaning | On Solnix, -i iface only forces the interface for a mapping, and is ignored with -a or -A. On FreeBSD and NetBSD, -i interface [expressions] views per-interface ND information and can set flags such as nud, disabled and curhlim. Solnix has none of these.Source: Solnix ndp(8) -i; FreeBSD ndp(8) -i; NetBSD ndp(8) -i |
| OpenBSD | -i on OpenBSD | On OpenBSD, -i interface views ND information for that interface. On Solnix, -i selects which interface a mapping is placed on.Source: Solnix ndp(8) -i; OpenBSD ndp(8) -i |
| FreeBSD, OpenBSD, NetBSD | -t timestamps | Solnix ndp has no -t. FreeBSD, OpenBSD and NetBSD use -t to print a timestamp on each entry for merging output with tcpdump(8).Source: Solnix ndp(8) SYNOPSIS; OpenBSD ndp(8) -t; NetBSD ndp(8) -t |
| FreeBSD | prefix, router and default interface | Solnix ndp has no -p (prefix list), -r, -H, -P, -R or -I. FreeBSD ndp has all of these for prefixes, routers and the default interface. The Solnix manual does not say where to get this on Solnix.Source: Solnix ndp(8) SYNOPSIS; FreeBSD ndp(8) SYNOPSIS, -p, -H, -I |
| OpenBSD | routing domain | OpenBSD ndp -V rdomain selects the routing domain. Solnix ndp has no equivalent option.Source: OpenBSD ndp(8) -V; Solnix ndp(8) SYNOPSIS |
| FreeBSD, OpenBSD, NetBSD | -a state names | Solnix -a documents entry types (dynamic, local, other, static) and states spelled out: INCOMPLETE, REACHABLE, STALE, DELAY, PROBE, UNREACHABLE, UNKNOWN. The BSD pages document single-letter state codes. The NetBSD page also has U for Unreachable. Parsers of one format will not read the other.Source: Solnix ndp(8) -a; FreeBSD ndp(8) -a (S column); OpenBSD ndp(8) -a; NetBSD ndp(8) -a |
| FreeBSD, OpenBSD, NetBSD | -n and DNS | Solnix -n disables translating numeric addresses to host names. OpenBSD adds that an unresolvable name without DNS gives an error. The Solnix page does not say this.Source: Solnix ndp(8) -n; OpenBSD ndp(8) -n |
| FreeBSD, OpenBSD, NetBSD | exit status | OpenBSD and NetBSD document exit 0 on success and non-zero (OpenBSD: >0) on error. The Solnix page has no EXIT STATUS section, so the manual does not say. Source: OpenBSD ndp(8) EXIT STATUS; NetBSD ndp(8) EXIT STATUS; Solnix ndp(8) |
Standards
- POSIX: ndp is not a POSIX.1-2024 utility.
Writing portable scripts
- Do not rely on
-c,-t,-por the-iexpressions: they exist only on some BSDs. Delete entries by name with-dhostname. - Do not parse ndp
-aoutput across systems. Solnix gives netstat-p-finet6 output, and the BSDs print their own columns with single-letter states.
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.