s1ap_proxy: correct handling of UE CONTEXT RELEASE REQUEST (details)
s1ap_proxy_test: update TC scenario for test_drop_proc_error (details)
s1ap_proxy_test: add TCs simulating late E-RAB SETUP Rsp (details)
erab_fsm: handle E-RAB SETUP Rsp during release (details)
Commit
1bbaac074671a8329f5766abdb6493141052e2dd
by Vadim Yanitskiy
s1ap_proxy: correct handling of UE CONTEXT RELEASE REQUEST
By sending a UE CONTEXT RELEASE REQUEST, the eNB is requesting the MME to terminate the UE context. This procedure itself does not terminate the UE context nor the associated E-RABs. Therefore, the S1GW should not terminate E-RAB FSMs upon receiving this PDU.
Keep the function clause in s1ap_proxy, so that the respective ?S1GW_CTR_S1AP_PROXY_IN_PKT_RELEASE_CTX_REQ is properly updated. Correct the unit test: E-RAB is now expected to remain alive.
Commit
094fab5886f8f355112053faf5d8c95c31427d01
by Vadim Yanitskiy
s1ap_proxy_test: update TC scenario for test_drop_proc_error
A follow-up commit implements handling of late E-RAB setup response. This testcase is going to fail because, by coincidence, currently we simulate the scenario of late INITIAL CONTEXT SETUP RESPONSE and expect the s1ap_proxy to drop the PDU. Change the testcase scenario to simulate an INITIAL CONTEXT SETUP RESPONSE without prior REQUEST instead, so that it won't be affected by the upcoming patch. Take a chance to add asserts for per-eNB metrics.
Commit
d4420abea48e0cb315a84bd18f19935a8c92148c
by Vadim Yanitskiy
s1ap_proxy_test: add TCs simulating late E-RAB SETUP Rsp
It happens quite often in production that a UE context is being established and then released even before the eNB acknowledges its establishment. Add a unit tests for this scenario, preparing for a follow-up patch making the E-RAB FSM more flexible. The PDUs triggering late E-RAB SETUP Rsp event are currently being dropped because they reference no longer existing E-RABs.
Commit
41cecc11d253b15eeb69b71a9a3318e746979d45
by Vadim Yanitskiy
erab_fsm: handle E-RAB SETUP Rsp during release
It is quite common in production for a UE context to be established and then released before the eNB has acknowledged its creation. In the current implementation, this leads to errors and causes the PDU that triggers the late E-RAB SETUP Response event to be dropped.
Make the FSM logic more flexible by handling late erab_setup_rsp event in state erab_wait_release_rsp, i.e. during the release. This way we avoid dropping PDUs and printing errors.