Annotation of cci/sys/netinet/if_ether.h, revision 1.1

1.1     ! root        1: /*     if_ether.h      6.2     83/09/26        */
        !             2: 
        !             3: /* 
        !             4:  * Changes
        !             5:  *     add return values of arpresolve()
        !             6:  */
        !             7: /*
        !             8:  * Structure of a 10Mb/s Ethernet header.
        !             9:  */
        !            10: struct ether_header {
        !            11:        u_char  ether_dhost[6];
        !            12:        u_char  ether_shost[6];
        !            13:        u_short ether_type;
        !            14: };
        !            15: 
        !            16: #define        SIZEOF_ETHEADER         14              /* real sizeof(ether_header) */
        !            17: #define        ETHERPUP_PUPTYPE        0x0200          /* PUP protocol */
        !            18: #define        ETHERPUP_IPTYPE         0x0800          /* IP protocol */
        !            19: #define ETHERPUP_ARPTYPE       0x0806          /* Addr. resolution protocol */
        !            20: 
        !            21: /*
        !            22:  * The ETHERPUP_NTRAILER packet types starting at ETHERPUP_TRAIL have
        !            23:  * (type-ETHERPUP_TRAIL)*512 bytes of data followed
        !            24:  * by a PUP type (as given above) and then the (variable-length) header.
        !            25:  */
        !            26: #define        ETHERPUP_TRAIL          0x1000          /* Trailer PUP */
        !            27: #define        ETHERPUP_NTRAILER       16
        !            28: 
        !            29: #define        ETHERMTU        1500
        !            30: #define        ETHERMIN        (60-14)
        !            31: 
        !            32: /*
        !            33:  * Ethernet Address Resolution Protocol.
        !            34:  *
        !            35:  * See RFC 826 for protocol description.  Structure below is adapted
        !            36:  * to resolving internet addresses.  Field names used correspond to 
        !            37:  * RFC 826.
        !            38:  */
        !            39: struct ether_arp {
        !            40:        u_short arp_hrd;        /* format of hardware address */
        !            41: #define ARPHRD_ETHER   1       /* ethernet hardware address */
        !            42:        u_short arp_pro;        /* format of proto. address (ETHERPUP_IPTYPE) */
        !            43:        u_char  arp_hln;        /* length of hardware address (6) */
        !            44:        u_char  arp_pln;        /* length of protocol address (4) */
        !            45:        u_short arp_op;
        !            46: #define        ARPOP_REQUEST   1       /* request to resolve address */
        !            47: #define        ARPOP_REPLY     2       /* response to previous request */
        !            48:        u_char  arp_sha[6];     /* sender hardware address */
        !            49:        u_char  arp_spa[4];     /* sender protocol address */
        !            50:        u_char  arp_tha[6];     /* target hardware address */
        !            51:        u_char  arp_tpa[4];     /* target protocol address */
        !            52: };
        !            53: 
        !            54: /*
        !            55:  * Structure shared between the ethernet driver modules and
        !            56:  * the address resolution code.  For example, each ec_softc or il_softc
        !            57:  * begins with this structure.
        !            58:  */
        !            59: struct arpcom {
        !            60:        struct  ifnet ac_if;    /* network-visible interface */
        !            61:        u_char  ac_enaddr[6];   /* ethernet hardware address */
        !            62:        struct  arpcom *ac_ac;  /* link to next ether driver */
        !            63: };
        !            64: 
        !            65: #ifdef KERNEL
        !            66: u_char etherbroadcastaddr[6];                  /* 6 bytes of 0xFF */
        !            67: struct in_addr arpmyaddr();
        !            68: struct arptab *arptnew();
        !            69: 
        !            70: /* return value of arpresolve() */
        !            71: #define        ARPRESOLVE_WILLSEND             0
        !            72: #define        ARPRESOLVE_OK                   1
        !            73: #define        ARPRESOLVE_BROADCAST            2
        !            74: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.