lynxis lazus submitted this change.
RAW_NS: SNS Add: handle IPv4/IPv6 element in SNS Ack
When adding a new NS-VC via SNS Add, the SNS Ack should
only contains the IEs "List of IP4/6 elements" if the cause code is
Unknown IP endpoint.
However the libosmocore/ns2 code isn't following this behavior yet.
Change-Id: I18c659e43db79400c1b428ed745267a5e6e59102
---
M library/RAW_NS.ttcnpp
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/library/RAW_NS.ttcnpp b/library/RAW_NS.ttcnpp
index da1a0cc..5f0e421 100644
--- a/library/RAW_NS.ttcnpp
+++ b/library/RAW_NS.ttcnpp
@@ -503,18 +503,27 @@
log("f_outgoing_sns_add(idx_add=", idx_add, ")");
var PDU_NS rx;
var NSVCConfiguration nsvc_cfg := g_nsconfig.nsvc[idx_add];
+
if (nsvc_cfg.provider.ip.address_family == AF_INET) {
var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(nsvc_cfg.provider.ip.local_ip,
nsvc_cfg.provider.ip.local_udp_port,
w_sig, w_user) };
+ var template (omit) IP4_Elements ack_v4 := omit;
+ if (isvalue(cause) and valueof(cause) == NS_CAUSE_UNKNOWN_IP_ENDPOINT) {
+ ack_v4 := v4;
+ }
NSCP[idx].send(ts_SNS_ADD(g_nsconfig.nsei, 23, v4));
- rx := f_ns_exp(tr_SNS_ACK(g_nsconfig.nsei, 23, cause, v4));
+ rx := f_ns_exp(tr_SNS_ACK(g_nsconfig.nsei, 23, cause, ack_v4));
} else {
var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(nsvc_cfg.provider.ip.local_ip,
nsvc_cfg.provider.ip.local_udp_port,
w_sig, w_user) };
+ var template (omit) IP6_Elements ack_v6 := omit;
+ if (isvalue(cause) and valueof(cause) == NS_CAUSE_UNKNOWN_IP_ENDPOINT) {
+ ack_v6 := v6;
+ }
NSCP[idx].send(ts_SNS_ADD(g_nsconfig.nsei, 23, omit, v6));
- rx := f_ns_exp(tr_SNS_ACK(g_nsconfig.nsei, 23, cause, omit, v6));
+ rx := f_ns_exp(tr_SNS_ACK(g_nsconfig.nsei, 23, cause, omit, ack_v6));
}
}
To view, visit change 39063. To unsubscribe, or for help writing mail filters, visit settings.