aboutsummaryrefslogtreecommitdiffstats
path: root/ppptypes.h
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2001-01-10 09:07:35 +0000
committerGuy Harris <guy@alum.mit.edu>2001-01-10 09:07:35 +0000
commit039bd984c0791b345ef12806a24cb5c44cf0e2f7 (patch)
tree8ada65a0f30fde1bc3c7eb46db802a42af046f93 /ppptypes.h
parent2a8ac23dd2b55b88c264312fce9a65f895f71bdd (diff)
Make the stuff to handle SNAP frames (OUI, PID, payload) a routine of
its own; it's used not only by LLC, but by Frame Relay with RFC 2427 and ATM with RFC 2684. Support for RFC 2427-encapsulation Frame Relay packets, from Paul Ionescu. Get rid of the CISCO_IP PPP protocol type - Cisco HDLC uses, in most cases, Ethernet packet types, so use ETHERTYPE_IP instead (they're both 0x0800). svn path=/trunk/; revision=2854
Diffstat (limited to 'ppptypes.h')
-rw-r--r--ppptypes.h40
1 files changed, 32 insertions, 8 deletions
diff --git a/ppptypes.h b/ppptypes.h
index 69aeca3299..bf4ea5fd9b 100644
--- a/ppptypes.h
+++ b/ppptypes.h
@@ -1,7 +1,7 @@
/* ppptypes.h
* Defines PPP packet types.
*
- * $Id: ppptypes.h,v 1.2 2000/12/14 08:20:30 guy Exp $
+ * $Id: ppptypes.h,v 1.3 2001/01/10 09:07:35 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -40,8 +40,8 @@
#define PPP_MP 0x3d /* Multilink PPP */
#define PPP_IPV6 0x57 /* Internet Protocol Version 6 */
#define PPP_COMP 0xfd /* compressed packet */
-#define PPP_MPLS_UNI 0x281 /* MPLS Unicast */
-#define PPP_MPLS_MULTI 0x281 /* MPLS Multicast */
+#define PPP_MPLS_UNI 0x281 /* MPLS Unicast */
+#define PPP_MPLS_MULTI 0x281 /* MPLS Multicast */
#define PPP_IPCP 0x8021 /* IP Control Protocol */
#define PPP_ATCP 0x8029 /* AppleTalk Control Protocol */
#define PPP_IPXCP 0x802b /* IPX Control Protocol */
@@ -52,12 +52,36 @@
#define PPP_CHAP 0xc223 /* Cryptographic Handshake Auth. Protocol */
#define PPP_CBCP 0xc029 /* Callback Control Protocol */
-/* Protocol types for the CISCO HDLC Format */
-#define CISCO_IP 0x0800 /* Internet Protocol */
-#define CISCO_SLARP 0x8035 /* CISCO SLARP protocol */
-
-/* Address and control field for CISCO HDLC */
+/*
+ * Address and control field for Cisco HDLC.
+ * RFC 1547, "Requirements for an Internet Standard Point-to-Point Protocol",
+ * section 4.3.1 "Cisco Systems point-to-point protocols", says
+ *
+ * The Cisco Systems gateway supports both asynchronous links using SLIP
+ * and synchronous links using either simple HDLC framing, X.25 LAPB or
+ * full X.25. The HDLC framing procedure includes a four byte header.
+ * The first octet (address) is either 0x0F (unicast intent) or 0x8F
+ * (multicast intent). The second octet (control byte) is left zero and
+ * is not checked on reception. The third and fourth octets contain a
+ * standard 16 bit Ethernet protocol type code.
+ *
+ * This is the first two octets for unicast intent frames.
+ */
#define CISCO_HDLC_ADDR_CTRL 0x0F00 /* Internet Protocol */
+/*
+ * Protocol types for the Cisco HDLC format.
+ *
+ * As per the above, according to RFC 1547, these are "standard 16 bit
+ * Ethernet protocol type code[s]", but 0x8035 is Reverse ARP, so, unless
+ * Cisco SLARP looks just like Reverse ARP, that's not quite true.
+ * In addition, 0x2000 is apparently the Cisco Discovery Protocol, but
+ * on Ethernet those are encapsulated inside SNAP with an OUI of
+ * OUI_CISCO, not OUI_ENCAP_ETHER.
+ *
+ * If it *is* true, that'd be lovely, as we could just use
+ * "ethertype()" to handle Cisco HDLC.
+ */
+#define CISCO_SLARP 0x8035 /* Cisco SLARP protocol */
#endif /* ppptypes.h */