aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AUTHORS6
-rw-r--r--doc/ethereal.pod.template1
-rw-r--r--packet-isis-clv.c49
-rw-r--r--packet-isis-clv.h4
-rw-r--r--packet-isis-hello.c21
-rw-r--r--packet-isis-lsp.c41
-rw-r--r--packet-isis-lsp.h4
-rw-r--r--packet-osi.c4
-rw-r--r--ppptypes.h3
9 files changed, 117 insertions, 16 deletions
diff --git a/AUTHORS b/AUTHORS
index f8a8287460..4875c8d1ff 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -560,6 +560,12 @@ Michal Melerowicz <Michal.Melerowicz@nokia.com> {
GTP support
}
+Hannes Gredler <hannes@juniper.net> {
+ OSI network layer over PPP support
+ Fix to P2P ISIS processing
+ ISIS hostname TLV support
+}
+
Alain Magloire <alainm@rcsm.ece.mcgill.ca> was kind enough to
give his permission to use his version of snprintf.c.
diff --git a/doc/ethereal.pod.template b/doc/ethereal.pod.template
index 8b7160cbaf..fb508c7a8d 100644
--- a/doc/ethereal.pod.template
+++ b/doc/ethereal.pod.template
@@ -1085,6 +1085,7 @@ B<http://www.ethereal.com>.
Martin Thomas <martin_a_thomas@yahoo.com>
Hartmut Mueller <hartmut@wendolene.ping.de>
Michal Melerowicz <Michal.Melerowicz@nokia.com>
+ Hannes Gredler <hannes@juniper.net>
Alain Magloire <alainm@rcsm.ece.mcgill.ca> was kind enough to give his
permission to use his version of snprintf.c.
diff --git a/packet-isis-clv.c b/packet-isis-clv.c
index 4b36e0f37c..5c55d4d967 100644
--- a/packet-isis-clv.c
+++ b/packet-isis-clv.c
@@ -1,7 +1,7 @@
/* packet-isis-clv.c
* Common CLV decode routines.
*
- * $Id: packet-isis-clv.c,v 1.8 2000/08/11 13:35:17 deniel Exp $
+ * $Id: packet-isis-clv.c,v 1.9 2001/04/08 19:32:03 guy Exp $
* Stuart Stanley <stuarts@mxmail.net>
*
* Ethereal - Network traffic analyzer
@@ -172,6 +172,53 @@ isis_dissect_authentication_clv(const u_char *pd, int offset, guint length,
}
}
}
+
+/*
+ * Name: isis_dissect_hostname_clv()
+ *
+ * Description:
+ * dump the hostname information found in TLV 137
+ * pls note that the hostname is not null terminated
+ *
+ * Input:
+ * u_char * : packet data
+ * int : offset into packet data where we are.
+ * guint : length of clv we are decoding
+ * frame_data * : frame data (complete frame)
+ * proto_tree * : protocol display tree to fill out. May be NULL
+ * char * : Password meaning
+ *
+ * Output:
+ * void, but we will add to proto tree if !NULL.
+ */
+
+
+void
+isis_dissect_hostname_clv(const u_char *pd, int offset,
+ guint length, frame_data *fd, proto_tree *tree ) {
+ char sbuf[256*6];
+ char *s = sbuf;
+ int hlen = length;
+ int old_offset = offset;
+
+
+ if ( !tree ) return; /* nothing to do! */
+
+ memcpy ( s, &pd[offset], hlen);
+ sbuf[hlen] = 0; /* don't forget null termination */
+
+ if ( hlen == 0 ) {
+ sprintf ( sbuf, "--none--" );
+ }
+
+ proto_tree_add_text ( tree, NullTVB, old_offset, hlen,
+ "Hostname: %s", sbuf );
+}
+
+
+
+
+
/*
* Name: isis_dissect_ip_int_clv()
*
diff --git a/packet-isis-clv.h b/packet-isis-clv.h
index 44873af48e..c6d7b757ca 100644
--- a/packet-isis-clv.h
+++ b/packet-isis-clv.h
@@ -1,7 +1,7 @@
/* packet-isis-clv.h
* Declares for common clv decoding functions.
*
- * $Id: packet-isis-clv.h,v 1.2 2000/06/19 08:33:48 guy Exp $
+ * $Id: packet-isis-clv.h,v 1.3 2001/04/08 19:32:03 guy Exp $
* Stuart Stanley <stuarts@mxmail.net>
*
* Ethereal - Network traffic analyzer
@@ -56,4 +56,6 @@ extern void isis_dissect_ip_int_clv(const u_char *pd, int offset,
guint length, frame_data *fd, proto_tree *tree, gint tree_id );
extern void isis_dissect_nlpid_clv(const u_char *pd, int offset,
guint length, frame_data *fd, proto_tree *tree );
+extern void isis_dissect_hostname_clv(const u_char *pd, int offset,
+ guint length, frame_data *fd, proto_tree *tree );
#endif /* _PACKET_ISIS_CLV_H */
diff --git a/packet-isis-hello.c b/packet-isis-hello.c
index b5e466f80c..d5f664f134 100644
--- a/packet-isis-hello.c
+++ b/packet-isis-hello.c
@@ -1,7 +1,7 @@
/* packet-isis-hello.c
* Routines for decoding isis hello packets and their CLVs
*
- * $Id: packet-isis-hello.c,v 1.11 2001/01/03 06:55:29 guy Exp $
+ * $Id: packet-isis-hello.c,v 1.12 2001/04/08 19:32:03 guy Exp $
* Stuart Stanley <stuarts@mxmail.net>
*
* Ethereal - Network traffic analyzer
@@ -479,15 +479,6 @@ isis_dissect_isis_hello(int hello_type, int header_length, int id_length,
}
offset += 2;
- if (tree) {
- proto_tree_add_uint_format(hello_tree, hf_isis_hello_priority_reserved, NullTVB,
- offset, 1, pd[offset],
- "Priority : %d, reserved(0x%02x == 0)",
- pd[offset]&ISIS_HELLO_PRIORITY_MASK,
- pd[offset]&ISIS_HELLO_P_RESERVED_MASK );
- }
- offset += 1;
-
if (hello_type == ISIS_TYPE_PTP_HELLO) {
if (tree) {
proto_tree_add_uint(hello_tree, hf_isis_hello_local_circuit_id, NullTVB,
@@ -495,6 +486,16 @@ isis_dissect_isis_hello(int hello_type, int header_length, int id_length,
}
offset += 1;
} else {
+
+ if (tree) {
+ proto_tree_add_uint_format(hello_tree, hf_isis_hello_priority_reserved, NullTVB,
+ offset, 1, pd[offset],
+ "Priority : %d, reserved(0x%02x == 0)",
+ pd[offset]&ISIS_HELLO_PRIORITY_MASK,
+ pd[offset]&ISIS_HELLO_P_RESERVED_MASK );
+ }
+ offset += 1;
+
if (tree) {
proto_tree_add_bytes_format(hello_tree, hf_isis_hello_lan_id, NullTVB,
offset, id_length + 1, &pd[offset],
diff --git a/packet-isis-lsp.c b/packet-isis-lsp.c
index 9ec043b18f..bcda7c844a 100644
--- a/packet-isis-lsp.c
+++ b/packet-isis-lsp.c
@@ -1,7 +1,7 @@
/* packet-isis-lsp.c
* Routines for decoding isis lsp packets and their CLVs
*
- * $Id: packet-isis-lsp.c,v 1.10 2001/01/03 06:55:29 guy Exp $
+ * $Id: packet-isis-lsp.c,v 1.11 2001/04/08 19:32:03 guy Exp $
* Stuart Stanley <stuarts@mxmail.net>
*
* Ethereal - Network traffic analyzer
@@ -64,6 +64,7 @@ static gint ett_isis_lsp_clv_unknown = -1;
static gint ett_isis_lsp_clv_partition_dis = -1;
static gint ett_isis_lsp_clv_prefix_neighbors = -1;
static gint ett_isis_lsp_clv_nlpid = -1;
+static gint ett_isis_lsp_clv_hostname = -1;
static gint ett_isis_lsp_clv_auth = -1;
static gint ett_isis_lsp_clv_ipv4_int_addr = -1;
static gint ett_isis_lsp_clv_ip_reachability = -1;
@@ -97,6 +98,8 @@ static void dissect_lsp_ip_reachability_clv(const u_char *pd, int offset,
guint length, int id_length, frame_data *fd, proto_tree *tree);
static void dissect_lsp_nlpid_clv(const u_char *pd, int offset,
guint length, int id_length, frame_data *fd, proto_tree *tree);
+static void dissect_lsp_hostname_clv(const u_char *pd, int offset,
+ guint length, int id_length, frame_data *fd, proto_tree *tree);
static void dissect_lsp_ip_int_addr_clv(const u_char *pd, int offset,
guint length, int id_length, frame_data *fd, proto_tree *tree);
static void dissect_lsp_l1_auth_clv(const u_char *pd, int offset,
@@ -135,6 +138,12 @@ static const isis_clv_handle_t clv_l1_lsp_opts[] = {
&ett_isis_lsp_clv_nlpid,
dissect_lsp_nlpid_clv
},
+ {
+ ISIS_CLV_L1_LSP_HOSTNAME,
+ "Hostname",
+ &ett_isis_lsp_clv_hostname,
+ dissect_lsp_hostname_clv
+ },
{
ISIS_CLV_L1_LSP_IP_INTERFACE_ADDR,
"IP Interface address(es)",
@@ -198,6 +207,12 @@ static const isis_clv_handle_t clv_l2_lsp_opts[] = {
&ett_isis_lsp_clv_nlpid,
dissect_lsp_nlpid_clv
},
+ {
+ ISIS_CLV_L2_LSP_HOSTNAME,
+ "Hostname",
+ &ett_isis_lsp_clv_hostname,
+ dissect_lsp_hostname_clv
+ },
{
ISIS_CLV_L2_LSP_IP_EXT_REACHABLE,
"IP external reachability",
@@ -359,6 +374,29 @@ dissect_lsp_nlpid_clv(const u_char *pd, int offset,
}
/*
+ * Name: dissect_lsp_hostname_clv()
+ *
+ * Description:
+ * Decode for a lsp packets hostname clv. Calls into the
+ * clv common one.
+ *
+ * Input:
+ * u_char * : packet data
+ * int : current offset into packet data
+ * guint : length of this clv
+ * int : length of IDs in packet.
+ * frame_data * : frame data
+ * proto_tree * : proto tree to build on (may be null)
+ *
+ * Output:
+ * void, will modify proto_tree if not null.
+ */
+static void
+dissect_lsp_hostname_clv(const u_char *pd, int offset,
+ guint length, int id_length, frame_data *fd, proto_tree *tree) {
+ isis_dissect_hostname_clv(pd, offset, length, fd, tree );
+}
+/*
* Name: dissect_lsp_ip_int_addr_clv()
*
* Description:
@@ -946,6 +984,7 @@ proto_register_isis_lsp(void) {
&ett_isis_lsp_clv_prefix_neighbors,
&ett_isis_lsp_clv_auth,
&ett_isis_lsp_clv_nlpid,
+ &ett_isis_lsp_clv_hostname,
&ett_isis_lsp_clv_ipv4_int_addr,
&ett_isis_lsp_clv_ip_reachability,
};
diff --git a/packet-isis-lsp.h b/packet-isis-lsp.h
index 1dec2552c7..dd4c16ef96 100644
--- a/packet-isis-lsp.h
+++ b/packet-isis-lsp.h
@@ -1,7 +1,7 @@
/* packet-isis-lsp.h
* Defines and such for LSP and their CLV decodes
*
- * $Id: packet-isis-lsp.h,v 1.2 2000/06/19 08:33:49 guy Exp $
+ * $Id: packet-isis-lsp.h,v 1.3 2001/04/08 19:32:03 guy Exp $
* Stuart Stanley <stuarts@mxmail.net>
*
* Ethereal - Network traffic analyzer
@@ -62,6 +62,7 @@
#define ISIS_CLV_L1_LSP_IP_INT_REACHABLE 128
#define ISIS_CLV_L1_LSP_NLPID 129
#define ISIS_CLV_L1_LSP_IP_INTERFACE_ADDR 132
+#define ISIS_CLV_L1_LSP_HOSTNAME 137
/*
* Note, the spec say 133, but everyone seems to use 10. Any clue on why
* this is would be appreciated!
@@ -81,6 +82,7 @@
#define ISIS_CLV_L2_LSP_IP_EXT_REACHABLE 130
#define ISIS_CLV_L2_LSP_IDRP_INFO 131
#define ISIS_CLV_L2_LSP_IP_INTERFACE_ADDR 132
+#define ISIS_CLV_L2_LSP_HOSTNAME 137
/*
* Note, the spec say 133, but everyone seems to use 10. Any clue on why
* this is would be appreciated!
diff --git a/packet-osi.c b/packet-osi.c
index b24f1dcccb..a615772e21 100644
--- a/packet-osi.c
+++ b/packet-osi.c
@@ -2,7 +2,7 @@
* Routines for ISO/OSI network and transport protocol packet disassembly
* Main entrance point and common functions
*
- * $Id: packet-osi.c,v 1.42 2001/04/01 05:48:14 hagbard Exp $
+ * $Id: packet-osi.c,v 1.43 2001/04/08 19:32:03 guy Exp $
* Laurent Deniel <deniel@worldnet.fr>
* Ralf Schneider <Ralf.Schneider@t-online.de>
*
@@ -43,6 +43,7 @@
#include "llcsaps.h"
#include "aftypes.h"
#include "nlpid.h"
+#include "ppptypes.h"
#include "packet-osi.h"
#include "packet-isis.h"
#include "packet-esis.h"
@@ -152,5 +153,6 @@ void
proto_reg_handoff_osi(void)
{
dissector_add("llc.dsap", SAP_OSINL, dissect_osi, -1);
+ dissector_add("ppp.protocol", PPP_OSI, dissect_osi, -1);
dissector_add("null.type", BSD_AF_ISO, dissect_osi, -1);
}
diff --git a/ppptypes.h b/ppptypes.h
index 0e09b7f30b..6fa5345f67 100644
--- a/ppptypes.h
+++ b/ppptypes.h
@@ -1,7 +1,7 @@
/* ppptypes.h
* Defines PPP packet types.
*
- * $Id: ppptypes.h,v 1.6 2001/03/15 09:11:01 guy Exp $
+ * $Id: ppptypes.h,v 1.7 2001/04/08 19:32:03 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -32,6 +32,7 @@
*/
#define PPP_IP 0x21 /* Internet Protocol */
+#define PPP_OSI 0x23
#define PPP_AT 0x29 /* AppleTalk Protocol */
#define PPP_IPX 0x2b /* IPX protocol */
#define PPP_VJC_COMP 0x2d /* VJ compressed TCP */