2 * Defines PPP packet types.
4 * $Id: ppptypes.h,v 1.4 2001/01/10 09:34:08 guy Exp $
6 * Ethereal - Network traffic analyzer
7 * By Gerald Combs <gerald@zing.org>
8 * Copyright 1998 Gerald Combs
11 * This program is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License
13 * as published by the Free Software Foundation; either version 2
14 * of the License, or (at your option) any later version.
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
21 * You should have received a copy of the GNU General Public License
22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
26 #ifndef __PPPTYPES_H__
27 #define __PPPTYPES_H__
29 /* Protocol types, from Linux "ppp_defs.h" and
31 http://www.isi.edu/in-notes/iana/assignments/ppp-numbers
34 #define PPP_IP 0x21 /* Internet Protocol */
35 #define PPP_AT 0x29 /* AppleTalk Protocol */
36 #define PPP_IPX 0x2b /* IPX protocol */
37 #define PPP_VJC_COMP 0x2d /* VJ compressed TCP */
38 #define PPP_VJC_UNCOMP 0x2f /* VJ uncompressed TCP */
39 #define PPP_VINES 0x35 /* Banyan Vines */
40 #define PPP_MP 0x3d /* Multilink PPP */
41 #define PPP_IPV6 0x57 /* Internet Protocol Version 6 */
42 #define PPP_COMP 0xfd /* compressed packet */
43 #define PPP_MPLS_UNI 0x281 /* MPLS Unicast */
44 #define PPP_MPLS_MULTI 0x281 /* MPLS Multicast */
45 #define PPP_IPCP 0x8021 /* IP Control Protocol */
46 #define PPP_ATCP 0x8029 /* AppleTalk Control Protocol */
47 #define PPP_IPXCP 0x802b /* IPX Control Protocol */
48 #define PPP_CCP 0x80fd /* Compression Control Protocol */
49 #define PPP_LCP 0xc021 /* Link Control Protocol */
50 #define PPP_PAP 0xc023 /* Password Authentication Protocol */
51 #define PPP_LQR 0xc025 /* Link Quality Report protocol */
52 #define PPP_CHAP 0xc223 /* Cryptographic Handshake Auth. Protocol */
53 #define PPP_CBCP 0xc029 /* Callback Control Protocol */
56 * Address and control field for Cisco HDLC.
57 * RFC 1547, "Requirements for an Internet Standard Point-to-Point Protocol",
58 * section 4.3.1 "Cisco Systems point-to-point protocols", says
60 * The Cisco Systems gateway supports both asynchronous links using SLIP
61 * and synchronous links using either simple HDLC framing, X.25 LAPB or
62 * full X.25. The HDLC framing procedure includes a four byte header.
63 * The first octet (address) is either 0x0F (unicast intent) or 0x8F
64 * (multicast intent). The second octet (control byte) is left zero and
65 * is not checked on reception. The third and fourth octets contain a
66 * standard 16 bit Ethernet protocol type code.
68 * This is the first two octets for unicast intent frames.
70 #define CISCO_HDLC_ADDR_CTRL 0x0F00 /* Internet Protocol */
73 * Protocol types for the Cisco HDLC format.
75 * As per the above, according to RFC 1547, these are "standard 16 bit
76 * Ethernet protocol type code[s]", but 0x8035 is Reverse ARP, and
77 * that is (at least according to the Linux ISDN code) not the
78 * same as Cisco SLARP.
80 * In addition, 0x2000 is apparently the Cisco Discovery Protocol, but
81 * on Ethernet those are encapsulated inside SNAP with an OUI of
82 * OUI_CISCO, not OUI_ENCAP_ETHER.
84 * Perhaps we should set up a protocol table for those protocols
85 * that differ between Ethernet and Cisco HDLC, and have the PPP
86 * code first try that table and, if it finds nothing in that
87 * table, call "ethertype()". (Unfortunately, that means that -
88 * assuming we had a Cisco SLARP dissector - said dissector were
89 * disabled, SLARP packets would be dissected as Reverse ARP
90 * packets, not as data.
92 #define CISCO_SLARP 0x8035 /* Cisco SLARP protocol */
94 #endif /* ppptypes.h */