diff --git a/pcu/PCU_Tests_RAW_SNS.ttcn b/pcu/PCU_Tests_RAW_SNS.ttcn
index 3e4ef2c..fb4d8f7 100644
--- a/pcu/PCU_Tests_RAW_SNS.ttcn
+++ b/pcu/PCU_Tests_RAW_SNS.ttcn
@@ -14,6 +14,7 @@
 /* perform inbound SNS-SIZE procedure */
 function f_incoming_sns_size(template (omit) NsCause cause := omit, integer idx := 0)
 runs on RAW_NS_CT {
+	log("f_incoming_sns_size(idx=", idx, ")");
 	var PDU_NS rx;
 	/* expect one single SNS-SIZE with RESET flag; one remote v4 EP; no v6 EP */
 	rx := f_ns_exp(tr_SNS_SIZE(g_nsconfig[idx].nsei, rst_flag := true, max_nsvcs := 8,
@@ -24,6 +25,7 @@
 /* perform outbound SNS-SIZE procedure */
 function f_outgoing_sns_size(template (omit) NsCause cause := omit, integer idx:= 0)
 runs on RAW_NS_CT {
+	log("f_outgoing_sns_size(idx=", idx, ")");
 	var PDU_NS rx;
 	NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_SIZE(g_nsconfig[idx].nsei, rst_flag := true, max_nsvcs := 1,
 							num_v4 := 1, num_v6 := omit)
@@ -35,6 +37,7 @@
 /* perform inbound SNS-CONFIG procedure */
 function f_incoming_sns_config(template (omit) NsCause cause := omit, integer idx := 0)
 runs on RAW_NS_CT {
+	log("f_incoming_sns_config(idx=", idx, ")");
 	var PDU_NS rx;
 	rx := f_ns_exp(tr_SNS_CONFIG(g_nsconfig[idx].nsei, end_flag := true, v4 := ?), idx);
 	NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause)));
@@ -43,6 +46,7 @@
 /* perform outbound SNS-CONFIG procedure */
 function f_outgoing_sns_config(template (omit) NsCause cause := omit, integer idx := 0)
 runs on RAW_NS_CT {
+	log("f_outgoing_sns_config(idx=", idx, ")");
 	var PDU_NS rx;
 	var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[idx].local_ip,
 							     g_nsconfig[idx].local_udp_port) }
@@ -53,6 +57,7 @@
 /* perform outbound SNS-CONFIG procedure (separate endpoints: 1 for control, 1 for user */
 function f_outgoing_sns_config_1c1u(template (omit) NsCause cause := omit, integer idx := 0)
 runs on RAW_NS_CT {
+	log("f_outgoing_sns_config_1c1u(idx=", idx, ")");
 	var PDU_NS rx;
 	var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[0].local_ip,
 							     g_nsconfig[0].local_udp_port, 1, 0),
