Annotation of 43BSDReno/sys/netiso/esis.h, revision 1.1

1.1     ! root        1: /***********************************************************
        !             2:                Copyright IBM Corporation 1987
        !             3: 
        !             4:                       All Rights Reserved
        !             5: 
        !             6: Permission to use, copy, modify, and distribute this software and its 
        !             7: documentation for any purpose and without fee is hereby granted, 
        !             8: provided that the above copyright notice appear in all copies and that
        !             9: both that copyright notice and this permission notice appear in 
        !            10: supporting documentation, and that the name of IBM not be
        !            11: used in advertising or publicity pertaining to distribution of the
        !            12: software without specific, written prior permission.  
        !            13: 
        !            14: IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
        !            15: ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
        !            16: IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
        !            17: ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
        !            18: WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
        !            19: ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
        !            20: SOFTWARE.
        !            21: 
        !            22: ******************************************************************/
        !            23: 
        !            24: /*
        !            25:  * ARGO Project, Computer Sciences Dept., University of Wisconsin - Madison
        !            26:  */
        !            27: /*
        !            28:  *     $Header: esis.h,v 4.7 88/09/15 11:24:18 hagens Exp $
        !            29:  *     $Source: /usr/argo/sys/netiso/RCS/esis.h,v $
        !            30:  *     @(#)esis.h      7.3 (Berkeley) 8/29/89 *
        !            31:  */
        !            32: 
        !            33: #ifndef BYTE_ORDER
        !            34: /*
        !            35:  * Definitions for byte order,
        !            36:  * according to byte significance from low address to high.
        !            37:  */
        !            38: #define        LITTLE_ENDIAN   1234    /* least-significant byte first (vax) */
        !            39: #define        BIG_ENDIAN      4321    /* most-significant byte first (IBM, net) */
        !            40: #define        PDP_ENDIAN      3412    /* LSB first in word, MSW first in long (pdp) */
        !            41: 
        !            42: #ifdef vax
        !            43: #define        BYTE_ORDER      LITTLE_ENDIAN
        !            44: #else
        !            45: #define        BYTE_ORDER      BIG_ENDIAN      /* mc68000, tahoe, most others */
        !            46: #endif
        !            47: #endif BYTE_ORDER
        !            48: 
        !            49: #define        SNPAC_AGE               60                      /* seconds */
        !            50: #define        ESIS_CONFIG             60                      /* seconds */
        !            51: #define        ESIS_HT                 (ESIS_CONFIG * 2)
        !            52: 
        !            53: /*
        !            54:  *     Fixed part of an ESIS header
        !            55:  */
        !            56: struct esis_fixed {
        !            57:        u_char  esis_proto_id;          /* network layer protocol identifier */
        !            58:        u_char  esis_hdr_len;           /* length indicator (octets) */
        !            59:        u_char  esis_vers;                      /* version/protocol identifier extension */
        !            60:        u_char  esis_res1;                      /* reserved */
        !            61:        u_char  esis_type;                      /* type code */
        !            62: /* technically, type should be &='d 0x1f */
        !            63: #define ESIS_ESH       0x02            /* End System Hello */
        !            64: #define ESIS_ISH       0x04            /* Intermediate System Hello */
        !            65: #define ESIS_RD                0x06            /* Redirect */
        !            66:        u_char  esis_ht_msb;            /* holding time (seconds) high byte */
        !            67:        u_char  esis_ht_lsb;            /* holding time (seconds) low byte */
        !            68:        u_char  esis_cksum_msb;         /* checksum high byte */
        !            69:        u_char  esis_cksum_lsb;         /* checksum low byte */
        !            70: };
        !            71: /*
        !            72:  * Values for ESIS datagram options
        !            73:  */
        !            74: #define ESISOVAL_NETMASK       0xe1    /* address mask option, RD PDU only */
        !            75: #define ESISOVAL_SNPAMASK      0xe2    /* snpa mask option, RD PDU only */
        !            76: #define ESISOVAL_ESCT          0xc6    /* end system conf. timer, ISH PDU only */
        !            77: 
        !            78: 
        !            79: #define        ESIS_CKSUM_OFF          0x07
        !            80: #define ESIS_CKSUM_REQUIRED(pdu)\
        !            81:        ((pdu->esis_cksum_msb != 0) || (pdu->esis_cksum_lsb != 0))
        !            82: 
        !            83: #define        ESIS_VERSION    1
        !            84: 
        !            85: struct esis_stat {
        !            86:        u_short         es_nomem;                       /* insufficient memory to send hello */
        !            87:        u_short         es_badcsum;                     /* incorrect checksum */
        !            88:        u_short         es_badvers;                     /* incorrect version number */
        !            89:        u_short         es_badtype;                     /* unknown pdu type field */
        !            90:        u_short         es_toosmall;            /* packet too small */
        !            91:        u_short         es_eshsent;                     /* ESH sent */
        !            92:        u_short         es_eshrcvd;                     /* ESH rcvd */
        !            93:        u_short         es_ishsent;                     /* ISH sent */
        !            94:        u_short         es_ishrcvd;                     /* ISH rcvd */
        !            95:        u_short         es_rdsent;                      /* RD sent */
        !            96:        u_short         es_rdrcvd;                      /* RD rcvd */
        !            97: };
        !            98: 
        !            99: #ifdef KERNEL
        !           100: struct esis_stat esis_stat;
        !           101: #endif KERNEL

unix.superglobalmegacorp.com

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