diff --git a/fr/FR_Tests.ttcn b/fr/FR_Tests.ttcn
index a2c5e82..974765e 100644
--- a/fr/FR_Tests.ttcn
+++ b/fr/FR_Tests.ttcn
@@ -6,6 +6,7 @@
 
 import from NS_Emulation all;
 import from BSSGP_Emulation all;
+import from LLC_Types all;
 import from LLC_Templates all;
 
 modulepar {
@@ -256,9 +257,50 @@
 }
 
 
+private function f_ul2dl_ud(charstring id) runs on UE_CT
+{
+	for (var integer num_pkts := 0; num_pkts < 50; num_pkts := num_pkts + 1) {
+		var integer ran_index := 0;
+		var template (value) PDU_LLC llc_tx;
+		var template (present) PDU_LLC llc_rx_exp;
+		var PDU_LLC llc_rx;
+		timer T := 5.0;
+
+		/* SAPI '0010'B is looped back by FRNET_Tests.ttcn */
+		llc_tx := ts_LLC_UI(f_rnd_octstring(512), '0010'B, '1'B, 0);
+		llc_rx_exp := llc_tx;
+		llc_rx_exp.pDU_LLC_UI.fCS := ?;
+
+		//BSSGP[ran_index].send(ts_BSSGP_UL_UD(g_pars.tlli, g_pars.cell_id, llc_enc));
+		BSSGP[ran_index].send(llc_tx);
+		T.start;
+		alt {
+		[] BSSGP[ran_index].receive(llc_rx_exp) -> value llc_rx { }
+		[] BSSGP[ran_index].receive(PDU_LLC:?) ->  value llc_rx {
+			setverdict(fail, "Unexpected LLC: ", llc_rx);
+			break;
+			}
+		[] T.timeout {
+			setverdict(fail, "Timeout waiting for ", llc_rx_exp);
+			break;
+			}
+		}
+		//f_sleep(0.1);
+		/* 512 bytes + 32 bytes HDR every 0.5s (1088/s) means about 8704/s per UE */
+		/* at 100 UE that ends up about 870 kBps */
+	}
+}
+/* Generate uplink-unitdata traffic */
+testcase TC_ul2dl_ud() runs on test_CT
+{
+	f_tc_body(refers(f_ul2dl_ud), ue_tguard := 100.0);
+}
+
+
 control {
 	execute( TC_bvc_bringup() );
 	execute( TC_ul_ud() );
+	execute( TC_ul2dl_ud() );
 }
 
 }
