improve iswdigit macro to diagnose errors
[oweals/musl.git] / include / net / if_arp.h
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