diff --git a/library/GTPv2_CodecPort_CtrlFunct.ttcn b/library/GTPv2_CodecPort_CtrlFunct.ttcn
new file mode 100644
index 0000000..d68ea51
--- /dev/null
+++ b/library/GTPv2_CodecPort_CtrlFunct.ttcn
@@ -0,0 +1,43 @@
+module GTPv2_CodecPort_CtrlFunct {
+
+  import from GTPv2_CodecPort all;
+  import from IPL4asp_Types all;
+
+  external function f_IPL4_listen(
+    inout GTPv2C_PT portRef,
+    in HostName locName,
+    in PortNumber locPort,
+    in ProtoTuple proto,
+    in OptionList options := {}
+  ) return Result;
+
+  external function f_IPL4_connect(
+    inout GTPv2C_PT portRef,
+    in HostName remName,
+    in PortNumber remPort,
+    in HostName locName,
+    in PortNumber locPort,
+    in ConnectionId connId,
+    in ProtoTuple proto,
+    in OptionList options := {}
+  ) return Result;
+
+  external function f_IPL4_close(
+    inout GTPv2C_PT portRef,
+    in ConnectionId id,
+    in ProtoTuple proto := { unspecified := {} }
+  ) return Result;
+
+  external function f_IPL4_setUserData(
+    inout GTPv2C_PT portRef,
+    in ConnectionId id,
+    in UserData userData
+  ) return Result;
+
+  external function f_IPL4_getUserData(
+    inout GTPv2C_PT portRef,
+    in ConnectionId id,
+    out UserData userData
+  ) return Result;
+
+}
