aarp.h revision 55205
1/*
2 * Copyright (c) 1990,1991 Regents of The University of Michigan.
3 * All Rights Reserved.
4 *
5 * $FreeBSD: head/sys/netatalk/aarp.h 55205 1999-12-29 04:46:21Z peter $
6 */
7
8#ifndef _NETATALK_AARP_H_
9/*
10 * This structure is used for both phase 1 and 2. Under phase 1
11 * the net is not filled in. It is in phase 2. In both cases, the
12 * hardware address length is (for some unknown reason) 4. If
13 * anyone at Apple could program their way out of paper bag, it
14 * would be 1 and 3 respectively for phase 1 and 2.
15 */
16union aapa {
17    u_char		ap_pa[4];
18    struct ap_node {
19	u_char		an_zero;
20	u_char		an_net[2];
21	u_char		an_node;
22    } ap_node;
23};
24
25struct ether_aarp {
26    struct arphdr	eaa_hdr;
27    u_char		aarp_sha[6];
28    union aapa		aarp_spu;
29    u_char		aarp_tha[6];
30    union aapa		aarp_tpu;
31};
32#define aarp_hrd	eaa_hdr.ar_hrd
33#define aarp_pro	eaa_hdr.ar_pro
34#define aarp_hln	eaa_hdr.ar_hln
35#define aarp_pln	eaa_hdr.ar_pln
36#define aarp_op		eaa_hdr.ar_op
37#define aarp_spa	aarp_spu.ap_node.an_node
38#define aarp_tpa	aarp_tpu.ap_node.an_node
39#define aarp_spnet	aarp_spu.ap_node.an_net
40#define aarp_tpnet	aarp_tpu.ap_node.an_net
41#define aarp_spnode	aarp_spu.ap_node.an_node
42#define aarp_tpnode	aarp_tpu.ap_node.an_node
43
44struct aarptab {
45    struct at_addr	aat_ataddr;
46    u_char		aat_enaddr[ 6 ];
47    u_char		aat_timer;
48    u_char		aat_flags;
49    struct mbuf		*aat_hold;
50};
51
52#define AARPHRD_ETHER	0x0001
53
54#define AARPOP_REQUEST	0x01
55#define AARPOP_RESPONSE	0x02
56#define AARPOP_PROBE	0x03
57
58#ifdef _KERNEL
59struct aarptab		*aarptnew(struct at_addr      *);
60#endif
61
62#endif /* _NETATALK_AARP_H_ */
63