[BACK]Return to ppp_defs.h CVS log [TXT][DIR] Up to [local] / sys / net

Annotation of sys/net/ppp_defs.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: ppp_defs.h,v 1.13 2002/09/13 00:12:07 deraadt Exp $   */
        !             2: /*     $NetBSD: ppp_defs.h,v 1.1 1995/07/04 06:28:26 paulus Exp $      */
        !             3:
        !             4: /*
        !             5:  * ppp_defs.h - PPP definitions.
        !             6:  *
        !             7:  * Copyright (c) 1989-2002 Paul Mackerras. All rights reserved.
        !             8:  *
        !             9:  * Redistribution and use in source and binary forms, with or without
        !            10:  * modification, are permitted provided that the following conditions
        !            11:  * are met:
        !            12:  *
        !            13:  * 1. Redistributions of source code must retain the above copyright
        !            14:  *    notice, this list of conditions and the following disclaimer.
        !            15:  *
        !            16:  * 2. Redistributions in binary form must reproduce the above copyright
        !            17:  *    notice, this list of conditions and the following disclaimer in
        !            18:  *    the documentation and/or other materials provided with the
        !            19:  *    distribution.
        !            20:  *
        !            21:  * 3. The name(s) of the authors of this software must not be used to
        !            22:  *    endorse or promote products derived from this software without
        !            23:  *    prior written permission.
        !            24:  *
        !            25:  * 4. Redistributions of any form whatsoever must retain the following
        !            26:  *    acknowledgment:
        !            27:  *    "This product includes software developed by Paul Mackerras
        !            28:  *     <paulus@samba.org>".
        !            29:  *
        !            30:  * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO
        !            31:  * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
        !            32:  * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
        !            33:  * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
        !            34:  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
        !            35:  * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
        !            36:  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
        !            37:  */
        !            38:
        !            39: #ifndef _PPP_DEFS_H_
        !            40: #define _PPP_DEFS_H_
        !            41:
        !            42: /*
        !            43:  * The basic PPP frame.
        !            44:  */
        !            45: #define PPP_HDRLEN     4       /* octets for standard ppp header */
        !            46: #define PPP_FCSLEN     2       /* octets for FCS */
        !            47: #define PPP_MRU                1500    /* default MRU = max length of info field */
        !            48:
        !            49: #define PPP_ADDRESS(p) (((u_char *)(p))[0])
        !            50: #define PPP_CONTROL(p) (((u_char *)(p))[1])
        !            51: #define PPP_PROTOCOL(p)        ((((u_char *)(p))[2] << 8) + ((u_char *)(p))[3])
        !            52:
        !            53: /*
        !            54:  * Significant octet values.
        !            55:  */
        !            56: #define PPP_ALLSTATIONS        0xff    /* All-Stations broadcast address */
        !            57: #define PPP_UI         0x03    /* Unnumbered Information */
        !            58: #define PPP_FLAG       0x7e    /* Flag Sequence */
        !            59: #define PPP_ESCAPE     0x7d    /* Asynchronous Control Escape */
        !            60: #define PPP_TRANS      0x20    /* Asynchronous transparency modifier */
        !            61:
        !            62: /*
        !            63:  * Protocol field values.
        !            64:  */
        !            65: #define PPP_IP         0x21    /* Internet Protocol */
        !            66: #define PPP_XNS                0x25    /* Xerox NS */
        !            67: #define PPP_AT         0x29    /* AppleTalk Protocol */
        !            68: #define PPP_IPX                0x2b    /* Internetwork Packet Exchange */
        !            69: #define PPP_VJC_COMP   0x2d    /* VJ compressed TCP */
        !            70: #define PPP_VJC_UNCOMP 0x2f    /* VJ uncompressed TCP */
        !            71: #define PPP_IPV6       0x57    /* Internet Protocol Version 6 */
        !            72: #define PPP_COMP       0xfd    /* compressed packet */
        !            73: #define PPP_IPCP       0x8021  /* IP Control Protocol */
        !            74: #define PPP_ATCP       0x8029  /* AppleTalk Control Protocol */
        !            75: #define PPP_IPXCP      0x802b  /* IPX Control Protocol */
        !            76: #define PPP_IPV6CP     0x8057  /* IPv6 Control Protocol */
        !            77: #define PPP_CCP                0x80fd  /* Compression Control Protocol */
        !            78: #define PPP_LCP                0xc021  /* Link Control Protocol */
        !            79: #define PPP_PAP                0xc023  /* Password Authentication Protocol */
        !            80: #define PPP_LQR                0xc025  /* Link Quality Report protocol */
        !            81: #define PPP_CHAP       0xc223  /* Cryptographic Handshake Auth. Protocol */
        !            82: #define PPP_CBCP       0xc029  /* Callback Control Protocol */
        !            83:
        !            84: /*
        !            85:  * Values for FCS calculations.
        !            86:  */
        !            87: #define PPP_INITFCS    0xffff  /* Initial FCS value */
        !            88: #define PPP_GOODFCS    0xf0b8  /* Good final FCS value */
        !            89: #define PPP_FCS(fcs, c)        (((fcs) >> 8) ^ fcstab[((fcs) ^ (c)) & 0xff])
        !            90:
        !            91: /*
        !            92:  * A 32-bit unsigned integral type.
        !            93:  */
        !            94: #ifndef __BIT_TYPES_DEFINED__
        !            95: #ifdef UINT32_T
        !            96: typedef UINT32_T       u_int32_t;
        !            97: #else
        !            98: typedef unsigned int   u_int32_t;
        !            99: typedef unsigned short u_int16_t;
        !           100: #endif
        !           101: #endif
        !           102:
        !           103: /*
        !           104:  * Extended asyncmap - allows any character to be escaped.
        !           105:  */
        !           106: typedef u_int32_t      ext_accm[8];
        !           107:
        !           108: /*
        !           109:  * What to do with network protocol (NP) packets.
        !           110:  */
        !           111: enum NPmode {
        !           112:     NPMODE_PASS,               /* pass the packet through */
        !           113:     NPMODE_DROP,               /* silently drop the packet */
        !           114:     NPMODE_ERROR,              /* return an error */
        !           115:     NPMODE_QUEUE               /* save it up for later. */
        !           116: };
        !           117:
        !           118: /*
        !           119:  * Statistics.
        !           120:  */
        !           121: struct pppstat {
        !           122:     u_int      ppp_ibytes;     /* bytes received */
        !           123:     u_int      ppp_ipackets;   /* packets received */
        !           124:     u_int      ppp_ierrors;    /* receive errors */
        !           125:     u_int      ppp_obytes;     /* bytes sent */
        !           126:     u_int      ppp_opackets;   /* packets sent */
        !           127:     u_int      ppp_oerrors;    /* transmit errors */
        !           128: };
        !           129:
        !           130: struct vjstat {
        !           131:     u_int      vjs_packets;    /* outbound packets */
        !           132:     u_int      vjs_compressed; /* outbound compressed packets */
        !           133:     u_int      vjs_searches;   /* searches for connection state */
        !           134:     u_int      vjs_misses;     /* times couldn't find conn. state */
        !           135:     u_int      vjs_uncompressedin; /* inbound uncompressed packets */
        !           136:     u_int      vjs_compressedin;   /* inbound compressed packets */
        !           137:     u_int      vjs_errorin;    /* inbound unknown type packets */
        !           138:     u_int      vjs_tossed;     /* inbound packets tossed because of error */
        !           139: };
        !           140:
        !           141: struct ppp_stats {
        !           142:     struct pppstat     p;      /* basic PPP statistics */
        !           143:     struct vjstat      vj;     /* VJ header compression statistics */
        !           144: };
        !           145:
        !           146: struct compstat {
        !           147:     u_int      unc_bytes;      /* total uncompressed bytes */
        !           148:     u_int      unc_packets;    /* total uncompressed packets */
        !           149:     u_int      comp_bytes;     /* compressed bytes */
        !           150:     u_int      comp_packets;   /* compressed packets */
        !           151:     u_int      inc_bytes;      /* incompressible bytes */
        !           152:     u_int      inc_packets;    /* incompressible packets */
        !           153:     u_int      ratio;          /* recent compression ratio << 8 */
        !           154: };
        !           155:
        !           156: struct ppp_comp_stats {
        !           157:     struct compstat    c;      /* packet compression statistics */
        !           158:     struct compstat    d;      /* packet decompression statistics */
        !           159: };
        !           160:
        !           161: /*
        !           162:  * The following structure records the time in seconds since
        !           163:  * the last NP packet was sent or received.
        !           164:  */
        !           165: struct ppp_idle {
        !           166:     time_t xmit_idle;          /* time since last NP packet sent */
        !           167:     time_t recv_idle;          /* time since last NP packet received */
        !           168: };
        !           169:
        !           170: #endif /* _PPP_DEFS_H_ */

CVSweb