NS3 DEVICE TO DEVICE COMMUNICATION

NS3 DEVICE TO DEVICE COMMUNICATION

Device-to-Device (D2D) communication refers to a radio technology that enables devices to communicate directly with each other, that is without routing the data paths through a network infrastructure.

NS3 Tutorial

Challenges on NS3 DEVICE TO DEVICE COMMUNICATION:

  • Interference management
  • Mobility management
  • Security
  • For enhance the performance and also quality of service of system
  • Cellular network offloading
  • D2D in IoT
NS3 DEVICE TO DEVICE COMMUNICATION

Potential gains of D2D:

  • Latency gain.
  • User data gram gain.
  • Capacity gain.

 

Characteristics of D2D communication in IoT:

  • Heterogeneity of devices.
  • Device limitation.
  • Device network and networking standards.
  • Unpredictable mobility pattern of devices.
  • Device coexistence and collaboration.
  • Self-configuration, self-organization and autonomy.

Ns3 Video Tutorial

Ns3 Video Tutorial – Latest NS3 Projects Output

Ns3 Tutorial

Ns3 Tutorial – Guide to Various Network Projects

Journal Support

Paper Publication for NS3 Simulation Projects

Contact Form

Contact Us- Customized Ns3 Simulator Projects

Sample code for NS3 DEVICE TO DEVICE COMMUNICATION

D2DCommunication::DoSendRrcConnectionRequest (LteRrcSap::RrcConnectionRequest msg)

{

m_rnti = m_rrc->GetRnti ();

SetEnbRrcSapProvider ();

Ptr<Packet> packet = Create<Packet> ();

RrcConnectionRequestHeader rrcConnectionRequestHeader;

rrcConnectionRequestHeader.SetMessage (msg);

packet->AddHeader (rrcConnectionRequestHeader);

LteRlcSapProvider::TransmitPdcpPduParameters transmitPdcpPduParameters;

transmitPdcpPduParameters.pdcpPdu = packet;

transmitPdcpPduParameters.rnti = m_rnti;

transmitPdcpPduParameters.lcid = 0;

m_setupParameters.srb0SapProvider->TransmitPdcpPdu (transmitPdcpPduParameters);

}

 

void

D2DCommunication::DoSendRrcConnectionSetupCompleted (LteRrcSap::RrcConnectionSetupCompleted msg)

{

Ptr<Packet> packet = Create<Packet> ();

RrcConnectionSetupCompleteHeader rrcConnectionSetupCompleteHeader;

rrcConnectionSetupCompleteHeader.SetMessage (msg);

packet->AddHeader (rrcConnectionSetupCompleteHeader);

LtePdcpSapProvider::TransmitPdcpSduParameters transmitPdcpSduParameters;

transmitPdcpSduParameters.pdcpSdu = packet;

transmitPdcpSduParameters.rnti = m_rnti;

transmitPdcpSduParameters.lcid = 1;

if (m_setupParameters.srb1SapProvider)

{

m_setupParameters.srb1SapProvider->TransmitPdcpSdu (transmitPdcpSduParameters);

}

}

void

D2DCommunication::DoSendRrcConnectionReconfigurationCompleted (LteRrcSap::RrcConnectionReconfigurationCompleted msg)

{

m_rnti = m_rrc->GetRnti ();

SetEnbRrcSapProvider ();

Ptr<Packet> packet = Create<Packet> ();

RrcConnectionReconfigurationCompleteHeader rrcConnectionReconfigurationCompleteHeader;

rrcConnectionReconfigurationCompleteHeader.SetMessage (msg);

packet->AddHeader (rrcConnectionReconfigurationCompleteHeader);

LtePdcpSapProvider::TransmitPdcpSduParameters transmitPdcpSduParameters;

transmitPdcpSduParameters.pdcpSdu = packet;

transmitPdcpSduParameters.rnti = m_rnti;

transmitPdcpSduParameters.lcid = 1;

m_setupParameters.srb1SapProvider->TransmitPdcpSdu (transmitPdcpSduParameters);

}

 

void

D2DCommunication::DoSendMeasurementReport (LteRrcSap::MeasurementReport msg)

{

m_rnti = m_rrc->GetRnti ();

SetEnbRrcSapProvider ();

Ptr<Packet> packet = Create<Packet> ();

MeasurementReportHeader measurementReportHeader;

measurementReportHeader.SetMessage (msg);

packet->AddHeader (measurementReportHeader);

LtePdcpSapProvider::TransmitPdcpSduParameters transmitPdcpSduParameters;

transmitPdcpSduParameters.pdcpSdu = packet;

transmitPdcpSduParameters.rnti = m_rnti;

transmitPdcpSduParameters.lcid = 1;

m_setupParameters.srb1SapProvider->TransmitPdcpSdu (transmitPdcpSduParameters);

}