1*c9945492SAndroid Build Coastguard Worker /* Nonstandard header */ 2*c9945492SAndroid Build Coastguard Worker #ifndef _NET_IF_ARP_H 3*c9945492SAndroid Build Coastguard Worker #define _NET_IF_ARP_H 4*c9945492SAndroid Build Coastguard Worker #ifdef __cplusplus 5*c9945492SAndroid Build Coastguard Worker extern "C" { 6*c9945492SAndroid Build Coastguard Worker #endif 7*c9945492SAndroid Build Coastguard Worker 8*c9945492SAndroid Build Coastguard Worker #include <inttypes.h> 9*c9945492SAndroid Build Coastguard Worker #include <sys/types.h> 10*c9945492SAndroid Build Coastguard Worker #include <sys/socket.h> 11*c9945492SAndroid Build Coastguard Worker 12*c9945492SAndroid Build Coastguard Worker #define MAX_ADDR_LEN 7 13*c9945492SAndroid Build Coastguard Worker 14*c9945492SAndroid Build Coastguard Worker #define ARPOP_REQUEST 1 15*c9945492SAndroid Build Coastguard Worker #define ARPOP_REPLY 2 16*c9945492SAndroid Build Coastguard Worker #define ARPOP_RREQUEST 3 17*c9945492SAndroid Build Coastguard Worker #define ARPOP_RREPLY 4 18*c9945492SAndroid Build Coastguard Worker #define ARPOP_InREQUEST 8 19*c9945492SAndroid Build Coastguard Worker #define ARPOP_InREPLY 9 20*c9945492SAndroid Build Coastguard Worker #define ARPOP_NAK 10 21*c9945492SAndroid Build Coastguard Worker 22*c9945492SAndroid Build Coastguard Worker struct arphdr { 23*c9945492SAndroid Build Coastguard Worker uint16_t ar_hrd; 24*c9945492SAndroid Build Coastguard Worker uint16_t ar_pro; 25*c9945492SAndroid Build Coastguard Worker uint8_t ar_hln; 26*c9945492SAndroid Build Coastguard Worker uint8_t ar_pln; 27*c9945492SAndroid Build Coastguard Worker uint16_t ar_op; 28*c9945492SAndroid Build Coastguard Worker }; 29*c9945492SAndroid Build Coastguard Worker 30*c9945492SAndroid Build Coastguard Worker 31*c9945492SAndroid Build Coastguard Worker #define ARPHRD_NETROM 0 32*c9945492SAndroid Build Coastguard Worker #define ARPHRD_ETHER 1 33*c9945492SAndroid Build Coastguard Worker #define ARPHRD_EETHER 2 34*c9945492SAndroid Build Coastguard Worker #define ARPHRD_AX25 3 35*c9945492SAndroid Build Coastguard Worker #define ARPHRD_PRONET 4 36*c9945492SAndroid Build Coastguard Worker #define ARPHRD_CHAOS 5 37*c9945492SAndroid Build Coastguard Worker #define ARPHRD_IEEE802 6 38*c9945492SAndroid Build Coastguard Worker #define ARPHRD_ARCNET 7 39*c9945492SAndroid Build Coastguard Worker #define ARPHRD_APPLETLK 8 40*c9945492SAndroid Build Coastguard Worker #define ARPHRD_DLCI 15 41*c9945492SAndroid Build Coastguard Worker #define ARPHRD_ATM 19 42*c9945492SAndroid Build Coastguard Worker #define ARPHRD_METRICOM 23 43*c9945492SAndroid Build Coastguard Worker #define ARPHRD_IEEE1394 24 44*c9945492SAndroid Build Coastguard Worker #define ARPHRD_EUI64 27 45*c9945492SAndroid Build Coastguard Worker #define ARPHRD_INFINIBAND 32 46*c9945492SAndroid Build Coastguard Worker #define ARPHRD_SLIP 256 47*c9945492SAndroid Build Coastguard Worker #define ARPHRD_CSLIP 257 48*c9945492SAndroid Build Coastguard Worker #define ARPHRD_SLIP6 258 49*c9945492SAndroid Build Coastguard Worker #define ARPHRD_CSLIP6 259 50*c9945492SAndroid Build Coastguard Worker #define ARPHRD_RSRVD 260 51*c9945492SAndroid Build Coastguard Worker #define ARPHRD_ADAPT 264 52*c9945492SAndroid Build Coastguard Worker #define ARPHRD_ROSE 270 53*c9945492SAndroid Build Coastguard Worker #define ARPHRD_X25 271 54*c9945492SAndroid Build Coastguard Worker #define ARPHRD_HWX25 272 55*c9945492SAndroid Build Coastguard Worker #define ARPHRD_CAN 280 56*c9945492SAndroid Build Coastguard Worker #define ARPHRD_PPP 512 57*c9945492SAndroid Build Coastguard Worker #define ARPHRD_CISCO 513 58*c9945492SAndroid Build Coastguard Worker #define ARPHRD_HDLC ARPHRD_CISCO 59*c9945492SAndroid Build Coastguard Worker #define ARPHRD_LAPB 516 60*c9945492SAndroid Build Coastguard Worker #define ARPHRD_DDCMP 517 61*c9945492SAndroid Build Coastguard Worker #define ARPHRD_RAWHDLC 518 62*c9945492SAndroid Build Coastguard Worker #define ARPHRD_RAWIP 519 63*c9945492SAndroid Build Coastguard Worker 64*c9945492SAndroid Build Coastguard Worker #define ARPHRD_TUNNEL 768 65*c9945492SAndroid Build Coastguard Worker #define ARPHRD_TUNNEL6 769 66*c9945492SAndroid Build Coastguard Worker #define ARPHRD_FRAD 770 67*c9945492SAndroid Build Coastguard Worker #define ARPHRD_SKIP 771 68*c9945492SAndroid Build Coastguard Worker #define ARPHRD_LOOPBACK 772 69*c9945492SAndroid Build Coastguard Worker #define ARPHRD_LOCALTLK 773 70*c9945492SAndroid Build Coastguard Worker #define ARPHRD_FDDI 774 71*c9945492SAndroid Build Coastguard Worker #define ARPHRD_BIF 775 72*c9945492SAndroid Build Coastguard Worker #define ARPHRD_SIT 776 73*c9945492SAndroid Build Coastguard Worker #define ARPHRD_IPDDP 777 74*c9945492SAndroid Build Coastguard Worker #define ARPHRD_IPGRE 778 75*c9945492SAndroid Build Coastguard Worker #define ARPHRD_PIMREG 779 76*c9945492SAndroid Build Coastguard Worker #define ARPHRD_HIPPI 780 77*c9945492SAndroid Build Coastguard Worker #define ARPHRD_ASH 781 78*c9945492SAndroid Build Coastguard Worker #define ARPHRD_ECONET 782 79*c9945492SAndroid Build Coastguard Worker #define ARPHRD_IRDA 783 80*c9945492SAndroid Build Coastguard Worker #define ARPHRD_FCPP 784 81*c9945492SAndroid Build Coastguard Worker #define ARPHRD_FCAL 785 82*c9945492SAndroid Build Coastguard Worker #define ARPHRD_FCPL 786 83*c9945492SAndroid Build Coastguard Worker #define ARPHRD_FCFABRIC 787 84*c9945492SAndroid Build Coastguard Worker #define ARPHRD_IEEE802_TR 800 85*c9945492SAndroid Build Coastguard Worker #define ARPHRD_IEEE80211 801 86*c9945492SAndroid Build Coastguard Worker #define ARPHRD_IEEE80211_PRISM 802 87*c9945492SAndroid Build Coastguard Worker #define ARPHRD_IEEE80211_RADIOTAP 803 88*c9945492SAndroid Build Coastguard Worker #define ARPHRD_IEEE802154 804 89*c9945492SAndroid Build Coastguard Worker #define ARPHRD_IEEE802154_MONITOR 805 90*c9945492SAndroid Build Coastguard Worker #define ARPHRD_PHONET 820 91*c9945492SAndroid Build Coastguard Worker #define ARPHRD_PHONET_PIPE 821 92*c9945492SAndroid Build Coastguard Worker #define ARPHRD_CAIF 822 93*c9945492SAndroid Build Coastguard Worker #define ARPHRD_IP6GRE 823 94*c9945492SAndroid Build Coastguard Worker #define ARPHRD_NETLINK 824 95*c9945492SAndroid Build Coastguard Worker #define ARPHRD_6LOWPAN 825 96*c9945492SAndroid Build Coastguard Worker #define ARPHRD_VSOCKMON 826 97*c9945492SAndroid Build Coastguard Worker 98*c9945492SAndroid Build Coastguard Worker #define ARPHRD_VOID 0xFFFF 99*c9945492SAndroid Build Coastguard Worker #define ARPHRD_NONE 0xFFFE 100*c9945492SAndroid Build Coastguard Worker 101*c9945492SAndroid Build Coastguard Worker struct arpreq { 102*c9945492SAndroid Build Coastguard Worker struct sockaddr arp_pa; 103*c9945492SAndroid Build Coastguard Worker struct sockaddr arp_ha; 104*c9945492SAndroid Build Coastguard Worker int arp_flags; 105*c9945492SAndroid Build Coastguard Worker struct sockaddr arp_netmask; 106*c9945492SAndroid Build Coastguard Worker char arp_dev[16]; 107*c9945492SAndroid Build Coastguard Worker }; 108*c9945492SAndroid Build Coastguard Worker 109*c9945492SAndroid Build Coastguard Worker struct arpreq_old { 110*c9945492SAndroid Build Coastguard Worker struct sockaddr arp_pa; 111*c9945492SAndroid Build Coastguard Worker struct sockaddr arp_ha; 112*c9945492SAndroid Build Coastguard Worker int arp_flags; 113*c9945492SAndroid Build Coastguard Worker struct sockaddr arp_netmask; 114*c9945492SAndroid Build Coastguard Worker }; 115*c9945492SAndroid Build Coastguard Worker 116*c9945492SAndroid Build Coastguard Worker #define ATF_COM 0x02 117*c9945492SAndroid Build Coastguard Worker #define ATF_PERM 0x04 118*c9945492SAndroid Build Coastguard Worker #define ATF_PUBL 0x08 119*c9945492SAndroid Build Coastguard Worker #define ATF_USETRAILERS 0x10 120*c9945492SAndroid Build Coastguard Worker #define ATF_NETMASK 0x20 121*c9945492SAndroid Build Coastguard Worker #define ATF_DONTPUB 0x40 122*c9945492SAndroid Build Coastguard Worker #define ATF_MAGIC 0x80 123*c9945492SAndroid Build Coastguard Worker 124*c9945492SAndroid Build Coastguard Worker #define ARPD_UPDATE 0x01 125*c9945492SAndroid Build Coastguard Worker #define ARPD_LOOKUP 0x02 126*c9945492SAndroid Build Coastguard Worker #define ARPD_FLUSH 0x03 127*c9945492SAndroid Build Coastguard Worker 128*c9945492SAndroid Build Coastguard Worker struct arpd_request { 129*c9945492SAndroid Build Coastguard Worker unsigned short req; 130*c9945492SAndroid Build Coastguard Worker uint32_t ip; 131*c9945492SAndroid Build Coastguard Worker unsigned long dev; 132*c9945492SAndroid Build Coastguard Worker unsigned long stamp; 133*c9945492SAndroid Build Coastguard Worker unsigned long updated; 134*c9945492SAndroid Build Coastguard Worker unsigned char ha[MAX_ADDR_LEN]; 135*c9945492SAndroid Build Coastguard Worker }; 136*c9945492SAndroid Build Coastguard Worker 137*c9945492SAndroid Build Coastguard Worker 138*c9945492SAndroid Build Coastguard Worker 139*c9945492SAndroid Build Coastguard Worker #ifdef __cplusplus 140*c9945492SAndroid Build Coastguard Worker } 141*c9945492SAndroid Build Coastguard Worker #endif 142*c9945492SAndroid Build Coastguard Worker #endif 143