Compare commits

...

1 Commits

Author SHA1 Message Date
Pau Espin 727e02011f pgw: Always expect local TEIC when receiving DeleteSessionResponse
open5gs-smfd is since recently acting properly and setting the proper
TEIC when sending GTPv2C messages for cases where session is not found.

Related: https://github.com/open5gs/open5gs/issues/3043

Change-Id: I2086b4576a10c7b4ba8217be6e49c8f5f389bc4b
2024-04-06 19:47:44 +02:00
1 changed files with 4 additions and 5 deletions

View File

@ -833,7 +833,6 @@ private function f_s2b_create_session(template (omit) APCO apco := omit,
/* delete the session from the PGW */
private function f_delete_session(template (omit) GTP2C_Cause tx_cause := omit,
template (present) OCT4 exp_teid,
template (present) GTP2C_Cause exp_cause,
boolean expect_diameter := true) runs on PGW_Session_CT {
var template (value) FullyQualifiedTEID fteid_c_ie
@ -852,7 +851,7 @@ private function f_delete_session(template (omit) GTP2C_Cause tx_cause := omit,
as_DIA_Gy_CCR(TERMINATION_REQUEST);
}
alt {
[] GTP2.receive(tr_GTP2C_DeleteSessionResp(d_teid := exp_teid, cause := exp_cause)) {
[] GTP2.receive(tr_GTP2C_DeleteSessionResp(d_teid := g_pars.teic_local, cause := exp_cause)) {
setverdict(pass);
}
[] GTP2.receive(tr_GTP2C_DeleteSessionResp(?, ?)) {
@ -1021,7 +1020,7 @@ testcase TC_createSession_ping4_256() runs on PGW_Test_CT {
/* create a session, then delete it again */
private function f_TC_createSession_deleteSession() runs on PGW_Session_CT {
f_s5s8_create_session();
f_delete_session(omit, g_pars.teic_local, Request_accepted);
f_delete_session(omit, Request_accepted);
setverdict(pass);
}
testcase TC_createSession_deleteSession() runs on PGW_Test_CT {
@ -1035,7 +1034,7 @@ testcase TC_createSession_deleteSession() runs on PGW_Test_CT {
/* send a DeleteSessionReq for an unknown/invalid TEID */
private function f_TC_deleteSession_unknown() runs on PGW_Session_CT {
g_pars.teic_remote := f_rnd_octstring(4);
f_delete_session(omit, '00000000'O, Context_Not_Found, false);
f_delete_session(omit, Context_Not_Found, false);
setverdict(pass);
}
testcase TC_deleteSession_unknown() runs on PGW_Test_CT {
@ -1066,7 +1065,7 @@ private function f_TC_gy_charging_cc_time() runs on PGW_Session_CT {
as_DIA_Gy_CCR(UPDATE_REQUEST);
f_validate_gy_cc_report(g_rx_gy, VALIDITY_TIME, (3..4), ?, ?);
f_delete_session(omit, g_pars.teic_local, Request_accepted);
f_delete_session(omit, Request_accepted);
f_validate_gy_cc_report(g_rx_gy, FINAL, (0..1), 0, 0);
setverdict(pass);
}