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.

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 withTopicWhat differs
FreeBSD, OpenBSD, NetBSD-a implementationOn 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 entriesSolnix 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 keywordsSolnix -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 setOn 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 meaningOn 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 OpenBSDOn 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 timestampsSolnix 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
FreeBSDprefix, router and default interfaceSolnix 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
OpenBSDrouting domainOpenBSD 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 namesSolnix -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 DNSSolnix -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, NetBSDexit statusOpenBSD 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, -p or the -i expressions: they exist only on some BSDs. Delete entries by name with -d hostname.
  • Do not parse ndp -a output across systems. Solnix gives netstat -p -f inet6 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.