diff -ru arpwatch-2.1a13/linux-include/netinet/if_ether.h arpwatch-2.1a13.ok/linux-include/netinet/if_ether.h --- arpwatch-2.1a13/linux-include/netinet/if_ether.h 1996-11-29 11:33:14.000000000 +0100 +++ arpwatch-2.1a13.ok/linux-include/netinet/if_ether.h 2008-07-09 23:58:00.000000000 +0200 @@ -49,7 +49,7 @@ u_char ether_dhost[6]; u_char ether_shost[6]; u_short ether_type; -}; +} __attribute__((__packed__)); #define ETHERTYPE_PUP 0x0200 /* PUP protocol */ #define ETHERTYPE_IP 0x0800 /* IP protocol */
It seems that "struct ether_header" was 2 bytes too long, and with
attribute packed it works fine on my NSLU2.