diff --git a/library/DIAMETER_CodecPort_CtrlFunct.ttcn b/library/DIAMETER_CodecPort_CtrlFunct.ttcn
new file mode 100644
index 0000000..3b2230d
--- /dev/null
+++ b/library/DIAMETER_CodecPort_CtrlFunct.ttcn
@@ -0,0 +1,44 @@
+module DIAMETER_CodecPort_CtrlFunct {
+
+  import from DIAMETER_CodecPort all;
+  import from IPL4asp_Types all;
+
+  external function f_IPL4_listen(
+    inout DIAMETER_CODEC_PT portRef,
+    in HostName locName,
+    in PortNumber locPort,
+    in ProtoTuple proto,
+    in OptionList options := {}
+  ) return Result;
+
+  external function f_IPL4_connect(
+    inout DIAMETER_CODEC_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 DIAMETER_CODEC_PT portRef,
+    in ConnectionId id,
+    in ProtoTuple proto := { unspecified := {} }
+  ) return Result;
+
+  external function f_IPL4_setUserData(
+    inout DIAMETER_CODEC_PT portRef,
+    in ConnectionId id,
+    in UserData userData
+  ) return Result;
+
+  external function f_IPL4_getUserData(
+    inout DIAMETER_CODEC_PT portRef,
+    in ConnectionId id,
+    out UserData userData
+  ) return Result;
+
+}
+
