def sendDeactDedicatedBearerAccept(self, ue_id, bearerId): deact_ded_bearer_acc = s1ap_types.UeDeActvBearCtxtAcc_t() deact_ded_bearer_acc.ue_Id = ue_id deact_ded_bearer_acc.bearerId = bearerId self._s1_util.issue_cmd(s1ap_types.tfwCmd.UE_DEACTIVATE_BER_ACC, deact_ded_bearer_acc) print("************* Sending deactivate EPS bearer context accept\n")
def test_attach_detach(self): """ attach/detach + dedicated bearer test with 4 UEs """ num_ues = 4 ue_ids = [] bearer_ids = [] self._s1ap_wrapper.configUEDevice(num_ues) for _ in range(num_ues): req = self._s1ap_wrapper.ue_req print("********************** Running End to End attach for ", "UE id ", req.ue_id) # Now actually complete the attach self._s1ap_wrapper._s1_util.attach( req.ue_id, s1ap_types.tfwCmd.UE_END_TO_END_ATTACH_REQUEST, s1ap_types.tfwCmd.UE_ATTACH_ACCEPT_IND, s1ap_types.ueAttachAccept_t) # Wait on EMM Information from MME self._s1ap_wrapper._s1_util.receive_emm_info() ue_ids.append(req.ue_id) self._s1ap_wrapper._ue_idx = 0 for i in range(num_ues): req = self._s1ap_wrapper.ue_req print("********************** Adding dedicated bearer to IMSI", ''.join([str(i) for i in req.imsi])) self._spgw_util.create_bearer( 'IMSI' + ''.join([str(i) for i in req.imsi]), 5) response = self._s1ap_wrapper.s1_util.get_response() self.assertTrue(response, s1ap_types.tfwCmd.UE_ACT_DED_BER_REQ.value) print("********************** Received activate dedicated EPS" " bearer context request") act_ded_ber_ctxt_req = response.cast( s1ap_types.UeActDedBearCtxtReq_t) ded_bearer_acc = s1ap_types.UeActDedBearCtxtAcc_t() ded_bearer_acc.ue_Id = req.ue_id ded_bearer_acc.bearerId = act_ded_ber_ctxt_req.bearerId print("********************** Sending activate dedicated" " EPS bearer context accept") self._s1ap_wrapper._s1_util.issue_cmd( s1ap_types.tfwCmd.UE_ACT_DED_BER_ACC, ded_bearer_acc) bearer_ids.append(ded_bearer_acc.bearerId) time.sleep(1) self._s1ap_wrapper._ue_idx = 0 for i in range(num_ues): req = self._s1ap_wrapper.ue_req print("********************** Deleting dedicated bearer for IMSI", ''.join([str(i) for i in req.imsi])) self._spgw_util.delete_bearer( 'IMSI' + ''.join([str(i) for i in req.imsi]), 5, bearer_ids[i]) response = self._s1ap_wrapper.s1_util.get_response() self.assertTrue(response, s1ap_types.tfwCmd.UE_DEACTIVATE_BER_REQ.value) print("********************** Received deactivate EPS bearer" " context request") print("********************** Sending Deactivate EPS bearer" " context accept") deactv_bearer_acc = s1ap_types.UeDeActvBearCtxtAcc_t() deactv_bearer_acc.ue_Id = req.ue_id deactv_bearer_acc.bearerId = bearer_ids[i] self._s1ap_wrapper._s1_util.issue_cmd( s1ap_types.tfwCmd.UE_DEACTIVATE_BER_ACC, deactv_bearer_acc) time.sleep(2) for ue in ue_ids: print("********************** Running UE detach for UE id ", ue) # Now detach the UE self._s1ap_wrapper.s1_util.detach( ue, s1ap_types.ueDetachType_t.UE_NORMAL_DETACH.value)
def test_attach_detach(self): """ attach/detach + dedicated bearer test with a single UE """ num_ues = 1 detach_type = [ s1ap_types.ueDetachType_t.UE_NORMAL_DETACH.value, s1ap_types.ueDetachType_t.UE_SWITCHOFF_DETACH.value ] wait_for_s1 = [True, False] self._s1ap_wrapper.configUEDevice(num_ues) for i in range(num_ues): req = self._s1ap_wrapper.ue_req print("********************** Running End to End attach for ", "UE id ", req.ue_id) # Now actually complete the attach self._s1ap_wrapper._s1_util.attach( req.ue_id, s1ap_types.tfwCmd.UE_END_TO_END_ATTACH_REQUEST, s1ap_types.tfwCmd.UE_ATTACH_ACCEPT_IND, s1ap_types.ueAttachAccept_t) # Wait on EMM Information from MME self._s1ap_wrapper._s1_util.receive_emm_info() time.sleep(5) print("********************** Adding dedicated bearer to IMSI", ''.join([str(i) for i in req.imsi])) self._spgw_util.create_bearer( 'IMSI' + ''.join([str(i) for i in req.imsi]), 5) response = self._s1ap_wrapper.s1_util.get_response() self.assertTrue(response, s1ap_types.tfwCmd.UE_ACT_DED_BER_REQ.value) act_ded_ber_ctxt_req = response.cast( s1ap_types.UeActDedBearCtxtReq_t) ded_bearer_acc = s1ap_types.UeActDedBearCtxtAcc_t() ded_bearer_acc.ue_Id = 1 ded_bearer_acc.bearerId = act_ded_ber_ctxt_req.bearerId self._s1ap_wrapper._s1_util.issue_cmd( s1ap_types.tfwCmd.UE_ACT_DED_BER_ACC, ded_bearer_acc) time.sleep(5) print("********************** Deleting dedicated bearer for IMSI", ''.join([str(i) for i in req.imsi])) self._spgw_util.delete_bearer( 'IMSI' + ''.join([str(i) for i in req.imsi]), 5, 6) response = self._s1ap_wrapper.s1_util.get_response() self.assertTrue(response, s1ap_types.tfwCmd.UE_DEACTIVATE_BER_REQ.value) print("******************* Received deactivate eps bearer context") deactv_bearer_req = response.cast(s1ap_types.UeDeActvBearCtxtReq_t) print("********************** Sending Deactivate EPS bearer" " context accept") deactv_bearer_acc = s1ap_types.UeDeActvBearCtxtAcc_t() deactv_bearer_acc.ue_Id = req.ue_id deactv_bearer_acc.bearerId = deactv_bearer_req.bearerId self._s1ap_wrapper._s1_util.issue_cmd( s1ap_types.tfwCmd.UE_DEACTIVATE_BER_ACC, deactv_bearer_acc) time.sleep(5) print("********************** Running UE detach for UE id ", req.ue_id) # Now detach the UE self._s1ap_wrapper.s1_util.detach(req.ue_id, detach_type[i], wait_for_s1[i])