Boolean fields are just like other fields - if you use the field name
[obnox/wireshark/wip.git] / ppptypes.h
1 /* ppptypes.h
2  * Defines PPP packet types.
3  *
4  * $Id: ppptypes.h,v 1.5 2001/01/14 08:25:14 guy Exp $
5  *
6  * Ethereal - Network traffic analyzer
7  * By Gerald Combs <gerald@zing.org>
8  * Copyright 1998 Gerald Combs
9  *
10  * 
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.
15  * 
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.
20  * 
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.
24  */
25
26 #ifndef __PPPTYPES_H__
27 #define __PPPTYPES_H__
28
29 /* Protocol types, from Linux "ppp_defs.h" and
30
31         http://www.isi.edu/in-notes/iana/assignments/ppp-numbers
32
33  */
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 */
56
57 /*
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
61  *
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.
69  *
70  * This is the first two octets for unicast intent frames.
71  */
72 #define CISCO_HDLC_ADDR_CTRL    0x0F00  /* Internet Protocol */
73
74 /*
75  * Protocol types for the Cisco HDLC format.
76  *
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.
81  *
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.
85  *
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.
93  */
94 #define CISCO_SLARP     0x8035  /* Cisco SLARP protocol */
95
96 #endif /* ppptypes.h */