diff options
Diffstat (limited to 'sys/netatalk/aarp.h')
-rw-r--r-- | sys/netatalk/aarp.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/sys/netatalk/aarp.h b/sys/netatalk/aarp.h new file mode 100644 index 0000000..4911538 --- /dev/null +++ b/sys/netatalk/aarp.h @@ -0,0 +1,62 @@ +/* + * Copyright (c) 1990,1991 Regents of The University of Michigan. + * All Rights Reserved. + */ + +#ifndef _NETATALK_AARP_H_ +/* + * This structure is used for both phase 1 and 2. Under phase 1 + * the net is not filled in. It is in phase 2. In both cases, the + * hardware address length is (for some unknown reason) 4. If + * anyone at Apple could program their way out of paper bag, it + * would be 1 and 3 respectively for phase 1 and 2. + */ +union aapa { + u_char ap_pa[4]; + struct ap_node { + u_char an_zero; + u_char an_net[2]; + u_char an_node; + } ap_node; +}; + +struct ether_aarp { + struct arphdr eaa_hdr; + u_char aarp_sha[6]; + union aapa aarp_spu; + u_char aarp_tha[6]; + union aapa aarp_tpu; +}; +#define aarp_hrd eaa_hdr.ar_hrd +#define aarp_pro eaa_hdr.ar_pro +#define aarp_hln eaa_hdr.ar_hln +#define aarp_pln eaa_hdr.ar_pln +#define aarp_op eaa_hdr.ar_op +#define aarp_spa aarp_spu.ap_node.an_node +#define aarp_tpa aarp_tpu.ap_node.an_node +#define aarp_spnet aarp_spu.ap_node.an_net +#define aarp_tpnet aarp_tpu.ap_node.an_net +#define aarp_spnode aarp_spu.ap_node.an_node +#define aarp_tpnode aarp_tpu.ap_node.an_node + +struct aarptab { + struct at_addr aat_ataddr; + u_char aat_enaddr[ 6 ]; + u_char aat_timer; + u_char aat_flags; + struct mbuf *aat_hold; +}; + +#define AARPHRD_ETHER 0x0001 + +#define AARPOP_REQUEST 0x01 +#define AARPOP_RESPONSE 0x02 +#define AARPOP_PROBE 0x03 + +#ifdef KERNEL +struct aarptab *aarptnew(struct at_addr *); +#if !defined( __FreeBSD__ ) +int aarpprobe(); +#endif +#endif +#endif /* _NETATALK_AARP_H_ */ |