aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2011-09-06 21:09:05 +0200
committerHarald Welte <laforge@gnumonks.org>2011-09-06 21:09:34 +0200
commit7c78c479aca4475761570db24abd202cfcfcdc9d (patch)
tree0bfb6fc94e7b1ee9536cb0f3be21fe7cd360d223
parentd02e68b24dff1bdc0691d4599306556875b84805 (diff)
update wireshark patches to current wireshark svn
-rw-r--r--wireshark/0001-abis_oml.patch65
-rw-r--r--wireshark/0002-ericsson_rbs2409.patch83
-rw-r--r--wireshark/0003-lucent-hnb.patch32
-rw-r--r--wireshark/0004-rsl-ipaccess.patch319
-rw-r--r--wireshark/0005-rsl-hsl.patch193
-rw-r--r--wireshark/0006-abis_oml-hsl.patch10
-rw-r--r--wireshark/README2
7 files changed, 344 insertions, 360 deletions
diff --git a/wireshark/0001-abis_oml.patch b/wireshark/0001-abis_oml.patch
index f67a431f7..90f44802c 100644
--- a/wireshark/0001-abis_oml.patch
+++ b/wireshark/0001-abis_oml.patch
@@ -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 */
diff --git a/wireshark/0002-ericsson_rbs2409.patch b/wireshark/0002-ericsson_rbs2409.patch
index b13e4163c..d467354aa 100644
--- a/wireshark/0002-ericsson_rbs2409.patch
+++ b/wireshark/0002-ericsson_rbs2409.patch
@@ -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
-
diff --git a/wireshark/0003-lucent-hnb.patch b/wireshark/0003-lucent-hnb.patch
index 4957db71d..c9fc3dc47 100644
--- a/wireshark/0003-lucent-hnb.patch
+++ b/wireshark/0003-lucent-hnb.patch
@@ -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
-
diff --git a/wireshark/0004-rsl-ipaccess.patch b/wireshark/0004-rsl-ipaccess.patch
index e68c36261..992d130dc 100644
--- a/wireshark/0004-rsl-ipaccess.patch
+++ b/wireshark/0004-rsl-ipaccess.patch
@@ -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",
diff --git a/wireshark/0005-rsl-hsl.patch b/wireshark/0005-rsl-hsl.patch
index 409d72445..4ffaccd69 100644
--- a/wireshark/0005-rsl-hsl.patch
+++ b/wireshark/0005-rsl-hsl.patch
@@ -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 }
- };
-
-@@ -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 },
- },
+ { 0, NULL }
};
-@@ -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)",
diff --git a/wireshark/0006-abis_oml-hsl.patch b/wireshark/0006-abis_oml-hsl.patch
index 28885ab64..e31610e4d 100644
--- a/wireshark/0006-abis_oml-hsl.patch
+++ b/wireshark/0006-abis_oml-hsl.patch
@@ -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
diff --git a/wireshark/README b/wireshark/README
index 39c180971..d3cde1a1f 100644
--- a/wireshark/README
+++ b/wireshark/README
@@ -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.