added LteUeRrcSapProvider::CompleteSetup ()

This commit is contained in:
Nicola Baldo
2012-11-30 17:07:46 +01:00
parent 35e62e96c9
commit a34efdbbba
5 changed files with 35 additions and 10 deletions

View File

@@ -141,7 +141,7 @@ UeManager::UeManager (Ptr<LteEnbRrc> rrc, uint16_t rnti, State s)
{
NS_LOG_FUNCTION (this);
m_pdcpSapUser = new LtePdcpSpecificLtePdcpSapUser<UeManager> (this);
m_drbPdcpSapUser = new LtePdcpSpecificLtePdcpSapUser<UeManager> (this);
m_physicalConfigDedicated.haveAntennaInfoDedicated = true;
m_physicalConfigDedicated.antennaInfo.transmissionMode = m_rrc->m_defaultTransmissionMode;
@@ -185,7 +185,7 @@ UeManager::UeManager (Ptr<LteEnbRrc> rrc, uint16_t rnti, State s)
Ptr<LtePdcp> pdcp = CreateObject<LtePdcp> ();
pdcp->SetRnti (m_rnti);
pdcp->SetLcId (lcid);
pdcp->SetLtePdcpSapUser (m_pdcpSapUser);
pdcp->SetLtePdcpSapUser (m_drbPdcpSapUser);
pdcp->SetLteRlcSapProvider (rlc->GetLteRlcSapProvider ());
rlc->SetLteRlcSapUser (pdcp->GetLteRlcSapUser ());
@@ -235,7 +235,7 @@ UeManager::~UeManager (void)
void
UeManager::DoDispose ()
{
delete m_pdcpSapUser;
delete m_drbPdcpSapUser;
m_rrc->m_cmacSapProvider->RemoveUe (m_rnti);
m_rrc->m_cphySapProvider->RemoveUe (m_rnti);
@@ -305,7 +305,7 @@ UeManager::SetupDataRadioBearer (EpsBearer bearer, uint32_t gtpTeid, Ipv4Address
Ptr<LtePdcp> pdcp = CreateObject<LtePdcp> ();
pdcp->SetRnti (m_rnti);
pdcp->SetLcId (lcid);
pdcp->SetLtePdcpSapUser (m_pdcpSapUser);
pdcp->SetLtePdcpSapUser (m_drbPdcpSapUser);
pdcp->SetLteRlcSapProvider (rlc->GetLteRlcSapProvider ());
rlc->SetLteRlcSapUser (pdcp->GetLteRlcSapUser ());
drbInfo->m_pdcp = pdcp;

View File

@@ -346,7 +346,7 @@ private:
LteRrcSap::PhysicalConfigDedicated m_physicalConfigDedicated;
Ptr<LteEnbRrc> m_rrc;
State m_state;
LtePdcpSapUser* m_pdcpSapUser;
LtePdcpSapUser* m_drbPdcpSapUser;
bool m_pendingRrcConnectionReconfiguration;
TracedCallback<State, State> m_stateTransitionCallback;
uint16_t m_sourceX2apId;

View File

@@ -363,6 +363,13 @@ class LteUeRrcSapProvider : public LteRrcSap
{
public:
struct CompleteSetupParameters
{
LteRlcSapUser* srb0SapUser;
LtePdcpSapUser* srb1SapUser;
};
virtual void CompleteSetup (CompleteSetupParameters params) = 0;
virtual void RecvMasterInformationBlock (MasterInformationBlock msg) = 0;
virtual void RecvSystemInformationBlockType1 (SystemInformationBlockType1 msg) = 0;
virtual void RecvSystemInformation (SystemInformation msg) = 0;
@@ -541,6 +548,7 @@ public:
MemberLteUeRrcSapProvider (C* owner);
// methods inherited from LteUeRrcSapProvider go here
virtual void CompleteSetup (CompleteSetupParameters params);
virtual void RecvMasterInformationBlock (MasterInformationBlock msg);
virtual void RecvSystemInformationBlockType1 (SystemInformationBlockType1 msg);
virtual void RecvSystemInformation (SystemInformation msg);
@@ -566,6 +574,13 @@ MemberLteUeRrcSapProvider<C>::MemberLteUeRrcSapProvider ()
{
}
template <class C>
void
MemberLteUeRrcSapProvider<C>::CompleteSetup (CompleteSetupParameters params)
{
m_owner->DoCompleteSetup (params);
}
template <class C>
void
MemberLteUeRrcSapProvider<C>::RecvMasterInformationBlock (MasterInformationBlock msg)

View File

@@ -135,7 +135,7 @@ LteUeRrc::LteUeRrc ()
m_cphySapUser = new MemberLteUeCphySapUser<LteUeRrc> (this);
m_cmacSapUser = new UeMemberLteUeCmacSapUser (this);
m_rrcSapProvider = new MemberLteUeRrcSapProvider<LteUeRrc> (this);
m_pdcpSapUser = new LtePdcpSpecificLtePdcpSapUser<LteUeRrc> (this);
m_drbPdcpSapUser = new LtePdcpSpecificLtePdcpSapUser<LteUeRrc> (this);
m_asSapProvider = new MemberLteAsSapProvider<LteUeRrc> (this);
}
@@ -151,7 +151,7 @@ LteUeRrc::DoDispose ()
NS_LOG_FUNCTION (this);
delete m_cphySapUser;
delete m_cmacSapUser;
delete m_pdcpSapUser;
delete m_drbPdcpSapUser;
delete m_asSapProvider;
m_drbMap.clear ();
}
@@ -510,6 +510,15 @@ LteUeRrc::DoRecvMasterInformationBlock (LteRrcSap::MasterInformationBlock msg)
// RRC SAP methods
void
LteUeRrc::DoCompleteSetup (LteUeRrcSapProvider::CompleteSetupParameters params)
{
NS_LOG_FUNCTION (this);
m_srb0->m_rlc->SetLteRlcSapUser (params.srb0SapUser);
m_srb1->m_pdcp->SetLtePdcpSapUser (params.srb1SapUser);
}
void
LteUeRrc::DoRecvSystemInformationBlockType1 (LteRrcSap::SystemInformationBlockType1 msg)
{
@@ -686,7 +695,7 @@ LteUeRrc::ApplyRadioResourceConfigDedicated (LteRrcSap::RadioResourceConfigDedic
Ptr<LtePdcp> pdcp = CreateObject<LtePdcp> ();
pdcp->SetRnti (m_rnti);
pdcp->SetLcId (lcid);
pdcp->SetLtePdcpSapUser (m_pdcpSapUser);
pdcp->SetLtePdcpSapUser (m_drbPdcpSapUser);
pdcp->SetLteRlcSapProvider (rlc->GetLteRlcSapProvider ());
rlc->SetLteRlcSapUser (pdcp->GetLteRlcSapUser ());
@@ -775,7 +784,7 @@ LteUeRrc::ApplyRadioResourceConfigDedicated (LteRrcSap::RadioResourceConfigDedic
Ptr<LtePdcp> pdcp = CreateObject<LtePdcp> ();
pdcp->SetRnti (m_rnti);
pdcp->SetLcId (dtamIt->logicalChannelIdentity);
pdcp->SetLtePdcpSapUser (m_pdcpSapUser);
pdcp->SetLtePdcpSapUser (m_drbPdcpSapUser);
pdcp->SetLteRlcSapProvider (rlc->GetLteRlcSapProvider ());
rlc->SetLteRlcSapUser (pdcp->GetLteRlcSapUser ());
drbInfo->m_pdcp = pdcp;

View File

@@ -239,6 +239,7 @@ private:
void DoRecvMasterInformationBlock (LteRrcSap::MasterInformationBlock msg);
// RRC SAP methods
void DoCompleteSetup (LteUeRrcSapProvider::CompleteSetupParameters params);
void DoRecvSystemInformationBlockType1 (LteRrcSap::SystemInformationBlockType1 msg);
void DoRecvSystemInformation (LteRrcSap::SystemInformation msg);
void DoRecvRrcConnectionSetup (LteRrcSap::RrcConnectionSetup msg);
@@ -267,7 +268,7 @@ private:
LteUeRrcSapProvider* m_rrcSapProvider;
LteMacSapProvider* m_macSapProvider;
LtePdcpSapUser* m_pdcpSapUser;
LtePdcpSapUser* m_drbPdcpSapUser;
LteAsSapProvider* m_asSapProvider;
LteAsSapUser* m_asSapUser;