Initial import from FreeBSD RELENG_4:
[dragonfly.git] / sys / netproto / atalk / aarp.h
1 /*
2  * Copyright (c) 1990,1991 Regents of The University of Michigan.
3  * All Rights Reserved.
4  *
5  * $FreeBSD: src/sys/netatalk/aarp.h,v 1.3 1999/12/29 04:45:57 peter Exp $
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  */
16 union 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
25 struct 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
44 struct 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
59 struct aarptab          *aarptnew(struct at_addr      *);
60 #endif
61
62 #endif /* _NETATALK_AARP_H_ */