fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/42362?usp=email )
Change subject: s1gw: use REST interface to check PFCP assoc state ......................................................................
s1gw: use REST interface to check PFCP assoc state
It's quicker to query the IUT using the REST interface rather than waiting for StatsD metric "gauge.pfcp.associated.value" to be received. As a bonus, we "learn" the local/remote RTS from the S1GW, which can be used in new PFCP related testcases.
Change-Id: Iec7594e79f533b08ee93b443a39cb9c8ff03da43 --- M s1gw/S1GW_ConnHdlr.ttcn M s1gw/S1GW_Tests.ttcn 2 files changed, 13 insertions(+), 16 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/62/42362/1
diff --git a/s1gw/S1GW_ConnHdlr.ttcn b/s1gw/S1GW_ConnHdlr.ttcn index 574a2d0..fd171d3 100644 --- a/s1gw/S1GW_ConnHdlr.ttcn +++ b/s1gw/S1GW_ConnHdlr.ttcn @@ -434,16 +434,7 @@
function f_ConnHdlr_pfcp_assoc_handler(charstring id) runs on ConnHdlr { - var charstring key_name := g_pars.statsd_prefix & "gauge.pfcp.associated.value"; - var StatsDMetricKeys statsd_keys := { valueof(ts_StatsDMetricKey(key_name, "g")) }; - var StatsDMetrics statsd_snapshot := f_statsd_snapshot(statsd_keys, since_last_snapshot := false); - var boolean pfcp_associated := statsd_snapshot[0].val == 1; - - if (not pfcp_associated) { - log("Waiting for IUT to associate over PFCP"); - f_ConnHdlr_pfcp_assoc_setup(); - } - + f_ConnHdlr_pfcp_assoc_setup(); setverdict(pass); }
diff --git a/s1gw/S1GW_Tests.ttcn b/s1gw/S1GW_Tests.ttcn index b7b01b1..f86546c 100644 --- a/s1gw/S1GW_Tests.ttcn +++ b/s1gw/S1GW_Tests.ttcn @@ -76,6 +76,7 @@ var S1AP_ServerList vc_S1APSRVs := {}; var PFCP_Emulation_CT vc_PFCP; var StatsD_Checker_CT vc_STATSD; + var PfcpAssocInfo g_pfcp_assoc; };
private altstep as_Tguard() runs on test_CT { @@ -98,11 +99,11 @@ if (s1apsrv_start) { f_init_s1ap_srv(num_mmes); } + f_init_rest(); if (upf_start) { f_init_pfcp(); f_pfcp_assoc(); } - f_init_rest(); }
/* compute the IP address for pool MME server [idx]: mp_mme_bind_ip + idx */ @@ -140,11 +141,16 @@ var verdicttype verdict; var ConnHdlr vc_conn;
- vc_conn := f_ConnHdlr_spawn(refers(f_ConnHdlr_pfcp_assoc_handler), - pars := valueof(t_ConnHdlrPars)); - vc_conn.done -> value verdict; - if (verdict != pass) { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__); + g_pfcp_assoc := f_REST_PfcpAssocState(); + if (g_pfcp_assoc.state != connected) { + log("Waiting for IUT to associate over PFCP"); + vc_conn := f_ConnHdlr_spawn(refers(f_ConnHdlr_pfcp_assoc_handler), + pars := valueof(t_ConnHdlrPars)); + vc_conn.done -> value verdict; + if (verdict != pass) { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__); + } + g_pfcp_assoc := f_REST_PfcpAssocState(); } }