aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2004-09-29 00:52:45 +0000
committerGuy Harris <guy@alum.mit.edu>2004-09-29 00:52:45 +0000
commiteaadcc4c62c5a61273c814f86d33ed859ba8917b (patch)
treee8504dda24b1aaede3776d8c20fd4379a0df3ba2 /epan
parent31158d0d0ecd4fe605bc1675424c06c024acef0c (diff)
Move various tables into the epan directory.
svn path=/trunk/; revision=12130
Diffstat (limited to 'epan')
-rw-r--r--epan/Makefile.common9
-rw-r--r--epan/afn.c52
-rw-r--r--epan/afn.h48
-rw-r--r--epan/dissectors/packet-bgp.c2
-rw-r--r--epan/dissectors/packet-clnp.c2
-rw-r--r--epan/dissectors/packet-cpha.c2
-rw-r--r--epan/dissectors/packet-dns.c2
-rw-r--r--epan/dissectors/packet-dvmrp.c2
-rw-r--r--epan/dissectors/packet-eigrp.c2
-rw-r--r--epan/dissectors/packet-etherip.c2
-rw-r--r--epan/dissectors/packet-gre.c2
-rw-r--r--epan/dissectors/packet-h225.c2
-rw-r--r--epan/dissectors/packet-h245.c2
-rw-r--r--epan/dissectors/packet-icmpv6.c2
-rw-r--r--epan/dissectors/packet-igmp.c2
-rw-r--r--epan/dissectors/packet-igrp.c2
-rw-r--r--epan/dissectors/packet-ip.c2
-rw-r--r--epan/dissectors/packet-ipdc.c2
-rw-r--r--epan/dissectors/packet-ipsec.c2
-rw-r--r--epan/dissectors/packet-ipv6.c2
-rw-r--r--epan/dissectors/packet-ipvs-syncd.c2
-rw-r--r--epan/dissectors/packet-isakmp.c2
-rw-r--r--epan/dissectors/packet-ldp.c2
-rw-r--r--epan/dissectors/packet-lmp.c2
-rw-r--r--epan/dissectors/packet-mip6.c2
-rw-r--r--epan/dissectors/packet-ospf.c2
-rw-r--r--epan/dissectors/packet-pgm.c4
-rw-r--r--epan/dissectors/packet-pim.c4
-rw-r--r--epan/dissectors/packet-portmap.c2
-rw-r--r--epan/dissectors/packet-rsvp.c2
-rw-r--r--epan/dissectors/packet-sctp.c2
-rw-r--r--epan/dissectors/packet-t38.c2
-rw-r--r--epan/dissectors/packet-tcp.c2
-rw-r--r--epan/dissectors/packet-teredo.c2
-rw-r--r--epan/dissectors/packet-udp.c2
-rw-r--r--epan/dissectors/packet-vines.c2
-rw-r--r--epan/dissectors/packet-vj.c2
-rw-r--r--epan/dissectors/packet-vrrp.c2
-rw-r--r--epan/ipproto.c215
-rw-r--r--epan/ipproto.h187
-rw-r--r--epan/t35.c395
-rw-r--r--epan/t35.h35
42 files changed, 975 insertions, 40 deletions
diff --git a/epan/Makefile.common b/epan/Makefile.common
index 4f857b129e..46bc39a7df 100644
--- a/epan/Makefile.common
+++ b/epan/Makefile.common
@@ -27,6 +27,7 @@ LIBETHEREAL_SRC = \
addr_and_mask.c \
addr_resolv.c \
adler32.c \
+ afn.c \
atalk-utils.c \
base64.c \
bitswap.c \
@@ -45,6 +46,7 @@ LIBETHEREAL_SRC = \
filesystem.c \
frame_data.c \
in_cksum.c \
+ ipproto.c \
ipv4.c \
osi-utils.c \
packet.c \
@@ -56,6 +58,7 @@ LIBETHEREAL_SRC = \
sha1.c \
sna-utils.c \
strutil.c \
+ t35.c \
tap.c \
timestamp.c \
to_str.c \
@@ -68,6 +71,7 @@ LIBETHEREAL_INCLUDES = \
addr_resolv.h \
address.h \
adler32.h \
+ afn.h \
atalk-utils.h \
base64.h \
bitswap.h \
@@ -90,6 +94,7 @@ LIBETHEREAL_INCLUDES = \
frame_data.h \
gdebug.h \
in_cksum.h \
+ ipproto.h \
ipv4.h \
ipv6-utils.h \
nstime.h \
@@ -107,6 +112,7 @@ LIBETHEREAL_INCLUDES = \
slab.h \
sna-utils.h \
strutil.h \
+ t35.h \
tap.h \
timestamp.h \
to_str.h \
@@ -116,14 +122,11 @@ LIBETHEREAL_INCLUDES = \
# dissector helpers (needed from the dissectors, but not a dissector itself)
DISSECTOR_SUPPORT_SRC = \
- ../afn.c \
../asn1.c \
../column.c \
../follow.c \
../h225-persistentdata.c \
- ../ipproto.c \
../ptvcursor.c \
../reassemble.c \
- ../t35.c \
../xmlstub.c
diff --git a/epan/afn.c b/epan/afn.c
new file mode 100644
index 0000000000..89c38d710b
--- /dev/null
+++ b/epan/afn.c
@@ -0,0 +1,52 @@
+/* afn.c
+ * RFC 1700 address family numbers
+ *
+ * $Id$
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <epan/packet.h>
+#include <epan/afn.h>
+
+const value_string afn_vals[] = {
+ { 0, "Reserved" },
+ { AFNUM_INET, "IPv4" },
+ { AFNUM_INET6, "IPv6" },
+ { AFNUM_NSAP, "NSAP" },
+ { AFNUM_HDLC, "HDLC (8-bit multidrop)" },
+ { AFNUM_BBN1822, "BBN 1822" },
+ { AFNUM_802, "802" },
+ { AFNUM_E163, "E.163" },
+ { AFNUM_E164, "E.164" },
+ { AFNUM_F69, "F.69" },
+ { AFNUM_X121, "X.121" },
+ { AFNUM_IPX, "IPX" },
+ { AFNUM_ATALK, "Appletalk" },
+ { AFNUM_DECNET, "Decnet IV" },
+ { AFNUM_BANYAN, "Banyan Vines" },
+ { AFNUM_E164NSAP, "E.164 with NSAP subaddress" },
+ { AFNUM_L2VPN, "Layer-2 VPN" },
+ { 65535, "Reserved" },
+ { 0, NULL },
+};
diff --git a/epan/afn.h b/epan/afn.h
new file mode 100644
index 0000000000..d621c44821
--- /dev/null
+++ b/epan/afn.h
@@ -0,0 +1,48 @@
+/* afn.h
+ * RFC 1700 address family numbers
+ *
+ * $Id$
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __AFN_H__
+#define __AFN_H__
+
+/* RFC1700 address family numbers */
+#define AFNUM_INET 1
+#define AFNUM_INET6 2
+#define AFNUM_NSAP 3
+#define AFNUM_HDLC 4
+#define AFNUM_BBN1822 5
+#define AFNUM_802 6
+#define AFNUM_E163 7
+#define AFNUM_E164 8
+#define AFNUM_F69 9
+#define AFNUM_X121 10
+#define AFNUM_IPX 11
+#define AFNUM_ATALK 12
+#define AFNUM_DECNET 13
+#define AFNUM_BANYAN 14
+#define AFNUM_E164NSAP 15
+/* draft-kompella-ppvpn-l2vpn */
+#define AFNUM_L2VPN 196
+extern const value_string afn_vals[];
+
+#endif /* __AFN_H__ */
diff --git a/epan/dissectors/packet-bgp.c b/epan/dissectors/packet-bgp.c
index 1dd350108e..4cb64750e1 100644
--- a/epan/dissectors/packet-bgp.c
+++ b/epan/dissectors/packet-bgp.c
@@ -60,7 +60,7 @@
#include "packet-bgp.h"
#include "packet-ipv6.h"
#include "packet-frame.h"
-#include "afn.h"
+#include <epan/afn.h>
#include <epan/prefs.h>
static const value_string bgptypevals[] = {
diff --git a/epan/dissectors/packet-clnp.c b/epan/dissectors/packet-clnp.c
index 8386dcc7a2..365d323c24 100644
--- a/epan/dissectors/packet-clnp.c
+++ b/epan/dissectors/packet-clnp.c
@@ -39,7 +39,7 @@
#include "packet-isis.h"
#include "packet-esis.h"
#include "nlpid.h"
-#include "ipproto.h"
+#include <epan/ipproto.h>
/* protocols and fields */
diff --git a/epan/dissectors/packet-cpha.c b/epan/dissectors/packet-cpha.c
index 77f7a75543..6ce650c535 100644
--- a/epan/dissectors/packet-cpha.c
+++ b/epan/dissectors/packet-cpha.c
@@ -37,7 +37,7 @@
#endif
#include <epan/packet.h>
-#include "ipproto.h"
+#include <epan/ipproto.h>
static int proto_cphap = -1;
diff --git a/epan/dissectors/packet-dns.c b/epan/dissectors/packet-dns.c
index 55d46f1fbb..95d3841baa 100644
--- a/epan/dissectors/packet-dns.c
+++ b/epan/dissectors/packet-dns.c
@@ -37,7 +37,7 @@
#include <glib.h>
#include <epan/ipv6-utils.h>
#include <epan/packet.h>
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include <epan/addr_resolv.h>
#include "packet-dns.h"
#include "packet-tcp.h"
diff --git a/epan/dissectors/packet-dvmrp.c b/epan/dissectors/packet-dvmrp.c
index 9c919385fe..dbb776a5d1 100644
--- a/epan/dissectors/packet-dvmrp.c
+++ b/epan/dissectors/packet-dvmrp.c
@@ -60,7 +60,7 @@
#include <glib.h>
#include <epan/packet.h>
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include "packet-igmp.h"
#include "packet-dvmrp.h"
diff --git a/epan/dissectors/packet-eigrp.c b/epan/dissectors/packet-eigrp.c
index 7f28ed6a9f..f44dccc27f 100644
--- a/epan/dissectors/packet-eigrp.c
+++ b/epan/dissectors/packet-eigrp.c
@@ -33,7 +33,7 @@
#include <epan/atalk-utils.h>
#include <epan/addr_and_mask.h>
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include "packet-ipx.h"
/*
diff --git a/epan/dissectors/packet-etherip.c b/epan/dissectors/packet-etherip.c
index 302a422579..b24e2e89dd 100644
--- a/epan/dissectors/packet-etherip.c
+++ b/epan/dissectors/packet-etherip.c
@@ -30,7 +30,7 @@
#include <string.h>
#include <glib.h>
#include <epan/packet.h>
-#include "ipproto.h"
+#include <epan/ipproto.h>
static int proto_etherip = -1;
static int hf_etherip_ver = -1;
diff --git a/epan/dissectors/packet-gre.c b/epan/dissectors/packet-gre.c
index f1c090325f..8dd12afc3c 100644
--- a/epan/dissectors/packet-gre.c
+++ b/epan/dissectors/packet-gre.c
@@ -33,7 +33,7 @@
#include <epan/in_cksum.h>
#include "etypes.h"
#include "greproto.h"
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include "llcsaps.h"
/*
diff --git a/epan/dissectors/packet-h225.c b/epan/dissectors/packet-h225.c
index 6f018d7523..1d848267d6 100644
--- a/epan/dissectors/packet-h225.c
+++ b/epan/dissectors/packet-h225.c
@@ -43,7 +43,7 @@
#include "packet-h225.h"
#include "packet-h235.h"
#include "packet-h245.h"
-#include "t35.h"
+#include <epan/t35.h>
#include "h225-persistentdata.h"
#define UDP_PORT_RAS1 1718
diff --git a/epan/dissectors/packet-h245.c b/epan/dissectors/packet-h245.c
index 8653bffd44..46f10cf7a2 100644
--- a/epan/dissectors/packet-h245.c
+++ b/epan/dissectors/packet-h245.c
@@ -41,7 +41,7 @@
#include <epan/prefs.h>
#include "packet-tpkt.h"
#include "packet-per.h"
-#include "t35.h"
+#include <epan/t35.h>
#include "packet-rtp.h"
#include "packet-rtcp.h"
diff --git a/epan/dissectors/packet-icmpv6.c b/epan/dissectors/packet-icmpv6.c
index fd8675b593..e7badf1f18 100644
--- a/epan/dissectors/packet-icmpv6.c
+++ b/epan/dissectors/packet-icmpv6.c
@@ -50,7 +50,7 @@
#include "packet-dns.h"
#include <epan/in_cksum.h>
#include <epan/addr_resolv.h>
-#include "ipproto.h"
+#include <epan/ipproto.h>
#ifndef offsetof
#define offsetof(type, member) ((size_t)(&((type *)0)->member))
diff --git a/epan/dissectors/packet-igmp.c b/epan/dissectors/packet-igmp.c
index fcec8a7569..bd6839b946 100644
--- a/epan/dissectors/packet-igmp.c
+++ b/epan/dissectors/packet-igmp.c
@@ -108,7 +108,7 @@
#endif
#include <epan/packet.h>
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include <epan/in_cksum.h>
#include "packet-dvmrp.h"
#include "packet-pim.h"
diff --git a/epan/dissectors/packet-igrp.c b/epan/dissectors/packet-igrp.c
index bbbc4b60be..555e2dbe3d 100644
--- a/epan/dissectors/packet-igrp.c
+++ b/epan/dissectors/packet-igrp.c
@@ -36,7 +36,7 @@
#include <string.h>
#include <glib.h>
#include <epan/packet.h>
-#include "ipproto.h"
+#include <epan/ipproto.h>
#define IGRP_HEADER_LENGTH 12
#define IGRP_ENTRY_LENGTH 14
diff --git a/epan/dissectors/packet-ip.c b/epan/dissectors/packet-ip.c
index 7bb95d8da1..029a960f66 100644
--- a/epan/dissectors/packet-ip.c
+++ b/epan/dissectors/packet-ip.c
@@ -36,7 +36,7 @@
#include <epan/packet.h>
#include <epan/addr_resolv.h>
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include "ip_opts.h"
#include <epan/prefs.h>
#include "reassemble.h"
diff --git a/epan/dissectors/packet-ipdc.c b/epan/dissectors/packet-ipdc.c
index 7f91eb09ab..3fafa560cc 100644
--- a/epan/dissectors/packet-ipdc.c
+++ b/epan/dissectors/packet-ipdc.c
@@ -45,7 +45,7 @@
#include "packet-ipdc.h"
#include "packet-tcp.h"
#include <epan/packet.h>
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include <epan/prefs.h>
static int proto_ipdc = -1;
diff --git a/epan/dissectors/packet-ipsec.c b/epan/dissectors/packet-ipsec.c
index 673affdb54..fd1cc8d961 100644
--- a/epan/dissectors/packet-ipsec.c
+++ b/epan/dissectors/packet-ipsec.c
@@ -33,7 +33,7 @@
#include <epan/packet.h>
#include "packet-ipsec.h"
#include <epan/addr_resolv.h>
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include <epan/prefs.h>
/* Place AH payload in sub tree */
diff --git a/epan/dissectors/packet-ipv6.c b/epan/dissectors/packet-ipv6.c
index edd485e0cb..1b026a6f6b 100644
--- a/epan/dissectors/packet-ipv6.c
+++ b/epan/dissectors/packet-ipv6.c
@@ -38,7 +38,7 @@
#include <epan/addr_resolv.h>
#include <epan/prefs.h>
#include "reassemble.h"
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include "etypes.h"
#include "ppptypes.h"
#include "aftypes.h"
diff --git a/epan/dissectors/packet-ipvs-syncd.c b/epan/dissectors/packet-ipvs-syncd.c
index 97f7abe324..3b974beb23 100644
--- a/epan/dissectors/packet-ipvs-syncd.c
+++ b/epan/dissectors/packet-ipvs-syncd.c
@@ -35,7 +35,7 @@
#endif
#include <epan/packet.h>
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include <epan/in_cksum.h>
static int proto_ipvs_syncd = -1;
diff --git a/epan/dissectors/packet-isakmp.c b/epan/dissectors/packet-isakmp.c
index ff71dc8566..fe3f44812f 100644
--- a/epan/dissectors/packet-isakmp.c
+++ b/epan/dissectors/packet-isakmp.c
@@ -40,7 +40,7 @@
#include <epan/packet.h>
#include <epan/ipv6-utils.h>
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include <epan/dissectors/packet-x509if.h>
#define isakmp_min(a, b) ((a<b) ? a : b)
diff --git a/epan/dissectors/packet-ldp.c b/epan/dissectors/packet-ldp.c
index 7c1586fa9c..7589ea44d2 100644
--- a/epan/dissectors/packet-ldp.c
+++ b/epan/dissectors/packet-ldp.c
@@ -40,7 +40,7 @@
#include <epan/packet.h>
#include <epan/addr_resolv.h>
#include <epan/prefs.h>
-#include "afn.h"
+#include <epan/afn.h>
#include "packet-frame.h"
#include "packet-diffserv-mpls-common.h"
diff --git a/epan/dissectors/packet-lmp.c b/epan/dissectors/packet-lmp.c
index 4cc7902993..dead87a5bb 100644
--- a/epan/dissectors/packet-lmp.c
+++ b/epan/dissectors/packet-lmp.c
@@ -53,7 +53,7 @@
#include <prefs.h>
#include <epan/in_cksum.h>
#include "etypes.h"
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include "packet-ip.h"
#include "packet-rsvp.h"
diff --git a/epan/dissectors/packet-mip6.c b/epan/dissectors/packet-mip6.c
index cf0cf16b37..607cb49e2d 100644
--- a/epan/dissectors/packet-mip6.c
+++ b/epan/dissectors/packet-mip6.c
@@ -30,7 +30,7 @@
#include <epan/packet.h>
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include "ip_opts.h"
#include "packet-mip6.h"
diff --git a/epan/dissectors/packet-ospf.c b/epan/dissectors/packet-ospf.c
index 5ec4ea2ac2..eca05fe7e7 100644
--- a/epan/dissectors/packet-ospf.c
+++ b/epan/dissectors/packet-ospf.c
@@ -44,7 +44,7 @@
#include <glib.h>
#include <epan/packet.h>
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include <epan/in_cksum.h>
#include "packet-rsvp.h"
diff --git a/epan/dissectors/packet-pgm.c b/epan/dissectors/packet-pgm.c
index 1e49807ab8..6b90fbdb06 100644
--- a/epan/dissectors/packet-pgm.c
+++ b/epan/dissectors/packet-pgm.c
@@ -34,8 +34,8 @@
#include <time.h>
#include <string.h>
#include <epan/packet.h>
-#include "afn.h"
-#include "ipproto.h"
+#include <epan/afn.h>
+#include <epan/ipproto.h>
#include <epan/in_cksum.h>
#include <epan/addr_resolv.h>
#include <epan/strutil.h>
diff --git a/epan/dissectors/packet-pim.c b/epan/dissectors/packet-pim.c
index 124e2ab346..ef997f5744 100644
--- a/epan/dissectors/packet-pim.c
+++ b/epan/dissectors/packet-pim.c
@@ -36,8 +36,8 @@
#endif
#include <epan/packet.h>
-#include "ipproto.h"
-#include "afn.h"
+#include <epan/ipproto.h>
+#include <epan/afn.h>
#include "packet-ipv6.h"
#include <epan/in_cksum.h>
diff --git a/epan/dissectors/packet-portmap.c b/epan/dissectors/packet-portmap.c
index 72b55e6beb..724f8a95b4 100644
--- a/epan/dissectors/packet-portmap.c
+++ b/epan/dissectors/packet-portmap.c
@@ -32,7 +32,7 @@
#include "packet-rpc.h"
#include "packet-portmap.h"
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include "epan/conversation.h"
#include "epan/packet_info.h"
diff --git a/epan/dissectors/packet-rsvp.c b/epan/dissectors/packet-rsvp.c
index 3e213fe802..28c7ded946 100644
--- a/epan/dissectors/packet-rsvp.c
+++ b/epan/dissectors/packet-rsvp.c
@@ -71,7 +71,7 @@
#include <prefs.h>
#include <epan/in_cksum.h>
#include "etypes.h"
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include "packet-rsvp.h"
#include "packet-ip.h"
diff --git a/epan/dissectors/packet-sctp.c b/epan/dissectors/packet-sctp.c
index 632b758639..68af7772d7 100644
--- a/epan/dissectors/packet-sctp.c
+++ b/epan/dissectors/packet-sctp.c
@@ -49,7 +49,7 @@
#include <epan/prefs.h>
#include <epan/packet.h>
#include <epan/tap.h>
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include "packet-sctp.h"
#include "sctpppids.h"
diff --git a/epan/dissectors/packet-t38.c b/epan/dissectors/packet-t38.c
index 160ae00e51..d14086e76d 100644
--- a/epan/dissectors/packet-t38.c
+++ b/epan/dissectors/packet-t38.c
@@ -55,7 +55,7 @@
#include <string.h>
#include <epan/prefs.h>
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include "packet-per.h"
#include <epan/prefs.h>
#include "packet-tpkt.h"
diff --git a/epan/dissectors/packet-tcp.c b/epan/dissectors/packet-tcp.c
index bd6470aded..4ce03a0a88 100644
--- a/epan/dissectors/packet-tcp.c
+++ b/epan/dissectors/packet-tcp.c
@@ -33,7 +33,7 @@
#include <epan/packet.h>
#include <epan/addr_resolv.h>
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include "ip_opts.h"
#include "follow.h"
#include <epan/prefs.h>
diff --git a/epan/dissectors/packet-teredo.c b/epan/dissectors/packet-teredo.c
index 56c97abb63..36b0935849 100644
--- a/epan/dissectors/packet-teredo.c
+++ b/epan/dissectors/packet-teredo.c
@@ -38,7 +38,7 @@
#include <glib.h>
#include <epan/packet.h>
#include <epan/addr_resolv.h>
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include <epan/prefs.h>
#include "packet-ip.h"
diff --git a/epan/dissectors/packet-udp.c b/epan/dissectors/packet-udp.c
index a737d7e57b..02fd247727 100644
--- a/epan/dissectors/packet-udp.c
+++ b/epan/dissectors/packet-udp.c
@@ -36,7 +36,7 @@
#include <glib.h>
#include <epan/packet.h>
#include <epan/addr_resolv.h>
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include <epan/in_cksum.h>
#include <epan/prefs.h>
diff --git a/epan/dissectors/packet-vines.c b/epan/dissectors/packet-vines.c
index 4440012385..80b86f5e26 100644
--- a/epan/dissectors/packet-vines.c
+++ b/epan/dissectors/packet-vines.c
@@ -35,7 +35,7 @@
#include "packet-vines.h"
#include "etypes.h"
#include "ppptypes.h"
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include "arcnet_pids.h"
#include "llcsaps.h"
diff --git a/epan/dissectors/packet-vj.c b/epan/dissectors/packet-vj.c
index 6329b8a48a..015478816e 100644
--- a/epan/dissectors/packet-vj.c
+++ b/epan/dissectors/packet-vj.c
@@ -69,7 +69,7 @@
#include <epan/prefs.h>
#include "packet-ppp.h"
#include "ppptypes.h"
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include <epan/in_cksum.h>
/* Define relevant IP/TCP parameters */
diff --git a/epan/dissectors/packet-vrrp.c b/epan/dissectors/packet-vrrp.c
index a470f77815..dda91030ea 100644
--- a/epan/dissectors/packet-vrrp.c
+++ b/epan/dissectors/packet-vrrp.c
@@ -32,7 +32,7 @@
#include <string.h>
#include <glib.h>
#include <epan/packet.h>
-#include "ipproto.h"
+#include <epan/ipproto.h>
#include <epan/in_cksum.h>
static gint proto_vrrp = -1;
diff --git a/epan/ipproto.c b/epan/ipproto.c
new file mode 100644
index 0000000000..77d9bb4702
--- /dev/null
+++ b/epan/ipproto.c
@@ -0,0 +1,215 @@
+/* ipproto.c
+ * Routines for converting IPv4 protocol/v6 nxthdr field into string
+ *
+ * $Id$
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#ifdef HAVE_NETDB_H
+# include <netdb.h>
+#endif
+
+#include <glib.h>
+
+#include <epan/ipproto.h>
+#include <epan/packet.h>
+#include <epan/addr_resolv.h>
+#include <epan/dissectors/packet-ip.h>
+
+#ifdef NEED_SNPRINTF_H
+# include "snprintf.h"
+#endif
+
+static const value_string ipproto_val[] = {
+#if 0
+ { IP_PROTO_IP, "IPv4" },
+#endif
+ { IP_PROTO_HOPOPTS, "IPv6 hop-by-hop option" },
+ { IP_PROTO_ICMP, "ICMP" },
+ { IP_PROTO_IGMP, "IGMP" },
+ { IP_PROTO_GGP, "GGP" },
+ { IP_PROTO_IPIP, "IPIP" },
+#if 0
+ { IP_PROTO_IPV4, "IPv4" },
+#endif
+ { IP_PROTO_STREAM, "Stream" },
+ { IP_PROTO_TCP, "TCP" },
+ { IP_PROTO_CBT, "CBT" },
+ { IP_PROTO_EGP, "EGP" },
+ { IP_PROTO_IGP, "IGRP" },
+ { IP_PROTO_BBN_RCC, "BBN RCC" },
+ { IP_PROTO_NVPII, "Network Voice" },
+ { IP_PROTO_PUP, "PUP" },
+ { IP_PROTO_ARGUS, "ARGUS" },
+ { IP_PROTO_EMCON, "EMCON" },
+ { IP_PROTO_XNET, "XNET" },
+ { IP_PROTO_CHAOS, "CHAOS" },
+ { IP_PROTO_UDP, "UDP" },
+ { IP_PROTO_MUX, "Multiplex" },
+ { IP_PROTO_DCNMEAS, "DCN Measurement" },
+ { IP_PROTO_HMP, "Host Monitoring" },
+ { IP_PROTO_PRM, "Packet radio" },
+ { IP_PROTO_IDP, "IDP" },
+ { IP_PROTO_TRUNK1, "Trunk-1" },
+ { IP_PROTO_TRUNK2, "Trunk-2" },
+ { IP_PROTO_LEAF1, "Leaf-1" },
+ { IP_PROTO_LEAF2, "Leaf-2" },
+ { IP_PROTO_RDP, "Reliable Data" },
+ { IP_PROTO_IRT, "IRT" },
+ { IP_PROTO_TP, "ISO TP4" },
+ { IP_PROTO_BULK, "Bulk Data" },
+ { IP_PROTO_MFE_NSP, "MFE NSP" },
+ { IP_PROTO_MERIT, "Merit Internodal" },
+ { IP_PROTO_SEP, "Sequential Exchange" },
+ { IP_PROTO_3PC, "3rd Party Connect" },
+ { IP_PROTO_IDPR, "Interdomain routing" },
+ { IP_PROTO_XTP, "XTP" },
+ { IP_PROTO_DDP, "Datagram delivery"},
+ { IP_PROTO_CMTP, "Control Message" },
+ { IP_PROTO_TPPP, "TP++" },
+ { IP_PROTO_IL, "IL" },
+ { IP_PROTO_IPV6, "IPv6" },
+ { IP_PROTO_SDRP, "Source demand routing" },
+ { IP_PROTO_ROUTING, "IPv6 routing" },
+ { IP_PROTO_FRAGMENT,"IPv6 fragment" },
+ { IP_PROTO_IDRP, "IDRP" },
+ { IP_PROTO_RSVP, "RSVP" },
+ { IP_PROTO_GRE, "GRE" },
+ { IP_PROTO_MHRP, "MHRP" },
+ { IP_PROTO_BNA, "BNA" },
+ { IP_PROTO_ESP, "ESP" },
+ { IP_PROTO_AH, "AH" },
+ { IP_PROTO_INSLP, "INSLP" },
+ { IP_PROTO_SWIPE, "SWIPE" },
+ { IP_PROTO_NARP, "NBMA ARP"},
+ { IP_PROTO_TLSP, "TLSP Kryptonet" },
+ { IP_PROTO_SKIP, "SKIP" },
+ { IP_PROTO_ICMPV6, "ICMPv6" },
+ { IP_PROTO_NONE, "IPv6 no next header" },
+ { IP_PROTO_DSTOPTS, "IPv6 destination option" },
+ { IP_PROTO_MIPV6_OLD, "Mobile IPv6 (old)" },
+ { IP_PROTO_SATEXPAK,"SATNET EXPAK" },
+ { IP_PROTO_KRYPTOLAN, "Kryptolan" },
+ { IP_PROTO_RVD, "Remote Virtual Disk" },
+ { IP_PROTO_IPPC, "IPPC" },
+ { IP_PROTO_SATMON, "SATNET Monitoring" },
+ { IP_PROTO_VISA, "VISA" },
+ { IP_PROTO_IPCV, "IPCV" },
+ { IP_PROTO_CPNX, "CPNX" },
+ { IP_PROTO_CPHB, "CPHB" },
+ { IP_PROTO_WSN, "Wang Span" },
+ { IP_PROTO_PVP, "Packet Video" },
+ { IP_PROTO_BRSATMON,"Backroom SATNET Mon" },
+ { IP_PROTO_SUNND, "Sun ND Protocol" },
+ { IP_PROTO_WBMON, "Wideband Mon" },
+ { IP_PROTO_WBEXPAK, "Wideband Expak" },
+ { IP_PROTO_EON, "EON" },
+ { IP_PROTO_VMTP, "VMTP" },
+ { IP_PROTO_SVMTP, "Secure VMTP" },
+ { IP_PROTO_VINES, "VINES" },
+ { IP_PROTO_TTP, "TTP" },
+ { IP_PROTO_NSFNETIGP,"NSFNET IGP" },
+ { IP_PROTO_DGP, "Dissimilar Gateway" },
+ { IP_PROTO_TCF, "TCF" },
+ { IP_PROTO_EIGRP, "EIGRP" },
+ { IP_PROTO_OSPF, "OSPF IGP" },
+ { IP_PROTO_SPRITE, "Sprite RPC" },
+ { IP_PROTO_LARP, "Locus ARP" },
+ { IP_PROTO_MTP, "Multicast Transport" },
+ { IP_PROTO_AX25, "AX.25 Frames" },
+ { IP_PROTO_IPINIP, "IP in IP" },
+ { IP_PROTO_MICP, "MICP" },
+ { IP_PROTO_SCCCP, "Semaphore" },
+ { IP_PROTO_ETHERIP, "Ether in IP" },
+ { IP_PROTO_ENCAP, "ENCAP" },
+ { IP_PROTO_GMTP, "GMTP" },
+ { IP_PROTO_IFMP, "Ipsilon Flow" },
+ { IP_PROTO_PNNI, "PNNI over IP" },
+ { IP_PROTO_PIM, "PIM" },
+ { IP_PROTO_ARIS, "ARIS" },
+ { IP_PROTO_SCPS, "SCPS" },
+ { IP_PROTO_QNX, "QNX" },
+ { IP_PROTO_AN, "Active Networks" },
+ { IP_PROTO_IPCOMP, "IPComp" },
+ { IP_PROTO_SNP, "Sitara Networks" },
+ { IP_PROTO_COMPAQ, "Compaq Peer" },
+ { IP_PROTO_IPX, "IPX IN IP" },
+ { IP_PROTO_VRRP, "VRRP" },
+ { IP_PROTO_PGM, "PGM" },
+ { IP_PROTO_L2TP, "Layer 2 Tunneling" },
+ { IP_PROTO_DDX, "DDX" },
+ { IP_PROTO_IATP, "IATP" },
+ { IP_PROTO_STP, "STP" },
+ { IP_PROTO_SRP, "SpectraLink" },
+ { IP_PROTO_UTI, "UTI" },
+ { IP_PROTO_SMP, "SMP" },
+ { IP_PROTO_SM, "SM" },
+ { IP_PROTO_PTP, "PTP" },
+ { IP_PROTO_ISIS, "ISIS over IP" },
+ { IP_PROTO_FIRE, "FIRE" },
+ { IP_PROTO_CRTP, "CRTP" },
+ { IP_PROTO_CRUDP, "CRUDP" },
+ { IP_PROTO_SSCOPMCE,"SSCOPMCE" },
+ { IP_PROTO_IPLT, "IPLT" },
+ { IP_PROTO_SPS, "Secure Packet" },
+ { IP_PROTO_PIPE, "PIPE" },
+ { IP_PROTO_SCTP, "SCTP" },
+ { IP_PROTO_FC, "Fibre Channel" },
+ { IP_PROTO_RSVPE2EI,"RSVP E2EI" },
+ { IP_PROTO_MIPV6, "Mobile IPv6" },
+ { IP_PROTO_AX4000, "AX/4000 Testframe" },
+ { IP_PROTO_NCS_HEARTBEAT,"Novell NCS Heartbeat" },
+ { 0, NULL },
+};
+
+const char *ipprotostr(int proto) {
+ static char buf[128];
+ const char *s;
+#ifdef HAVE_GETPROTOBYNUMBER
+ struct protoent *pe;
+#endif
+
+ if ((s = match_strval(proto, ipproto_val)) != NULL)
+ goto ok;
+
+#ifdef HAVE_GETPROTOBYNUMBER
+ /*
+ * XXX - have another flag for resolving network-layer
+ * protocol names?
+ */
+ if (g_resolv_flags != 0) {
+ pe = getprotobynumber(proto);
+ if (pe) {
+ s = pe->p_name;
+ goto ok;
+ }
+ }
+#endif
+
+ s = "Unknown";
+
+ok:
+ snprintf(buf, sizeof(buf), "%s", s);
+ return buf;
+}
diff --git a/epan/ipproto.h b/epan/ipproto.h
new file mode 100644
index 0000000000..fe112c5cf9
--- /dev/null
+++ b/epan/ipproto.h
@@ -0,0 +1,187 @@
+/* ipproto.h
+ * Declarations of IP protocol numbers, and of routines for converting
+ * IP protocol numbers into strings.
+ *
+ * $Id$
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __IPPROTO_H__
+#define __IPPROTO_H__
+
+/*
+ * IP protocol numbers.
+ */
+#define IP_PROTO_IP 0 /* dummy for IP */
+#define IP_PROTO_HOPOPTS 0 /* IP6 hop-by-hop options - RFC1883 */
+#define IP_PROTO_ICMP 1 /* control message protocol - RFC792 */
+#define IP_PROTO_IGMP 2 /* group mgmt protocol - RFC1112 */
+#define IP_PROTO_GGP 3 /* gateway^2 (deprecated) - RFC823*/
+#define IP_PROTO_IPIP 4 /* IP inside IP - RFC2003*/
+#define IP_PROTO_IPV4 4 /* IP header */
+#define IP_PROTO_STREAM 5 /* Stream - RFC1190, RFC1819 */
+#define IP_PROTO_TCP 6 /* TCP - RFC792 */
+#define IP_PROTO_CBT 7 /* CBT - <A.Ballardie@cs.ucl.ac.uk> */
+#define IP_PROTO_EGP 8 /* exterior gateway protocol - RFC888 */
+#define IP_PROTO_IGP 9 /* any private interior gateway protocol ... */
+#define IP_PROTO_IGRP 9 /* ... and used by Cisco for IGRP */
+#define IP_PROTO_BBN_RCC 10 /* BBN RCC Monitoring */
+#define IP_PROTO_NVPII 11 /* Network Voice Protocol - RFC741 */
+#define IP_PROTO_PUP 12 /* pup */
+#define IP_PROTO_ARGUS 13 /* ARGUS */
+#define IP_PROTO_EMCON 14 /* EMCON */
+#define IP_PROTO_XNET 15 /* Cross net debugger - IEN158 */
+#define IP_PROTO_CHAOS 16 /* CHAOS */
+#define IP_PROTO_UDP 17 /* user datagram protocol - RFC768 */
+#define IP_PROTO_MUX 18 /* multiplexing - IEN90 */
+#define IP_PROTO_DCNMEAS 19 /* DCN Measurement Subsystems */
+#define IP_PROTO_HMP 20 /* Host Monitoring - RFC869 */
+#define IP_PROTO_PRM 21 /* Packet radio measurement */
+#define IP_PROTO_IDP 22 /* xns idp */
+#define IP_PROTO_TRUNK1 23
+#define IP_PROTO_TRUNK2 24
+#define IP_PROTO_LEAF1 25
+#define IP_PROTO_LEAF2 26
+#define IP_PROTO_RDP 27 /* Reliable Data Protocol - RFC908 */
+#define IP_PROTO_IRT 28 /* Internet Reliable Transation - RFC938 */
+#define IP_PROTO_TP 29 /* tp-4 w/ class negotiation - RFC905 */
+#define IP_PROTO_BULK 30 /* Bulk Data Transfer Protocol - RFC969 */
+#define IP_PROTO_MFE_NSP 31 /* MFE Network Services Protocol */
+#define IP_PROTO_MERIT 32 /* MERIT Internodal Protocol */
+#define IP_PROTO_SEP 33 /* Sequential Exchange Protocol */
+#define IP_PROTO_3PC 34 /* Third party connect protocol */
+#define IP_PROTO_IDPR 35 /* Interdomain policy routing protocol */
+#define IP_PROTO_XTP 36 /* XTP */
+#define IP_PROTO_DDP 37 /* Datagram Delivery Protocol */
+#define IP_PROTO_CMTP 38 /* Control Message Transport Protocol */
+#define IP_PROTO_TPPP 39 /* TP++ Transport Protocol */
+#define IP_PROTO_IL 40 /* IL Transport Protocol */
+#define IP_PROTO_IPV6 41 /* IP6 header */
+#define IP_PROTO_SDRP 42 /* Source demand routing protocol */
+#define IP_PROTO_ROUTING 43 /* IP6 routing header */
+#define IP_PROTO_FRAGMENT 44 /* IP6 fragmentation header */
+#define IP_PROTO_IDRP 45 /* Inter-Domain Routing Protocol */
+#define IP_PROTO_RSVP 46 /* Resource ReSerVation protocol */
+#define IP_PROTO_GRE 47 /* General Routing Encapsulation */
+#define IP_PROTO_MHRP 48 /* Mobile Host Routing Protocol */
+#define IP_PROTO_BNA 49 /* BNA */
+#define IP_PROTO_ESP 50 /* Encap Security Payload for IPv6 - RFC2406 */
+#define IP_PROTO_AH 51 /* Authentication Header for IPv6 - RFC2402*/
+#define IP_PROTO_INSLP 52 /* Integrated Net Layer Security */
+#define IP_PROTO_SWIPE 53 /* IP with Encryption */
+#define IP_PROTO_NARP 54 /* NBMA Address resolution protocol - RFC1735 */
+#define IP_PROTO_MOBILE 55 /* IP Mobility */
+#define IP_PROTO_TLSP 56 /* Transport Layer Security Protocol using */
+ /* Kryptonet key management */
+#define IP_PROTO_SKIP 57 /* SKIP */
+#define IP_PROTO_ICMPV6 58 /* ICMP6 - RFC1883*/
+#define IP_PROTO_NONE 59 /* IP6 no next header - RFC1883 */
+#define IP_PROTO_DSTOPTS 60 /* IP6 destination options - RFC1883 */
+/* 61 is reserved by IANA for any host internal protocol */
+/*
+ * The current Protocol Numbers list says that the IP protocol number for
+ * mobility headers is 135; it cites draft-ietf-mobileip-ipv6-24, but
+ * that draft doesn't actually give a number.
+ *
+ * It appears that 62 used to be used, even though that's assigned to
+ * a protocol called CFTP; however, the only reference for CFTP is a
+ * Network Message from BBN back in 1982, so, for now, we support 62,
+ * as well as 135, as a protocol number for mobility headers.
+ */
+#define IP_PROTO_MIPV6_OLD 62 /* Mobile IPv6 */
+/* 63 is reserved by IANA for any local network */
+#define IP_PROTO_SATEXPAK 64
+#define IP_PROTO_KRYPTOLAN 65
+#define IP_PROTO_RVD 66 /* MIT Remote virtual disk protocol */
+#define IP_PROTO_IPPC 67 /* Internet Pluribus Packet Core */
+/* 68 is reserved by IANA for any distributed file system */
+#define IP_PROTO_SATMON 69 /* SATNET Monitoring */
+#define IP_PROTO_VISA 70 /* VISA Protocol */
+#define IP_PROTO_IPCV 71 /* Internet Packet Core Utility */
+#define IP_PROTO_CPNX 72 /* Computer Protocol Network Executive */
+#define IP_PROTO_CPHB 73 /* Computer Protocol Heart Beat */
+#define IP_PROTO_WSN 74 /* WANG Span Network */
+#define IP_PROTO_PVP 75 /* Packet Video Protocol */
+#define IP_PROTO_BRSATMON 76 /* Backroon SATNET Monitoring */
+#define IP_PROTO_SUNND 77 /* SUN ND Protocol - Temporary */
+#define IP_PROTO_WBMON 78 /* Wideband Monitoring */
+#define IP_PROTO_WBEXPAK 79 /* Wideband EXPAK */
+#define IP_PROTO_EON 80 /* ISO cnlp */
+#define IP_PROTO_VMTP 81
+#define IP_PROTO_SVMTP 82 /* Secure VMTP */
+#define IP_PROTO_VINES 83 /* Vines over raw IP */
+#define IP_PROTO_TTP 84
+#define IP_PROTO_NSFNETIGP 85 /* NSFNET IGP */
+#define IP_PROTO_DGP 86 /* Dissimilar Gateway Protocol */
+#define IP_PROTO_TCF 87
+#define IP_PROTO_EIGRP 88
+#define IP_PROTO_OSPF 89 /* OSPF Interior Gateway Protocol - RFC1583 */
+#define IP_PROTO_SPRITE 90 /* SPRITE RPC protocol */
+#define IP_PROTO_LARP 91 /* Locus Address Resolution Protocol */
+#define IP_PROTO_MTP 92 /* Multicast Transport Protocol */
+#define IP_PROTO_AX25 93 /* AX.25 frames */
+#define IP_PROTO_IPINIP 94 /* IP within IP Encapsulation protocol */
+#define IP_PROTO_MICP 95 /* Mobile Internetworking Control Protocol */
+#define IP_PROTO_SCCCP 96 /* Semaphore communications security protocol */
+#define IP_PROTO_ETHERIP 97 /* Ethernet-within-IP - RFC 3378 */
+#define IP_PROTO_ENCAP 98 /* encapsulation header - RFC1241*/
+/* 99 is reserved by IANA for any private encryption scheme */
+#define IP_PROTO_GMTP 100
+#define IP_PROTO_IFMP 101 /* Ipsilon flow management protocol */
+#define IP_PROTO_PNNI 102 /* PNNI over IP */
+#define IP_PROTO_PIM 103 /* Protocol Independent Mcast */
+#define IP_PROTO_ARIS 104
+#define IP_PROTO_SCPS 105
+#define IP_PROTO_QNX 106
+#define IP_PROTO_AN 107 /* Active Networks */
+#define IP_PROTO_IPCOMP 108 /* IP payload compression - RFC2393 */
+#define IP_PROTO_SNP 109 /* Sitara Networks Protocol */
+#define IP_PROTO_COMPAQ 110 /* Compaq Peer Protocol */
+#define IP_PROTO_IPX 111 /* IPX over IP */
+#define IP_PROTO_VRRP 112 /* Virtual Router Redundancy Protocol */
+#define IP_PROTO_PGM 113 /* Pragmatic General Multicast */
+/* 114 is reserved by IANA for any zero hop protocol */
+#define IP_PROTO_L2TP 115 /* Layer Two Tunnelling Protocol */
+#define IP_PROTO_DDX 116 /* D-II Data Exchange */
+#define IP_PROTO_IATP 117 /* Interactive Agent Transfer Protocol */
+#define IP_PROTO_STP 118 /* Schedule Transfer Protocol */
+#define IP_PROTO_SRP 119 /* Spectralink Radio Protocol */
+#define IP_PROTO_UTI 120
+#define IP_PROTO_SMP 121 /* Simple Message Protocol */
+#define IP_PROTO_SM 122
+#define IP_PROTO_PTP 123 /* Performance Transparency Protocol */
+#define IP_PROTO_ISIS 124 /* ISIS over IPv4 */
+#define IP_PROTO_FIRE 125
+#define IP_PROTO_CRTP 126 /* Combat Radio Transport Protocol */
+#define IP_PROTO_CRUDP 127 /* Combat Radio User Datagram */
+#define IP_PROTO_SSCOPMCE 128
+#define IP_PROTO_IPLT 129
+#define IP_PROTO_SPS 130 /* Secure Packet Shield */
+#define IP_PROTO_PIPE 131 /* Private IP Encapsulation within IP */
+#define IP_PROTO_SCTP 132 /* Stream Control Transmission Protocol */
+#define IP_PROTO_FC 133 /* Fibre Channel */
+#define IP_PROTO_RSVPE2EI 134 /* RSVP E2E Ignore - RFC3175 */
+#define IP_PROTO_MIPV6 135 /* Mobile IPv6 */
+#define IP_PROTO_AX4000 173 /* AX/4000 Testblock - non IANA */
+#define IP_PROTO_NCS_HEARTBEAT 224 /* Novell NCS Heartbeat - http://support.novell.com/cgi-bin/search/searchtid.cgi?/10071158.htm */
+
+extern const char *ipprotostr(int proto);
+
+#endif /* ipproto.h */
diff --git a/epan/t35.c b/epan/t35.c
new file mode 100644
index 0000000000..9be5a82977
--- /dev/null
+++ b/epan/t35.c
@@ -0,0 +1,395 @@
+/* t35.c
+ * T.35 and H.221 tables
+ * 2003 Tomas Kukosa
+ *
+ * $Id$
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <epan/t35.h>
+
+/* Recommendation T.35 (02/2000) */
+/* Annex to ITU Operational Bulletin No. 766 - 15.VI.2002 */
+const value_string T35CountryCode_vals[] = {
+ { 0x00, "Japan"},
+ { 0x01, "Albania"},
+ { 0x02, "Algeria"},
+ { 0x03, "American Samoa"},
+ { 0x04, "Germany"},
+ { 0x05, "Anguilla"},
+ { 0x06, "Antigua and Barbuda"},
+ { 0x07, "Argentina"},
+ { 0x08, "Ascension (see S. Helena)"},
+ { 0x09, "Australia"},
+ { 0x0a, "Austria"},
+ { 0x0b, "Bahamas"},
+ { 0x0c, "Bahrain"},
+ { 0x0d, "Bangladesh"},
+ { 0x0e, "Barbados"},
+ { 0x0f, "Belgium"},
+ { 0x10, "Belize"},
+ { 0x11, "Benin"},
+ { 0x12, "Bermuda"},
+ { 0x13, "Bhutan"},
+ { 0x14, "Bolivia"},
+ { 0x15, "Botswana"},
+ { 0x16, "Brazil"},
+ { 0x17, "British Antarctic Territory"},
+ { 0x18, "British Indian Ocean Territory"},
+ { 0x19, "British Virgin Islands"},
+ { 0x1a, "Brunei Darussalam"},
+ { 0x1b, "Bulgaria"},
+ { 0x1c, "Myanmar"},
+ { 0x1d, "Burundi"},
+ { 0x1e, "Belarus"},
+ { 0x1f, "Cameroon"},
+ { 0x20, "Canada"},
+ { 0x21, "Cape Verde"},
+ { 0x22, "Cayman Islands"},
+ { 0x23, "Central African Rep."},
+ { 0x24, "Chad"},
+ { 0x25, "Chile"},
+ { 0x26, "China"},
+ { 0x27, "Colombia"},
+ { 0x28, "Comoros"},
+ { 0x29, "Congo"},
+ { 0x2a, "Cook Islands"},
+ { 0x2b, "Costa Rica"},
+ { 0x2c, "Cuba"},
+ { 0x2d, "Cyprus"},
+ { 0x2e, "Czech Rep."},
+ { 0x2f, "Cambodia"},
+ { 0x30, "Dem. People's Rep. of Korea"},
+ { 0x31, "Denmark"},
+ { 0x32, "Djibouti"},
+ { 0x33, "Dominican Rep."},
+ { 0x34, "Dominica"},
+ { 0x35, "Ecuador"},
+ { 0x36, "Egypt"},
+ { 0x37, "El Salvador"},
+ { 0x38, "Equatorial Guinea"},
+ { 0x39, "Ethiopia"},
+ { 0x3a, "Falkland Islands (Malvinas)"},
+ { 0x3b, "Fiji"},
+ { 0x3c, "Finland"},
+ { 0x3d, "France"},
+ { 0x3e, "French Polynesia"},
+ /* { 0x3f, "(Available)"}, */
+ { 0x40, "Gabon"},
+ { 0x41, "Gambia"},
+ { 0x42, "Germany"},
+ { 0x43, "Angola"},
+ { 0x44, "Ghana"},
+ { 0x45, "Gibraltar"},
+ { 0x46, "Greece"},
+ { 0x47, "Grenada"},
+ { 0x48, "Guam"},
+ { 0x49, "Guatemala"},
+ { 0x4a, "Guernsey"},
+ { 0x4b, "Guinea"},
+ { 0x4c, "Guinea-Bissau"},
+ { 0x4d, "Guayana"},
+ { 0x4e, "Haiti"},
+ { 0x4f, "Honduras"},
+ { 0x50, "Hong Kong, China"},
+ { 0x51, "Hungary"},
+ { 0x52, "Iceland"},
+ { 0x53, "India"},
+ { 0x54, "Indonesia"},
+ { 0x55, "Iran (Islamic Republic of)"},
+ { 0x56, "Iraq"},
+ { 0x57, "Ireland"},
+ { 0x58, "Israel"},
+ { 0x59, "Italy"},
+ { 0x5a, "Côte d'Ivoire"},
+ { 0x5b, "Jamaica"},
+ { 0x5c, "Afghanistan"},
+ { 0x5d, "Jersey"},
+ { 0x5e, "Jordan"},
+ { 0x5f, "Kenya"},
+ { 0x60, "Kiribati"},
+ { 0x61, "Korea (Rep. of)"},
+ { 0x62, "Kuwait"},
+ { 0x63, "Lao P.D.R."},
+ { 0x64, "Lebanon"},
+ { 0x65, "Lesotho"},
+ { 0x66, "Liberia"},
+ { 0x67, "Libya"},
+ { 0x68, "Liechtenstein"},
+ { 0x69, "Luxembourg"},
+ { 0x6a, "Macao, China"},
+ { 0x6b, "Madagascar"},
+ { 0x6c, "Malaysia"},
+ { 0x6d, "Malawi"},
+ { 0x6e, "Maldives"},
+ { 0x6f, "Mali"},
+ { 0x70, "Malta"},
+ { 0x71, "Mauritania"},
+ { 0x72, "Mauritius"},
+ { 0x73, "Mexico"},
+ { 0x74, "Monaco"},
+ { 0x75, "Mongolia"},
+ { 0x76, "Montserrat"},
+ { 0x77, "Morocco"},
+ { 0x78, "Mozambique"},
+ { 0x79, "Nauru"},
+ { 0x7a, "Nepal"},
+ { 0x7b, "Netherlands"},
+ { 0x7c, "Netherlands Antilles"},
+ { 0x7d, "New Caledonia"},
+ { 0x7e, "New Zealand"},
+ { 0x7f, "Nicaragua"},
+ { 0x80, "Niger"},
+ { 0x81, "Nigeria"},
+ { 0x82, "Norway"},
+ { 0x83, "Oman"},
+ { 0x84, "Pakistan"},
+ { 0x85, "Panama"},
+ { 0x86, "Papua New Guinea"},
+ { 0x87, "Paraguay"},
+ { 0x88, "Peru"},
+ { 0x89, "Philippines"},
+ { 0x8a, "Poland"},
+ { 0x8b, "Portugal"},
+ { 0x8c, "Puerto Rico"},
+ { 0x8d, "Qatar"},
+ { 0x8e, "Romania"},
+ { 0x8f, "Rwanda"},
+ { 0x90, "Saint Kitts and Nevis"},
+ { 0x91, "Saint Croix"},
+ { 0x92, "Saint Helena and Ascension"},
+ { 0x93, "Saint Lucia"},
+ { 0x94, "San Marino"},
+ { 0x95, "Saint Thomas"},
+ { 0x96, "Sao Tome and Principe"},
+ { 0x97, "Saint Vincent and the Grenadines"},
+ { 0x98, "Saudi Arabia"},
+ { 0x99, "Senegal"},
+ { 0x9a, "Seychelles"},
+ { 0x9b, "Sierra Leone"},
+ { 0x9c, "Singapore"},
+ { 0x9d, "Solomon"},
+ { 0x9e, "Somalia"},
+ { 0x9f, "South Africa"},
+ { 0xa0, "Spain"},
+ { 0xa1, "Sri Lanka"},
+ { 0xa2, "Sudan"},
+ { 0xa3, "Suriname"},
+ { 0xa4, "Swaziland"},
+ { 0xa5, "Sweden"},
+ { 0xa6, "Switzerland"},
+ { 0xa7, "Syria"},
+ { 0xa8, "Tanzania"},
+ { 0xa9, "Thailand"},
+ { 0xaa, "Togo"},
+ { 0xab, "Tonga"},
+ { 0xac, "Trinidad and Tobago"},
+ { 0xad, "Tunisia"},
+ { 0xae, "Turkey"},
+ { 0xaf, "Turks and Caicos Islands"},
+ { 0xb0, "Tuvalu"},
+ { 0xb1, "Uganda"},
+ { 0xb2, "Ukraine"},
+ { 0xb3, "United Arab Emirates"},
+ { 0xb4, "United Kingdom"},
+ { 0xb5, "United States"},
+ { 0xb6, "Burkina Faso"},
+ { 0xb7, "Uruguay"},
+ { 0xb8, "Russia"},
+ { 0xb9, "Vanuatu"},
+ { 0xba, "Vatican"},
+ { 0xbb, "Venezuela"},
+ { 0xbc, "Viet Nam"},
+ { 0xbd, "Wallis and Futuna"},
+ { 0xbe, "Samoa"},
+ { 0xbf, "Yemen"},
+ { 0xc0, "Yemen"},
+ { 0xc1, "Yugoslavia"},
+ { 0xc2, "Dem. Rep. of the Congo"},
+ { 0xc3, "Zambia"},
+ { 0xc4, "Zimbabwe"},
+ { 0xc5, "Slovakia"},
+ { 0xc6, "Slovenia"},
+ { 0, NULL }
+};
+
+
+const value_string T35Extension_vals[] = {
+ { 0, NULL }
+};
+
+const value_string H221ManufacturerCode_vals[] = {
+ { 0x04000042, "Deutsche Telekom AG" }, /* From Ref. 3 */
+ { 0x04000043, "Deutsche Telekom AG" }, /* From Ref. 3 */
+ { 0x04000082, "Siemens AG" }, /* From Ref. 3 */
+ { 0x04000084, "ITO Communication" }, /* From Ref. 3 */
+ { 0x04000086, "Hauni Elektronik" }, /* From Ref. 3 */
+ { 0x04000088, "Dr.Neuhaus Mikroelektronik" }, /* From Ref. 3 */
+ { 0x0400008a, "mps Software" }, /* From Ref. 3 */
+ { 0x0400008b, "Ferrari electronik GmbH" }, /* From Ref. 3 */
+ { 0x0400008c, "mbp Kommunikationssysteme GmbH" }, /* From Ref. 3 */
+ { 0x0400008d, "Schneider Rundfunkwerke AG" }, /* From Ref. 3 */
+ { 0x0400008e, "Digitronic computersysteme gmbh" }, /* From Ref. 3 */
+ { 0x0400008f, "DeTeWe - Deutsche Telephonwerke AG &Co" }, /* From Ref. 3 */
+ { 0x04000082, "SITK Institut für Telekommunikation GmbH & Co KG" },/* From Ref. 3 */
+ { 0x0900003D, "Equivalence (OpenH323)" }, /* From captures */
+ { 0x20000081, "Mediatrix Telecom" }, /* From Ref. 1 */
+ { 0x3d000310, "Swissvoice" },
+ { 0x3d000311, "Swissvoice" },
+ { 0x3d000312, "Swissvoice" },
+ { 0x3d000313, "Swissvoice" },
+ { 0x3d000314, "Swissvoice" },
+ { 0x3d000315, "Swissvoice" },
+ { 0x3d000316, "Swissvoice" },
+ { 0x3d000317, "Swissvoice" },
+ { 0x3d000318, "Swissvoice" },
+ { 0x3d000319, "Swissvoice" },
+ { 0x3d00031a, "Swissvoice" },
+ { 0x3d00031b, "Swissvoice" },
+ { 0x3d00031c, "Swissvoice" },
+ { 0x3d00031d, "Swissvoice" },
+ { 0x3d00031e, "Swissvoice" },
+ { 0x3d00031f, "Swissvoice" },
+ { 0x82000002, "Ericsson" }, /* From captures */
+ { 0xa5000001, "Ericsson" }, /* From captures */
+ { 0xb4000000, "British Telecommunications" }, /* From Ref. 2 */
+ { 0xb4000001, "British Telecommunications" }, /* From Ref. 2 */
+ { 0xb4000002, "British Telecommunications" }, /* From Ref. 2 */
+ { 0xb4000003, "British Telecommunications" }, /* From Ref. 2 */
+ { 0xb4000004, "British Telecommunications" }, /* From Ref. 2 */
+ { 0xb4000005, "British Telecommunications" }, /* From Ref. 2 */
+ { 0xb4000006, "British Telecommunications" }, /* From Ref. 2 */
+ { 0xb4000007, "British Telecommunications" }, /* From Ref. 2 */
+ { 0xb4000008, "British Telecommunications" }, /* From Ref. 2 */
+ { 0xb4000009, "British Telecommunications" }, /* From Ref. 2 */
+ { 0xb400000a, "British Telecommunications" }, /* From Ref. 2 */
+ { 0xb400000b, "British Telecommunications" }, /* From Ref. 2 */
+ { 0xb400000c, "British Telecommunications" }, /* From Ref. 2 */
+ { 0xb400000d, "British Telecommunications" }, /* From Ref. 2 */
+ { 0xb400000e, "British Telecommunications" }, /* From Ref. 2 */
+ { 0xb400000f, "British Telecommunications" }, /* From Ref. 2 */
+ { 0xb4000010, "GPT Video Systems" }, /* From Ref. 2 */
+ { 0xb4000011, "GPT Video Systems" }, /* From Ref. 2 */
+ { 0xb4000012, "GPT Video Systems" }, /* From Ref. 2 */
+ { 0xb4000013, "GPT Video Systems" }, /* From Ref. 2 */
+ { 0xb4000014, "GPT Video Systems" }, /* From Ref. 2 */
+ { 0xb4000015, "GPT Video Systems" }, /* From Ref. 2 */
+ { 0xb4000016, "GPT Video Systems" }, /* From Ref. 2 */
+ { 0xb4000017, "GPT Video Systems" }, /* From Ref. 2 */
+ { 0xb4000018, "GPT Video Systems" }, /* From Ref. 2 */
+ { 0xb4000019, "GPT Video Systems" }, /* From Ref. 2 */
+ { 0xb400001a, "GPT Video Systems" }, /* From Ref. 2 */
+ { 0xb400001b, "GPT Video Systems" }, /* From Ref. 2 */
+ { 0xb400001c, "GPT Video Systems" }, /* From Ref. 2 */
+ { 0xb400001d, "GPT Video Systems" }, /* From Ref. 2 */
+ { 0xb400001e, "GPT Video Systems" }, /* From Ref. 2 */
+ { 0xb400001f, "GPT Video Systems" }, /* From Ref. 2 */
+ { 0xb4000020, "Marconi Communications" }, /* From Ref. 2 */
+ { 0xb4000021, "Indigo Active Vision Systems" }, /* From Ref. 2 */
+ { 0xb4000022, "LiveWorks Limited" }, /* From Ref. 2 */
+ { 0xb4000023, "ATL Telecom Limited" }, /* From Ref. 2 */
+ { 0xb400002a, "Network Alchemy Limited" }, /* From Ref. 2 */
+ { 0xb4000042, "Motion Media Technology" }, /* From Ref. 2 */
+ { 0xb4000044, "Data Connection" }, /* From Ref. 2 */
+ { 0xb4000045, "Westbay Engineers" }, /* From Ref. 2 */
+ { 0xb4000049, "ImageCom" }, /* From Ref. 2 */
+ { 0xb400004d, "Madge Networks" }, /* From Ref. 2 */
+ { 0xb4000052, "Ridgeway Systems and Software" }, /* From Ref. 2 */
+ { 0xb4000053, "SpliceCom" }, /* From Ref. 2 */
+ { 0xb4000054, "TeleWare" }, /* From Ref. 2 */
+ { 0xb4000056, "Vegastream" }, /* From Ref. 2 */
+ { 0xb4000066, "Westell" }, /* From Ref. 2 */
+ { 0xb4000069, "ISDN Communications" }, /* From Ref. 2 */
+ { 0xb40000c0, "Codian" }, /* From Ref. 2 */
+
+ { 0xb5000000, "Compression Labs" }, /* From Ref. 1 */
+ { 0xb5000001, "PictureTel" }, /* From Ref. 1 */
+ { 0xb5000002, "Compression Labs" }, /* From Ref. 1 */
+ { 0xb5000003, "VTEL" }, /* From Ref. 1 */
+ { 0xb5000005, "ERIS" }, /* From Ref. 1 */
+ { 0xb5000007, "AT&T Worldworx" }, /* From Ref. 1 */
+ { 0xb5000009, "VideoServer" }, /* From Ref. 1 */
+ { 0xb500000b, "3Com Corporation" }, /* From Ref. 1 */
+ { 0xb500000c, "Clarent Corporation" }, /* From Ref. 1 */
+ { 0xb500000d, "Genesys Telecommunications Labs Inc" }, /* From Ref. 1 */
+ { 0xb500000e, "C-Phone Corporation." }, /* From Ref. 1 */
+ { 0xb500000f, "Science Dynamics Corporation" }, /* From Ref. 1 */
+ { 0xb5000010, "AT&T Starpoint" }, /* From Ref. 1 */
+ { 0xb5000011, "Netscape Conference" }, /* From Ref. 1 */
+ { 0xb5000012, "Cisco" }, /* From Ref. 1 */
+ { 0xb5000013, "Cirilium, Inc." }, /* From Ref. 1 */
+ { 0xb5000014, "Ascend Communications, Inc." }, /* From Ref. 1 */
+ { 0xb5000015, "RADVision, Inc." }, /* From Ref. 1 */
+ { 0xb5000016, "Objective Communications" }, /* From Ref. 1 */
+ { 0xb5000017, "VocalTec Communications, Inc." }, /* From Ref. 1 */
+ { 0xb5000018, "Serome Technology, Inc." }, /* From Ref. 1 */
+ { 0xb5000019, "Aspect Communications" }, /* From Ref. 1 */
+ { 0xb500001a, "Cintech Tele-Management" }, /* From Ref. 1 */
+ { 0xb500001b, "Philips Video Conferencing Systems" }, /* From Ref. 1 */
+ { 0xb500001c, "Vertical Networks, Inc." }, /* From Ref. 1 */
+ { 0xb500001d, "Syndeo Corp." }, /* From Ref. 1 */
+ { 0xb500001e, "Telxon Corporation" }, /* From Ref. 1 */
+ { 0xb500001f, "Network Equipment Technologies" }, /* From Ref. 1 */
+ { 0xb5000020, "Pagoo, Inc." }, /* From Ref. 1 */
+ { 0xb5000021, "General Dynamics" }, /* From Ref. 1 */
+ { 0xb5000022, "Vanguard Managed Solutions" }, /* From Ref. 1 */
+ { 0xb5000023, "TeleStream Technologies, Inc." }, /* From Ref. 1 */
+ { 0xb5000024, "Spirent Communications" }, /* From Ref. 1 */
+ { 0xb5000025, "CrystalVoice Communications" }, /* From Ref. 1 */
+ { 0xb5000026, "Xiph.org" }, /* From Ref. 1 */
+ { 0xb5000027, "NACT Telecommunications" }, /* From Ref. 1 */
+ { 0xb5000028, "AudioCodes, Inc." }, /* From Ref. 1 */
+ { 0xb5000120, "AT&T - GBCS" }, /* From Ref. 1 */
+ { 0xb5000168, "Leadtek Research Inc." }, /* From Ref. 1 */
+ { 0xb5000247, "Lucent Technologies" }, /* From Ref. 1 */
+ { 0xb500029a, "Symbol Technologies Inc." }, /* From Ref. 1 */
+ { 0xb5000378, "StarVox, Inc." }, /* From Ref. 1 */
+ { 0xb50003f7, "Inari Inc." }, /* From Ref. 1 */
+ { 0xb5000727, "Quintum Technologies, Inc." }, /* From Ref. 1 */
+ { 0xb5000918, "Netrix Corporation" }, /* From Ref. 1 */
+ { 0xb500101e, "SysMaster Corporation" }, /* From Ref. 1 */
+ { 0xb5001a1a, "Alpha Telecom, Inc. U.S.A." }, /* From Ref. 1 */
+ { 0xb5002331, "ViaVideo" }, /* From Ref. 1 */
+ { 0xb500301c, "Congruency, Inc." }, /* From Ref. 1 */
+ { 0xb5003039, "MiBridge Inc." }, /* From Ref. 1 */
+ { 0xb5003838, "8x8 Inc." }, /* From Ref. 1 */
+ { 0xb5004147, "Agere Systems" }, /* From Ref. 1 */
+ { 0xb5004153, "Artisoft Inc." }, /* From Ref. 1 */
+ { 0xb5004156, "Avaya" }, /* From Ref. 1 */
+ { 0xb5004242, "IBM." }, /* From Ref. 1 */
+ { 0xb5004257, "StreamComm" }, /* From Ref. 1 */
+
+ { 0xb5004c54, "Lucent Technologies" }, /* From Ref. 1 */
+ { 0xb5004d47, "MediaGate" }, /* From Ref. 1 */
+ { 0xb5004e54, "Nortel Networks" }, /* From Ref. 1 */
+
+ { 0xb5005243, "Siemens Business Communication Systems" }, /* From Ref. 1 */
+ { 0xb500534c, "Microsoft" }, /* From Ref. 1 */
+
+ { 0xb500600d, "Lucent Technologies" }, /* From Ref. 1 */
+
+ { 0xb5008080, "Intel" }, /* From Ref. 1 */
+ { 0xa5000001, "Ericsson" }, /* From captures */
+ { 0, NULL }
+};
+/* Ref 1 http://www.delta-info.com/Protocol_Test/Manufacturer_codes.html */
+/* Ref 2 http://www.cix.co.uk/~bpechey/H221/h221code.htm */
+/* Ref 3 http://www.regtp.de/reg_tele/start/in_05-06-03-11-00_m/index.html */
+
diff --git a/epan/t35.h b/epan/t35.h
new file mode 100644
index 0000000000..a9d8abf422
--- /dev/null
+++ b/epan/t35.h
@@ -0,0 +1,35 @@
+/* t35.h
+ * T.35 and H.221 tables
+ * 2003 Tomas Kukosa
+ *
+ * $Id$
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __T35_H__
+#define __T35_H__
+
+#include "epan/value_string.h"
+
+extern const value_string T35CountryCode_vals[];
+extern const value_string T35Extension_vals[];
+extern const value_string H221ManufacturerCode_vals[];
+
+#endif /* __T35_H__ */