summaryrefslogtreecommitdiff
path: root/usr/src/cmd/cmd-inet/usr.sbin/snoop/snoop_ppp.h
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2014-06-14 18:52:21 +0400
committerIgor Pashev <pashev.igor@gmail.com>2014-06-14 18:53:23 +0400
commit88101adac56be10a45a8bb6e30ea372a7ab82a44 (patch)
treeaee2fd534a7188062e56d0335d3932ce031ea050 /usr/src/cmd/cmd-inet/usr.sbin/snoop/snoop_ppp.h
downloadsnoop-88101adac56be10a45a8bb6e30ea372a7ab82a44.tar.gz
Initial illumos copyillumos/2014-02-13illumos
commit 484ad3ba6a529a2471a98577d59d8ed49c7dd2c7 Author: David Höppner <0xffea@gmail.com> Date: Thu Feb 13 09:42:44 2014 +0000 4587 snoop misdecodes DHCPv6 DHCPV6_DUID_LL identifiers Reviewed by: Sebastien Roy <sebastien.roy@delphix.com> Reviewed by: Marcel Telka <marcel@telka.sk> Reviewed by: Dan McDonald <danmcd@omniti.com> Approved by: Robert Mustacchi <rm@joyent.com>
Diffstat (limited to 'usr/src/cmd/cmd-inet/usr.sbin/snoop/snoop_ppp.h')
-rw-r--r--usr/src/cmd/cmd-inet/usr.sbin/snoop/snoop_ppp.h192
1 files changed, 192 insertions, 0 deletions
diff --git a/usr/src/cmd/cmd-inet/usr.sbin/snoop/snoop_ppp.h b/usr/src/cmd/cmd-inet/usr.sbin/snoop/snoop_ppp.h
new file mode 100644
index 0000000..0f158c5
--- /dev/null
+++ b/usr/src/cmd/cmd-inet/usr.sbin/snoop/snoop_ppp.h
@@ -0,0 +1,192 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2001 by Sun Microsystems, Inc.
+ * All rights reserved.
+ */
+
+#ifndef _SNOOP_PPP_H
+#define _SNOOP_PPP_H
+
+#pragma ident "%Z%%M% %I% %E% SMI"
+
+/*
+ * Control Protocol (LCP, IPCP, etc.) message code numbers.
+ */
+#define CODE_VENDOR 0 /* Vendor Specif Code */
+#define CODE_CONFREQ 1 /* Configuration Request */
+#define CODE_CONFACK 2 /* Configuration Ack */
+#define CODE_CONFNAK 3 /* Configuration Nak */
+#define CODE_CONFREJ 4 /* Configuration Reject */
+#define CODE_TERMREQ 5 /* Termination Request */
+#define CODE_TERMACK 6 /* Termination Ack */
+#define CODE_CODEREJ 7 /* Code Reject */
+/*
+ * LCP specific codes.
+ */
+#define CODE_PROTREJ 8 /* Protocol Reject */
+#define CODE_ECHOREQ 9 /* Echo Request */
+#define CODE_ECHOREP 10 /* Echo Reply */
+#define CODE_DISCREQ 11 /* Discard Request */
+#define CODE_IDENT 12 /* Identification */
+#define CODE_TIMEREMAIN 13 /* Time Remaining */
+/*
+ * CCP and ECP specific codes.
+ */
+#define CODE_RESETREQ 14
+#define CODE_RESETACK 15
+
+/*
+ * CHAP codes.
+ */
+#define CODE_CHALLENGE 1
+#define CODE_RESPONSE 2
+#define CODE_SUCCESS 3
+#define CODE_FAILURE 4
+
+/*
+ * PAP codes.
+ */
+#define CODE_AUTHREQ 1
+#define CODE_AUTHACK 2
+#define CODE_AUTHNAK 3
+
+/*
+ * Option types for various control protocols.
+ */
+#define OPT_LCP_VENDOR 0
+#define OPT_LCP_MRU 1
+#define OPT_LCP_ASYNCMAP 2
+#define OPT_LCP_AUTHTYPE 3
+#define OPT_LCP_QUALITY 4
+#define OPT_LCP_MAGICNUMBER 5
+#define OPT_LCP_PCOMPRESSION 7
+#define OPT_LCP_ACCOMPRESSION 8
+#define OPT_LCP_FCSALTERN 9
+#define OPT_LCP_SELFDESCPAD 10
+#define OPT_LCP_NUMBERED 11
+#define OPT_LCP_MULTILINKPROC 12
+#define OPT_LCP_CALLBACK 13
+#define OPT_LCP_CONNECTTIME 14
+#define OPT_LCP_COMPOUNDFRAMES 15
+#define OPT_LCP_DATAENCAP 16
+#define OPT_LCP_MRRU 17
+#define OPT_LCP_SSNHF 18
+#define OPT_LCP_EPDISC 19
+#define OPT_LCP_DCEIDENT 21
+#define OPT_LCP_MLPLUSPROC 22
+#define OPT_LCP_LINKDISC 23
+#define OPT_LCP_AUTH 24
+#define OPT_LCP_COBS 25
+#define OPT_LCP_PFXELISION 26
+#define OPT_LCP_MPHDRFMT 27
+#define OPT_LCP_I18N 28
+#define OPT_LCP_SDL 29
+#define OPT_LCP_MUXING 30
+
+#define OPT_IPCP_ADDRS 1
+#define OPT_IPCP_COMPRESSTYPE 2
+#define OPT_IPCP_ADDR 3
+#define OPT_IPCP_MOBILEIPV4 4
+#define OPT_IPCP_DNS1 129
+#define OPT_IPCP_NBNS1 130
+#define OPT_IPCP_DNS2 131
+#define OPT_IPCP_NBNS2 132
+#define OPT_IPCP_SUBNET 144
+
+#define OPT_IPV6CP_IFACEID 1
+#define OPT_IPV6CP_COMPRESSTYPE 2
+
+#define OPT_CCP_PROPRIETARY 0
+#define OPT_CCP_PREDICTOR1 1
+#define OPT_CCP_PREDICTOR2 2
+#define OPT_CCP_PUDDLEJUMP 3
+#define OPT_CCP_HPPPC 16
+#define OPT_CCP_STACLZS 17
+#define OPT_CCP_MPPC 18
+#define OPT_CCP_GANDALFFZA 19
+#define OPT_CCP_V42BIS 20
+#define OPT_CCP_BSDCOMP 21
+#define OPT_CCP_LZSDCP 23
+#define OPT_CCP_MAGNALINK 24
+#define OPT_CCP_DEFLATE 26
+
+#define OPT_ECP_PROPRIETARY 0
+#define OPT_ECP_DESE 1
+#define OPT_ECP_3DESE 2
+#define OPT_ECP_DESEBIS 3
+
+#define OPT_MUXCP_DEFAULTPID 1
+
+/*
+ * ppp_protoinfo_t's contain properties of PPP protocols which
+ * interpret_ppp() needs in order to properly decode the protocol data.
+ */
+typedef struct ppp_protoinfo {
+ uint16_t proto; /* protocol number */
+ char *name; /* protocol name */
+ int (*interpret_proto)(); /* interpret function */
+ char *prefix; /* string printed on detail lines */
+ char *description; /* string printed in detail header */
+} ppp_protoinfo_t;
+
+
+/*
+ * cp_optinfo contains information on control protocol options.
+ */
+typedef void optformat_func_t(uchar_t *, uint8_t);
+typedef struct cp_optinfo {
+ uint8_t opt_type;
+ char *opt_name;
+ uint8_t opt_minsize; /* min size of option, including type and len */
+ optformat_func_t *opt_formatdata;
+} cp_optinfo_t;
+
+
+/*
+ * Packet format for PPP control and authentication protocols.
+ */
+typedef struct ppp_pkt {
+ uint8_t code;
+ uint8_t id;
+ uint16_t length;
+} ppp_pkt_t;
+
+/*
+ * Structure of an LQR packet.
+ */
+typedef struct lqr_pkt {
+ uint32_t lqr_magic;
+ uint32_t lqr_lastoutlqrs;
+ uint32_t lqr_lastoutpackets;
+ uint32_t lqr_lastoutoctets;
+ uint32_t lqr_peerinlqrs;
+ uint32_t lqr_peerinpackets;
+ uint32_t lqr_peerindiscards;
+ uint32_t lqr_peerinerrors;
+ uint32_t lqr_peerinoctets;
+ uint32_t lqr_peeroutlqrs;
+ uint32_t lqr_peeroutpackets;
+ uint32_t lqr_peeroutoctets;
+} lqr_pkt_t;
+
+#endif /* _SNOOP_PPP_H */