Introduce 'library' directory for modules shared by multiple test cases
diff --git a/lapd/gen_links.sh b/lapd/gen_links.sh
index 7c0193e..eb43c46 100755
--- a/lapd/gen_links.sh
+++ b/lapd/gen_links.sh
@@ -17,6 +17,6 @@
 
 
 
-DIR=../sysinfo
+DIR=../library
 FILES="General_Types.ttcn GSM_Types.ttcn Osmocom_Types.ttcn"
 gen_links $DIR $FILES
diff --git a/sysinfo/GSMTAP_PortType.ttcn b/library/GSMTAP_PortType.ttcn
similarity index 100%
rename from sysinfo/GSMTAP_PortType.ttcn
rename to library/GSMTAP_PortType.ttcn
diff --git a/sysinfo/GSMTAP_Types.ttcn b/library/GSMTAP_Types.ttcn
similarity index 100%
rename from sysinfo/GSMTAP_Types.ttcn
rename to library/GSMTAP_Types.ttcn
diff --git a/sysinfo/GSM_SystemInformation.ttcn b/library/GSM_SystemInformation.ttcn
similarity index 100%
rename from sysinfo/GSM_SystemInformation.ttcn
rename to library/GSM_SystemInformation.ttcn
diff --git a/sysinfo/GSM_Types.ttcn b/library/GSM_Types.ttcn
similarity index 100%
rename from sysinfo/GSM_Types.ttcn
rename to library/GSM_Types.ttcn
diff --git a/library/General_Types.ttcn b/library/General_Types.ttcn
new file mode 100644
index 0000000..bdf8585
--- /dev/null
+++ b/library/General_Types.ttcn
@@ -0,0 +1,321 @@
+/******************************************************************************
+ * Copyright (c) 2000-2017 Ericsson Telecom AB
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *   Balasko, Jeno
+ *   Baranyi, Botond
+ *
+ ******************************************************************************/
+//
+//  File:               General_Types.ttcn
+//  Rev:                <RnXnn>
+//  Prodnr:             CNL 113 368
+//  Updated:            2012-11-06
+//  Contact:            http://ttcn.ericsson.se
+//  Reference:
+
+
+module General_Types
+{
+
+group SimpleNativeTypes {
+
+  //****************************************************
+  // Bitstrings
+  //****************************************************
+
+  //bitstring with fixed length
+  type bitstring BIT1n length(1) with { variant "" };
+  type bitstring BIT2n length(2) with { variant "" };
+  type bitstring BIT3n length(3) with { variant "" };
+  type bitstring BIT4n length(4) with { variant "" };
+  type bitstring BIT5n length(5) with { variant "" };
+  type bitstring BIT6n length(6) with { variant "" };
+  type bitstring BIT7n length(7) with { variant "" };
+  type bitstring BIT8n length(8) with { variant "" };
+  type bitstring BIT9n length(9) with { variant "" };
+  type bitstring BIT12n length(12) with { variant "" };
+  type bitstring BIT14n length(14) with { variant "" };
+  type bitstring BIT15n length(15) with { variant "" };
+  type bitstring BIT16n length(16) with { variant "" };
+  type bitstring BIT56n length(56) with { variant "" };
+
+  //bitstring with length interval
+  type bitstring BIT14_24n length(14..24) with { variant "" };
+
+  //bitstring to be padded with fixed length
+  type bitstring BIT1np length(1) with { variant "" };
+  type bitstring BIT2np length(2) with { variant "" };
+  type bitstring BIT3np length(3) with { variant "" };
+  type bitstring BIT4np length(4) with { variant "" };
+  type bitstring BIT5np length(5) with { variant "" };
+  type bitstring BIT6np length(6) with { variant "" };
+  type bitstring BIT7np length(7) with { variant "" };
+  type bitstring BIT15np length(15) with { variant "" };
+
+  //bitstring with fixed length
+  type bitstring BIT1 length(1) with { variant "FIELDLENGTH(1)" };
+  type bitstring BIT2 length(2) with { variant "FIELDLENGTH(2)" };
+  type bitstring BIT3 length(3) with { variant "FIELDLENGTH(3)" };
+  type bitstring BIT4 length(4) with { variant "FIELDLENGTH(4)" };
+  type bitstring BIT5 length(5) with { variant "FIELDLENGTH(5)" };
+  type bitstring BIT6 length(6) with { variant "FIELDLENGTH(6)" };
+  type bitstring BIT7 length(7) with { variant "FIELDLENGTH(7)" };
+  type bitstring BIT8 length(8) with { variant "FIELDLENGTH(8)" };
+  type bitstring BIT9 length(9) with { variant "FIELDLENGTH(9)" };
+  type bitstring BIT10 length(10) with { variant "FIELDLENGTH(10)" };
+  type bitstring BIT11 length(11) with { variant "FIELDLENGTH(11)" };
+  type bitstring BIT12 length(12) with { variant "FIELDLENGTH(12)" };
+  type bitstring BIT14 length(14) with { variant "FIELDLENGTH(14)" };
+  type bitstring BIT15 length(15) with { variant "FIELDLENGTH(15)" };
+  type bitstring BIT16 length(16) with { variant "FIELDLENGTH(16)" };
+  type bitstring BIT24 length(24) with { variant "FIELDLENGTH(24)" };
+  type bitstring BIT31 length(31) with { variant "FIELDLENGTH(31)" };
+  type bitstring BIT56 length(56) with { variant "FIELDLENGTH(56)" };
+
+  //****************************************************
+  // Octetstrings
+  //****************************************************
+
+  //octetstring with fixed length
+  type octetstring OCT0n length(0) with { variant "" };
+  type octetstring OCT1n length(1) with { variant "" };
+  type octetstring OCT2n length(2) with { variant "" };
+  type octetstring OCT3n length(3) with { variant "" };
+  type octetstring OCT4n length(4) with { variant "" };
+  type octetstring OCT5n length(5) with { variant "" };
+  type octetstring OCT6n length(6) with { variant "" };
+  type octetstring OCT7n length(7) with { variant "" };
+  type octetstring OCT8n length(8) with { variant "" };
+  type octetstring OCT9n length(9) with { variant "" };
+  type octetstring OCT10n length(10) with { variant "" };
+  type octetstring OCT11n length(11) with { variant "" };
+  type octetstring OCT12n length(12) with { variant "" };
+  type octetstring OCT13n length(13) with { variant "" };
+  type octetstring OCT14n length(14) with { variant "" };
+  type octetstring OCT15n length(15) with { variant "" };
+  type octetstring OCT16n length(16) with { variant "" };
+  type octetstring OCT17n length(17) with { variant "" };
+  type octetstring OCT18n length(18) with { variant "" };
+  type octetstring OCT19n length(19) with { variant "" };
+  type octetstring OCT20n length(20) with { variant "" };
+  type octetstring OCT28n length(28) with { variant "" };
+  type octetstring OCT32n length(32) with { variant "" };
+  type octetstring OCT34n length(34) with { variant "" };
+  type octetstring OCT46n length(46) with { variant "" };
+  type octetstring OCT50n length(50) with { variant "" };
+  type octetstring OCT69n length(69) with { variant "" };
+  type octetstring OCT100n length(100) with { variant "" };
+  type octetstring OCT128n length(128) with { variant "" };
+  type octetstring OCT500n length(500) with { variant "" };
+  type octetstring OCTNn with { variant "" };
+
+  //octetstring with length interval
+  type octetstring OCT1_3n length(1..3) with { variant "" };
+  type octetstring OCT1_4n length(1..4) with { variant "" };
+  type octetstring OCT1_5n length(1..5) with { variant "" };
+  type octetstring OCT1_6n length(1..6) with { variant "" };
+  type octetstring OCT1_7n length(1..7) with { variant "" };
+  type octetstring OCT1_8n length(1..8) with { variant "" };
+  type octetstring OCT1_12n length(1..12) with { variant "" };
+  type octetstring OCT1_15n length(1..15) with { variant "" };
+  type octetstring OCT1_16n length(1..16) with { variant "" };
+  type octetstring OCT1_18n length(1..18) with { variant "" };
+  type octetstring OCT1_20n length(1..20) with { variant "" };
+  type octetstring OCT1_24n length(1..24) with { variant "" };
+  type octetstring OCT1_32n length(1..32) with { variant "" };
+  type octetstring OCT1_34n length(1..34) with { variant "" };
+  type octetstring OCT1_46n length(1..46) with { variant "" };
+  type octetstring OCT1_50n length(1..50) with { variant "" };
+  type octetstring OCT1_112n length(1..112) with { variant "" };
+  type octetstring OCT1_127n length(1..127) with { variant "" };
+  type octetstring OCT1_128n length(1..128) with { variant "" };
+  type octetstring OCT1_172n length(1..172) with { variant "" };
+  type octetstring OCT3_5n length(3..5) with { variant "" };
+  type octetstring OCT3_7n length(3..7) with { variant "" };
+  type octetstring OCT3_8n length(3..8) with { variant "" };
+  type octetstring OCT3_14n length(3..14) with { variant "" };
+  type octetstring OCT3_17n length(3..17) with { variant "" };
+  type octetstring OCT4_8n length(4..8) with { variant "" };
+
+
+  //****************************************************
+  // Charstrings
+  //****************************************************
+
+  //charstring with fixed length
+  type charstring CHAR4 length (4);
+
+  //****************************************************
+  // Hexstrings
+  //****************************************************
+
+  //hexstring with fixed length
+  type hexstring HEX4n length(4) with { variant "" };
+  type hexstring HEX6n length(6) with { variant "" };
+  type hexstring HEX8n length(8) with { variant "" };
+  type hexstring HEX15n length(15) with { variant "" };
+  type hexstring HEX16n length(16) with { variant "" };
+  type hexstring HEX24n length(24) with { variant "" };
+
+  //hexstring with length interval
+  type hexstring HEX0_18n length(0..18) with { variant "" };
+  type hexstring HEX1_20n length(1..20) with { variant "" };
+  type hexstring HEX1_34n length(1..34) with { variant "" };
+
+  //****************************************************
+  // Integers
+  //****************************************************
+
+  //integer with fixed bit number
+  type integer INT3nb (0..7) with { variant "" };
+  type integer INT4nb (0..15) with { variant "" };
+  type integer INT5nb (0..31) with { variant "" };
+  type integer INT8nb (0..255) with { variant "" };
+
+  //integer with fixed bit number and with padding
+  type integer INT2nbp (0..3) with { variant "" };
+  type integer INT1nbp (0..1) with { variant "" };
+  type integer INT3nbp (0..7) with { variant "" };
+  type integer INT5nbp (0..31) with { variant "" };
+  type integer INT9nbp (0..511) with { variant "" };
+  type integer INT13nbp (0..8191) with { variant "" };
+  type integer INT15nbp (0..32767) with { variant "" };
+
+} // end group NativeTypes
+
+//****************************************************
+//****************************************************
+// RAW Encoded Types
+//****************************************************
+//****************************************************
+
+group SimpleRAWEncodedTypes {
+
+  //****************************************************
+  // Bitstrings
+  //****************************************************
+
+  //bitstring with fixed length
+  type bitstring BIT6_BO_LAST length (6) with {variant "BYTEORDER(last)"};
+  type bitstring BIT16_BO_LAST length (16) with {variant "BYTEORDER(last)"};
+  type bitstring BIT32_BO_LAST length (32) with {variant "BYTEORDER(last)"};
+
+  //****************************************************
+  // Octetstrings
+  //****************************************************
+  //octetstring with fixed length
+  type octetstring Dummy length(0) with { variant "FIELDLENGTH(0)" };
+  type octetstring OCT0 length(0) with { variant "FIELDLENGTH(0)" };
+  type octetstring OCT1 length(1) with { variant "FIELDLENGTH(1)" };
+  type octetstring OCT2 length(2) with { variant "FIELDLENGTH(2)" };
+  type octetstring OCT3 length(3) with { variant "FIELDLENGTH(3)" };
+  type octetstring OCT4 length(4) with { variant "FIELDLENGTH(4)" };
+  type octetstring OCT5 length(5) with { variant "FIELDLENGTH(5)" };
+  type octetstring OCT6 length(6) with { variant "FIELDLENGTH(6)" };
+  type octetstring OCT7 length(7) with { variant "FIELDLENGTH(7)" };
+  type octetstring OCT8 length(8) with { variant "FIELDLENGTH(8)" };
+  type octetstring OCT9 length(9) with { variant "FIELDLENGTH(9)" };
+  type octetstring OCT10 length(10) with { variant "FIELDLENGTH(10)" };
+  type octetstring OCT11 length(11) with { variant "FIELDLENGTH(11)" };
+  type octetstring OCT12 length(12) with { variant "FIELDLENGTH(12)" };
+  type octetstring OCT13 length(13) with { variant "FIELDLENGTH(13)" };
+  type octetstring OCT14 length(14) with { variant "FIELDLENGTH(14)" };
+  type octetstring OCT15 length(15) with { variant "FIELDLENGTH(15)" };
+  type octetstring OCT16 length(16) with { variant "FIELDLENGTH(16)" };
+  type octetstring OCT17 length(17) with { variant "FIELDLENGTH(17)" };
+  type octetstring OCT18 length(18) with { variant "FIELDLENGTH(18)" };
+  type octetstring OCT19 length(19) with { variant "FIELDLENGTH(19)" };
+  type octetstring OCT20 length(20) with { variant "FIELDLENGTH(20)" };
+  type octetstring OCT32 length(32) with { variant "FIELDLENGTH(32)" };
+  type octetstring OCT34 length(34) with { variant "FIELDLENGTH(34)" };
+  type octetstring OCT46 length(46) with { variant "FIELDLENGTH(46)" };
+
+  //octetstring with length interval
+  type octetstring OCT1_260 length(1..260) with { variant "" };
+  type octetstring OCT1_8   length(1..8) with { variant "" };
+  type octetstring OCT1_12  length(1..12) with { variant "" };
+  type octetstring OCT1_32  length(1..32) with { variant "" };
+  type octetstring OCT1_50  length(1..50) with { variant "" };
+  type octetstring OCT3_8   length(3..8) with { variant "" };
+
+  type octetstring OCTN with { variant "" };
+
+  //****************************************************
+  // Hexstrings
+  //****************************************************
+
+  //hexstring with fixed length
+  type hexstring HEX1 length(1) with {variant "FIELDLENGTH(1)"};
+
+  //hexstring with length interval
+  type hexstring HEX0_16 length(0..16) with { variant "" };
+  type hexstring HEX5_16 length(5..16) with { variant "" };
+  type hexstring HEX1_32 length(1..32) with { variant "" };
+
+
+  //****************************************************
+  // Integers
+  //****************************************************
+
+  //integer with fixed octet number
+  type integer INT1 (0..255) with { variant "FIELDLENGTH(8)" };
+  type integer LIN1 (0..255) with { variant "FIELDLENGTH(8)" };
+  type integer LIN2 (0..65535) with { variant "FIELDLENGTH(16)" };
+  type integer LIN2_BO_LAST (0..65535) with { variant "FIELDLENGTH(16), COMP(nosign), BYTEORDER(last)" };
+  type integer LIN3_BO_LAST (0..16777215) with { variant "FIELDLENGTH(24), COMP(nosign), BYTEORDER(last)" };
+  type integer LIN4_BO_LAST (0..4294967295) with { variant "FIELDLENGTH(32), COMP(nosign), BYTEORDER(last)" };
+
+  //integer with fixed bit number
+  type integer INT1b (0..1) with { variant "FIELDLENGTH(1)" };
+  type integer INT2b (0..3) with { variant "FIELDLENGTH(2)" };
+  type integer INT3b (0..7) with { variant "FIELDLENGTH(3)" };
+  type integer INT4b (0..15) with { variant "FIELDLENGTH(4)" };
+  type integer INT5b (0..31) with { variant "FIELDLENGTH(5)" };
+  type integer INT6b (0..63) with { variant "FIELDLENGTH(6)" };
+  type integer INT7b (0..127) with { variant "FIELDLENGTH(7)" };
+  type integer INT11b_BO_LAST ( 0 .. 2047 ) with { variant "FIELDLENGTH(11), COMP(nosign), BYTEORDER(last)" };
+  type integer INT12b_BO_LAST ( 0 .. 4095 ) with { variant "FIELDLENGTH(12), COMP(nosign), BYTEORDER(last)" };
+  type integer INT13b_BO_LAST ( 0 .. 8191 ) with { variant "FIELDLENGTH(13), COMP(nosign), BYTEORDER(last)" };
+  type integer INT14b_BO_LAST ( 0 .. 16383 ) with { variant "FIELDLENGTH(14), COMP(nosign), BYTEORDER(last)" };
+  type integer INT20b_BO_LAST ( 0 .. 1048575 ) with { variant "FIELDLENGTH(20), COMP(nosign), BYTEORDER(last)" };
+  type integer INT31b_BO_LAST ( 0 .. 2147483647 ) with { variant "FIELDLENGTH(31), COMP(nosign), BYTEORDER(last)" };
+
+  //****************************************************
+  // Structures
+  //****************************************************
+
+  //integer record
+  type record of integer Integers with { variant "" };
+  type record of Integers Integer_array with { variant "" };
+
+} // end group SimpleRAWEncodedTypes
+
+group ComponentTypes {
+  type component Dummy_comptype {}
+  type component Dummy_CT {}
+} // end group ComponentTypes
+
+group CompositeTypes {
+  type enumerated Protocols
+    { mtp3, sccp, isup, bicc, qaal2, gcp, bssap, bssmap, ranap, dtap }
+
+  type record of OCT1           OCT1List with { variant "" };
+  type record of OCT2           OCT2List with { variant "" };
+  type record of OCT3           OCT3List with { variant "" };
+  type record of OCT4           OCT4List with { variant "" };
+  type record of OCT5           OCT5List with { variant "" };
+  type record of OCT6           OCT6List with { variant "" };
+  type record of OCT7           OCT7List with { variant "" };
+
+  type record of Dummy_comptype ListOfDummy_comptype with { variant "" };
+  type record of Dummy_CT       ListOfDummy_CT with { variant "" };
+  type record of Protocols      ProtocolList with { variant "" };
+} // end group CompositeTypes
+
+} with { encode "JSON" } /* End of module General_Types */
+
diff --git a/sysinfo/IPL4_GSMTAP_CtrlFunct.ttcn b/library/IPL4_GSMTAP_CtrlFunct.ttcn
similarity index 100%
rename from sysinfo/IPL4_GSMTAP_CtrlFunct.ttcn
rename to library/IPL4_GSMTAP_CtrlFunct.ttcn
diff --git a/sysinfo/IPL4_GSMTAP_CtrlFunctDef.cc b/library/IPL4_GSMTAP_CtrlFunctDef.cc
similarity index 100%
rename from sysinfo/IPL4_GSMTAP_CtrlFunctDef.cc
rename to library/IPL4_GSMTAP_CtrlFunctDef.cc
diff --git a/sysinfo/Osmocom_Types.ttcn b/library/Osmocom_Types.ttcn
similarity index 100%
rename from sysinfo/Osmocom_Types.ttcn
rename to library/Osmocom_Types.ttcn
diff --git a/sysinfo/gen_links.sh b/sysinfo/gen_links.sh
index 91fa37b..b719b06 100755
--- a/sysinfo/gen_links.sh
+++ b/sysinfo/gen_links.sh
@@ -26,3 +26,8 @@
 DIR=$BASEDIR/titan.TestPorts.TELNETasp/src
 FILES="TELNETasp_PT.cc  TELNETasp_PT.hh  TELNETasp_PortType.ttcn"
 gen_links $DIR $FILES
+
+DIR=../library
+FILES="GSMTAP_PortType.ttcn GSMTAP_Types.ttcn GSM_SystemInformation.ttcn GSM_Types.ttcn IPL4_GSMTAP_CtrlFunct.ttcn IPL4_GSMTAP_CtrlFunctDef.cc Osmocom_Types.ttcn General_Types.ttcn"
+gen_links $DIR $FILES
+