def test_nCreateSessionProcedureSuccess(self): mmeCreateSessionHandler = MmeCreateSessionHandler((localhost(), 9000), self.mmeIoService, 0.5, 3, self.__mmeCreateSessionCompleteCallback__) self.mmeIoService.addIncomingMessageCallback(mmeCreateSessionHandler.handleIncomingMessage) sgwPgwBearerResourceHandler = SgwPgwBearerResourceHandler(localhost(), localhost()) sgwPgwCreateSessionHandler = SgwPgwCreateSessionHandler((localhost(), 9001), localhost(), self.sgwPgwIoService, sgwPgwBearerResourceHandler, self.__sgwPgwCreateSessionCompleteCallback__) self.sgwPgwIoService.addIncomingMessageCallback(sgwPgwCreateSessionHandler.handleCreateSessionRequestMessage) imsiArray = [] for i in range(100): imsi = "2867" + str(i) imsiArray.append(imsi) createSessionRequestMessage = \ {"imsi": imsi, "senderFteidForControlPlane": {"interfaceType": "ipv4", "teid": i, "address": localhost()}, "pgwS5S8AddressForContolPlane": {"interfaceType": "ipv4", "teid": 0, "address": localhost()}, "pdnAddressAllocation": {"pdnType": "ipv4", "pdnAddressAndPrefix": "0.0.0.0"}, "bearerContextsToBeCreated": [{"epsBearerId": 0, "bearerLevelQos": None}] } mmeCreateSessionHandler.execute(imsi, createSessionRequestMessage) time.sleep(0.1) time.sleep(1.0) self.assertEqual(self.mmeSuccessCount, 100) self.assertEqual(set(sgwPgwCreateSessionHandler.establishedS11SessionContexts), set(imsiArray)) mmeTeidsForControlPlane = [] for i in range(100): imsi = "2867" + str(i) mmeTeidsForControlPlane.append(sgwPgwCreateSessionHandler.establishedS11SessionContexts[imsi]["mmeFteidForControlPlane"]["teid"]) self.assertEqual(set(mmeTeidsForControlPlane), set(range(100)))
def test_DuplicateCreateSessionRequestProcedureSuccess(self): mmeCreateSessionHandler = MmeCreateSessionHandler((localhost(), 9000), self.mmeIoService, 0.5, 3, self.__mmeCreateSessionCompleteCallback__) self.mmeIoService.addIncomingMessageCallback(mmeCreateSessionHandler.handleIncomingMessage) sgwPgwBearerResourceHandler = SgwPgwBearerResourceHandler(localhost(), localhost()) sgwPgwCreateSessionHandler = SgwPgwCreateSessionHandler((localhost(), 9001), localhost(), self.sgwPgwIoService, sgwPgwBearerResourceHandler, self.__sgwPgwCreateSessionCompleteCallback__) self.sgwPgwIoService.addIncomingMessageCallback(sgwPgwCreateSessionHandler.handleCreateSessionRequestMessage) imsi = "35353" createSessionRequestMessage = \ {"imsi": imsi, "senderFteidForControlPlane": {"interfaceType": "ipv4", "teid": 45, "address": localhost()}, "pgwS5S8AddressForContolPlane": {"interfaceType": "ipv4", "teid": 0, "address": localhost()}, "pdnAddressAllocation": {"pdnType": "ipv4", "pdnAddressAndPrefix": "0.0.0.0"}, "bearerContextsToBeCreated": [{"epsBearerId": 0, "bearerLevelQos": None}] } mmeCreateSessionHandler.execute(imsi, createSessionRequestMessage) time.sleep(1.0) self.assertEqual(self.mmeResult, MmeCreateSessionHandler.Success) self.assertEqual(self.sgwPgwResult, SgwPgwCreateSessionHandler.Success) mmeCreateSessionHandler.execute(imsi, createSessionRequestMessage) # send duplicate message but with a new sequence number time.sleep(1.0) self.assertEqual(self.mmeResult, MmeCreateSessionHandler.Success) self.assertEqual(self.sgwPgwResult, SgwPgwCreateSessionHandler.Success)
def test_nNoCreateSessionResponseReceived(self): self.mmeResult = None mmeCreateSessionHandler = MmeCreateSessionHandler((localhost(), 9002), self.mmeIoService, 0.5, 3, self.__mmeCreateSessionCompleteCallback__) self.mmeIoService.addIncomingMessageCallback(mmeCreateSessionHandler.handleIncomingMessage) for i in range(100): imsi = "2867" + str(i) createSessionRequestMessage = \ {"imsi": imsi, "senderFteidForControlPlane": {"interfaceType": "ipv4", "teid": i, "address": localhost()}, "pgwS5S8AddressForContolPlane": {"interfaceType": "ipv4", "teid": 0, "address": localhost()}, "pdnAddressAllocation": {"pdnType": "ipv4", "pdnAddressAndPrefix": "0.0.0.0"}, "bearerContextsToBeCreated": [{"epsBearerId": 0, "s1uEnbFteid": {"interfaceType": "ipv4", "teid": 45, "address": localhost()}, "bearerLevelQos": None}] } mmeCreateSessionHandler.execute(imsi, createSessionRequestMessage) time.sleep(0.5*3 + 0.5) self.assertEqual(self.mmeFailureCount, 100)