---
name: "ndp"
section: "8"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/ndp"
---

# ndp(8)

control/diagnose IPv6 Neighbor Discovery Protocol (NDP)

## NAME

**ndp** – control/diagnose IPv6 Neighbor Discovery Protocol (NDP)

## SYNOPSIS

**ndp** \[**-acnt**\] \[**-A** *wait*\] \[**-d** *hostname*\] \[**-f** *filename*\] \[**-i** *interface*\] \[**-s** *nodename* *ether\_addr* \[**temp**\] \[**proxy**\]\] \[**-V** *rdomain*\] \[*hostname*\]

## DESCRIPTION

The **ndp** command manipulates the address mapping table used by the Neighbor Discovery Protocol (NDP).

- **-A** *wait*

  Repeat **-a** (dump NDP entries) every *wait* seconds.

- **-a**

  Dump the currently existing NDP entries. The following information will be printed:

  - Neighbor

    The IPv6 address of the neighbor.

  - Linklayer Address

    The linklayer address of the neighbor. If the address is not available, it will be displayed as “(incomplete)”.

  - Netif

    The network interface associated with the neighbor cache entry.

  - Expire

    The time until expiry of the entry. If the entry is marked “permanent”, it will never expire.

  - S

    The state of the neighbor cache entry, as a single letter:

    - D

      Delay

    - I

      Incomplete

    - N

      Nostate

    - P

      Probe

    - R

      Reachable

    - S

      Stale

    - W

      Waitdelete

    - ?

      Unknown state (should never happen).

  - Flags

    Flags on the neighbor cache entry, in a single letter. They are: local (‘l’), Router (‘R’) and proxy neighbor advertisement (‘p’). This field may be followed by a decimal number, representing the number of NS probes the node has sent during the current state.

- **-c**

  Erase all the NDP entries.

- **-d** *hostname*

  Delete the specified NDP entry.

- **-f** *filename*

  Parse entries from *file* to be inserted in the neighbor cache. See the **-s** option for a description of the file format.

- **-i** *interface*

  View ND information for the specified interface.

- **-n**

  Do not perform domain name resolution. If a name cannot be resolved without DNS, an error will be reported.

-

  **-s** *nodename* *ether\_addr* \[**temp**\] \[**proxy**\] Register an NDP entry for the node called nodename with the Ether address ether\_addr. The Ethernet address is given as six hexadecimal bytes separated by colons. The entry will be permanent unless the word **temp** is given in the command. If the word **proxy** is given, this system will act as an ND Proxy server, responding to requests for *nodename* even though the node address is not its own.

- **-t**

  Print a timestamp on each entry, making it possible to merge output with [tcpdump(8)](/tcpdump/8.md). Most useful when used with **-A**.

- **-V** *rdomain*

  Select the routing domain.

## EXIT STATUS

The **ndp** utility exits 0 on success, and \>0 if an error occurs.

## SEE ALSO

[ip6(4)](/ip6/4.md), [sysctl.conf(5)](/sysctl.conf/5.md), [arp(8)](/arp/8.md), [sysctl(8)](/sysctl/8.md), [tcpdump(8)](/tcpdump/8.md)

## HISTORY

The **ndp** command first appeared in the WIDE Hydrangea IPv6 protocol stack kit.
