PCU: add IPv6 support for SNS
With PCUIF 10 the remote can be IPv4 or IPv6.
Add all missing parts including SNS IPv6 elements,
the support to omit IPv4 elements and a PCU_Tests_SNSv6.cfg
configuration to run all tests with IPv6
Change-Id: I43d64caca600fff78f3fbbb3e8179f447f235d46
diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn
index bd2de10..5ffca7a 100644
--- a/library/Osmocom_Gb_Types.ttcn
+++ b/library/Osmocom_Gb_Types.ttcn
@@ -229,6 +229,40 @@
return e;
}
+ template (value) IP6_Element ts_SNS_IPv6(charstring ip, integer udp_port,
+ uint8_t sig_weight := 1, uint8_t data_weight := 1) := {
+ ipAddress := f_inet6_addr(ip),
+ uDP_Port := int2oct(udp_port, 2),
+ signallingWeight := int2oct(sig_weight, 1),
+ dataWeight := int2oct(data_weight, 1)
+ }
+ function tr_SNS_IPv6(template charstring ip, template integer udp_port,
+ template uint8_t sig_weight := ?, template uint8_t data_weight := ?)
+ return template IP6_Element {
+ var template IP6_Element e;
+ if (istemplatekind(ip, "?")) {
+ e.ipAddress := ?;
+ } else {
+ e.ipAddress := f_inet6_addr(valueof(ip));
+ }
+ if (istemplatekind(udp_port, "?")) {
+ e.uDP_Port := ?;
+ } else {
+ e.uDP_Port := int2oct(valueof(udp_port), 2);
+ }
+ if (istemplatekind(sig_weight, "?")) {
+ e.signallingWeight := ?;
+ } else {
+ e.signallingWeight := int2oct(valueof(sig_weight), 1);
+ }
+ if (istemplatekind(data_weight, "?")) {
+ e.dataWeight := ?;
+ } else {
+ e.dataWeight := int2oct(valueof(data_weight), 1);
+ }
+ return e;
+ }
+
template (value) PDU_NS ts_NS_RESET(NsCause cause, Nsvci nsvci, Nsei nsei) := {
pDU_NS_Reset := {
@@ -537,7 +571,7 @@
}
template (value) PDU_NS ts_SNS_CONFIG(Nsei nsei, boolean end_flag,
- template (omit) IP4_Elements v4,
+ template (omit) IP4_Elements v4 := omit,
template (omit) IP6_Elements v6 := omit) := {
pDU_SNS_Config := {
nsPduType := '0F'O,
@@ -548,7 +582,7 @@
}
}
template PDU_NS tr_SNS_CONFIG(template Nsei nsei, template boolean end_flag,
- template IP4_Elements v4,
+ template IP4_Elements v4 := omit,
template IP6_Elements v6 := omit) := {
pDU_SNS_Config := {
nsPduType := '0F'O,