diff --git a/mme/MME_Tests.ttcn b/mme/MME_Tests.ttcn
index a389c3d..cf6bcfc 100644
--- a/mme/MME_Tests.ttcn
+++ b/mme/MME_Tests.ttcn
@@ -11,7 +11,8 @@
 module MME_Tests {
 
 import from General_Types all;
-
+import from Native_Functions all;
+import from IPL4asp_Types all;
 import from S1AP_Types all;
 import from S1AP_Templates all;
 import from S1AP_Emulation all;
@@ -29,6 +30,11 @@
 import from SGsAP_Templates all;
 import from SGsAP_Emulation all;
 
+import from GTP_Emulation all;
+import from GTP_Templates all;
+import from GTP_CodecPort all;
+import from GTPC_Types all;
+
 import from LTE_CryptoFunctions all;
 
 import from L3_Templates all;
@@ -72,12 +78,17 @@
 	port SGsAP_PT SGsAP_UNIT;
 	port SGsAPEM_PROC_PT SGsAP_PROC;
 
+	/* Gn interface (GTPv1C) of emulated SGSN (Rel. 7) */
+	var GTP_Emulation_CT vc_GTP;
+
 	var UeParams g_ue_pars[NUM_UE];
 }
 
-type component ConnHdlr extends S1AP_ConnHdlr, SGsAP_ConnHdlr, DIAMETER_ConnHdlr {
+type component ConnHdlr extends S1AP_ConnHdlr, SGsAP_ConnHdlr, DIAMETER_ConnHdlr, GTP_ConnHdlr {
 	var ConnHdlrPars g_pars;
 	timer g_Tguard := 30.0;
+
+	var GtpPeer g_gn_iface_peer := { connId := 1, remName := mp_gn_remote_ip, remPort := mp_gn_local_port };
 }
 
 type record ConnHdlrPars {
@@ -105,6 +116,11 @@
 	integer mp_sgs_local_port := 29118;
 	charstring mp_vlr_name := "vlr.example.net";
 	charstring mp_mme_name := "mmec01.mmegi0001.mme.epc.mnc070.mcc901.3gppnetwork.org";
+
+	/* Gn interface (GTPv1C) */
+	charstring mp_gn_local_ip := "127.0.0.22";
+	integer mp_gn_local_port := 2123;
+	charstring mp_gn_remote_ip := "127.0.0.2";
 }
 
 /* send incoming unit data messages (like reset) to global SGsAP_UNIT port */
@@ -227,6 +243,21 @@
 	f_diameter_wait_capability(DIAMETER_UNIT);
 }
 
+friend function f_init_gtp(charstring id) runs on MTC_CT {
+	id := id & "-GTP";
+
+	var GtpEmulationCfg gtp_cfg := {
+		gtpc_bind_ip := mp_gn_local_ip,
+		gtpc_bind_port := mp_gn_local_port,
+		gtpu_bind_ip := omit,
+		gtpu_bind_port := omit,
+		sgsn_role := true
+	};
+
+	vc_GTP := GTP_Emulation_CT.create(id);
+	vc_GTP.start(GTP_Emulation.main(gtp_cfg));
+}
+
 friend template (value) TAI ts_enb_S1AP_TAI(EnbParams enb) := {
 	pLMNidentity := enb.global_enb_id.pLMNidentity,
 	tAC := enb.supported_tas[0].tAC,
@@ -272,6 +303,10 @@
 		connect(vc_conn:DIAMETER, vc_DIAMETER:DIAMETER_CLIENT);
 		connect(vc_conn:DIAMETER_PROC, vc_DIAMETER:DIAMETER_PROC);
 	}
+	if (isbound(vc_GTP)) {
+		connect(vc_conn:GTP, vc_GTP:CLIENT);
+		connect(vc_conn:GTP_PROC, vc_GTP:CLIENT_PROC);
+	}
 
 	/* We cannot use vc_conn.start(f_init_handler(fn, id, pars)); as we cannot have
 	 * a stand-alone 'derefers()' call, see https://www.eclipse.org/forums/index.php/t/1091364/ */
@@ -561,11 +596,45 @@
 	vc_conn.done;
 }
 
+private function f_TC_gn_echo_request(ConnHdlrPars pars) runs on ConnHdlr {
+	timer T := 5.0;
+	f_init_handler(pars);
+	f_gtp_register_teid('00000000'O);
+
+	GTP.send(ts_GTPC_PING(g_gn_iface_peer, 1));
+	T.start;
+	alt {
+	[] GTP.receive(tr_GTPC_PONG(?)) {
+		setverdict(pass);
+		}
+	[] GTP.receive {
+		setverdict(fail, "unexpected GTPC message from MME");
+		}
+	[] T.timeout {
+		setverdict(fail, "no GTPC ECHO RESPONSE from MME");
+		}
+	}
+}
+testcase TC_gn_echo_request() runs on MTC_CT {
+	var charstring id := testcasename();
+
+	f_init_diameter(id);
+	f_init_s1ap(id, 4);
+	f_s1ap_setup(0);
+	f_init_gtp(id);
+
+	var ConnHdlrPars pars := f_init_pars(ue_idx := 0);
+	var ConnHdlr vc_conn;
+	vc_conn := f_start_handler_with_pars(refers(f_TC_gn_echo_request), pars);
+	vc_conn.done;
+}
+
 control {
 	execute( TC_s1ap_setup_wrong_plmn() );
 	execute( TC_s1ap_setup_wrong_tac() );
 	execute( TC_s1ap_setup() );
 	execute( TC_s1ap_attach() );
+	execute( TC_gn_echo_request() );
 }
 
 
diff --git a/mme/gen_links.sh b/mme/gen_links.sh
index b0ecf86..e0a038b 100755
--- a/mme/gen_links.sh
+++ b/mme/gen_links.sh
@@ -40,7 +40,15 @@
 gen_links $DIR $FILES
 
 DIR=$BASEDIR/titan.ProtocolModules.GTP_v13.5.0/src
-FILES="GTPC_EncDec.cc   GTPC_Types.ttcn  GTPU_EncDec.cc   GTPU_Types.ttcn"
+FILES="GTPC_EncDec.cc GTPC_Types.ttcn GTPU_EncDec.cc GTPU_Types.ttcn"
+gen_links $DIR $FILES
+
+DIR=$BASEDIR/titan.ProtocolModules.NS_v7.3.0/src
+FILES="NS_Types.ttcn"
+gen_links $DIR $FILES
+
+DIR=$BASEDIR/titan.ProtocolModules.BSSGP_v13.0.0/src
+FILES="BSSGP_EncDec.cc  BSSGP_Types.ttcn"
 gen_links $DIR $FILES
 
 DIR=$BASEDIR/titan.ProtocolModules.DIAMETER_ProtocolModule_Generator/src
@@ -54,12 +62,14 @@
 gen_links $DIR $FILES
 
 DIR=../library
-FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn Osmocom_Types.ttcn Native_Functions.ttcn Native_FunctionDefs.cc "
+FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn Osmocom_Types.ttcn Native_Functions.ttcn Native_FunctionDefs.cc IPCP_Types.ttcn "
 FILES+="SGsAP_Templates.ttcn SGsAP_CodecPort.ttcn SGsAP_CodecPort_CtrlFunct.ttcn SGsAP_CodecPort_CtrlFunctDef.cc SGsAP_Emulation.ttcn DNS_Helpers.ttcn "
 FILES+="L3_Templates.ttcn RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn "
 FILES+="S1AP_CodecPort.ttcn S1AP_CodecPort_CtrlFunctDef.cc S1AP_CodecPort_CtrlFunct.ttcn S1AP_Emulation.ttcn "
 FILES+="NAS_Templates.ttcn GTPv2_PrivateExtensions.ttcn GTPv2_Templates.ttcn "
 FILES+="DIAMETER_Types.ttcn DIAMETER_CodecPort.ttcn DIAMETER_CodecPort_CtrlFunct.ttcn DIAMETER_CodecPort_CtrlFunctDef.cc DIAMETER_Emulation.ttcn DIAMETER_Templates.ttcn "
+FILES+="GTP_CodecPort.ttcn GTP_CodecPort_CtrlFunct.ttcn GTP_CodecPort_CtrlFunctDef.cc GTP_Emulation.ttcn GTP_Templates.ttcn Osmocom_Gb_Types.ttcn "
+FILES+="BSSGP_Emulation.ttcnpp Osmocom_Gb_Types.ttcn "
 gen_links $DIR $FILES
 
 ignore_pp_results
diff --git a/mme/regen_makefile.sh b/mme/regen_makefile.sh
index 62956d8..df5151e 100755
--- a/mme/regen_makefile.sh
+++ b/mme/regen_makefile.sh
@@ -6,10 +6,12 @@
 	*.asn
 	*.c
 	*.ttcn
+	BSSGP_EncDec.cc
 	DIAMETER_CodecPort_CtrlFunctDef.cc
 	DIAMETER_EncDec.cc
 	GTPC_EncDec.cc
 	GTPU_EncDec.cc
+	GTP_CodecPort_CtrlFunctDef.cc
 	IPL4asp_PT.cc
 	IPL4asp_discovery.cc
 	LTE_CryptoFunctionDefs.cc
@@ -23,6 +25,7 @@
 	TELNETasp_PT.cc
 "
 
+
 export CPPFLAGS_TTCN3="
 "
 
