diff --git a/openbsc/include/openbsc/abis_rsl.h b/openbsc/include/openbsc/abis_rsl.h
index a0df5e9..84a1697 100644
--- a/openbsc/include/openbsc/abis_rsl.h
+++ b/openbsc/include/openbsc/abis_rsl.h
@@ -123,8 +123,25 @@
 	RSL_MT_MR_CODEC_MOD_PER,
 	RSL_MT_TFO_REP,
 	RSL_MT_TFO_MOD_REQ,		/* 0x3f */
+	RSL_MT_LOCATION_INFO		= 0x41,
 
 	/* ip.access specific RSL message types */
+	RSL_MT_IPAC_DIR_RETR_ENQ	= 0x40,
+	RSL_MT_IPAC_PDCH_ACT		= 0x48,
+	RSL_MT_IPAC_PDCH_ACT_ACK,
+	RSL_MT_IPAC_PDCH_ACT_NACK,
+	RSL_MT_IPAC_PDCH_DEACT		= 0x4b,
+	RSL_MT_IPAC_PDCH_DEACT_ACK,
+	RSL_MT_IPAC_PDCH_DEACT_NACK,
+	RSL_MT_IPAC_CONNECT_MUX		= 0x50,
+	RSL_MT_IPAC_CONNECT_MUX_ACK,
+	RSL_MT_IPAC_CONNECT_MUX_NACK,
+	RSL_MT_IPAC_BIND_MUX		= 0x53,
+	RSL_MT_IPAC_BIND_MUX_ACK,
+	RSL_MT_IPAC_BIND_MUX_NACK,
+	RSL_MT_IPAC_DISC_MUX		= 0x56,
+	RSL_MT_IPAC_DISC_MUX_ACK,
+	RSL_MT_IPAC_DISC_MUX_NACK,
 	RSL_MT_IPAC_BIND		= 0x70,		/* Bind to local BTS RTP port */
 	RSL_MT_IPAC_BIND_ACK,
 	RSL_MT_IPAC_BIND_NACK,
@@ -132,7 +149,9 @@
 	RSL_MT_IPAC_CONNECT_ACK,
 	RSL_MT_IPAC_CONNECT_NACK,
 	RSL_MT_IPAC_DISCONNECT_IND	= 0x76,
-
+	RSL_MT_IPAC_DISCONNECT		= 0x77,
+	RSL_MT_IPAC_DISCONNECT_ACK,
+	RSL_MT_IPAC_DISCONNECT_NACK,
 };
 
 /* Chapter 9.3 */
diff --git a/wireshark/rsl-ipaccess.patch b/wireshark/rsl-ipaccess.patch
index 9eb631b..17d6441 100644
--- a/wireshark/rsl-ipaccess.patch
+++ b/wireshark/rsl-ipaccess.patch
@@ -1,7 +1,7 @@
 Index: wireshark/epan/dissectors/packet-rsl.c
 ===================================================================
---- wireshark.orig/epan/dissectors/packet-rsl.c	2009-07-11 10:11:27.000000000 +0200
-+++ wireshark/epan/dissectors/packet-rsl.c	2009-07-12 13:42:03.000000000 +0200
+--- wireshark.orig/epan/dissectors/packet-rsl.c	2009-07-12 14:07:48.000000000 +0200
++++ wireshark/epan/dissectors/packet-rsl.c	2009-07-12 21:58:21.000000000 +0200
 @@ -2,6 +2,7 @@
   * Routines for Radio Signalling Link (RSL) dissection.
   *
@@ -62,13 +62,24 @@
  /*
   * 9.2 MESSAGE TYPE
   */
-@@ -276,6 +299,35 @@
+@@ -276,6 +299,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
 + * protocol reverse enginering by Harald Welte <laforge@gnumonks.org> */
++#define RSL_MSG_TYPE_IPAC_MEAS_PP_DEF	0x60
++#define RSL_MSG_TYPE_IPAC_HO_CAND_INQ	0x61
++#define RSL_MSG_TYPE_IPAC_HO_CAND_RESP	0x62
++
++#define RSL_MSG_TYPE_IPAC_PDCH_ACT	0x48
++#define RSL_MSG_TYPE_IPAC_PDCH_ACT_ACK	0x49
++#define RSL_MSG_TYPE_IPAC_PDCH_ACT_NACK	0x4a
++#define RSL_MSG_TYPE_IPAC_PDCH_DEACT	0x4b
++#define RSL_MSG_TYPE_IPAC_PDCH_DEACT_ACK 0x4c
++#define RSL_MSG_TYPE_IPAC_PDCH_DEACT_NACK 0x4d
++
 +#define RSL_MSG_TYPE_IPAC_BIND		0x70
 +#define RSL_MSG_TYPE_IPAC_BIND_ACK	0x71
 +#define RSL_MSG_TYPE_IPAC_BIND_NACK	0x72
@@ -76,6 +87,9 @@
 +#define RSL_MSG_TYPE_IPAC_CONNECT_ACK	0x74
 +#define RSL_MSG_TYPE_IPAC_CONNECT_NACK	0x75
 +#define RSL_MSG_TYPE_IPAC_DISC_IND	0x76
++#define RSL_MSG_TYPE_IPAC_DISC		0x77
++#define RSL_MSG_TYPE_IPAC_DISC_ACK	0x78
++#define RSL_MSG_TYPE_IPAC_DISC_NACK	0x79
 +
 +#define RSL_IE_IPAC_SRTP_CONFIG		0xe0
 +#define RSL_IE_IPAC_PROXY_UDP		0xe1
@@ -98,11 +112,20 @@
  
  static const value_string rsl_msg_type_vals[] = {
  	  /* 	0 0 0 0 - - - - Radio Link Layer Management messages: */
-@@ -338,6 +390,14 @@
+@@ -338,6 +404,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 BIND" },
 +	{  0x71,	"ip.access BIND ACK" },
 +	{  0x72,	"ip.access BIND NACK" },
@@ -110,10 +133,28 @@
 +	{  0x74,	"ip.access CONNECT ACK" },
 +	{  0x75,	"ip.access CONNECT NACK" },
 +	{  0x76,	"ip.access DISCONNECT INDication" },
++	{  0x77,	"ip.access DISCONNECT" },
++	{  0x78,	"ip.access DISCONNECT ACK" },
++	{  0x79,	"ip.access DISCONNECT NACK" },
  	{ 0,		NULL }
  };
  
-@@ -477,6 +537,24 @@
+@@ -371,10 +457,10 @@
+ #define RSL_IE_MESSAGE_ID		28
+ 
+ #define RSL_IE_SYS_INFO_TYPE	30
+-
+-
+-
+-
++#define RSL_IE_MS_POWER_PARAM		31
++#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 +563,24 @@
  			Not used
  
  	*/
@@ -138,7 +179,7 @@
  	{ 0,			NULL }
  };
  
-@@ -513,6 +591,95 @@
+@@ -513,6 +617,95 @@
  	{ 0,			NULL }
  };
  
@@ -191,10 +232,10 @@
 +		[RSL_IE_MEAS_RES_NO]		= { TLV_TYPE_TV, 0 },
 +		[RSL_IE_MESSAGE_ID]		= { TLV_TYPE_TV, 0 },
 +		[RSL_IE_SYS_INFO_TYPE]		= { TLV_TYPE_TV, 0 },
-+		//[RSL_IE_MS_POWER_PARAM]		= { TLV_TYPE_TLV, 0 },
-+		//[RSL_IE_BS_POWER_PARAM]		= { TLV_TYPE_TLV, 0 },
-+		//[RSL_IE_PREPROC_CONFIG]		= { TLV_TYPE_TLV, 0 },
-+		//[RSL_IE_PREPROC_MEAS_RES]		= { TLV_TYPE_TLV, 0 },
++		[RSL_IE_MS_POWER_PARAM]		= { TLV_TYPE_TLV, 0 },
++		[RSL_IE_BS_POWER_PARAM]		= { TLV_TYPE_TLV, 0 },
++		[RSL_IE_PREPROC_PARAM]		= { TLV_TYPE_TLV, 0 },
++		[RSL_IE_PREPROC_MEAS]		= { TLV_TYPE_TLV, 0 },
 +		//[RSL_IE_IMM_ASS_INFO]		= { TLV_TYPE_TLV, 0 },
 +		//[RSL_IE_SMSCB_INFO]		= { TLV_TYPE_FIXED, 23 },
 +		//[RSL_IE_MS_TIMING_OFFSET]	= { TLV_TYPE_TV, 0 },
@@ -234,7 +275,7 @@
  /* 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)
-@@ -2043,7 +2210,6 @@
+@@ -2043,7 +2236,6 @@
  	proto_item_set_len(ti, length+2);
  
  	proto_tree_add_item(ie_tree, hf_rsl_ie_length, tvb, offset, 1, FALSE);
@@ -242,7 +283,7 @@
  
  	/* Received Message */
  	offset = dissct_rsl_msg(tvb, pinfo, ie_tree, offset);
-@@ -2907,13 +3073,405 @@
+@@ -2907,13 +3099,425 @@
  	return ie_offset + length;
  }
  
@@ -480,7 +521,7 @@
 +#endif
 +
 +static int
-+dissct_rsl_ipaccess_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
++dissct_rsl_ipaccess_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,				    int offset)
 +{
 +	guint8 msg_type;
 +	guint32 local_addr = 0;
@@ -498,6 +539,15 @@
 +	case RSL_MSG_TYPE_IPAC_CONNECT_ACK:
 +	case RSL_MSG_TYPE_IPAC_CONNECT_NACK:
 +	case RSL_MSG_TYPE_IPAC_DISC_IND:
++	case RSL_MSG_TYPE_IPAC_DISC:
++	case RSL_MSG_TYPE_IPAC_DISC_ACK:
++	case RSL_MSG_TYPE_IPAC_DISC_NACK:
++	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:
 +		/* Channel number			9.3.1	M TV 2		*/
 +		offset = dissect_rsl_ie_ch_no(tvb, pinfo, tree, offset, TRUE);
 +		break;
@@ -573,6 +623,10 @@
 +			len = tvb_get_guint8(tvb, offset+1) << 8 |
 +					tvb_get_guint8(tvb, offset+2);
 +			break;
++		default:
++			hlen = len_len = len = 0;
++			DISSECTOR_ASSERT_NOT_REACHED();
++			break;
 +		}
 +
 +		ti = proto_tree_add_item(tree, hf_rsl_ie_id, tvb, offset, 1, FALSE);
@@ -581,6 +635,13 @@
 +
 +		switch (tag) {
 +		case RSL_IE_CH_NO:
++			dissect_rsl_ie_ch_no(tvb, pinfo, tree, offset, TRUE);
++			break;
++		case RSL_IE_FRAME_NO:
++			dissect_rsl_ie_frame_no(tvb, pinfo, ie_tree, offset, TRUE);
++			break;
++		case RSL_IE_MS_POW:
++			dissect_rsl_ie_ms_pow(tvb, pinfo, ie_tree, offset, TRUE);
 +			break;
 +		case RSL_IE_IPAC_REMOTE_IP:
 +			proto_tree_add_item(ie_tree, hf_rsl_remote_ip, tvb,
@@ -649,7 +710,26 @@
  	offset++;
  
  	switch (msg_type){
-@@ -3517,7 +4075,6 @@
+@@ -3481,6 +4085,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;
+ 	}
+@@ -3517,7 +4133,6 @@
  		/* 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);
@@ -657,7 +737,7 @@
  
  		offset = dissct_rsl_msg(tvb, pinfo, rsl_tree, offset);
  
-@@ -3883,6 +4440,42 @@
+@@ -3883,6 +4498,42 @@
  			FT_UINT8, BASE_DEC, VALS(rsl_emlpp_prio_vals), 0x03,
  			NULL, HFILL }
  		},
@@ -700,7 +780,7 @@
  	};
  	static gint *ett[] = {
  		&ett_rsl,
-@@ -3941,6 +4534,14 @@
+@@ -3941,6 +4592,14 @@
  		&ett_ie_meas_res_no,
  		&ett_ie_message_id,
  		&ett_ie_sys_info_type,
