RAW_NS: add support for an incoming SNS DELETE procedure
Change-Id: Ia682522fe583a82e16a9c8008972f660f03243f7
diff --git a/library/RAW_NS.ttcnpp b/library/RAW_NS.ttcnpp
index d601ccd..8f986e4 100644
--- a/library/RAW_NS.ttcnpp
+++ b/library/RAW_NS.ttcnpp
@@ -468,6 +468,28 @@
}
}
+/* perform inbound SNS-DELETE procedure */
+function f_incoming_sns_del(integer idx_del, uint8_t w_sig := 1, uint8_t w_user := 1, integer idx := 0, template (omit) NsCause cause := omit)
+runs on RAW_NS_CT {
+ log("f_incoming_sns_del(idx=", idx, ")");
+ var PDU_NS rx;
+ var NSVCConfiguration nsvc_cfg := g_nsconfig.nsvc[idx_del];
+
+ if (nsvc_cfg.provider.ip.address_family == AF_INET) {
+ var template (omit) IP4_Elements v4_elem := { ts_SNS_IPv4(nsvc_cfg.provider.ip.remote_ip,
+ nsvc_cfg.provider.ip.remote_udp_port,
+ w_sig, w_user) };
+ rx := f_ns_exp(tr_SNS_DEL(g_nsconfig.nsei, ?, omit, v4 := v4_elem), idx);
+ } else {
+ var template (omit) IP6_Elements v6_elem := { ts_SNS_IPv6(nsvc_cfg.provider.ip.remote_ip,
+ nsvc_cfg.provider.ip.remote_udp_port,
+ w_sig, w_user) };
+ rx := f_ns_exp(tr_SNS_DEL(g_nsconfig.nsei, ?, omit, omit, v6_elem), idx);
+ }
+ NSCP[idx].send(ts_SNS_ACK(g_nsconfig.nsei, rx.pDU_SNS_Delete.transactionID));
+}
+
+
function f_outgoing_sns_del(integer idx_del, uint8_t w_sig := 1, uint8_t w_user := 1, integer idx := 0)
runs on RAW_NS_CT {
log("f_outgoing_sns_del(idx_del=", idx_del, ")");