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