update wireshark patches to current wireshark svn

This commit is contained in:
Harald Welte 2011-09-06 21:09:05 +02:00
parent d02e68b24d
commit 7c78c479ac
7 changed files with 344 additions and 360 deletions

View File

@ -15,9 +15,9 @@ Add the GSM ABIS OML dissector from OpenBSC
Index: wireshark/epan/CMakeLists.txt
===================================================================
--- wireshark.orig/epan/CMakeLists.txt 2011-03-24 20:00:54.000000000 +0100
+++ wireshark/epan/CMakeLists.txt 2011-03-24 20:01:02.000000000 +0100
@@ -590,6 +590,7 @@
--- wireshark.orig/epan/CMakeLists.txt 2011-09-06 12:30:00.000000000 +0200
+++ wireshark/epan/CMakeLists.txt 2011-09-06 13:56:18.000000000 +0200
@@ -591,6 +591,7 @@
dissectors/packet-gsm_a_gm.c
dissectors/packet-gsm_a_rp.c
dissectors/packet-gsm_a_rr.c
@ -27,9 +27,9 @@ Index: wireshark/epan/CMakeLists.txt
dissectors/packet-gsm_bssmap_le.c
Index: wireshark/epan/dissectors/Makefile.common
===================================================================
--- wireshark.orig/epan/dissectors/Makefile.common 2011-03-24 20:00:54.000000000 +0100
+++ wireshark/epan/dissectors/Makefile.common 2011-03-24 20:01:02.000000000 +0100
@@ -503,6 +503,7 @@
--- wireshark.orig/epan/dissectors/Makefile.common 2011-09-06 12:29:41.000000000 +0200
+++ wireshark/epan/dissectors/Makefile.common 2011-09-06 13:56:18.000000000 +0200
@@ -509,6 +509,7 @@
packet-gsm_a_gm.c \
packet-gsm_a_rp.c \
packet-gsm_a_rr.c \
@ -40,8 +40,8 @@ Index: wireshark/epan/dissectors/Makefile.common
Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ wireshark/epan/dissectors/packet-gsm_abis_oml.c 2011-03-24 20:01:48.000000000 +0100
@@ -0,0 +1,1735 @@
+++ wireshark/epan/dissectors/packet-gsm_abis_oml.c 2011-09-06 13:56:21.000000000 +0200
@@ -0,0 +1,1744 @@
+/* packet-abis_oml.c
+ * Routines for packet dissection of GSM A-bis OML (3GPP TS 12.21)
+ * Copyright 2009-2011 by Harald Welte <laforge@gnumonks.org>
@ -578,24 +578,32 @@ Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c
+ { 0, NULL }
+};
+
+static const gchar *
+_match_oml_fom_msgtype(const guint32 val, const value_string_ext *vs, gint *idx)
+static const value_string *
+_match_oml_fom_msgtype(const guint32 val, const value_string_ext *vs)
+{
+ const char *ret;
+ ret = match_strval_idx(val, vs->_vs_p, idx);
+ if (!ret)
+ ret = match_strval_idx(val, _oml_fom_msgtype_vals, idx);
+ return ret;
+ gint idx;
+ ret = match_strval_idx(val, vs->_vs_p, &idx);
+ if (!ret) {
+ ret = match_strval_idx(val, _oml_fom_msgtype_vals, &idx);
+ if (!ret)
+ return NULL;
+ }
+ return &(vs->_vs_p[idx]);
+}
+
+static const gchar *
+_match_oml_fom_attr(const guint32 val, const value_string_ext *vs, gint *idx)
+static const value_string *
+_match_oml_fom_attr(const guint32 val, const value_string_ext *vs)
+{
+ const char *ret;
+ ret = match_strval_idx(val, vs->_vs_p, idx);
+ if (!ret)
+ ret = match_strval_idx(val, _oml_fom_attr_vals, idx);
+ return ret;
+ gint idx;
+ ret = match_strval_idx(val, vs->_vs_p, &idx);
+ if (!ret) {
+ ret = match_strval_idx(val, _oml_fom_attr_vals, &idx);
+ if (!ret)
+ return NULL;
+ }
+ return &(vs->_vs_p[idx]);
+}
+
+/* Section 9.4.4: Administrative State */
@ -757,7 +765,8 @@ Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c
+/* Parse the ip.access specific BCCH Information IE embedded into the Test
+ * Report IE */
+static gint
+ipacc_tr_ie_bcch(tvbuff_t *tvb, proto_tree *att_tree, int offset)
+ipacc_tr_ie_bcch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *att_tree,
+ int offset)
+{
+ guint16 binfo_type, tmp;
+
@ -794,7 +803,7 @@ Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c
+ proto_tree_add_item(att_tree, hf_attr_ipa_tr_bsic,
+ tvb, offset++, 1, TRUE);
+
+ de_lai(tvb, att_tree, offset, 5, NULL, 0);
+ de_lai(tvb, att_tree, pinfo, offset, 5, NULL, 0);
+ offset += 5;
+
+ proto_tree_add_item(att_tree, hf_attr_ipa_tr_cell_id,
@ -852,7 +861,7 @@ Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c
+
+/* Parse the ip.access specific format of the standard test report IE */
+static gint
+dissect_ipacc_test_rep(proto_tree *tree, tvbuff_t *tvb)
+dissect_ipacc_test_rep(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb)
+{
+ gint offset = 0;
+
@ -880,7 +889,7 @@ Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c
+ att_tree, offset);
+ break;
+ case NM_IPACC_TR_IE_BCCH_INFO:
+ offset = ipacc_tr_ie_bcch(tvb,
+ offset = ipacc_tr_ie_bcch(tvb, pinfo,
+ att_tree, offset);
+ break;
+ default:
@ -1038,7 +1047,7 @@ Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c
+ offset, len, TRUE);
+ break;
+ case NM_ATT_TEST_REPORT:
+ dissect_ipacc_test_rep(att_tree, sub_tvb);
+ dissect_ipacc_test_rep(att_tree, pinfo, sub_tvb);
+ break;
+ case NM_ATT_TEST_NO:
+ proto_tree_add_item(att_tree, hf_attr_test_no, tvb,
@ -1723,8 +1732,8 @@ Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_CGI, TLV_TYPE_TL16V, 0);
+
+ /* assign our custom match functions */
+ oml_fom_msgtype_vse._vs_match = _match_oml_fom_msgtype;
+ oml_fom_attr_vse._vs_match = _match_oml_fom_attr;
+ oml_fom_msgtype_vse._vs_match2 = _match_oml_fom_msgtype;
+ oml_fom_attr_vse._vs_match2 = _match_oml_fom_attr;
+
+ proto_abis_oml = proto_register_protocol("GSM A-bis OML", "A-bis OML",
+ "gsm_abis_oml");
@ -1780,7 +1789,7 @@ Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c
Index: wireshark/epan/dissectors/packet-gsm_abis_oml.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ wireshark/epan/dissectors/packet-gsm_abis_oml.h 2011-03-24 20:01:02.000000000 +0100
+++ wireshark/epan/dissectors/packet-gsm_abis_oml.h 2011-09-06 12:30:44.000000000 +0200
@@ -0,0 +1,667 @@
+/* GSM Network Management messages on the A-bis interface
+ * 3GPP TS 12.21 version 8.0.0 Release 1999 / ETSI TS 100 623 V8.0.0 */

View File

@ -15,11 +15,11 @@ Add Ericsson RBS2409 dissector
create mode 100644 epan/dissectors/packet-ehdlc.c
create mode 100644 epan/dissectors/packet-gsm_abis_om2000.c
diff --git a/epan/CMakeLists.txt b/epan/CMakeLists.txt
index 0b09335..9217ec0 100644
--- a/epan/CMakeLists.txt
+++ b/epan/CMakeLists.txt
@@ -184,6 +184,8 @@ set(DIRTY_PIDL_DISSECTOR_SRC
Index: wireshark/epan/CMakeLists.txt
===================================================================
--- wireshark.orig/epan/CMakeLists.txt 2011-09-06 13:37:42.000000000 +0200
+++ wireshark/epan/CMakeLists.txt 2011-09-06 13:53:22.000000000 +0200
@@ -180,6 +180,8 @@
dissectors/packet-dcerpc-eventlog.c
dissectors/packet-dcerpc-lsa.c
dissectors/packet-dcerpc-winreg.c
@ -28,11 +28,11 @@ index 0b09335..9217ec0 100644
)
set(ASN1_DISSECTOR_SRC
dissectors/packet-acp133.c
diff --git a/epan/dissectors/Makefile.common b/epan/dissectors/Makefile.common
index 7ce83b6..4c7094b 100644
--- a/epan/dissectors/Makefile.common
+++ b/epan/dissectors/Makefile.common
@@ -67,6 +67,8 @@ DIRTY_PIDL_DISSECTOR_SRC = \
Index: wireshark/epan/dissectors/Makefile.common
===================================================================
--- wireshark.orig/epan/dissectors/Makefile.common 2011-09-06 13:37:42.000000000 +0200
+++ wireshark/epan/dissectors/Makefile.common 2011-09-06 13:53:22.000000000 +0200
@@ -67,6 +67,8 @@
packet-dcerpc-dnsserver.c \
packet-dcerpc-eventlog.c \
packet-dcerpc-lsa.c \
@ -41,12 +41,11 @@ index 7ce83b6..4c7094b 100644
packet-dcerpc-winreg.c
#
diff --git a/epan/dissectors/packet-ehdlc.c b/epan/dissectors/packet-ehdlc.c
new file mode 100644
index 0000000..40bb3ab
--- /dev/null
+++ b/epan/dissectors/packet-ehdlc.c
@@ -0,0 +1,319 @@
Index: wireshark/epan/dissectors/packet-ehdlc.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ wireshark/epan/dissectors/packet-ehdlc.c 2011-09-06 13:37:48.000000000 +0200
@@ -0,0 +1,321 @@
+/* packet-ehdlc.c
+ * Routines for packet dissection of Ericsson HDLC as used in A-bis over IP
+ * Copyright 2010 by Harald Welte <laforge@gnumonks.org>
@ -242,6 +241,8 @@ index 0000000..40bb3ab
+ len-header_length, FALSE);
+ }
+
+ if (len == 0)
+ len = 1;
+ offset += len;
+ }
+}
@ -366,11 +367,10 @@ index 0000000..40bb3ab
+
+ ehdlc_handle = create_dissector_handle(dissect_ehdlc, proto_ehdlc);
+}
diff --git a/epan/dissectors/packet-gsm_abis_om2000.c b/epan/dissectors/packet-gsm_abis_om2000.c
new file mode 100644
index 0000000..bf67aea
--- /dev/null
+++ b/epan/dissectors/packet-gsm_abis_om2000.c
Index: wireshark/epan/dissectors/packet-gsm_abis_om2000.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ wireshark/epan/dissectors/packet-gsm_abis_om2000.c 2011-09-06 13:37:48.000000000 +0200
@@ -0,0 +1,1439 @@
+/* packet-abis_om2000.c
+ * Routines for packet dissection of Ericsson A-bis OML (OM 2000)
@ -1811,11 +1811,11 @@ index 0000000..bf67aea
+ /* preferences have been changed */
+ }
+}
diff --git a/epan/dissectors/packet-gsm_abis_oml.c b/epan/dissectors/packet-gsm_abis_oml.c
index f0b69e7..46a9fad 100644
--- a/epan/dissectors/packet-gsm_abis_oml.c
+++ b/epan/dissectors/packet-gsm_abis_oml.c
@@ -119,9 +119,12 @@ static int ett_oml_fom_att = -1;
Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c
===================================================================
--- wireshark.orig/epan/dissectors/packet-gsm_abis_oml.c 2011-09-06 13:37:42.000000000 +0200
+++ wireshark/epan/dissectors/packet-gsm_abis_oml.c 2011-09-06 13:56:14.000000000 +0200
@@ -119,9 +119,12 @@
/* Decode things as nanoBTS traces */
static gboolean global_oml_use_nano_bts = TRUE;
@ -1828,7 +1828,7 @@ index f0b69e7..46a9fad 100644
/* TS 12.21 Chapter 8.1 / TS 08.59 */
static const value_string oml_msg_disc_vals[] = {
{ ABIS_OM_MDISC_FOM, "Formatted O&M" },
@@ -1196,6 +1199,7 @@ dissect_abis_oml(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
@@ -1161,6 +1164,7 @@
top_tree = tree;
if (tree) {
u_int8_t msg_disc = tvb_get_guint8(tvb, offset);
@ -1836,7 +1836,7 @@ index f0b69e7..46a9fad 100644
ti = proto_tree_add_item(tree, proto_abis_oml, tvb, 0, -1, FALSE);
oml_tree = proto_item_add_subtree(ti, ett_oml);
@@ -1209,6 +1213,14 @@ dissect_abis_oml(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
@@ -1174,6 +1178,14 @@
proto_tree_add_item(oml_tree, hf_oml_length, tvb, offset++,
1, TRUE);
@ -1851,7 +1851,7 @@ index f0b69e7..46a9fad 100644
switch (msg_disc) {
case ABIS_OM_MDISC_FOM:
offset = dissect_oml_fom(tvb, pinfo, oml_tree,
@@ -1222,6 +1234,8 @@ dissect_abis_oml(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
@@ -1187,6 +1199,8 @@
default:
break;
}
@ -1860,7 +1860,7 @@ index f0b69e7..46a9fad 100644
}
}
@@ -1569,6 +1583,11 @@ proto_register_abis_oml(void)
@@ -1696,6 +1710,11 @@
"Use nanoBTS definitions",
"Use ipaccess nanoBTS specific definitions for OML",
&global_oml_use_nano_bts);
@ -1872,18 +1872,18 @@ index f0b69e7..46a9fad 100644
}
/* This function is called once at startup and every time the user hits
@@ -1605,4 +1624,6 @@ proto_reg_handoff_abis_oml(void)
@@ -1732,4 +1751,6 @@
oml_fom_attr_vse._vs_num_entries =
array_length(oml_fom_attr_vals_bs11)-1;
}
+
+ sub_om2000 = find_dissector("gsm_abis_om2000");
}
diff --git a/epan/dissectors/packet-l2tp.c b/epan/dissectors/packet-l2tp.c
index 4380bbc..0ebcd9d 100644
--- a/epan/dissectors/packet-l2tp.c
+++ b/epan/dissectors/packet-l2tp.c
@@ -148,6 +148,7 @@ static enum_val_t l2tpv3_cookies[] = {
Index: wireshark/epan/dissectors/packet-l2tp.c
===================================================================
--- wireshark.orig/epan/dissectors/packet-l2tp.c 2011-09-06 13:37:42.000000000 +0200
+++ wireshark/epan/dissectors/packet-l2tp.c 2011-09-06 13:37:48.000000000 +0200
@@ -148,6 +148,7 @@
#define L2TPv3_PROTOCOL_AAL5 6
#define L2TPv3_PROTOCOL_LAPD 7
#define L2TPv3_PROTOCOL_DOCSIS_DMPT 8
@ -1891,7 +1891,7 @@ index 4380bbc..0ebcd9d 100644
static enum_val_t l2tpv3_protocols[] = {
{"eth", "Ethernet", L2TPv3_PROTOCOL_ETH},
@@ -159,6 +160,7 @@ static enum_val_t l2tpv3_protocols[] = {
@@ -159,6 +160,7 @@
{"aal5", "AAL5", L2TPv3_PROTOCOL_AAL5},
{"lapd", "LAPD", L2TPv3_PROTOCOL_LAPD},
{"docsis-dmpt", "DOCSIS-DMPT", L2TPv3_PROTOCOL_DOCSIS_DMPT},
@ -1899,7 +1899,7 @@ index 4380bbc..0ebcd9d 100644
{NULL, NULL, 0}
};
@@ -583,6 +585,7 @@ static dissector_handle_t atm_oam_handle;
@@ -583,6 +585,7 @@
static dissector_handle_t llc_handle;
static dissector_handle_t lapd_handle;
static dissector_handle_t mp2t_handle;
@ -1907,7 +1907,7 @@ index 4380bbc..0ebcd9d 100644
static dissector_handle_t data_handle;
/*
@@ -1498,6 +1501,9 @@ process_l2tpv3_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
@@ -1495,6 +1498,9 @@
case L2TPv3_PROTOCOL_LAPD:
call_dissector(lapd_handle, next_tvb, pinfo, tree);
break;
@ -1917,13 +1917,10 @@ index 4380bbc..0ebcd9d 100644
default:
call_dissector(data_handle, next_tvb, pinfo, tree);
break;
@@ -2171,5 +2177,6 @@ proto_reg_handoff_l2tp(void)
@@ -2167,5 +2173,6 @@
llc_handle = find_dissector("llc");
lapd_handle = find_dissector("lapd");
mp2t_handle = find_dissector("mp2t");
+ ehdlc_handle = find_dissector("ehdlc");
data_handle = find_dissector("data");
}
--
1.7.3.4

View File

@ -11,11 +11,11 @@ Add lucent hnb patch from OpenBSC
3 files changed, 105 insertions(+), 0 deletions(-)
create mode 100644 epan/dissectors/packet-lucent_hnb.c
diff --git a/epan/CMakeLists.txt b/epan/CMakeLists.txt
index 9217ec0..ac76ab9 100644
--- a/epan/CMakeLists.txt
+++ b/epan/CMakeLists.txt
@@ -728,6 +728,7 @@ set(DISSECTOR_SRC
Index: wireshark/epan/CMakeLists.txt
===================================================================
--- wireshark.orig/epan/CMakeLists.txt 2011-09-06 12:30:50.000000000 +0200
+++ wireshark/epan/CMakeLists.txt 2011-09-06 12:30:52.000000000 +0200
@@ -738,6 +738,7 @@
dissectors/packet-lpd.c
dissectors/packet-lsc.c
dissectors/packet-ltp.c
@ -23,11 +23,11 @@ index 9217ec0..ac76ab9 100644
dissectors/packet-lwapp.c
dissectors/packet-lwres.c
dissectors/packet-m2pa.c
diff --git a/epan/dissectors/Makefile.common b/epan/dissectors/Makefile.common
index 4c7094b..9931f28 100644
--- a/epan/dissectors/Makefile.common
+++ b/epan/dissectors/Makefile.common
@@ -638,6 +638,7 @@ DISSECTOR_SRC = \
Index: wireshark/epan/dissectors/Makefile.common
===================================================================
--- wireshark.orig/epan/dissectors/Makefile.common 2011-09-06 12:30:50.000000000 +0200
+++ wireshark/epan/dissectors/Makefile.common 2011-09-06 12:30:52.000000000 +0200
@@ -657,6 +657,7 @@
packet-lpd.c \
packet-lsc.c \
packet-ltp.c \
@ -35,11 +35,10 @@ index 4c7094b..9931f28 100644
packet-lwapp.c \
packet-lwres.c \
packet-m2pa.c \
diff --git a/epan/dissectors/packet-lucent_hnb.c b/epan/dissectors/packet-lucent_hnb.c
new file mode 100644
index 0000000..296f98b
--- /dev/null
+++ b/epan/dissectors/packet-lucent_hnb.c
Index: wireshark/epan/dissectors/packet-lucent_hnb.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ wireshark/epan/dissectors/packet-lucent_hnb.c 2011-09-06 12:30:52.000000000 +0200
@@ -0,0 +1,103 @@
+/* packet-lucent_hnb.c
+ * Routines for packet dissection of Alcatel/Lucent HomeNodeB
@ -144,6 +143,3 @@ index 0000000..296f98b
+ dissector_add("sctp.ppi", LHNB_SCTP_PPI_GMM, lhnb_handle);
+ dissector_add("sctp.port", LHNB_SCTP_PORT, lhnb_handle);
+}
--
1.7.3.4

View File

@ -9,21 +9,13 @@ Add vendor specific commands for RSL.
epan/dissectors/packet-rsl.c | 544 +++++++++++++++++++++++++++++++++++++++++-
1 files changed, 536 insertions(+), 8 deletions(-)
diff --git a/epan/dissectors/packet-rsl.c b/epan/dissectors/packet-rsl.c
index bf83f6f..213ae28 100644
--- a/epan/dissectors/packet-rsl.c
+++ b/epan/dissectors/packet-rsl.c
@@ -2,6 +2,7 @@
* Routines for Radio Signalling Link (RSL) dissection.
*
* Copyright 2007, Anders Broman <anders.broman@ericsson.com>
+ * Copyright 2009, Harald Welte <laforge@gnumonks.org>
*
* $Id$
*
@@ -40,8 +41,11 @@
Index: wireshark/epan/dissectors/packet-rsl.c
===================================================================
--- wireshark.orig/epan/dissectors/packet-rsl.c 2011-09-06 12:29:45.000000000 +0200
+++ wireshark/epan/dissectors/packet-rsl.c 2011-09-06 13:25:12.000000000 +0200
@@ -39,8 +39,11 @@
#include <epan/packet.h>
#include <epan/proto.h>
#include <epan/lapd_sapi.h>
+#include <epan/prefs.h>
@ -32,33 +24,34 @@ index bf83f6f..213ae28 100644
+#include "packet-rtcp.h"
/* Initialize the protocol and registered fields */
static int proto_rsl = -1;
@@ -116,6 +120,24 @@ static int hf_rsl_emlpp_prio = -1;
static int hf_rsl_rtd = -1;
static int hf_rsl_delay_ind = -1;
static int hf_rsl_tfo = -1;
+static int hf_rsl_speech_mode_s = -1;
+static int hf_rsl_speech_mode_m = -1;
+static int hf_rsl_conn_stat = -1;
+static int hf_rsl_conn_id = -1;
+static int hf_rsl_rtp_payload = -1;
+static int hf_rsl_rtp_csd_fmt_d = -1;
+static int hf_rsl_rtp_csd_fmt_ir = -1;
+static int hf_rsl_local_port = -1;
+static int hf_rsl_remote_port = -1;
+static int hf_rsl_local_ip = -1;
+static int hf_rsl_remote_ip = -1;
+static int hf_rsl_cstat_tx_pkts = -1;
+static int hf_rsl_cstat_tx_octs = -1;
+static int hf_rsl_cstat_rx_pkts = -1;
+static int hf_rsl_cstat_rx_octs = -1;
+static int hf_rsl_cstat_lost_pkts = -1;
+static int hf_rsl_cstat_ia_jitter = -1;
+static int hf_rsl_cstat_avg_tx_dly = -1;
static int proto_rsl = -1;
@@ -115,6 +118,25 @@
static int hf_rsl_rtd = -1;
static int hf_rsl_delay_ind = -1;
static int hf_rsl_tfo = -1;
+static int hf_rsl_speech_mode_s = -1;
+static int hf_rsl_speech_mode_m = -1;
+static int hf_rsl_conn_stat = -1;
+static int hf_rsl_conn_id = -1;
+static int hf_rsl_rtp_payload = -1;
+static int hf_rsl_rtp_csd_fmt_d = -1;
+static int hf_rsl_rtp_csd_fmt_ir = -1;
+static int hf_rsl_local_port = -1;
+static int hf_rsl_remote_port = -1;
+static int hf_rsl_local_ip = -1;
+static int hf_rsl_remote_ip = -1;
+static int hf_rsl_cstat_tx_pkts = -1;
+static int hf_rsl_cstat_tx_octs = -1;
+static int hf_rsl_cstat_rx_pkts = -1;
+static int hf_rsl_cstat_rx_octs = -1;
+static int hf_rsl_cstat_lost_pkts = -1;
+static int hf_rsl_cstat_ia_jitter = -1;
+static int hf_rsl_cstat_avg_tx_dly = -1;
+
/* Initialize the subtree pointers */
static int ett_rsl = -1;
@@ -173,6 +195,15 @@ static int ett_ie_cause = -1;
@@ -172,6 +194,15 @@
static int ett_ie_meas_res_no = -1;
static int ett_ie_message_id = -1;
static int ett_ie_sys_info_type = -1;
@ -74,7 +67,7 @@ index bf83f6f..213ae28 100644
static proto_tree *top_tree;
static dissector_handle_t gsm_a_ccch_handle;
@@ -180,6 +211,9 @@ static dissector_handle_t gsm_a_dtap_handle;
@@ -179,6 +210,9 @@
static gboolean is_si2q = FALSE;
@ -84,21 +77,20 @@ index bf83f6f..213ae28 100644
/* Forward declarations */
static int dissct_rsl_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset);
@@ -208,8 +242,11 @@ static const value_string rsl_msg_disc_vals[] = {
{ 0x06, "Common Channel Management messages" },
{ 0x08, "TRX Management messages" },
{ 0x16, "Location Services messages" },
+ { 0x3f, "ip.access Vendor Specific messages" },
{ 0, NULL }
@@ -208,8 +242,10 @@
{ 0x06, "Common Channel Management messages" },
{ 0x08, "TRX Management messages" },
{ 0x16, "Location Services messages" },
+ { 0x3f, "ip.access Vendor Specific messages" },
{ 0, NULL }
};
+#define RSL_MSGDISC_IPACCESS 0x3f
+
/*
* 9.2 MESSAGE TYPE
*/
@@ -276,6 +313,49 @@ static const value_string rsl_msg_disc_vals[] = {
/* 0 1 - - - - - - Location Services messages: */
#define RSL_MSG_LOC_INF 65 /* 8.7.1 */
@@ -277,6 +313,49 @@
/* 0 1 - - - - - - Location Services messages: */
#define RSL_MSG_LOC_INF 65 /* 8.7.1 */
+/* Vendor-Specific messages of ip.access nanoBTS. There is no public documentation
+ * about those extensions, all information in this dissector is based on lawful
@ -145,39 +137,38 @@ index bf83f6f..213ae28 100644
+#define RSL_IE_IPAC_RTP_MPLEX_ID 0xfe
static const value_string rsl_msg_type_vals[] = {
/* 0 0 0 0 - - - - Radio Link Layer Management messages: */
@@ -338,6 +418,26 @@ static const value_string rsl_msg_type_vals[] = {
{ 0x3f, "TFO MODification REQuest" }, /* 8.4.31 */
/* 0 1 - - - - - - Location Services messages: */
{ 0x41, "Location Information" }, /* 8.7.1 */
+ /* ip.access */
+ { 0x48, "ip.access PDCH ACTIVATION" },
+ { 0x49, "ip.access PDCH ACTIVATION ACK" },
+ { 0x4a, "ip.access PDCH ACTIVATION NACK" },
+ { 0x4b, "ip.access PDCH DEACTIVATION" },
+ { 0x4c, "ip.access PDCH DEACTIVATION ACK" },
+ { 0x4d, "ip.access PDCH DEACTIVATION NACK" },
+ { 0x60, "ip.access MEASurement PREPROCessing DeFauLT" },
+ { 0x61, "ip.access HANDOover CANDidate ENQuiry" },
+ { 0x62, "ip.access HANDOover CANDidate RESPonse" },
+ { 0x70, "ip.access CRCX" },
+ { 0x71, "ip.access CRCX ACK" },
+ { 0x72, "ip.access CRCX NACK" },
+ { 0x73, "ip.access MDCX" },
+ { 0x74, "ip.access MDCX ACK" },
+ { 0x75, "ip.access MDCX NACK" },
+ { 0x76, "ip.access DLCX INDication" },
+ { 0x77, "ip.access DLCX" },
+ { 0x78, "ip.access DLCX ACK" },
+ { 0x79, "ip.access DLCX NACK" },
{ 0, NULL }
/* 0 0 0 0 - - - - Radio Link Layer Management messages: */
@@ -339,6 +418,26 @@
{ 0x3f, "TFO MODification REQuest" }, /* 8.4.31 */
/* 0 1 - - - - - - Location Services messages: */
{ 0x41, "Location Information" }, /* 8.7.1 */
+ /* ip.access */
+ { 0x48, "ip.access PDCH ACTIVATION" },
+ { 0x49, "ip.access PDCH ACTIVATION ACK" },
+ { 0x4a, "ip.access PDCH ACTIVATION NACK" },
+ { 0x4b, "ip.access PDCH DEACTIVATION" },
+ { 0x4c, "ip.access PDCH DEACTIVATION ACK" },
+ { 0x4d, "ip.access PDCH DEACTIVATION NACK" },
+ { 0x60, "ip.access MEASurement PREPROCessing DeFauLT" },
+ { 0x61, "ip.access HANDOover CANDidate ENQuiry" },
+ { 0x62, "ip.access HANDOover CANDidate RESPonse" },
+ { 0x70, "ip.access CRCX" },
+ { 0x71, "ip.access CRCX ACK" },
+ { 0x72, "ip.access CRCX NACK" },
+ { 0x73, "ip.access MDCX" },
+ { 0x74, "ip.access MDCX ACK" },
+ { 0x75, "ip.access MDCX NACK" },
+ { 0x76, "ip.access DLCX INDication" },
+ { 0x77, "ip.access DLCX" },
+ { 0x78, "ip.access DLCX ACK" },
+ { 0x79, "ip.access DLCX NACK" },
{ 0, NULL }
};
@@ -371,10 +471,10 @@ static const value_string rsl_msg_type_vals[] = {
#define RSL_IE_MESSAGE_ID 28
@@ -373,9 +472,10 @@
#define RSL_IE_SYS_INFO_TYPE 30
#define RSL_IE_SYS_INFO_TYPE 30
-
-
-
-
@ -185,13 +176,13 @@ index bf83f6f..213ae28 100644
+#define RSL_IE_BS_POWER_PARAM 32
+#define RSL_IE_PREPROC_PARAM 33
+#define RSL_IE_PREPROC_MEAS 34
#define RSL_IE_FULL_IMM_ASS_INF 35
#define RSL_IE_SMSCB_INF 36
#define RSL_IE_FULL_MS_TIMING_OFFSET 37
@@ -477,6 +577,24 @@ static const value_string rsl_ie_type_vals[] = {
Not used
#define RSL_IE_FULL_IMM_ASS_INF 35
#define RSL_IE_SMSCB_INF 36
#define RSL_IE_FULL_MS_TIMING_OFFSET 37
@@ -478,6 +578,24 @@
Not used
*/
*/
+ { 0xe0, "SRTP Configuration" },
+ { 0xe1, "BSC Proxy UDP Port" },
+ { 0xe2, "BSC Multiplex Timeout" },
@ -210,11 +201,11 @@ index bf83f6f..213ae28 100644
+ { 0xfc, "RTP Payload Type 2" },
+ { 0xfd, "RTP Multiplex" },
+ { 0xfe, "RTP Multiplex Identifier" },
{ 0, NULL }
{ 0, NULL }
};
@@ -513,6 +631,27 @@ static const value_string rsl_ch_no_Cbits_vals[] = {
{ 0, NULL }
@@ -514,6 +632,27 @@
{ 0, NULL }
};
+/* From openbsc/include/openbsc/tlv.h */
@ -238,18 +229,10 @@ index bf83f6f..213ae28 100644
+/* This structure is initialized in proto_register_rsl() */
+static struct tlv_definition rsl_att_tlvdef;
+
/* 9.3.1 Channel number 9.3.1 M TV 2 */
/* 9.3.1 Channel number 9.3.1 M TV 2 */
static int
dissect_rsl_ie_ch_no(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
@@ -2045,7 +2184,6 @@ dissect_rsl_ie_err_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
proto_item_set_len(ti, length+2);
proto_tree_add_item(ie_tree, hf_rsl_ie_length, tvb, offset, 1, FALSE);
- offset++;
/* Received Message */
offset = dissct_rsl_msg(tvb, pinfo, ie_tree, offset);
@@ -2910,12 +3048,184 @@ dissect_rsl_ie_tfo_transp_cont(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree
@@ -2918,12 +3057,184 @@
}
static int
@ -421,41 +404,41 @@ index bf83f6f..213ae28 100644
+static int
dissct_rsl_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
{
- guint8 msg_type;
+ guint8 msg_disc, msg_type;
- guint8 msg_type;
+ guint8 msg_disc, msg_type;
+ msg_disc = tvb_get_guint8(tvb, offset++) >> 1;
msg_type = tvb_get_guint8(tvb,offset)&0x7f;
proto_tree_add_item(tree, hf_rsl_msg_type, tvb, offset, 1, FALSE);
+ msg_disc = tvb_get_guint8(tvb, offset++) >> 1;
msg_type = tvb_get_guint8(tvb,offset)&0x7f;
proto_tree_add_item(tree, hf_rsl_msg_type, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+ if (msg_disc == RSL_MSGDISC_IPACCESS) {
+ offset = dissct_rsl_ipaccess_msg(tvb, pinfo, tree, offset);
+ return offset;
+ }
offset++;
+ if (msg_disc == RSL_MSGDISC_IPACCESS) {
+ offset = dissct_rsl_ipaccess_msg(tvb, pinfo, tree, offset);
+ return offset;
+ }
offset++;
switch (msg_type){
@@ -3483,6 +3793,18 @@ dissct_rsl_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
/* LLP APDU 9.3.58 M LV 2-N */
offset = dissect_rsl_ie_llp_apdu(tvb, pinfo, tree, offset, TRUE);
break;
switch (msg_type){
@@ -3491,6 +3802,18 @@
/* LLP APDU 9.3.58 M LV 2-N */
offset = dissect_rsl_ie_llp_apdu(tvb, pinfo, tree, offset, TRUE);
break;
+ /* the following messages are ip.access specific but sent without
+ * ip.access memssage discriminator */
+ case RSL_MSG_TYPE_IPAC_MEAS_PP_DEF:
+ case RSL_MSG_TYPE_IPAC_HO_CAND_INQ:
+ case RSL_MSG_TYPE_IPAC_HO_CAND_RESP:
+ case RSL_MSG_TYPE_IPAC_PDCH_ACT:
+ case RSL_MSG_TYPE_IPAC_PDCH_ACT_ACK:
+ case RSL_MSG_TYPE_IPAC_PDCH_ACT_NACK:
+ case RSL_MSG_TYPE_IPAC_PDCH_DEACT:
+ case RSL_MSG_TYPE_IPAC_PDCH_DEACT_ACK:
+ case RSL_MSG_TYPE_IPAC_PDCH_DEACT_NACK:
+ offset = dissct_rsl_ipaccess_msg(tvb, pinfo, tree, offset-1);
default:
break;
}
@@ -3490,6 +3812,40 @@ dissct_rsl_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
return offset;
+ case RSL_MSG_TYPE_IPAC_MEAS_PP_DEF:
+ case RSL_MSG_TYPE_IPAC_HO_CAND_INQ:
+ case RSL_MSG_TYPE_IPAC_HO_CAND_RESP:
+ case RSL_MSG_TYPE_IPAC_PDCH_ACT:
+ case RSL_MSG_TYPE_IPAC_PDCH_ACT_ACK:
+ case RSL_MSG_TYPE_IPAC_PDCH_ACT_NACK:
+ case RSL_MSG_TYPE_IPAC_PDCH_DEACT:
+ case RSL_MSG_TYPE_IPAC_PDCH_DEACT_ACK:
+ case RSL_MSG_TYPE_IPAC_PDCH_DEACT_NACK:
+ offset = dissct_rsl_ipaccess_msg(tvb, pinfo, tree, offset-1);
default:
break;
}
@@ -3498,6 +3821,40 @@
return offset;
}
+
@ -495,31 +478,31 @@ index bf83f6f..213ae28 100644
static void
dissect_rsl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
@@ -3512,12 +3868,19 @@ dissect_rsl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
top_tree = tree;
if (tree) {
ti = proto_tree_add_item(tree, proto_rsl, tvb, 0, -1, FALSE);
@@ -3518,12 +3875,19 @@
top_tree = tree;
if (tree) {
ti = proto_tree_add_item(tree, proto_rsl, tvb, 0, -1, ENC_BIG_ENDIAN);
+
+ /* if nanoBTS specific vendor messages are not enabled, skip */
+ if (!global_rsl_use_nano_bts) {
+ guint8 msg_disc = tvb_get_guint8(tvb, offset) >> 1;
+ /* if nanoBTS specific vendor messages are not enabled, skip */
+ if (!global_rsl_use_nano_bts) {
+ guint8 msg_disc = tvb_get_guint8(tvb, offset) >> 1;
+
+ if (msg_disc == RSL_MSGDISC_IPACCESS)
+ return;
+ }
rsl_tree = proto_item_add_subtree(ti, ett_rsl);
+ if (msg_disc == RSL_MSGDISC_IPACCESS)
+ return;
+ }
rsl_tree = proto_item_add_subtree(ti, ett_rsl);
/* 9.1 Message discriminator */
proto_tree_add_item(rsl_tree, hf_rsl_msg_dsc, tvb, offset, 1, FALSE);
proto_tree_add_item(rsl_tree, hf_rsl_T_bit, tvb, offset, 1, FALSE);
- offset++;
/* 9.1 Message discriminator */
proto_tree_add_item(rsl_tree, hf_rsl_msg_dsc, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(rsl_tree, hf_rsl_T_bit, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset++;
offset = dissct_rsl_msg(tvb, pinfo, rsl_tree, offset);
offset = dissct_rsl_msg(tvb, pinfo, rsl_tree, offset);
@@ -3892,6 +4255,86 @@ void proto_register_rsl(void)
FT_UINT8, BASE_DEC, VALS(rsl_emlpp_prio_vals), 0x03,
NULL, HFILL }
},
@@ -3898,6 +4262,86 @@
FT_UINT8, BASE_DEC, VALS(rsl_emlpp_prio_vals), 0x03,
NULL, HFILL }
},
+ { &hf_rsl_speech_mode_s,
+ { "ip.access Speech Mode S", "rsl.ipacc.speech_mode_s",
+ FT_UINT8, BASE_HEX, VALS(rsl_ipacc_spm_s_vals),
@ -600,22 +583,22 @@ index bf83f6f..213ae28 100644
+ { "Average Tx Delay", "rsl.ipacc.cstat.avg_tx_delay",
+ FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }
+ },
};
static gint *ett[] = {
&ett_rsl,
@@ -3949,7 +4392,88 @@ void proto_register_rsl(void)
&ett_ie_meas_res_no,
&ett_ie_message_id,
&ett_ie_sys_info_type,
+ &ett_ie_speech_mode,
+ &ett_ie_conn_stat,
+ &ett_ie_conn_id,
+ &ett_ie_remote_ip,
+ &ett_ie_remote_port,
+ &ett_ie_local_port,
+ &ett_ie_local_ip,
+ &ett_ie_rtp_payload,
};
};
static gint *ett[] = {
&ett_rsl,
@@ -3955,7 +4399,88 @@
&ett_ie_meas_res_no,
&ett_ie_message_id,
&ett_ie_sys_info_type,
+ &ett_ie_speech_mode,
+ &ett_ie_conn_stat,
+ &ett_ie_conn_id,
+ &ett_ie_remote_ip,
+ &ett_ie_remote_port,
+ &ett_ie_local_port,
+ &ett_ie_local_ip,
+ &ett_ie_rtp_payload,
};
+ module_t *rsl_module;
+
+#define RSL_ATT_TLVDEF(_attr, _type, _fixed_len) \
@ -690,11 +673,11 @@ index bf83f6f..213ae28 100644
+ RSL_ATT_TLVDEF(RSL_IE_IPAC_CONN_ID, TLV_TYPE_FIXED, 2);
+ RSL_ATT_TLVDEF(RSL_IE_IPAC_RTP_PAYLOAD2,TLV_TYPE_TV, 0);
/* Register the protocol name and description */
proto_rsl = proto_register_protocol("Radio Signalling Link (RSL)",
@@ -3960,5 +4484,9 @@ void proto_register_rsl(void)
/* Register the protocol name and description */
proto_rsl = proto_register_protocol("Radio Signalling Link (RSL)",
@@ -3966,5 +4491,9 @@
register_dissector("gsm_abis_rsl", dissect_rsl, proto_rsl);
register_dissector("gsm_abis_rsl", dissect_rsl, proto_rsl);
+ rsl_module = prefs_register_protocol(proto_rsl, proto_reg_handoff_rsl);
+ prefs_register_bool_preference(rsl_module, "use_ipaccess_rsl",

View File

@ -1,28 +1,28 @@
Index: wireshark/epan/dissectors/packet-rsl.c
===================================================================
--- wireshark.orig/epan/dissectors/packet-rsl.c 2011-01-13 12:51:02.000000000 +0100
+++ wireshark/epan/dissectors/packet-rsl.c 2011-01-15 18:05:20.000000000 +0100
@@ -2,7 +2,7 @@
--- wireshark.orig/epan/dissectors/packet-rsl.c 2011-09-06 13:57:15.000000000 +0200
+++ wireshark/epan/dissectors/packet-rsl.c 2011-09-06 14:11:09.000000000 +0200
@@ -2,6 +2,7 @@
* Routines for Radio Signalling Link (RSL) dissection.
*
* Copyright 2007, Anders Broman <anders.broman@ericsson.com>
- * Copyright 2009, Harald Welte <laforge@gnumonks.org>
* Copyright 2007, 2011, Anders Broman <anders.broman@ericsson.com>
+ * Copyright 2009-2011, Harald Welte <laforge@gnumonks.org>
*
* $Id: packet-rsl.c 35224 2010-12-20 05:35:29Z guy $
* $Id: packet-rsl.c 38413 2011-08-08 17:59:32Z wmeier $
*
@@ -137,6 +137,14 @@
static int hf_rsl_cstat_lost_pkts = -1;
static int hf_rsl_cstat_ia_jitter = -1;
static int hf_rsl_cstat_avg_tx_dly = -1;
@@ -136,7 +137,14 @@
static int hf_rsl_cstat_lost_pkts = -1;
static int hf_rsl_cstat_ia_jitter = -1;
static int hf_rsl_cstat_avg_tx_dly = -1;
-
+/* HSL */
+static int hf_rsl_hsl_bts_serno = -1;
+static int hf_rsl_hsl_bts_ver = -1;
+static int hf_rsl_hsl_dsp_ver = -1;
+static int hf_rsl_hsl_fpga_ver = -1;
+static int hf_rsl_hsl_trau_remote_port = -1;
+static int hf_rsl_hsl_trau_remote_ip = -1;
+static int hf_rsl_hsl_tx_power = -1;
+static int hf_rsl_hsl_bts_serno = -1;
+static int hf_rsl_hsl_bts_ver = -1;
+static int hf_rsl_hsl_dsp_ver = -1;
+static int hf_rsl_hsl_fpga_ver = -1;
+static int hf_rsl_hsl_trau_remote_port = -1;
+static int hf_rsl_hsl_trau_remote_ip = -1;
+static int hf_rsl_hsl_tx_power = -1;
/* Initialize the subtree pointers */
static int ett_rsl = -1;
@ -34,19 +34,19 @@ Index: wireshark/epan/dissectors/packet-rsl.c
static gboolean is_si2q = FALSE;
@@ -239,9 +248,11 @@
{ 0x08, "TRX Management messages" },
{ 0x16, "Location Services messages" },
{ 0x3f, "ip.access Vendor Specific messages" },
+ { 0x80, "HSL Vendor Specific messages" },
{ 0, NULL }
@@ -243,9 +252,11 @@
{ 0x08, "TRX Management messages" },
{ 0x16, "Location Services messages" },
{ 0x3f, "ip.access Vendor Specific messages" },
+ { 0x80, "HSL Vendor Specific messages" },
{ 0, NULL }
};
#define RSL_MSGDISC_IPACCESS 0x3f
+#define RSL_MSGDISC_HSL 0x40
/*
* 9.2 MESSAGE TYPE
@@ -353,6 +364,22 @@
*/
@@ -357,6 +368,22 @@
#define RSL_IE_IPAC_RTP_MPLEX 0xfd
#define RSL_IE_IPAC_RTP_MPLEX_ID 0xfe
@ -67,30 +67,30 @@ Index: wireshark/epan/dissectors/packet-rsl.c
+#define RSL_IE_HSL_FPGA_VERSION 0xc7
+
static const value_string rsl_msg_type_vals[] = {
/* 0 0 0 0 - - - - Radio Link Layer Management messages: */
{ 0x01, "DATA REQuest" }, /* 8.3.1 */
@@ -434,6 +461,12 @@
{ 0x77, "ip.access DLCX" },
{ 0x78, "ip.access DLCX ACK" },
{ 0x79, "ip.access DLCX NACK" },
+ /* HSL */
+ { 0x80, "HSL IDENTIFY" },
+ { 0x81, "HSL CONNECT TRAU" },
+ { 0x82, "HSL BSSGP" },
+ { 0x83, "HSL GPRS TS ALLOC" },
+ { 0x8a, "HSL TX SET POWER" },
{ 0, NULL }
/* 0 0 0 0 - - - - Radio Link Layer Management messages: */
{ 0x01, "DATA REQuest" }, /* 8.3.1 */
@@ -438,6 +465,12 @@
{ 0x77, "ip.access DLCX" },
{ 0x78, "ip.access DLCX ACK" },
{ 0x79, "ip.access DLCX NACK" },
+ /* HSL */
+ { 0x80, "HSL IDENTIFY" },
+ { 0x81, "HSL CONNECT TRAU" },
+ { 0x82, "HSL BSSGP" },
+ { 0x83, "HSL GPRS TS ALLOC" },
+ { 0x8a, "HSL TX SET POWER" },
{ 0, NULL }
};
@@ -573,6 +606,7 @@
Not used
@@ -578,6 +611,7 @@
Not used
*/
*/
+ /* ip.access */
{ 0xe0, "SRTP Configuration" },
{ 0xe1, "BSC Proxy UDP Port" },
{ 0xe2, "BSC Multiplex Timeout" },
@@ -591,6 +625,13 @@
@@ -596,6 +630,13 @@
{ 0xfc, "RTP Payload Type 2" },
{ 0xfd, "RTP Multiplex" },
{ 0xfe, "RTP Multiplex Identifier" },
@ -101,24 +101,10 @@ Index: wireshark/epan/dissectors/packet-rsl.c
+ { 0xc5, "HSL BTS SW Version" },
+ { 0xc6, "HSL DSP SW Version" },
+ { 0xc7, "HSL FPGA SW Version" },
{ 0, NULL }
{ 0, NULL }
};
@@ -714,6 +755,13 @@
[RSL_IE_IPAC_SPEECH_MODE] = { TLV_TYPE_TV, 0 },
[RSL_IE_IPAC_CONN_ID] = { TLV_TYPE_FIXED, 2 },
[RSL_IE_IPAC_RTP_PAYLOAD2] = { TLV_TYPE_TV, 0 },
+ /* HSL */
+ [RSL_IE_HSL_BTS_SERNO] = { TLV_TYPE_TLV,0 },
+ [RSL_IE_HSL_TRAU_PARAMS] = { TLV_TYPE_TLV,0 },
+ [RSL_IE_HSL_TX_POWER] = { TLV_TYPE_TV, 0 },
+ [RSL_IE_HSL_BTS_VERSION] = { TLV_TYPE_TLV, 0 },
+ [RSL_IE_HSL_DSP_VERSION] = { TLV_TYPE_TLV, 0 },
+ [RSL_IE_HSL_FPGA_VERSION] = { TLV_TYPE_TLV, 0 },
},
};
@@ -3118,9 +3166,10 @@
@@ -3062,9 +3103,10 @@
guint8 msg_type;
guint32 local_addr = 0;
guint16 local_port = 0;
@ -130,7 +116,7 @@ Index: wireshark/epan/dissectors/packet-rsl.c
offset++;
#if 0
@@ -3259,20 +3308,62 @@
@@ -3203,20 +3245,62 @@
proto_tree_add_item(ie_tree, hf_rsl_cstat_avg_tx_dly, tvb,
offset+24, 4, FALSE);
break;
@ -193,48 +179,48 @@ Index: wireshark/epan/dissectors/packet-rsl.c
break;
}
return offset;
@@ -3284,10 +3375,12 @@
guint8 msg_disc, msg_type;
@@ -3228,10 +3312,12 @@
guint8 msg_disc, msg_type;
msg_disc = tvb_get_guint8(tvb, offset++) >> 1;
- msg_type = tvb_get_guint8(tvb,offset)&0x7f;
+ msg_type = tvb_get_guint8(tvb,offset)&0xff;
proto_tree_add_item(tree, hf_rsl_msg_type, tvb, offset, 1, FALSE);
msg_disc = tvb_get_guint8(tvb, offset++) >> 1;
- msg_type = tvb_get_guint8(tvb,offset)&0x7f;
+ msg_type = tvb_get_guint8(tvb,offset);
proto_tree_add_item(tree, hf_rsl_msg_type, tvb, offset, 1, ENC_BIG_ENDIAN);
- if (msg_disc == RSL_MSGDISC_IPACCESS) {
+ switch (msg_disc) {
+ case RSL_MSGDISC_HSL:
+ case RSL_MSGDISC_IPACCESS:
offset = dissct_rsl_ipaccess_msg(tvb, pinfo, tree, offset);
return offset;
}
@@ -3924,7 +4017,7 @@
col_set_str(pinfo->cinfo, COL_PROTOCOL, "RSL");
col_clear(pinfo->cinfo, COL_INFO);
- if (msg_disc == RSL_MSGDISC_IPACCESS) {
+ switch (msg_disc) {
+ case RSL_MSGDISC_HSL:
+ case RSL_MSGDISC_IPACCESS:
offset = dissct_rsl_ipaccess_msg(tvb, pinfo, tree, offset);
return offset;
}
@@ -3868,7 +3954,7 @@
col_set_str(pinfo->cinfo, COL_PROTOCOL, "RSL");
col_clear(pinfo->cinfo, COL_INFO);
- msg_type = tvb_get_guint8(tvb,offset+1)&0x7f;
+ msg_type = tvb_get_guint8(tvb,offset+1)&0xff;
- msg_type = tvb_get_guint8(tvb,offset+1)&0x7f;
+ msg_type = tvb_get_guint8(tvb,offset+1);
if (check_col(pinfo->cinfo, COL_INFO)){
col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",val_to_str(msg_type, rsl_msg_type_vals,"unknown %u"));
@@ -3955,6 +4048,7 @@
col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",val_to_str(msg_type, rsl_msg_type_vals,"unknown %u"));
gsm_a_ccch_handle = find_dissector("gsm_a_ccch");
gsm_a_dtap_handle = find_dissector("gsm_a_dtap");
+ bssgp_handle = find_dissector("bssgp");
@@ -3905,6 +3991,7 @@
gsm_a_ccch_handle = find_dissector("gsm_a_ccch");
gsm_a_dtap_handle = find_dissector("gsm_a_dtap");
+ bssgp_handle = find_dissector("bssgp");
}
/* Register the protocol with Wireshark */
@@ -3975,7 +4069,7 @@
},
{ &hf_rsl_msg_type,
{ "Message type", "rsl.msg_type",
- FT_UINT8, BASE_HEX_DEC, VALS(rsl_msg_type_vals), 0x7f,
+ FT_UINT8, BASE_HEX_DEC, VALS(rsl_msg_type_vals), 0xff,
NULL, HFILL }
},
{ &hf_rsl_ie_id,
@@ -4392,6 +4486,36 @@
@@ -3925,7 +4012,7 @@
},
{ &hf_rsl_msg_type,
{ "Message type", "rsl.msg_type",
- FT_UINT8, BASE_HEX_DEC, VALS(rsl_msg_type_vals), 0x7f,
+ FT_UINT8, BASE_HEX_DEC, VALS(rsl_msg_type_vals), 0xff,
NULL, HFILL }
},
{ &hf_rsl_ie_id,
@@ -4342,6 +4429,35 @@
{ "Average Tx Delay", "rsl.ipacc.cstat.avg_tx_delay",
FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }
},
@ -267,7 +253,20 @@ Index: wireshark/epan/dissectors/packet-rsl.c
+ { "HSL TRAU Remote IP Address", "rsl.hsl.trau.remote_ip",
+ FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL },
+ },
+
};
static gint *ett[] = {
&ett_rsl,
};
static gint *ett[] = {
&ett_rsl,
@@ -4481,6 +4597,13 @@
RSL_ATT_TLVDEF(RSL_IE_IPAC_SPEECH_MODE, TLV_TYPE_TV, 0);
RSL_ATT_TLVDEF(RSL_IE_IPAC_CONN_ID, TLV_TYPE_FIXED, 2);
RSL_ATT_TLVDEF(RSL_IE_IPAC_RTP_PAYLOAD2,TLV_TYPE_TV, 0);
+ /* HSL */
+ RSL_ATT_TLVDEF(RSL_IE_HSL_BTS_SERNO, TLV_TYPE_TLV, 0);
+ RSL_ATT_TLVDEF(RSL_IE_HSL_TRAU_PARAMS, TLV_TYPE_TLV, 0);
+ RSL_ATT_TLVDEF(RSL_IE_HSL_TX_POWER, TLV_TYPE_TV, 0);
+ RSL_ATT_TLVDEF(RSL_IE_HSL_BTS_VERSION, TLV_TYPE_TLV, 0);
+ RSL_ATT_TLVDEF(RSL_IE_HSL_DSP_VERSION, TLV_TYPE_TLV, 0);
+ RSL_ATT_TLVDEF(RSL_IE_HSL_FPGA_VERSION, TLV_TYPE_TLV, 0);
/* Register the protocol name and description */
proto_rsl = proto_register_protocol("Radio Signalling Link (RSL)",

View File

@ -1,7 +1,7 @@
Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c
===================================================================
--- wireshark.orig/epan/dissectors/packet-gsm_abis_oml.c 2011-01-13 10:11:08.000000000 +0100
+++ wireshark/epan/dissectors/packet-gsm_abis_oml.c 2011-01-13 10:13:22.000000000 +0100
--- wireshark.orig/epan/dissectors/packet-gsm_abis_oml.c 2011-09-06 13:57:13.000000000 +0200
+++ wireshark/epan/dissectors/packet-gsm_abis_oml.c 2011-09-06 14:12:12.000000000 +0200
@@ -131,6 +131,7 @@
{ ABIS_OM_MDISC_MMI, "MMI Transfer" },
{ ABIS_OM_MDISC_TRAU, "TRAU O&M" },
@ -10,7 +10,7 @@ Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c
};
/* TS 12.21 Chapter 8.1.1 */
@@ -1223,6 +1224,7 @@
@@ -1197,6 +1198,7 @@
switch (msg_disc) {
case ABIS_OM_MDISC_FOM:
@ -20,8 +20,8 @@ Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c
break;
Index: wireshark/epan/dissectors/packet-gsm_abis_oml.h
===================================================================
--- wireshark.orig/epan/dissectors/packet-gsm_abis_oml.h 2011-01-13 10:11:25.000000000 +0100
+++ wireshark/epan/dissectors/packet-gsm_abis_oml.h 2011-01-13 10:11:54.000000000 +0100
--- wireshark.orig/epan/dissectors/packet-gsm_abis_oml.h 2011-09-06 12:30:44.000000000 +0200
+++ wireshark/epan/dissectors/packet-gsm_abis_oml.h 2011-09-06 14:12:12.000000000 +0200
@@ -40,6 +40,7 @@
#define ABIS_OM_MDISC_MMI 0x40
#define ABIS_OM_MDISC_TRAU 0x20

View File

@ -1,7 +1,7 @@
These are patches to wireshark to add/enhance the GSM support.
== Basic ==
The patches apply to SVN revision r35476 and were created
The patches apply to SVN revision r38894 and were created
using git format-patch. They can be either applied via the
patch command or using git am on a git clone of wireshark.