Can anyone provide some information about the HW Type, and what the Flags mean, for the Arp command shown below?

root@OpenWrt:~# arp -x
IP address       HW type     Flags       HW address            Mask     Device     0x1         0x0         00:00:00:00:00:00     *        eth0.2    0x1         0x0         00:00:00:00:00:00     *        eth0.2      0x1         0x2         00:1f:90:XX:XX:XX     *        eth0.2   0x1         0x2         78:31:c1:XX:XX:XX     *        br-lan

I looked at Man on a Linux box (no Man on OpenWRT), but I can't seem to find it.

I gather 0x0 means "Incomplete", but wondering what the other flags could be and mean.

1 Answer 1


The flags indicate if the mac address has been learned, manually set, published (announced by another node than the requested) or is incomplete.

I think you can must check your kernel source to figure out what the flags mean or you simply try it. My system translates

  • 0x0 incomplete
  • 0x2 complete
  • 0x6 complete and manually set

Learned by comparing the output of arp with /proc/net/arp.

The definition of the flags is given in include/uapi/linux/if_arp.h.

  • Do you have anything that might explicitly explain what 0x0 is, e.g. 0x0 => incomplete, 0x1 => manually set? etc
    – rainkinz
    Oct 7, 2014 at 16:54
  • 1
    Good call on the source code. Should have thought of that (note the values I found in the source don't quite match what you have): github.com/openwrt/linux/blob/master/include/uapi/linux/… /* ARP Flag values. */ #define ATF_COM 0x02 /* completed entry (ha valid) */ #define ATF_PERM 0x04 /* permanent entry */ #define ATF_PUBL 0x08 /* publish entry */ #define ATF_USETRAILERS 0x10 /* has requested trailers */ #define ATF_NETMASK 0x20 /* want to use a netmask (only for proxy entries) */ #define ATF_DONTPUB 0x40 /* don't answer this addresses */
    – rainkinz
    Oct 7, 2014 at 18:13
  • Thanks for the pointer to the source file! My source has the same flags as you have. So, 0x04 translates to manually set and 0x06 is the sum of complete and manually set. However, I am wondering if we will ever see 0x04... Oct 8, 2014 at 9:12
  • 2
    The flags I’ve seen are the letters “C” and “M”. Based on this, I'm presuming “C” indicates “Complete” and “M” indicates “Manual”. May 29, 2019 at 6:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .