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