home *** CD-ROM | disk | FTP | other *** search
- /*
- * $Header: /ax/networking:include/netinet/if_ether.h:networking 1.2 $
- * $Source: /ax/networking:include/netinet/if_ether.h: $
- *
- * Copyright (c) 1988 Acorn Computers Ltd., Cambridge, England
- *
- * $Log: if_ether.h,v $
- * Revision 1.2 95/01/24 16:28:21 kwelton
- * etherbroadcastaddr must be declared as an extern of unknown size - the
- * original declaration was illegal in ANSI C, and "undefined behaviour"
- * in pcc C - the new C compiler produced different (and unwanted)
- * undefined behaviour.
- *
- * Revision 1.1 95/01/11 10:16:49 kwelton
- * Initial revision
- *
- * Revision 1.3 88/06/17 20:26:02 beta
- * Acorn Unix initial beta version
- *
- */
- /* @(#)if_ether.h 1.2 87/07/09 3.2/4.3NFSSRC */
- /*
- * Copyright (c) 1982, 1986 Regents of the University of California.
- * All rights reserved. The Berkeley software License Agreement
- * specifies the terms and conditions for redistribution.
- *
- * @(#)if_ether.h 7.1 (Berkeley) 6/5/86
- */
-
- #include "sys/types.h"
- #include "sys/socket.h"
-
- #include "net/if.h"
- #include "net/if_arp.h"
-
- #include "netinet/in.h"
-
- /*
- * Ethernet address - 6 octets
- */
- struct ether_addr {
- u_char ether_addr_octet[6];
- };
-
- /*
- * Structure of a 10Mb/s Ethernet header.
- */
- struct ether_header {
- u_char ether_dhost[6];
- u_char ether_shost[6];
- u_short ether_type;
- };
-
- #define ETHERTYPE_PUP 0x0200 /* PUP protocol */
- #define ETHERTYPE_IP 0x0800 /* IP protocol */
- #define ETHERTYPE_ARP 0x0806 /* Addr. resolution protocol */
- #define ETHERTYPE_REVARP 0x8035 /* Reverse ARP */
- /*
- * The ETHERTYPE_NTRAILER packet types starting at ETHERTYPE_TRAIL have
- * (type-ETHERTYPE_TRAIL)*512 bytes of data followed
- * by an ETHER type (as given above) and then the (variable-length) header.
- */
- #define ETHERTYPE_TRAIL 0x1000 /* Trailer packet */
- #define ETHERTYPE_NTRAILER 16
-
- #define ETHERMTU 1500
- #define ETHERMIN (60-14)
-
- /*
- * Ethernet Address Resolution Protocol.
- *
- * See RFC 826 for protocol description. Structure below is adapted
- * to resolving internet addresses. Field names used correspond to
- * RFC 826.
- */
- struct ether_arp {
- struct arphdr ea_hdr; /* fixed-size header */
- u_char arp_sha[6]; /* sender hardware address */
- u_char arp_spa[4]; /* sender protocol address */
- u_char arp_tha[6]; /* target hardware address */
- u_char arp_tpa[4]; /* target protocol address */
- };
- #define arp_hrd ea_hdr.ar_hrd
- #define arp_pro ea_hdr.ar_pro
- #define arp_hln ea_hdr.ar_hln
- #define arp_pln ea_hdr.ar_pln
- #define arp_op ea_hdr.ar_op
-
-
- /*
- * Structure shared between the ethernet driver modules and
- * the address resolution code. For example, each ec_softc or il_softc
- * begins with this structure.
- */
- struct arpcom {
- struct ifnet ac_if; /* network-visible interface */
- u_char ac_enaddr[6]; /* ethernet hardware address */
- struct in_addr ac_ipaddr; /* copy of ip address- XXX */
- };
-
- /*
- * Internet to ethernet address resolution table.
- */
- struct arptab {
- struct in_addr at_iaddr; /* internet address */
- u_char at_enaddr[6]; /* ethernet address */
- u_char at_timer; /* minutes since last reference */
- u_char at_flags; /* flags */
- struct mbuf *at_hold; /* last packet until resolved/timeout */
- };
-
- #ifdef KERNEL
- extern u_char etherbroadcastaddr[];
- struct arptab *arptnew();
- char *ether_sprintf();
- #endif
-
- /* EOF if_ether.h */
-