update wireshark patches to current wireshark svn
diff --git a/wireshark/0001-abis_oml.patch b/wireshark/0001-abis_oml.patch
index f67a431..90f4480 100644
--- a/wireshark/0001-abis_oml.patch
+++ b/wireshark/0001-abis_oml.patch
@@ -15,9 +15,9 @@
 
 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 @@
  	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/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 @@
 +	{ 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 @@
 +/* 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 @@
 +	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 @@
 +
 +/* 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 @@
 +						 	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 @@
 +					    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 @@
 +	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.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 b13e416..d467354 100644
--- a/wireshark/0002-ericsson_rbs2409.patch
+++ b/wireshark/0002-ericsson_rbs2409.patch
@@ -15,11 +15,11 @@
  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 @@
  )
  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 @@
  	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 @@
 +					    len-header_length, FALSE);
 +		}
 +
++		if (len == 0)
++			len = 1;
 +		offset += len;
 +	}
 +}
@@ -366,11 +367,10 @@
 +
 +	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 @@
 +		/* 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 @@
  /* 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 @@
  
  		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 @@
  		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 @@
  	}
  }
  
-@@ -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 @@
  }
  
  /* 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 @@
  
  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 @@
      {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 @@
  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 @@
  	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 4957db7..c9fc3dc 100644
--- a/wireshark/0003-lucent-hnb.patch
+++ b/wireshark/0003-lucent-hnb.patch
@@ -11,11 +11,11 @@
  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 @@
  	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 @@
  	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 @@
 +	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 e68c362..992d130 100644
--- a/wireshark/0004-rsl-ipaccess.patch
+++ b/wireshark/0004-rsl-ipaccess.patch
@@ -9,21 +9,13 @@
  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 @@
 +#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 @@
  
  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 @@
  /* 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 @@
 +#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 @@
 +#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 @@
 +	{ 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 @@
 +/* 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 @@
 +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 @@
  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 @@
 +			{ "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 @@
 +	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 409d724..4ffaccd 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 @@
  
  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 @@
 +#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 @@
 +	{ 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 @@
  	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 @@
  		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 @@
 +			{ "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 28885ab..e31610e 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 @@
  };
  
  /* 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 @@
  			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 39c1809..d3cde1a 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.