1 | /* $NetBSD: aarp.h,v 1.3 2011/05/08 13:51:31 bouyer Exp $ */ |
2 | |
3 | /* |
4 | * Copyright (c) 1990,1991 Regents of The University of Michigan. |
5 | * All Rights Reserved. |
6 | * |
7 | * Permission to use, copy, modify, and distribute this software and |
8 | * its documentation for any purpose and without fee is hereby granted, |
9 | * provided that the above copyright notice appears in all copies and |
10 | * that both that copyright notice and this permission notice appear |
11 | * in supporting documentation, and that the name of The University |
12 | * of Michigan not be used in advertising or publicity pertaining to |
13 | * distribution of the software without specific, written prior |
14 | * permission. This software is supplied as is without expressed or |
15 | * implied warranties of any kind. |
16 | * |
17 | * This product includes software developed by the University of |
18 | * California, Berkeley and its contributors. |
19 | * |
20 | * Research Systems Unix Group |
21 | * The University of Michigan |
22 | * c/o Wesley Craig |
23 | * 535 W. William Street |
24 | * Ann Arbor, Michigan |
25 | * +1-313-764-2278 |
26 | * netatalk@umich.edu |
27 | */ |
28 | #ifndef _NETATALK_AARP_H_ |
29 | #define _NETATALK_AARP_H_ |
30 | /* |
31 | * This structure is used for both phase 1 and 2. Under phase 1 |
32 | * the net is not filled in. It is in phase 2. In both cases, the |
33 | * hardware address length is (for some unknown reason) 4. If |
34 | * anyone at Apple could program their way out of paper bag, it |
35 | * would be 1 and 3 respectively for phase 1 and 2. |
36 | */ |
37 | union aapa { |
38 | u_int8_t ap_pa[4]; |
39 | struct ap_node { |
40 | u_int8_t an_zero; |
41 | u_int8_t an_net[2]; |
42 | u_int8_t an_node; |
43 | } ap_node; |
44 | }; |
45 | |
46 | struct ether_aarp { |
47 | struct arphdr eaa_hdr; |
48 | u_int8_t aarp_sha[6]; |
49 | union aapa aarp_spu; |
50 | u_int8_t aarp_tha[6]; |
51 | union aapa aarp_tpu; |
52 | }; |
53 | #define aarp_hrd eaa_hdr.ar_hrd |
54 | #define aarp_pro eaa_hdr.ar_pro |
55 | #define aarp_hln eaa_hdr.ar_hln |
56 | #define aarp_pln eaa_hdr.ar_pln |
57 | #define aarp_op eaa_hdr.ar_op |
58 | #define aarp_spa aarp_spu.ap_node.an_node |
59 | #define aarp_tpa aarp_tpu.ap_node.an_node |
60 | #define aarp_spnet aarp_spu.ap_node.an_net |
61 | #define aarp_tpnet aarp_tpu.ap_node.an_net |
62 | #define aarp_spnode aarp_spu.ap_node.an_node |
63 | #define aarp_tpnode aarp_tpu.ap_node.an_node |
64 | |
65 | struct aarptab { |
66 | struct at_addr aat_ataddr; |
67 | u_int8_t aat_enaddr[6]; |
68 | u_int8_t aat_timer; |
69 | u_int8_t aat_flags; |
70 | struct mbuf *aat_hold; |
71 | }; |
72 | |
73 | #define AARPHRD_ETHER 0x0001 |
74 | |
75 | #define AARPOP_REQUEST 0x01 |
76 | #define AARPOP_RESPONSE 0x02 |
77 | #define AARPOP_PROBE 0x03 |
78 | |
79 | extern struct mowner aarp_mowner; |
80 | |
81 | #endif /* !_NETATALK_AARP_H_ */ |
82 | |