Bugzilla – Bug 2161
Error in removing a bearer in epc-mme class
Last modified: 2016-02-25 04:30:57 EST
In the method void EpcMme::RemoveBearer (Ptr<UeInfo> ueInfo, uint8_t epsBearerId)
when the given epsBearerId is removed from the list of bearers obtained from ueInfo the number of bearers bearerCounter is not decreased.
Therefore if a bearer is removed during the simulation with the method DoSendReleaseDataRadioBearer(imsi, rnti, bearerId) from LteEnbRrc class (actually invoked by a stub method which cycles on all the bearers and makes a call of the method for each bearerId) and then another one is added (for example by scheduling the execution of the classic instructions to add a bearer) then
UeManager::SetupDataRadioBearer (EpsBearer bearer, uint8_t bearerId, uint32_t gtpTeid, Ipv4Address transportLayerAddress)
fails with the assert
assert failed. cond="bearerId == 0 || bid == bearerId", msg="bearer ID mismatch (1 != 2, the assumption that ID are allocated in the same way by MME and RRC is not valid any more", file=../src/lte/model/lte-enb-rrc.cc, line=345
since the MME thinks that there is already one bearer.