fixeria has uploaded this change for review.
s1gw: TC_pfcp_heartbeat: validate RTS in Heartbeat Response
The test case had a TODO noting that the Recovery Timestamp in the
Heartbeat Response was not yet validated. Let's get this resolved:
query the IUT's PFCP association state via REST to obtain its local
Recovery Timestamp (lrts), and verify that the IUT echoes back that
same value in the Heartbeat Response.
Change-Id: I000cc82e7582baded96a33cb0da2103906972ff9
---
M s1gw/S1GW_Tests.ttcn
1 file changed, 22 insertions(+), 5 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/94/42494/1
diff --git a/s1gw/S1GW_Tests.ttcn b/s1gw/S1GW_Tests.ttcn
index 121d717..38a5e7d 100644
--- a/s1gw/S1GW_Tests.ttcn
+++ b/s1gw/S1GW_Tests.ttcn
@@ -1030,16 +1030,33 @@
function f_TC_pfcp_heartbeat(charstring id) runs on ConnHdlr {
var integer rts := f_PFCPEM_get_recovery_timestamp();
+ var PfcpAssocInfo assoc_info;
var PDU_PFCP pfcp_pdu;
+ timer T;
+
+ /* Query IUT's PFCP assoc state via REST to get its RTS:
+ * assoc_info.lrts - IUT's RTS,
+ * assoc_info.rrts - PFCPEM's RTS */
+ assoc_info := f_REST_PfcpAssocState();
/* Tx Heartbeat Request */
PFCP.send(ts_PFCP_Heartbeat_Req(rts));
- /* Expect Heartbeat Response
- * TODO: validate the indicated Recovery Time Stamp against
- * the one that we received in the PFCP Association Setup. */
- pfcp_pdu := f_ConnHdlr_pfcp_expect(tr_PFCP_Heartbeat_Resp);
- setverdict(pass);
+ /* Expect Heartbeat Resp with RTS that we learned from the Association Setup Req */
+ T.start(2.0);
+ alt {
+ [] PFCP.receive(tr_PFCP_Heartbeat_Resp(assoc_info.lrts)) {
+ setverdict(pass);
+ }
+ [] PFCP.receive(tr_PFCP_Heartbeat_Resp) -> value pfcp_pdu {
+ setverdict(fail, "Rx Heartbeat Response with unexpected RTS: ", pfcp_pdu);
+ Misc_Helpers.f_shutdown(__BFILE__, __LINE__);
+ }
+ [] T.timeout {
+ setverdict(fail, "Timeout waiting for Heartbeat Response");
+ Misc_Helpers.f_shutdown(__BFILE__, __LINE__);
+ }
+ }
}
testcase TC_pfcp_heartbeat() runs on test_CT {
f_TC_exec(refers(f_TC_pfcp_heartbeat));
To view, visit change 42494. To unsubscribe, or for help writing mail filters, visit settings.