Implement L1CTL port type (dual-faced port on top of UnixDomain)
diff --git a/lapd/L1CTL_Types.ttcn b/lapd/L1CTL_Types.ttcn
index 2a0aa4e..07d7bb5 100644
--- a/lapd/L1CTL_Types.ttcn
+++ b/lapd/L1CTL_Types.ttcn
@@ -72,6 +72,12 @@
 		OCT2		padding
 	} with { variant "" };
 
+	template L1ctlHeader t_L1ctlHeader(template L1ctlMsgType msg_type) := {
+		msg_type := msg_type,
+		flags := { padding := '0000000'B, f_done := false },
+		padding := '0000'O
+	};
+
 	type uint8_t RslChanNr;
 	type uint8_t RslLinkId;
 
@@ -268,4 +274,25 @@
 	external function dec_L1ctlUlMessage(in octetstring stream) return L1ctlUlMessage
 		with { extension "prototype(convert) decode(RAW)" };
 
+	type record L1ctlUlMessageLV {
+		uint16_t	len,
+		L1ctlUlMessage	msg
+	} with { variant (len) "LENGTHTO(msg)" };
+
+	external function enc_L1ctlUlMessageLV(in L1ctlUlMessageLV msg) return octetstring
+		with { extension "prototype(convert) encode(RAW)" };
+	external function dec_L1ctlUlMessageLV(in octetstring stream) return L1ctlUlMessageLV
+		with { extension "prototype(convert) decode(RAW)" };
+
+	type record L1ctlDlMessageLV {
+		uint16_t	len,
+		L1ctlDlMessage	msg
+	} with { variant (len) "LENGTHTO(msg)" };
+
+	external function enc_L1ctlDlMessageLV(in L1ctlDlMessageLV msg) return octetstring
+		with { extension "prototype(convert) encode(RAW)" };
+	external function dec_L1ctlDlMessageLV(in octetstring stream) return L1ctlDlMessageLV
+		with { extension "prototype(convert) decode(RAW)" };
+
+
 } with { encode "RAW" };