1*83ee113eSDavid van Moolenbroek /* $NetBSD: if_ether.h,v 1.1.1.2 2014/07/12 11:57:57 spz Exp $ */ 2*83ee113eSDavid van Moolenbroek /* NetBSD: if_ether.h,v 1.20 1995/06/12 00:47:27 mycroft Exp */ 3*83ee113eSDavid van Moolenbroek 4*83ee113eSDavid van Moolenbroek /* 5*83ee113eSDavid van Moolenbroek * Copyright (c) 1982, 1986, 1993 6*83ee113eSDavid van Moolenbroek * The Regents of the University of California. All rights reserved. 7*83ee113eSDavid van Moolenbroek * 8*83ee113eSDavid van Moolenbroek * Redistribution and use in source and binary forms, with or without 9*83ee113eSDavid van Moolenbroek * modification, are permitted provided that the following conditions 10*83ee113eSDavid van Moolenbroek * are met: 11*83ee113eSDavid van Moolenbroek * 1. Redistributions of source code must retain the above copyright 12*83ee113eSDavid van Moolenbroek * notice, this list of conditions and the following disclaimer. 13*83ee113eSDavid van Moolenbroek * 2. Redistributions in binary form must reproduce the above copyright 14*83ee113eSDavid van Moolenbroek * notice, this list of conditions and the following disclaimer in the 15*83ee113eSDavid van Moolenbroek * documentation and/or other materials provided with the distribution. 16*83ee113eSDavid van Moolenbroek * 3. Neither the name of the University nor the names of its contributors 17*83ee113eSDavid van Moolenbroek * may be used to endorse or promote products derived from this software 18*83ee113eSDavid van Moolenbroek * without specific prior written permission. 19*83ee113eSDavid van Moolenbroek * 20*83ee113eSDavid van Moolenbroek * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 21*83ee113eSDavid van Moolenbroek * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22*83ee113eSDavid van Moolenbroek * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23*83ee113eSDavid van Moolenbroek * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 24*83ee113eSDavid van Moolenbroek * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25*83ee113eSDavid van Moolenbroek * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26*83ee113eSDavid van Moolenbroek * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27*83ee113eSDavid van Moolenbroek * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28*83ee113eSDavid van Moolenbroek * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29*83ee113eSDavid van Moolenbroek * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30*83ee113eSDavid van Moolenbroek * SUCH DAMAGE. 31*83ee113eSDavid van Moolenbroek * 32*83ee113eSDavid van Moolenbroek * @(#)if_ether.h 8.1 (Berkeley) 6/10/93 33*83ee113eSDavid van Moolenbroek */ 34*83ee113eSDavid van Moolenbroek 35*83ee113eSDavid van Moolenbroek #ifndef netinet_if_ether_h 36*83ee113eSDavid van Moolenbroek #define netinet_if_ether_h 37*83ee113eSDavid van Moolenbroek 38*83ee113eSDavid van Moolenbroek /* 39*83ee113eSDavid van Moolenbroek * Ethernet address - 6 octets 40*83ee113eSDavid van Moolenbroek * this is only used by the ethers(3) functions. 41*83ee113eSDavid van Moolenbroek */ 42*83ee113eSDavid van Moolenbroek struct ether_addr { 43*83ee113eSDavid van Moolenbroek u_int8_t ether_addr_octet[6]; 44*83ee113eSDavid van Moolenbroek }; 45*83ee113eSDavid van Moolenbroek 46*83ee113eSDavid van Moolenbroek /* 47*83ee113eSDavid van Moolenbroek * Structure of a 10Mb/s Ethernet header. 48*83ee113eSDavid van Moolenbroek */ 49*83ee113eSDavid van Moolenbroek #define ETHER_ADDR_LEN 6 50*83ee113eSDavid van Moolenbroek 51*83ee113eSDavid van Moolenbroek struct isc_ether_header { 52*83ee113eSDavid van Moolenbroek u_int8_t ether_dhost[ETHER_ADDR_LEN]; 53*83ee113eSDavid van Moolenbroek u_int8_t ether_shost[ETHER_ADDR_LEN]; 54*83ee113eSDavid van Moolenbroek u_int16_t ether_type; 55*83ee113eSDavid van Moolenbroek }; 56*83ee113eSDavid van Moolenbroek 57*83ee113eSDavid van Moolenbroek #define ETHERTYPE_PUP 0x0200 /* PUP protocol */ 58*83ee113eSDavid van Moolenbroek #define ETHERTYPE_IP 0x0800 /* IP protocol */ 59*83ee113eSDavid van Moolenbroek #define ETHERTYPE_ARP 0x0806 /* address resolution protocol */ 60*83ee113eSDavid van Moolenbroek 61*83ee113eSDavid van Moolenbroek #define ETHER_HEADER_SIZE (ETHER_ADDR_LEN * 2 + sizeof (u_int16_t)) 62*83ee113eSDavid van Moolenbroek 63*83ee113eSDavid van Moolenbroek #endif 64