SIGABART error - cond="0 != rnti"

62 views
Skip to first unread message

Resting Platypus

unread,
Sep 26, 2019, 11:36:17 AM9/26/19
to ns-3-users
Hi,

For my research I am trying to set the same RNTI value for the UEs in the system. Following is my attempt at doing that.

#include<ns3/lte-module.h>
#include<ns3/applications-module.h>
#include<ns3/internet-module.h>
#include<ns3/point-to-point-helper.h>
#include<ns3/network-module.h>
#include<ns3/core-module.h>
#include<ns3/mobility-module.h>
#include<ns3/buildings-helper.h>
#include<iomanip>
#include<stdio.h>
#include<ios>

//#include "lte-simple-helper.h"
//#include "lte-test-entities.h"

#include "ns3/config-store.h"

using namespace ns3;
NS_LOG_COMPONENT_DEFINE("icn8");

int main (int argc, char *argv[])
{
uint16_t numEnb = 1;
uint16_t numUes = 10;

Time simTime = MilliSeconds (1050);
bool useCa = false;

CommandLine cmd;
cmd.AddValue ("simTime", "Total duration of the simulation", simTime);
cmd.AddValue ("useCa", "Whether to use carrier aggregation.", useCa);
cmd.Parse (argc, argv);
ConfigStore inputConfig;
inputConfig.ConfigureDefaults ();

// Parse again so you can override default values from the command line
cmd.Parse (argc, argv);

if (useCa)
{
Config::SetDefault ("ns3::LteHelper::UseCa", BooleanValue (useCa));
Config::SetDefault ("ns3::LteHelper::NumberOfComponentCarriers", UintegerValue (2));
Config::SetDefault ("ns3::LteHelper::EnbComponentCarrierManager", StringValue ("ns3::RrComponentCarrierManager"));
}

Ptr<LteHelper> lteHelper = CreateObject<LteHelper>();


//eNB and UE nodes
NodeContainer ueNodes;
NodeContainer enbNodes;
ueNodes.Create(numUes);
enbNodes.Create(numEnb);

// Install Mobility Model
MobilityHelper mobility;
mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
mobility.Install (enbNodes);
BuildingsHelper::Install (enbNodes);
mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
mobility.Install (ueNodes);
BuildingsHelper::Install (ueNodes);


NetDeviceContainer enbLteDevs = lteHelper->InstallEnbDevice(enbNodes);
NetDeviceContainer ueLteDevs = lteHelper->InstallUeDevice(ueNodes);


lteHelper->Attach(ueLteDevs, enbLteDevs.Get(0));

//Attach a data radio bearer
enum EpsBearer::Qci q = EpsBearer::GBR_CONV_VOICE;
EpsBearer bearer(q);

for(uint32_t u = 0; u<ueNodes.GetN(); ++u)
{
Ptr<NetDevice> ueDev = ueNodes.Get(u)->GetDevice(u);

//Ptr<NetDevice> ueDev = ueLteDevs.Get(u);

lteHelper->ActivateDataRadioBearer(ueDev, bearer);
Ptr<LteEnbNetDevice> enbLteDevice = ueDev->GetObject<LteUeNetDevice> ()->GetTargetEnb ();
Ptr<LteUeRrc> ueRrc = ueDev->GetObject<LteUeNetDevice> ()->GetRrc ();
uint16_t rnti = ueRrc->GetRnti();

Ptr<LteEnbRrc> enbRrc = enbLteDevice->GetObject<LteEnbNetDevice>()->GetRrc();
Ptr<UeManager> ueManager = enbRrc->GetUeManager(rnti);
//ueManager->SetAttribute("C-RNTI", UintegerValue(8));
// for(std::map <uint8_t, Ptr<LteDataRadioBearerInfo> >::iterator it = ueManager->m_drbMap.begin (); it != ueManager->m_drbMap.end (); ++it)
// {
// Ptr<LtePdcp> pdcp = it->second->m_pdcp;
// Ptr<LteRlc> rlc = it->second->m_rlc;
// pdcp->SetRnti(11);
// rlc->SetRnti(11);
// }

Ptr<LteDataRadioBearerInfo> bearerInfo = ueManager->GetObject<LteDataRadioBearerInfo>();
Ptr<LtePdcp> pdcp = bearerInfo->GetObject<LtePdcp>();
Ptr<LteRlc> rlc = bearerInfo->GetObject<LteRlc>();
pdcp->SetRnti(11);
rlc->SetRnti(11);
}

lteHelper->EnableTraces ();

Simulator::Stop (simTime);
Simulator::Run ();

Simulator::Destroy ();

return 0;
}


However, after running this I get an error as follows:

assert failed. cond="0 != rnti", file=../src/lte/model/lte-enb-rrc.cc, line=1923
terminate called without an active exception


Could any one please help me in understanding this error and an advice on how to approach this problem?

Thank You.




Reply all
Reply to author
Forward
0 new messages