Wireshark-dev: [Wireshark-dev] patch to support DLT_JUNIPER_VP
From: Hannes Gredler <hannes@xxxxxxxxxxx>
Date: Wed, 16 Aug 2006 14:35:27 +0200
hi wireshark developers, attached a patch that adds support for dissection of libpcap DLT_JUNIPER_VP frames. In addition i have fixed also the indent for DLT_JUNIPER_GGSN. asking for inclusion. kind rgds, /hannes
Index: epan/dissectors/packet-juniper.c
===================================================================
--- epan/dissectors/packet-juniper.c (revision 18926)
+++ epan/dissectors/packet-juniper.c (working copy)
@@ -1217,6 +1217,37 @@
}
+static void dissect_juniper_vp(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree) {
+
+ proto_item *ti;
+ guint offset = 0;
+ int bytes_processed;
+ guint8 flags;
+
+ if (check_col(pinfo->cinfo, COL_PROTOCOL))
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "Juniper Voice PIC");
+ if (check_col(pinfo->cinfo, COL_INFO))
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ ti = proto_tree_add_text (tree, tvb, offset, 4, "Juniper Voice PIC");
+
+ /* parse header, match mgc, extract flags and build first tree */
+ bytes_processed = dissect_juniper_header(tvb, pinfo, tree, ti, &flags);
+
+ if(bytes_processed == -1)
+ return;
+ else
+ offset+=bytes_processed;
+
+ /*
+ * Right know IPv4 is the only protocol we may encounter.
+ * For the future there should be sufficient space in the 18-byte
+ * empty header before payload starts.
+ */
+ dissect_juniper_payload_proto(tvb, pinfo, tree, ti, PROTO_IP, offset+18);
+}
+
+
/* list of Juniper supported PPP proto IDs */
static gboolean
ppp_heuristic_guess(guint16 proto) {
@@ -1450,6 +1481,7 @@
dissector_handle_t juniper_frelay_handle;
dissector_handle_t juniper_chdlc_handle;
dissector_handle_t juniper_ggsn_handle;
+ dissector_handle_t juniper_vp_handle;
osinl_subdissector_table = find_dissector_table("osinl");
osinl_excl_subdissector_table = find_dissector_table("osinl.excl");
@@ -1474,6 +1506,7 @@
juniper_frelay_handle = create_dissector_handle(dissect_juniper_frelay, proto_juniper);
juniper_chdlc_handle = create_dissector_handle(dissect_juniper_chdlc, proto_juniper);
juniper_ggsn_handle = create_dissector_handle(dissect_juniper_ggsn, proto_juniper);
+ juniper_vp_handle = create_dissector_handle(dissect_juniper_vp, proto_juniper);
dissector_add("wtap_encap", WTAP_ENCAP_JUNIPER_ATM2, juniper_atm2_handle);
dissector_add("wtap_encap", WTAP_ENCAP_JUNIPER_ATM1, juniper_atm1_handle);
@@ -1485,6 +1518,7 @@
dissector_add("wtap_encap", WTAP_ENCAP_JUNIPER_FRELAY, juniper_frelay_handle);
dissector_add("wtap_encap", WTAP_ENCAP_JUNIPER_CHDLC, juniper_chdlc_handle);
dissector_add("wtap_encap", WTAP_ENCAP_JUNIPER_GGSN, juniper_ggsn_handle);
+ dissector_add("wtap_encap", WTAP_ENCAP_JUNIPER_VP, juniper_vp_handle);
}
Index: wiretap/wtap.c
===================================================================
--- wiretap/wtap.c (revision 18926)
+++ wiretap/wtap.c (working copy)
@@ -360,6 +360,9 @@
/* WTAP_ENCAP_BER */
{ "ASN.1 Basic Encoding Rules", "ber" },
+
+ /* WTAP_ENCAP_JUNIPER_VP */
+ { "Juniper Voice PIC", "juniper-vp" },
};
/* Name that should be somewhat descriptive. */
Index: wiretap/wtap.h
===================================================================
--- wiretap/wtap.h (revision 18926)
+++ wiretap/wtap.h (working copy)
@@ -181,9 +181,10 @@
#define WTAP_ENCAP_LINUX_LAPD 88
#define WTAP_ENCAP_CATAPULT_DCT2000 89
#define WTAP_ENCAP_BER 90
+#define WTAP_ENCAP_JUNIPER_VP 91
/* last WTAP_ENCAP_ value + 1 */
-#define WTAP_NUM_ENCAP_TYPES 91
+#define WTAP_NUM_ENCAP_TYPES 92
/* File types that can be read by wiretap.
We support writing some many of these file types, too, so we
Index: wiretap/libpcap.c
===================================================================
--- wiretap/libpcap.c (revision 18926)
+++ wiretap/libpcap.c (working copy)
@@ -328,7 +328,7 @@
{ 129, WTAP_ENCAP_ARCNET_LINUX },
{ 130, WTAP_ENCAP_JUNIPER_MLPPP }, /* Juniper MLPPP on ML-, LS-, AS- PICs */
{ 131, WTAP_ENCAP_JUNIPER_MLFR }, /* Juniper MLFR (FRF.15) on ML-, LS-, AS- PICs */
- {133, WTAP_ENCAP_JUNIPER_GGSN},
+ { 133, WTAP_ENCAP_JUNIPER_GGSN},
/*
* Values 132-134, 136 not listed here are reserved for use
* in Juniper hardware.
@@ -408,6 +408,8 @@
{ 180, WTAP_ENCAP_JUNIPER_FRELAY },
/* C-HDLC frames prepended with meta-information */
{ 181, WTAP_ENCAP_JUNIPER_CHDLC },
+ /* VOIP Frames prepended with meta-information */
+ { 183, WTAP_ENCAP_JUNIPER_VP },
/*
- Follow-Ups:
- Re: [Wireshark-dev] patch to support DLT_JUNIPER_VP
- From: Anders Broman
- Re: [Wireshark-dev] patch to support DLT_JUNIPER_VP
- Prev by Date: Re: [Wireshark-dev] Patch submitted waiting for moderator review
- Next by Date: [Wireshark-dev] Wireshark .99.2 on XP x64
- Previous by thread: Re: [Wireshark-dev] Patch submitted waiting for moderator review
- Next by thread: Re: [Wireshark-dev] patch to support DLT_JUNIPER_VP
- Index(es):