From 7c78c479aca4475761570db24abd202cfcfcdc9d Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Tue, 6 Sep 2011 21:09:05 +0200 Subject: update wireshark patches to current wireshark svn --- wireshark/0001-abis_oml.patch | 65 ++++--- wireshark/0002-ericsson_rbs2409.patch | 83 +++++---- wireshark/0003-lucent-hnb.patch | 32 ++-- wireshark/0004-rsl-ipaccess.patch | 319 ++++++++++++++++------------------ wireshark/0005-rsl-hsl.patch | 193 ++++++++++---------- wireshark/0006-abis_oml-hsl.patch | 10 +- wireshark/README | 2 +- 7 files changed, 344 insertions(+), 360 deletions(-) (limited to 'wireshark') 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 @@ -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 @@ -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 -+ * Copyright 2009, Harald Welte - * - * $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 - #include #include +#include @@ -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 -- * Copyright 2009, Harald Welte + * Copyright 2007, 2011, Anders Broman + * Copyright 2009-2011, Harald Welte * - * $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. -- cgit v1.2.3