2 * Defines PPP packet types.
4 * $Id: ppptypes.h,v 1.5 2001/01/14 08:25:14 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_BPDU 0x31 /* Bridging PDU (spanning tree BPDU?) */
40 #define PPP_VINES 0x35 /* Banyan Vines */
41 #define PPP_MP 0x3d /* Multilink PPP */
42 #define PPP_IPV6 0x57 /* Internet Protocol Version 6 */
43 #define PPP_COMP 0xfd /* compressed packet */
44 #define PPP_DEC_LB 0x0205 /* DEC LANBridge100 Spanning Tree */
45 #define PPP_MPLS_UNI 0x0281 /* MPLS Unicast */
46 #define PPP_MPLS_MULTI 0x0283 /* MPLS Multicast */
47 #define PPP_IPCP 0x8021 /* IP Control Protocol */
48 #define PPP_ATCP 0x8029 /* AppleTalk Control Protocol */
49 #define PPP_IPXCP 0x802b /* IPX Control Protocol */
50 #define PPP_CCP 0x80fd /* Compression Control Protocol */
51 #define PPP_LCP 0xc021 /* Link Control Protocol */
52 #define PPP_PAP 0xc023 /* Password Authentication Protocol */
53 #define PPP_LQR 0xc025 /* Link Quality Report protocol */
54 #define PPP_CHAP 0xc223 /* Cryptographic Handshake Auth. Protocol */
55 #define PPP_CBCP 0xc029 /* Callback Control Protocol */
58 * Address and control field for Cisco HDLC.
59 * RFC 1547, "Requirements for an Internet Standard Point-to-Point Protocol",
60 * section 4.3.1 "Cisco Systems point-to-point protocols", says
62 * The Cisco Systems gateway supports both asynchronous links using SLIP
63 * and synchronous links using either simple HDLC framing, X.25 LAPB or
64 * full X.25. The HDLC framing procedure includes a four byte header.
65 * The first octet (address) is either 0x0F (unicast intent) or 0x8F
66 * (multicast intent). The second octet (control byte) is left zero and
67 * is not checked on reception. The third and fourth octets contain a
68 * standard 16 bit Ethernet protocol type code.
70 * This is the first two octets for unicast intent frames.
72 #define CISCO_HDLC_ADDR_CTRL 0x0F00 /* Internet Protocol */
75 * Protocol types for the Cisco HDLC format.
77 * As per the above, according to RFC 1547, these are "standard 16 bit
78 * Ethernet protocol type code[s]", but 0x8035 is Reverse ARP, and
79 * that is (at least according to the Linux ISDN code) not the
80 * same as Cisco SLARP.
82 * In addition, 0x2000 is apparently the Cisco Discovery Protocol, but
83 * on Ethernet those are encapsulated inside SNAP with an OUI of
84 * OUI_CISCO, not OUI_ENCAP_ETHER.
86 * Perhaps we should set up a protocol table for those protocols
87 * that differ between Ethernet and Cisco HDLC, and have the PPP
88 * code first try that table and, if it finds nothing in that
89 * table, call "ethertype()". (Unfortunately, that means that -
90 * assuming we had a Cisco SLARP dissector - said dissector were
91 * disabled, SLARP packets would be dissected as Reverse ARP
92 * packets, not as data.
94 #define CISCO_SLARP 0x8035 /* Cisco SLARP protocol */
96 #endif /* ppptypes.h */