LTE Handover trace file

178 views
Skip to first unread message

Achraf Khsiba

unread,
May 2, 2014, 4:27:30 AM5/2/14
to ns-3-...@googlegroups.com
Hey guys!
I'm simulating an LTE scenario between many eNBs and one UE moving betwwen them. The issue is that I can't find in output folder though I'm telling the program to do it by:

void NotifyHandoverStartUe (std::string context,
                       uint64_t imsi,
                       uint16_t cellid,
                       uint16_t rnti,
                       uint16_t targetCellId)
{
    cout << "//////////// DUMPING HANDOVER OK NOW /////////"  <<endl;
   
    if (handoverOutput == 0) {
        handoverOutput.open(HANDOVER_FILENAME);
        if (!handoverOutput) {
            cout << "Unable to open UE position trace file " << HANDOVER_FILENAME << endl;
            throw(0);
        }
        cout << "//////////// DUMPING HANDOVER OK NOW /////////"  <<endl;
        handoverOutput << "% time\tIMSI\tSRC\tDST" << endl;
    }
   
    handoverOutput << Simulator::Now().GetMilliSeconds() << "\t"
                   << imsi << "\t"
                   << cellid << "\t"
                   << targetCellId
                   << endl;
}

and then calling it by a call back in the main file:

Config::Connect ("/NodeList/*/DeviceList/*/LteUeRrc/HandoverStart", MakeCallback (&NotifyHandoverStartUe));  /* I'm sure it tries to execute this command but the call back doesn't work since I don't get the messages generated by NotifyHandoverStartUe function */
The original cc file is attached , functions are in lines 129 and 637.

Any ideas please?
Thanks in advance.


lte-helico.cc

Konstantinos

unread,
May 2, 2014, 5:17:23 AM5/2/14
to ns-3-...@googlegroups.com
Hi,

Are you sure that there is a handover? If the NotifyHandoverStartUe was called, then you should at least see the first line you print.
Perhaps you do not run your scenario enough time for the mobile node (the helicopter?) to move between eNBs. 

Which release of NS-3 (or LENA) do you use? I think that it is old which does not support automatic handovers.

In addition, in the latest stable release (ns-3.19) you can not have this

Ptr<EpcHelper> epcHelper = CreateObject<EpcHelper> ();

EpcHelper has become an abstract class and you need something like this

Ptr<PointToPointEpcHelper> epcHelper = CreateObject<PointToPointEpcHelper> ();
lteHelper
->SetEpcHelper (epcHelper);

and you set the 'automatic' handover mechanism as such

lteHelper->SetHandoverAlgorithmType ("ns3::A2A4RsrqHandoverAlgorithm");
lteHelper
->SetHandoverAlgorithmAttribute ("ServingCellThreshold", UintegerValue (30));
lteHelper
->SetHandoverAlgorithmAttribute ("NeighbourCellOffset", UintegerValue (1));

So, I would strongly recommend to upgrade your NS-3 release (with ns-3.20 being right at the corner)

Regards,
K.
Reply all
Reply to author
Forward
0 new messages