Main Page | Modules | Class List | Directories | File List | Class Members | File Members | Related Pages

arp.h File Reference

Go to the source code of this file.

Defines

#define ARP_HDR_LEN   8
#define ARP_ETHIP_LEN   20
#define __attribute__(x)
#define ARP_HRD_ETH   0x0001
#define ARP_HRD_IEEE802   0x0006
#define ARP_PRO_IP   0x0800
#define ARP_OP_REQUEST   1
#define ARP_OP_REPLY   2
#define ARP_OP_REVREQUEST   3
#define ARP_OP_REVREPLY   4
#define arp_pack_hdr_ethip(hdr, op, sha, spa, tha, tpa)

Typedefs

typedef arp_handle arp_t
typedef int(* arp_handler )(const struct arp_entry *entry, void *arg)

Functions

__BEGIN_DECLS arp_tarp_open (void)
int arp_add (arp_t *arp, const struct arp_entry *entry)
int arp_delete (arp_t *arp, const struct arp_entry *entry)
int arp_get (arp_t *arp, struct arp_entry *entry)
int arp_loop (arp_t *arp, arp_handler callback, void *arg)
arp_tarp_close (arp_t *arp)


Define Documentation

#define __attribute__  ) 
 

Definition at line 19 of file arp.h.

#define ARP_ETHIP_LEN   20
 

Definition at line 16 of file arp.h.

Referenced by _request_arp(), and arp_main().

#define ARP_HDR_LEN   8
 

Definition at line 15 of file arp.h.

Referenced by _request_arp(), and arp_main().

#define ARP_HRD_ETH   0x0001
 

Definition at line 37 of file arp.h.

Referenced by addr_ston(), arp_add(), and arp_main().

#define ARP_HRD_IEEE802   0x0006
 

Definition at line 38 of file arp.h.

#define ARP_OP_REPLY   2
 

Definition at line 49 of file arp.h.

Referenced by op_aton().

#define ARP_OP_REQUEST   1
 

Definition at line 48 of file arp.h.

Referenced by _request_arp(), arp_main(), and op_aton().

#define ARP_OP_REVREPLY   4
 

Definition at line 51 of file arp.h.

Referenced by op_aton().

#define ARP_OP_REVREQUEST   3
 

Definition at line 50 of file arp.h.

Referenced by op_aton().

#define arp_pack_hdr_ethip hdr,
op,
sha,
spa,
tha,
tpa   ) 
 

Value:

do {    \
        struct arp_hdr *pack_arp_p = (struct arp_hdr *)(hdr);   \
        struct arp_ethip *pack_ethip_p = (struct arp_ethip *)   \
                ((uint8_t *)(hdr) + ARP_HDR_LEN);               \
        pack_arp_p->ar_hrd = htons(ARP_HRD_ETH);                \
        pack_arp_p->ar_pro = htons(ARP_PRO_IP);                 \
        pack_arp_p->ar_hln = ETH_ADDR_LEN;                      \
        pack_arp_p->ar_pln = IP_ADDR_LEN;                       \
        pack_arp_p->ar_op = htons(op);                          \
        memmove(pack_ethip_p->ar_sha, &(sha), ETH_ADDR_LEN);    \
        memmove(pack_ethip_p->ar_spa, &(spa), IP_ADDR_LEN);     \
        memmove(pack_ethip_p->ar_tha, &(tha), ETH_ADDR_LEN);    \
        memmove(pack_ethip_p->ar_tpa, &(tpa), IP_ADDR_LEN);     \
} while (0)

Definition at line 75 of file arp.h.

Referenced by __pyx_f_4dnet_arp_pack_hdr_ethip(), and _request_arp().

#define ARP_PRO_IP   0x0800
 

Definition at line 43 of file arp.h.

Referenced by arp_main().


Typedef Documentation

typedef int(* arp_handler)(const struct arp_entry *entry, void *arg)
 

Definition at line 92 of file arp.h.

typedef struct arp_handle arp_t
 

Definition at line 90 of file arp.h.


Function Documentation

int arp_add arp_t arp,
const struct arp_entry entry
 

Definition at line 110 of file arp-bsd.c.

References arp_entry::arp_ha, arp_entry::arp_pa, CreateIpNetEntry(), ETH_ADDR_LEN, GetBestRoute(), IP_ADDR_ANY, and memcpy.

Referenced by __pyx_f_4dnet_3arp_add(), and arp_kern_main().

arp_t* arp_close arp_t arp  ) 
 

Definition at line 315 of file arp-bsd.c.

References NULL.

Referenced by __pyx_f_4dnet_3arp___dealloc__(), arp_kern_main(), arp_open(), ip_close(), and START_TEST().

int arp_delete arp_t arp,
const struct arp_entry entry
 

Definition at line 176 of file arp-bsd.c.

References arp_entry::arp_pa, DeleteIpNetEntry(), errno, GetBestRoute(), IP_ADDR_ANY, and memset.

Referenced by __pyx_f_4dnet_3arp_delete(), and arp_kern_main().

int arp_get arp_t arp,
struct arp_entry entry
 

Definition at line 222 of file arp-bsd.c.

References _arp_get_entry(), arp_loop(), and errno.

Referenced by __pyx_f_4dnet_3arp_get(), arp_kern_main(), and ip_send().

int arp_loop arp_t arp,
arp_handler  callback,
void *  arg
 

Definition at line 307 of file arp-bsd.c.

References addr::addr_bits, addr::addr_type, ADDR_TYPE_ETH, ADDR_TYPE_IP, arp_entry::arp_ha, arp_entry::arp_pa, ETH_ADDR_BITS, ETH_ADDR_LEN, FALSE, GetIpNetTable(), IP_ADDR_BITS, arp_handle::iptable, and memcpy.

Referenced by __pyx_f_4dnet_3arp_loop(), arp_get(), and arp_kern_main().

__BEGIN_DECLS arp_t* arp_open void   ) 
 

Definition at line 49 of file arp-bsd.c.

Referenced by __pyx_f_4dnet_3arp___init__(), arp_kern_main(), ip_open(), and START_TEST().


Generated on Sun May 14 14:51:20 2006 by  doxygen 1.4.2