Create RealProtocolRlcSapUser to store RNTI as a member when constructing the object.

This commit is contained in:
Lluis Parcerisa
2012-12-07 13:25:32 +01:00
parent 277c47cd3f
commit 5962ee0c9e
2 changed files with 40 additions and 12 deletions

View File

@@ -141,7 +141,7 @@ LteUeRrcProtocolReal::DoSendRrcConnectionRequest (LteRrcSap::RrcConnectionReques
m_rnti = m_rrc->GetRnti ();
SetEnbRrcSapProvider ();
/*Ptr<Packet> packet = Create<Packet> ();
Ptr<Packet> packet = Create<Packet> ();
RrcConnectionRequestHeader rrcConnectionRequestHeader;
rrcConnectionRequestHeader.SetMessage (msg);
@@ -154,12 +154,6 @@ LteUeRrcProtocolReal::DoSendRrcConnectionRequest (LteRrcSap::RrcConnectionReques
transmitPdcpPduParameters.lcid = 0;
m_setupParameters.srb0SapProvider->TransmitPdcpPdu(transmitPdcpPduParameters);
*/
Simulator::Schedule (RRC_REAL_MSG_DELAY,
&LteEnbRrcSapProvider::RecvRrcConnectionRequest,
m_enbRrcSapProvider,
m_rnti,
msg);
}
void
@@ -457,7 +451,7 @@ LteEnbRrcProtocolReal::DoSetupUe (uint16_t rnti, LteEnbRrcSapUser::SetupUeParame
m_setupUeParametersMap[rnti] = params;
// Create LteRlcSapUser, LtePdcpSapUser
LteRlcSapUser* srb0SapUser = new LteRlcSpecificLteRlcSapUser<LteEnbRrcProtocolReal> (this);
LteRlcSapUser* srb0SapUser = new RealProtocolRlcSapUser (this,rnti);
LtePdcpSapUser* srb1SapUser = new LtePdcpSpecificLtePdcpSapUser<LteEnbRrcProtocolReal> (this);
LteEnbRrcSapProvider::CompleteSetupUeParameters completeSetupUeParameters;
completeSetupUeParameters.srb0SapUser = srb0SapUser;
@@ -633,7 +627,7 @@ LteEnbRrcProtocolReal::DoSendRrcConnectionRelease (uint16_t rnti, LteRrcSap::Rrc
}
void
LteEnbRrcProtocolReal::DoReceivePdcpPdu (Ptr<Packet> p)
LteEnbRrcProtocolReal::DoReceivePdcpPdu (uint16_t rnti, Ptr<Packet> p)
{
// Get type of message received
RrcUlCcchMessage rrcUlCcchMessage;
@@ -650,13 +644,13 @@ LteEnbRrcProtocolReal::DoReceivePdcpPdu (Ptr<Packet> p)
p->RemoveHeader (rrcConnectionReestablishmentRequestHeader);
LteRrcSap::RrcConnectionReestablishmentRequest rrcConnectionReestablishmentRequestMsg;
rrcConnectionReestablishmentRequestMsg = rrcConnectionReestablishmentRequestHeader.GetMessage ();
m_enbRrcSapProvider->RecvRrcConnectionReestablishmentRequest (m_rnti,rrcConnectionReestablishmentRequestMsg);
m_enbRrcSapProvider->RecvRrcConnectionReestablishmentRequest (rnti,rrcConnectionReestablishmentRequestMsg);
break;
case 1:
p->RemoveHeader (rrcConnectionRequestHeader);
LteRrcSap::RrcConnectionRequest rrcConnectionRequestMsg;
rrcConnectionRequestMsg = rrcConnectionRequestHeader.GetMessage ();
m_enbRrcSapProvider->RecvRrcConnectionRequest (m_rnti,rrcConnectionRequestMsg);
m_enbRrcSapProvider->RecvRrcConnectionRequest (rnti,rrcConnectionRequestMsg);
break;
}
}
@@ -736,4 +730,22 @@ LteEnbRrcProtocolReal::DoDecodeHandoverCommand (Ptr<Packet> p)
return msg;
}
//////////////////////////////////////////////////////
RealProtocolRlcSapUser::RealProtocolRlcSapUser (LteEnbRrcProtocolReal* pdcp, uint16_t rnti)
: m_pdcp (pdcp),
m_rnti (rnti)
{
}
RealProtocolRlcSapUser::RealProtocolRlcSapUser ()
{
}
void
RealProtocolRlcSapUser::ReceivePdcpPdu (Ptr<Packet> p)
{
m_pdcp->DoReceivePdcpPdu (m_rnti, p);
}
} // namespace ns3

View File

@@ -125,6 +125,8 @@ public:
LteUeRrcSapProvider* GetUeRrcSapProvider (uint16_t rnti);
void SetUeRrcSapProvider (uint16_t rnti, LteUeRrcSapProvider* p);
void DoReceivePdcpPdu (uint16_t rnti, Ptr<Packet> p);
private:
// methods forwarded from LteEnbRrcSapUser
@@ -144,7 +146,6 @@ private:
Ptr<Packet> DoEncodeHandoverCommand (LteRrcSap::RrcConnectionReconfiguration msg);
LteRrcSap::RrcConnectionReconfiguration DoDecodeHandoverCommand (Ptr<Packet> p);
void DoReceivePdcpPdu (Ptr<Packet> p);
void DoReceivePdcpSdu (LtePdcpSapUser::ReceivePdcpSduParameters params);
uint16_t m_rnti;
@@ -157,6 +158,21 @@ private:
};
///////////////////////////////////////
class RealProtocolRlcSapUser : public LteRlcSapUser
{
public:
RealProtocolRlcSapUser (LteEnbRrcProtocolReal* pdcp, uint16_t rnti);
// Interface implemented from LteRlcSapUser
virtual void ReceivePdcpPdu (Ptr<Packet> p);
private:
RealProtocolRlcSapUser ();
LteEnbRrcProtocolReal* m_pdcp;
uint16_t m_rnti;
};
}