[388] | 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 | #define ARPHRD_6LOWPAN 825
|
---|
| 95 |
|
---|
| 96 | #define ARPHRD_VOID 0xFFFF
|
---|
| 97 | #define ARPHRD_NONE 0xFFFE
|
---|
| 98 |
|
---|
| 99 | struct arpreq {
|
---|
| 100 | struct sockaddr arp_pa;
|
---|
| 101 | struct sockaddr arp_ha;
|
---|
| 102 | int arp_flags;
|
---|
| 103 | struct sockaddr arp_netmask;
|
---|
| 104 | char arp_dev[16];
|
---|
| 105 | };
|
---|
| 106 |
|
---|
| 107 | struct arpreq_old {
|
---|
| 108 | struct sockaddr arp_pa;
|
---|
| 109 | struct sockaddr arp_ha;
|
---|
| 110 | int arp_flags;
|
---|
| 111 | struct sockaddr arp_netmask;
|
---|
| 112 | };
|
---|
| 113 |
|
---|
| 114 | #define ATF_COM 0x02
|
---|
| 115 | #define ATF_PERM 0x04
|
---|
| 116 | #define ATF_PUBL 0x08
|
---|
| 117 | #define ATF_USETRAILERS 0x10
|
---|
| 118 | #define ATF_NETMASK 0x20
|
---|
| 119 | #define ATF_DONTPUB 0x40
|
---|
| 120 | #define ATF_MAGIC 0x80
|
---|
| 121 |
|
---|
| 122 | #define ARPD_UPDATE 0x01
|
---|
| 123 | #define ARPD_LOOKUP 0x02
|
---|
| 124 | #define ARPD_FLUSH 0x03
|
---|
| 125 |
|
---|
| 126 | struct arpd_request {
|
---|
| 127 | unsigned short req;
|
---|
| 128 | uint32_t ip;
|
---|
| 129 | unsigned long dev;
|
---|
| 130 | unsigned long stamp;
|
---|
| 131 | unsigned long updated;
|
---|
| 132 | unsigned char ha[MAX_ADDR_LEN];
|
---|
| 133 | };
|
---|
| 134 |
|
---|
| 135 |
|
---|
| 136 |
|
---|
| 137 | #ifdef __cplusplus
|
---|
| 138 | }
|
---|
| 139 | #endif
|
---|
| 140 | #endif
|
---|