Home | History | Annotate | Download | only in snoop
      1  0  stevel /*
      2  0  stevel  * CDDL HEADER START
      3  0  stevel  *
      4  0  stevel  * The contents of this file are subject to the terms of the
      5  0  stevel  * Common Development and Distribution License, Version 1.0 only
      6  0  stevel  * (the "License").  You may not use this file except in compliance
      7  0  stevel  * with the License.
      8  0  stevel  *
      9  0  stevel  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
     10  0  stevel  * or http://www.opensolaris.org/os/licensing.
     11  0  stevel  * See the License for the specific language governing permissions
     12  0  stevel  * and limitations under the License.
     13  0  stevel  *
     14  0  stevel  * When distributing Covered Code, include this CDDL HEADER in each
     15  0  stevel  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     16  0  stevel  * If applicable, add the following below this CDDL HEADER, with the
     17  0  stevel  * fields enclosed by brackets "[]" replaced with your own identifying
     18  0  stevel  * information: Portions Copyright [yyyy] [name of copyright owner]
     19  0  stevel  *
     20  0  stevel  * CDDL HEADER END
     21  0  stevel  */
     22  0  stevel /*
     23  0  stevel  * Copyright (c) 2001 by Sun Microsystems, Inc.
     24  0  stevel  * All rights reserved.
     25  0  stevel  */
     26  0  stevel 
     27  0  stevel #ifndef	_SNOOP_PPP_H
     28  0  stevel #define	_SNOOP_PPP_H
     29  0  stevel 
     30  0  stevel #pragma ident	"%Z%%M%	%I%	%E% SMI"
     31  0  stevel 
     32  0  stevel /*
     33  0  stevel  *  Control Protocol (LCP, IPCP, etc.) message code numbers.
     34  0  stevel  */
     35  0  stevel #define	CODE_VENDOR	0	/* Vendor Specif Code */
     36  0  stevel #define	CODE_CONFREQ	1	/* Configuration Request */
     37  0  stevel #define	CODE_CONFACK	2	/* Configuration Ack */
     38  0  stevel #define	CODE_CONFNAK	3	/* Configuration Nak */
     39  0  stevel #define	CODE_CONFREJ	4	/* Configuration Reject */
     40  0  stevel #define	CODE_TERMREQ	5	/* Termination Request */
     41  0  stevel #define	CODE_TERMACK	6	/* Termination Ack */
     42  0  stevel #define	CODE_CODEREJ	7	/* Code Reject */
     43  0  stevel /*
     44  0  stevel  * LCP specific codes.
     45  0  stevel  */
     46  0  stevel #define	CODE_PROTREJ	8	/* Protocol Reject */
     47  0  stevel #define	CODE_ECHOREQ	9	/* Echo Request */
     48  0  stevel #define	CODE_ECHOREP	10	/* Echo Reply */
     49  0  stevel #define	CODE_DISCREQ	11	/* Discard Request */
     50  0  stevel #define	CODE_IDENT	12	/* Identification */
     51  0  stevel #define	CODE_TIMEREMAIN	13	/* Time Remaining */
     52  0  stevel /*
     53  0  stevel  * CCP and ECP specific codes.
     54  0  stevel  */
     55  0  stevel #define	CODE_RESETREQ	14
     56  0  stevel #define	CODE_RESETACK	15
     57  0  stevel 
     58  0  stevel /*
     59  0  stevel  * CHAP codes.
     60  0  stevel  */
     61  0  stevel #define	CODE_CHALLENGE	1
     62  0  stevel #define	CODE_RESPONSE	2
     63  0  stevel #define	CODE_SUCCESS	3
     64  0  stevel #define	CODE_FAILURE	4
     65  0  stevel 
     66  0  stevel /*
     67  0  stevel  * PAP codes.
     68  0  stevel  */
     69  0  stevel #define	CODE_AUTHREQ	1
     70  0  stevel #define	CODE_AUTHACK	2
     71  0  stevel #define	CODE_AUTHNAK	3
     72  0  stevel 
     73  0  stevel /*
     74  0  stevel  * Option types for various control protocols.
     75  0  stevel  */
     76  0  stevel #define	OPT_LCP_VENDOR		0
     77  0  stevel #define	OPT_LCP_MRU		1
     78  0  stevel #define	OPT_LCP_ASYNCMAP	2
     79  0  stevel #define	OPT_LCP_AUTHTYPE	3
     80  0  stevel #define	OPT_LCP_QUALITY		4
     81  0  stevel #define	OPT_LCP_MAGICNUMBER	5
     82  0  stevel #define	OPT_LCP_PCOMPRESSION	7
     83  0  stevel #define	OPT_LCP_ACCOMPRESSION	8
     84  0  stevel #define	OPT_LCP_FCSALTERN	9
     85  0  stevel #define	OPT_LCP_SELFDESCPAD	10
     86  0  stevel #define	OPT_LCP_NUMBERED	11
     87  0  stevel #define	OPT_LCP_MULTILINKPROC	12
     88  0  stevel #define	OPT_LCP_CALLBACK	13
     89  0  stevel #define	OPT_LCP_CONNECTTIME	14
     90  0  stevel #define	OPT_LCP_COMPOUNDFRAMES	15
     91  0  stevel #define	OPT_LCP_DATAENCAP	16
     92  0  stevel #define	OPT_LCP_MRRU		17
     93  0  stevel #define	OPT_LCP_SSNHF		18
     94  0  stevel #define	OPT_LCP_EPDISC		19
     95  0  stevel #define	OPT_LCP_DCEIDENT	21
     96  0  stevel #define	OPT_LCP_MLPLUSPROC	22
     97  0  stevel #define	OPT_LCP_LINKDISC	23
     98  0  stevel #define	OPT_LCP_AUTH		24
     99  0  stevel #define	OPT_LCP_COBS		25
    100  0  stevel #define	OPT_LCP_PFXELISION	26
    101  0  stevel #define	OPT_LCP_MPHDRFMT	27
    102  0  stevel #define	OPT_LCP_I18N		28
    103  0  stevel #define	OPT_LCP_SDL		29
    104  0  stevel #define	OPT_LCP_MUXING		30
    105  0  stevel 
    106  0  stevel #define	OPT_IPCP_ADDRS		1
    107  0  stevel #define	OPT_IPCP_COMPRESSTYPE	2
    108  0  stevel #define	OPT_IPCP_ADDR		3
    109  0  stevel #define	OPT_IPCP_MOBILEIPV4	4
    110  0  stevel #define	OPT_IPCP_DNS1		129
    111  0  stevel #define	OPT_IPCP_NBNS1		130
    112  0  stevel #define	OPT_IPCP_DNS2		131
    113  0  stevel #define	OPT_IPCP_NBNS2		132
    114  0  stevel #define	OPT_IPCP_SUBNET		144
    115  0  stevel 
    116  0  stevel #define	OPT_IPV6CP_IFACEID	1
    117  0  stevel #define	OPT_IPV6CP_COMPRESSTYPE	2
    118  0  stevel 
    119  0  stevel #define	OPT_CCP_PROPRIETARY	0
    120  0  stevel #define	OPT_CCP_PREDICTOR1	1
    121  0  stevel #define	OPT_CCP_PREDICTOR2	2
    122  0  stevel #define	OPT_CCP_PUDDLEJUMP	3
    123  0  stevel #define	OPT_CCP_HPPPC		16
    124  0  stevel #define	OPT_CCP_STACLZS		17
    125  0  stevel #define	OPT_CCP_MPPC		18
    126  0  stevel #define	OPT_CCP_GANDALFFZA	19
    127  0  stevel #define	OPT_CCP_V42BIS		20
    128  0  stevel #define	OPT_CCP_BSDCOMP		21
    129  0  stevel #define	OPT_CCP_LZSDCP		23
    130  0  stevel #define	OPT_CCP_MAGNALINK	24
    131  0  stevel #define	OPT_CCP_DEFLATE		26
    132  0  stevel 
    133  0  stevel #define	OPT_ECP_PROPRIETARY	0
    134  0  stevel #define	OPT_ECP_DESE		1
    135  0  stevel #define	OPT_ECP_3DESE		2
    136  0  stevel #define	OPT_ECP_DESEBIS		3
    137  0  stevel 
    138  0  stevel #define	OPT_MUXCP_DEFAULTPID	1
    139  0  stevel 
    140  0  stevel /*
    141  0  stevel  * ppp_protoinfo_t's contain properties of PPP protocols which
    142  0  stevel  * interpret_ppp() needs in order to properly decode the protocol data.
    143  0  stevel  */
    144  0  stevel typedef struct ppp_protoinfo {
    145  0  stevel 	uint16_t proto;			/* protocol number */
    146  0  stevel 	char *name;			/* protocol name */
    147  0  stevel 	int (*interpret_proto)();	/* interpret function */
    148  0  stevel 	char *prefix;			/* string printed on detail lines */
    149  0  stevel 	char *description;		/* string printed in detail header */
    150  0  stevel } ppp_protoinfo_t;
    151  0  stevel 
    152  0  stevel 
    153  0  stevel /*
    154  0  stevel  * cp_optinfo contains information on control protocol options.
    155  0  stevel  */
    156  0  stevel typedef void optformat_func_t(uchar_t *, uint8_t);
    157  0  stevel typedef struct cp_optinfo {
    158  0  stevel 	uint8_t	opt_type;
    159  0  stevel 	char *opt_name;
    160  0  stevel 	uint8_t opt_minsize; /* min size of option, including type and len */
    161  0  stevel 	optformat_func_t *opt_formatdata;
    162  0  stevel } cp_optinfo_t;
    163  0  stevel 
    164  0  stevel 
    165  0  stevel /*
    166  0  stevel  * Packet format for PPP control and authentication protocols.
    167  0  stevel  */
    168  0  stevel typedef struct ppp_pkt {
    169  0  stevel 	uint8_t code;
    170  0  stevel 	uint8_t id;
    171  0  stevel 	uint16_t length;
    172  0  stevel } ppp_pkt_t;
    173  0  stevel 
    174  0  stevel /*
    175  0  stevel  * Structure of an LQR packet.
    176  0  stevel  */
    177  0  stevel typedef struct lqr_pkt {
    178  0  stevel 	uint32_t lqr_magic;
    179  0  stevel 	uint32_t lqr_lastoutlqrs;
    180  0  stevel 	uint32_t lqr_lastoutpackets;
    181  0  stevel 	uint32_t lqr_lastoutoctets;
    182  0  stevel 	uint32_t lqr_peerinlqrs;
    183  0  stevel 	uint32_t lqr_peerinpackets;
    184  0  stevel 	uint32_t lqr_peerindiscards;
    185  0  stevel 	uint32_t lqr_peerinerrors;
    186  0  stevel 	uint32_t lqr_peerinoctets;
    187  0  stevel 	uint32_t lqr_peeroutlqrs;
    188  0  stevel 	uint32_t lqr_peeroutpackets;
    189  0  stevel 	uint32_t lqr_peeroutoctets;
    190  0  stevel } lqr_pkt_t;
    191  0  stevel 
    192  0  stevel #endif /* _SNOOP_PPP_H */
    193