コード例 #1
0
ファイル: s1ap_wrapper.py プロジェクト: stjordanis/magma-1
 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")
コード例 #2
0
    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)
コード例 #3
0
    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])