Version increased to 0.9.8cvs20050303-2.1maemo2.
[udhcp] / arpping.h
1 /*
2  * arpping .h
3  */
4
5 #ifndef ARPPING_H
6 #define ARPPING_H
7
8 #include <netinet/if_ether.h>
9 #include <net/if_arp.h>
10 #include <net/if.h>
11 #include <netinet/in.h>
12
13 struct arpMsg {
14         /* Ethernet header */
15         u_char   h_dest[6];                     /* destination ether addr */
16         u_char   h_source[6];                   /* source ether addr */
17         u_short  h_proto;                       /* packet type ID field */
18
19         /* ARP packet */
20         uint16_t htype;                         /* hardware type (must be ARPHRD_ETHER) */
21         uint16_t ptype;                         /* protocol type (must be ETH_P_IP) */
22         uint8_t  hlen;                          /* hardware address length (must be 6) */
23         uint8_t  plen;                          /* protocol address length (must be 4) */
24         uint16_t operation;                     /* ARP opcode */
25         uint8_t  sHaddr[6];                     /* sender's hardware address */
26         uint8_t  sInaddr[4];                    /* sender's IP address */
27         uint8_t  tHaddr[6];                     /* target's hardware address */
28         uint8_t  tInaddr[4];                    /* target's IP address */
29         uint8_t  pad[18];                       /* pad for min. Ethernet payload (60 bytes) */
30 } __attribute__ ((packed));
31
32 /* function prototypes */
33 int arpping(uint32_t yiaddr, uint32_t ip, uint8_t *arp, char *interface);
34
35 #endif