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