diff --git a/library/L1CTL_PortType.ttcn b/library/L1CTL_PortType.ttcn
index b82419e..4dcacb8 100644
--- a/library/L1CTL_PortType.ttcn
+++ b/library/L1CTL_PortType.ttcn
@@ -6,6 +6,7 @@
 	import from Osmocom_Types all;
 	import from GSM_Types all;
 	import from GSM_RR_Types all;
+	import from L1CTL_PortType_CtrlFunct all;
 
 	type record L1CTL_connect {
 		charstring	path
@@ -20,6 +21,18 @@
 		charstring	m_l1ctl_sock_path := "/tmp/osmocom_l2";
 	}
 
+	function f_L1CTL_getMsgLen(in octetstring stream, inout ro_integer args) return integer {
+		var integer stream_len := lengthof(stream);
+		var integer len;
+		if (stream_len < 2) {
+			log("getMsgLen(", stream, ",", args, ")=-1");
+			return -1;
+		}
+		len := 2 + oct2int(substr(stream, 0, 2));
+		log("getMsgLen(", stream, ",", args, ")=", len);
+		return len;
+	}
+
 	function f_L1CTL_FBSB(L1CTL_PT pt, Arfcn arfcn, L1ctlCcchMode ccch_mode := CCCH_MODE_COMBINED) {
 		timer T := 5.0;
 		pt.send(t_L1CTL_FBSB_REQ(arfcn, t_L1CTL_FBSB_F_ALL, 0, ccch_mode, 0));
@@ -88,8 +101,11 @@
 	}
 
 	function f_connect_reset(L1CTL_PT pt, charstring l1ctl_sock_path := m_l1ctl_sock_path) {
+		var f_UD_getMsgLen vl_f := refers(f_L1CTL_getMsgLen);
+		f_L1CTL_setGetMsgLen(pt, -1, vl_f, {});
 		pt.send(L1CTL_connect:{path:=l1ctl_sock_path});
 		pt.receive(L1CTL_connect_result:{result_code := SUCCESS, err:=omit});
+		f_L1CTL_setGetMsgLen(pt, 0, vl_f, {});
 
 		pt.send(t_L1ctlResetReq(L1CTL_RES_T_SCHED));
 		pt.receive;
diff --git a/library/L1CTL_PortType_CtrlFunct.ttcn b/library/L1CTL_PortType_CtrlFunct.ttcn
new file mode 100644
index 0000000..0f9cc94
--- /dev/null
+++ b/library/L1CTL_PortType_CtrlFunct.ttcn
@@ -0,0 +1,13 @@
+module L1CTL_PortType_CtrlFunct {
+
+import from L1CTL_PortType all;
+import from UD_Types all;
+
+  external function f_L1CTL_setGetMsgLen(
+    inout L1CTL_PT portRef,
+    in integer id,
+    inout f_UD_getMsgLen f,
+    in ro_integer msgLenArgs
+  );
+
+}
diff --git a/library/L1CTL_PortType_CtrlFunctDef.cc b/library/L1CTL_PortType_CtrlFunctDef.cc
new file mode 100644
index 0000000..0a6df4d
--- /dev/null
+++ b/library/L1CTL_PortType_CtrlFunctDef.cc
@@ -0,0 +1,15 @@
+#include "UD_PortType.hh"
+#include "L1CTL_PortType.hh"
+#include "UD_PT.hh"
+
+namespace L1CTL__PortType__CtrlFunct {
+
+	void f__L1CTL__setGetMsgLen(
+		L1CTL__PortType::L1CTL__PT& portRef,
+		const INTEGER& id,
+		Socket__API__Definitions::f__getMsgLen& f,
+		const Socket__API__Definitions::ro__integer& msgLenArgs) {
+			f__UD__PT_PROVIDER__setGetMsgLen(portRef, id, f, msgLenArgs);
+	}
+
+}
