diff --git a/library/L3_Common.ttcn b/library/L3_Common.ttcn
index 69ab51d..a7c2eb2 100644
--- a/library/L3_Common.ttcn
+++ b/library/L3_Common.ttcn
@@ -27,6 +27,45 @@
 	return vec;
 }
 
+/* 3GPP TS 23.003 2.6 */
+type enumerated TlliType {
+	TLLI_LOCAL,
+	TLLI_FOREIGN,
+	TLLI_RANDOM,
+	TLLI_AUXILIARY,
+	TLLI_RESERVED,
+	TLLI_G_RNTI,
+	TLLI_RAND_G_RNTI
+}
+
+/* 3GPP TS 23.003 2.6 */
+function f_gprs_tlli_type(OCT4 tlli) return TlliType {
+	var bitstring tllib := oct2bit(tlli);
+	if (substr(tllib, 0, 2) == '11'B) {
+		return TLLI_LOCAL;
+	} else if (substr(tllib, 0, 2) == '10'B) {
+		return TLLI_FOREIGN;
+	} else if (substr(tllib, 0, 5) == '01111'B) {
+		return TLLI_RANDOM;
+	} else if (substr(tllib, 0, 4) == '0110'B) {
+		return TLLI_RESERVED;
+	} else if (substr(tllib, 0, 3) == '010'B) {
+		return TLLI_RESERVED;
+	} else if (substr(tllib, 0, 4) == '0000'B) {
+		return TLLI_G_RNTI;
+	} else if (substr(tllib, 0, 4) == '0001'B) {
+		return TLLI_RAND_G_RNTI;
+	} else {
+		setverdict(fail, "Unknonw TLLI Type ", tllib);
+		self.stop;
+	}
+}
+
+function f_gprs_tlli_random() return OCT4 {
+	var OCT4 tlli := f_rnd_octstring(4);
+	return tlli or4b 'c0000000'O;
+}
+
 
 
 }
