aarp.h revision 285830
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: releng/10.2/sys/netatalk/aarp.h 249925 2013-04-26 12:50:32Z glebius $ 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 } __packed 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} __packed; 55 56#define aarp_hrd eaa_hdr.ar_hrd 57#define aarp_pro eaa_hdr.ar_pro 58#define aarp_hln eaa_hdr.ar_hln 59#define aarp_pln eaa_hdr.ar_pln 60#define aarp_op eaa_hdr.ar_op 61#define aarp_spa aarp_spu.ap_node.an_node 62#define aarp_tpa aarp_tpu.ap_node.an_node 63#define aarp_spnet aarp_spu.ap_node.an_net 64#define aarp_tpnet aarp_tpu.ap_node.an_net 65#define aarp_spnode aarp_spu.ap_node.an_node 66#define aarp_tpnode aarp_tpu.ap_node.an_node 67 68struct aarptab { 69 struct at_addr aat_ataddr; 70 u_char aat_enaddr[6]; 71 u_char aat_timer; 72 u_char aat_flags; 73 struct mbuf *aat_hold; 74}; 75 76#define AARPHRD_ETHER 0x0001 77 78#define AARPOP_REQUEST 0x01 79#define AARPOP_RESPONSE 0x02 80#define AARPOP_PROBE 0x03 81 82#ifdef _KERNEL 83struct aarptab *aarptnew(const struct at_addr *); 84#endif 85 86#endif /* _NETATALK_AARP_H_ */ 87