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