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
This commit is contained in:
parent
02ce0b61fd
commit
7b1e44f791
|
@ -229,6 +229,40 @@ module Osmocom_Gb_Types {
|
||||||
return e;
|
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) := {
|
template (value) PDU_NS ts_NS_RESET(NsCause cause, Nsvci nsvci, Nsei nsei) := {
|
||||||
pDU_NS_Reset := {
|
pDU_NS_Reset := {
|
||||||
|
@ -537,7 +571,7 @@ octetstring sdu) := {
|
||||||
}
|
}
|
||||||
|
|
||||||
template (value) PDU_NS ts_SNS_CONFIG(Nsei nsei, boolean end_flag,
|
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) := {
|
template (omit) IP6_Elements v6 := omit) := {
|
||||||
pDU_SNS_Config := {
|
pDU_SNS_Config := {
|
||||||
nsPduType := '0F'O,
|
nsPduType := '0F'O,
|
||||||
|
@ -548,7 +582,7 @@ octetstring sdu) := {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
template PDU_NS tr_SNS_CONFIG(template Nsei nsei, template boolean end_flag,
|
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) := {
|
template IP6_Elements v6 := omit) := {
|
||||||
pDU_SNS_Config := {
|
pDU_SNS_Config := {
|
||||||
nsPduType := '0F'O,
|
nsPduType := '0F'O,
|
||||||
|
|
|
@ -20,6 +20,7 @@ SGSN_Components.mp_nsconfig := {
|
||||||
nsvci := 1234,
|
nsvci := 1234,
|
||||||
nsei := 1234
|
nsei := 1234
|
||||||
}
|
}
|
||||||
|
PCUIF_Types.mp_pcuif_version := 10
|
||||||
|
|
||||||
[TESTPORT_PARAMETERS]
|
[TESTPORT_PARAMETERS]
|
||||||
|
|
||||||
|
|
|
@ -27,9 +27,16 @@ function f_incoming_sns_size(template (omit) NsCause cause := omit, integer idx
|
||||||
runs on RAW_NS_CT {
|
runs on RAW_NS_CT {
|
||||||
log("f_incoming_sns_size(idx=", idx, ")");
|
log("f_incoming_sns_size(idx=", idx, ")");
|
||||||
var PDU_NS rx;
|
var PDU_NS rx;
|
||||||
/* expect one single SNS-SIZE with RESET flag; one remote v4 EP; no v6 EP */
|
|
||||||
|
if (mp_nsconfig.provider.ip.address_family == AF_INET) {
|
||||||
|
/* expect one single SNS-SIZE with RESET flag; 4x v4 EP; no v6 EP */
|
||||||
rx := f_ns_exp(tr_SNS_SIZE(g_nsconfig[idx].nsei, rst_flag := true, max_nsvcs := 8,
|
rx := f_ns_exp(tr_SNS_SIZE(g_nsconfig[idx].nsei, rst_flag := true, max_nsvcs := 8,
|
||||||
num_v4 := 4, num_v6 := omit), idx);
|
num_v4 := 4, num_v6 := omit), idx);
|
||||||
|
} else {
|
||||||
|
/* expect one single SNS-SIZE with RESET flag; no v4 EP; 4x v6 EP */
|
||||||
|
rx := f_ns_exp(tr_SNS_SIZE(g_nsconfig[idx].nsei, rst_flag := true, max_nsvcs := 8,
|
||||||
|
num_v4 := omit, num_v6 := 4), idx);
|
||||||
|
}
|
||||||
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_SIZE_ACK(g_nsconfig[idx].nsei, cause)));
|
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_SIZE_ACK(g_nsconfig[idx].nsei, cause)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,10 +45,16 @@ function f_outgoing_sns_size(template (omit) NsCause cause := omit, integer idx:
|
||||||
runs on RAW_NS_CT {
|
runs on RAW_NS_CT {
|
||||||
log("f_outgoing_sns_size(idx=", idx, ")");
|
log("f_outgoing_sns_size(idx=", idx, ")");
|
||||||
var PDU_NS rx;
|
var PDU_NS rx;
|
||||||
|
if (mp_nsconfig.provider.ip.address_family == AF_INET) {
|
||||||
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_SIZE(g_nsconfig[idx].nsei, rst_flag := true, max_nsvcs := 1,
|
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)
|
num_v4 := 1, num_v6 := omit)
|
||||||
));
|
));
|
||||||
/* expect one single SNS-SIZE with RESET flag; one remote v4 EP; no v6 EP */
|
} else {
|
||||||
|
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 := omit, num_v6 := 1)
|
||||||
|
));
|
||||||
|
}
|
||||||
|
/* expect one single SNS-SIZE with RESET flag; 4x v4 EP; no v6 EP */
|
||||||
rx := f_ns_exp(tr_SNS_SIZE_ACK(g_nsconfig[idx].nsei, cause), idx);
|
rx := f_ns_exp(tr_SNS_SIZE_ACK(g_nsconfig[idx].nsei, cause), idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,9 +63,17 @@ function f_incoming_sns_config(template (omit) NsCause cause := omit, integer id
|
||||||
runs on RAW_NS_CT {
|
runs on RAW_NS_CT {
|
||||||
log("f_incoming_sns_config(idx=", idx, ")");
|
log("f_incoming_sns_config(idx=", idx, ")");
|
||||||
var PDU_NS rx;
|
var PDU_NS rx;
|
||||||
|
|
||||||
|
if (mp_nsconfig.provider.ip.address_family == AF_INET) {
|
||||||
var template IP4_Elements v4_elem := { tr_SNS_IPv4(mp_nsconfig.provider.ip.remote_ip,
|
var template IP4_Elements v4_elem := { tr_SNS_IPv4(mp_nsconfig.provider.ip.remote_ip,
|
||||||
mp_nsconfig.provider.ip.remote_udp_port) };
|
mp_nsconfig.provider.ip.remote_udp_port) };
|
||||||
rx := f_ns_exp(tr_SNS_CONFIG(g_nsconfig[idx].nsei, end_flag := true, v4 := v4_elem), idx);
|
rx := f_ns_exp(tr_SNS_CONFIG(g_nsconfig[idx].nsei, end_flag := true, v4 := v4_elem), idx);
|
||||||
|
} else {
|
||||||
|
var template IP6_Elements v6_elem := { tr_SNS_IPv6(mp_nsconfig.provider.ip.remote_ip,
|
||||||
|
mp_nsconfig.provider.ip.remote_udp_port) };
|
||||||
|
rx := f_ns_exp(tr_SNS_CONFIG(g_nsconfig[idx].nsei, end_flag := true, v6 := v6_elem), idx);
|
||||||
|
}
|
||||||
|
|
||||||
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause)));
|
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,9 +82,15 @@ function f_outgoing_sns_config(template (omit) NsCause cause := omit, integer id
|
||||||
runs on RAW_NS_CT {
|
runs on RAW_NS_CT {
|
||||||
log("f_outgoing_sns_config(idx=", idx, ")");
|
log("f_outgoing_sns_config(idx=", idx, ")");
|
||||||
var PDU_NS rx;
|
var PDU_NS rx;
|
||||||
|
if (mp_nsconfig.provider.ip.address_family == AF_INET) {
|
||||||
var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[idx].provider.ip.local_ip,
|
var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[idx].provider.ip.local_ip,
|
||||||
g_nsconfig[idx].provider.ip.local_udp_port) }
|
g_nsconfig[idx].provider.ip.local_udp_port) }
|
||||||
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, v4)));
|
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, v4)));
|
||||||
|
} else {
|
||||||
|
var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(g_nsconfig[idx].provider.ip.local_ip,
|
||||||
|
g_nsconfig[idx].provider.ip.local_udp_port) }
|
||||||
|
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, omit, v6)));
|
||||||
|
}
|
||||||
rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause), idx);
|
rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause), idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,11 +99,19 @@ function f_outgoing_sns_config_1c1u(template (omit) NsCause cause := omit, integ
|
||||||
runs on RAW_NS_CT {
|
runs on RAW_NS_CT {
|
||||||
log("f_outgoing_sns_config_1c1u(idx=", idx, ")");
|
log("f_outgoing_sns_config_1c1u(idx=", idx, ")");
|
||||||
var PDU_NS rx;
|
var PDU_NS rx;
|
||||||
|
if (mp_nsconfig.provider.ip.address_family == AF_INET) {
|
||||||
var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[0].provider.ip.local_ip,
|
var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[0].provider.ip.local_ip,
|
||||||
g_nsconfig[0].provider.ip.local_udp_port, 1, 0),
|
g_nsconfig[0].provider.ip.local_udp_port, 1, 0),
|
||||||
ts_SNS_IPv4(g_nsconfig[1].provider.ip.local_ip,
|
ts_SNS_IPv4(g_nsconfig[1].provider.ip.local_ip,
|
||||||
g_nsconfig[1].provider.ip.local_udp_port, 0, 1) };
|
g_nsconfig[1].provider.ip.local_udp_port, 0, 1) };
|
||||||
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, v4)));
|
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, v4)));
|
||||||
|
} else {
|
||||||
|
var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(g_nsconfig[0].provider.ip.local_ip,
|
||||||
|
g_nsconfig[0].provider.ip.local_udp_port, 1, 0),
|
||||||
|
ts_SNS_IPv6(g_nsconfig[1].provider.ip.local_ip,
|
||||||
|
g_nsconfig[1].provider.ip.local_udp_port, 0, 1) };
|
||||||
|
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, omit, v6)));
|
||||||
|
}
|
||||||
rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause), idx);
|
rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause), idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,11 +120,19 @@ function f_outgoing_sns_config_1c1u_separate(template (omit) NsCause cause := om
|
||||||
runs on RAW_NS_CT {
|
runs on RAW_NS_CT {
|
||||||
log("f_outgoing_sns_config_1c1u_separate(idx=", idx, ")");
|
log("f_outgoing_sns_config_1c1u_separate(idx=", idx, ")");
|
||||||
var PDU_NS rx;
|
var PDU_NS rx;
|
||||||
|
if (mp_nsconfig.provider.ip.address_family == AF_INET) {
|
||||||
var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[1].provider.ip.local_ip,
|
var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[1].provider.ip.local_ip,
|
||||||
g_nsconfig[1].provider.ip.local_udp_port, 1, 0),
|
g_nsconfig[1].provider.ip.local_udp_port, 1, 0),
|
||||||
ts_SNS_IPv4(g_nsconfig[2].provider.ip.local_ip,
|
ts_SNS_IPv4(g_nsconfig[2].provider.ip.local_ip,
|
||||||
g_nsconfig[2].provider.ip.local_udp_port, 0, 1) };
|
g_nsconfig[2].provider.ip.local_udp_port, 0, 1) };
|
||||||
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, v4)));
|
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, v4)));
|
||||||
|
} else {
|
||||||
|
var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(g_nsconfig[1].provider.ip.local_ip,
|
||||||
|
g_nsconfig[1].provider.ip.local_udp_port, 1, 0),
|
||||||
|
ts_SNS_IPv6(g_nsconfig[2].provider.ip.local_ip,
|
||||||
|
g_nsconfig[2].provider.ip.local_udp_port, 0, 1) };
|
||||||
|
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, omit, v6)));
|
||||||
|
}
|
||||||
rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause), idx);
|
rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause), idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,33 +140,57 @@ function f_outgoing_sns_add(integer idx_add, uint8_t w_sig := 1, uint8_t w_user
|
||||||
runs on RAW_NS_CT {
|
runs on RAW_NS_CT {
|
||||||
log("f_outgoing_sns_add(idx_add=", idx_add, ")");
|
log("f_outgoing_sns_add(idx_add=", idx_add, ")");
|
||||||
var PDU_NS rx;
|
var PDU_NS rx;
|
||||||
|
if (mp_nsconfig.provider.ip.address_family == AF_INET) {
|
||||||
var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[idx_add].provider.ip.local_ip,
|
var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[idx_add].provider.ip.local_ip,
|
||||||
g_nsconfig[idx_add].provider.ip.local_udp_port,
|
g_nsconfig[idx_add].provider.ip.local_udp_port,
|
||||||
w_sig, w_user) };
|
w_sig, w_user) };
|
||||||
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_ADD(g_nsconfig[idx].nsei, 23, v4)));
|
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_ADD(g_nsconfig[idx].nsei, 23, v4)));
|
||||||
rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 23, omit, v4));
|
rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 23, omit, v4));
|
||||||
|
} else {
|
||||||
|
var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(g_nsconfig[idx_add].provider.ip.local_ip,
|
||||||
|
g_nsconfig[idx_add].provider.ip.local_udp_port,
|
||||||
|
w_sig, w_user) };
|
||||||
|
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_ADD(g_nsconfig[idx].nsei, 23, omit, v6)));
|
||||||
|
rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 23, omit, omit, v6));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function f_outgoing_sns_del(integer idx_del, uint8_t w_sig := 1, uint8_t w_user := 1, integer idx := 0)
|
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 {
|
runs on RAW_NS_CT {
|
||||||
log("f_outgoing_sns_del(idx_del=", idx_del, ")");
|
log("f_outgoing_sns_del(idx_del=", idx_del, ")");
|
||||||
var PDU_NS rx;
|
var PDU_NS rx;
|
||||||
|
if (mp_nsconfig.provider.ip.address_family == AF_INET) {
|
||||||
var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[idx_del].provider.ip.local_ip,
|
var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[idx_del].provider.ip.local_ip,
|
||||||
g_nsconfig[idx_del].provider.ip.local_udp_port,
|
g_nsconfig[idx_del].provider.ip.local_udp_port,
|
||||||
w_sig, w_user) };
|
w_sig, w_user) };
|
||||||
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_DEL(g_nsconfig[idx].nsei, 24, omit, v4)));
|
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_DEL(g_nsconfig[idx].nsei, 24, omit, v4)));
|
||||||
rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 24, omit, v4));
|
rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 24, omit, v4));
|
||||||
|
} else {
|
||||||
|
var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(g_nsconfig[idx_del].provider.ip.local_ip,
|
||||||
|
g_nsconfig[idx_del].provider.ip.local_udp_port,
|
||||||
|
w_sig, w_user) };
|
||||||
|
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_DEL(g_nsconfig[idx].nsei, 24, omit, omit, v6)));
|
||||||
|
rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 24, omit, omit, v6));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function f_outgoing_sns_chg_weight(integer idx_chg, uint8_t w_sig, uint8_t w_user, integer idx := 0)
|
function f_outgoing_sns_chg_weight(integer idx_chg, uint8_t w_sig, uint8_t w_user, integer idx := 0)
|
||||||
runs on RAW_NS_CT {
|
runs on RAW_NS_CT {
|
||||||
log("f_outgoing_sns_chg_weight(idx_chg=", idx_chg, ")");
|
log("f_outgoing_sns_chg_weight(idx_chg=", idx_chg, ")");
|
||||||
var PDU_NS rx;
|
var PDU_NS rx;
|
||||||
|
if (mp_nsconfig.provider.ip.address_family == AF_INET) {
|
||||||
var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[idx_chg].provider.ip.local_ip,
|
var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[idx_chg].provider.ip.local_ip,
|
||||||
g_nsconfig[idx_chg].provider.ip.local_udp_port,
|
g_nsconfig[idx_chg].provider.ip.local_udp_port,
|
||||||
w_sig, w_user) };
|
w_sig, w_user) };
|
||||||
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CHG_WEIGHT(g_nsconfig[idx].nsei, 25, v4)));
|
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CHG_WEIGHT(g_nsconfig[idx].nsei, 25, v4)));
|
||||||
rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 25, omit, v4));
|
rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 25, omit, v4));
|
||||||
|
} else {
|
||||||
|
var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(g_nsconfig[idx_chg].provider.ip.local_ip,
|
||||||
|
g_nsconfig[idx_chg].provider.ip.local_udp_port,
|
||||||
|
w_sig, w_user) };
|
||||||
|
NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CHG_WEIGHT(g_nsconfig[idx].nsei, 25, omit, v6)));
|
||||||
|
rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 25, omit, omit, v6));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
[ORDERED_INCLUDE]
|
||||||
|
# Common configuration, shared between test suites
|
||||||
|
"../Common.cfg"
|
||||||
|
# testsuite specific configuration, not expected to change
|
||||||
|
"./PCU_Tests.default"
|
||||||
|
|
||||||
|
[LOGGING]
|
||||||
|
|
||||||
|
[MODULE_PARAMETERS]
|
||||||
|
SGSN_Components.mp_nsconfig := {
|
||||||
|
provider := {
|
||||||
|
ip := {
|
||||||
|
address_family := AF_INET6,
|
||||||
|
local_ip := "::1",
|
||||||
|
local_udp_port := 23000,
|
||||||
|
remote_ip := "::1",
|
||||||
|
remote_udp_port := 22000,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
nsvci := 1234,
|
||||||
|
nsei := 1234
|
||||||
|
}
|
||||||
|
PCUIF_Types.mp_pcuif_version := 10
|
||||||
|
|
||||||
|
[TESTPORT_PARAMETERS]
|
||||||
|
|
||||||
|
[MAIN_CONTROLLER]
|
||||||
|
|
||||||
|
[EXECUTE]
|
||||||
|
PCU_Tests_SNS.control
|
Loading…
Reference in New Issue