removed obsolete S1BearerSetupRequest method from EpcEnbS1Sap

This commit is contained in:
Nicola Baldo
2012-11-28 12:21:56 +01:00
parent 8b173f7c1c
commit 9d2c04d44c
7 changed files with 31 additions and 70 deletions

View File

@@ -634,6 +634,7 @@ LteHelper::ActivateDataRadioBearer (Ptr<NetDevice> ueDevice, EpsBearer bearer)
EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters params;
params.rnti = rnti;
params.bearer = bearer;
params.bearerId = 0;
params.gtpTeid = 0; // don't care
enbRrc->GetS1SapUser ()->DataRadioBearerSetupRequest (params);
done = true;

View File

@@ -127,31 +127,6 @@ EpcEnbApplication::GetS1apSapEnb ()
return m_s1apSapEnb;
}
void
EpcEnbApplication::ErabSetupRequest (uint32_t teid, uint64_t imsi, EpsBearer bearer)
{
NS_LOG_FUNCTION (this << teid << imsi);
// request the RRC to setup a radio bearer
struct EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters params;
params.bearer = bearer;
params.gtpTeid = teid;
std::map<uint64_t, uint16_t>::iterator it = m_imsiRntiMap.find (imsi);
NS_ASSERT_MSG (it != m_imsiRntiMap.end (), "unknown IMSI");
params.rnti = it->second;
m_s1SapUser->DataRadioBearerSetupRequest (params);
}
void
EpcEnbApplication::DoS1BearerSetupRequest (EpcEnbS1SapProvider::S1BearerSetupRequestParameters params)
{
NS_LOG_FUNCTION (this << params.rnti << params.bid);
EpsFlowId_t rbid (params.rnti, params.bid);
// side effect: create entries if not exist
m_rbidTeidMap[rbid] = params.gtpTeid;
m_teidRbidMap[params.gtpTeid] = rbid;
}
void
EpcEnbApplication::DoInitialUeMessage (uint64_t imsi, uint16_t rnti)
{
@@ -167,11 +142,29 @@ EpcEnbApplication::DoInitialContextSetupRequest (uint64_t mmeUeS1Id, uint16_t en
{
NS_LOG_FUNCTION (this);
for (std::list<EpcS1apSapEnb::ErabToBeSetupItem>::iterator it = erabToBeSetupList.begin ();
it != erabToBeSetupList.end ();
++it)
for (std::list<EpcS1apSapEnb::ErabToBeSetupItem>::iterator erabIt = erabToBeSetupList.begin ();
erabIt != erabToBeSetupList.end ();
++erabIt)
{
ErabSetupRequest (it->sgwTeid, mmeUeS1Id, it->erabLevelQosParameters);
// request the RRC to setup a radio bearer
uint64_t imsi = mmeUeS1Id;
std::map<uint64_t, uint16_t>::iterator imsiIt = m_imsiRntiMap.find (imsi);
NS_ASSERT_MSG (imsiIt != m_imsiRntiMap.end (), "unknown IMSI");
uint16_t rnti = imsiIt->second;
struct EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters params;
params.rnti = rnti;
params.bearer = erabIt->erabLevelQosParameters;
params.bearerId = erabIt->erabId;
params.gtpTeid = erabIt->sgwTeid;
m_s1SapUser->DataRadioBearerSetupRequest (params);
EpsFlowId_t rbid (rnti, erabIt->erabId);
// side effect: create entries if not exist
m_rbidTeidMap[rbid] = params.gtpTeid;
m_teidRbidMap[params.gtpTeid] = rbid;
}
}

View File

@@ -106,18 +106,7 @@ public:
* \return the ENB side of the S1-AP SAP
*/
EpcS1apSapEnb* GetS1apSapEnb ();
/**
* This method is triggered after the eNB received
* a S1-AP message of type E-RAB Setup Request by the MME and will
* trigger the corresponding RadioBearer creation
*
* \param teid the Tunnel Endpoint IDentifier of the S1-bearer to be setup.
* \param imsi the unique ID of the UE
* \param bearer the specification of the corresponding EPS bearer
*/
void ErabSetupRequest (uint32_t teid, uint64_t imsi, EpsBearer bearer);
/**
* Method to be assigned to the recv callback of the LTE socket. It is called when the eNB receives a data packet from the radio interface that is to be forwarded to the SGW.
*
@@ -151,7 +140,6 @@ public:
private:
// ENB S1 SAP provider methods
void DoS1BearerSetupRequest (EpcEnbS1SapProvider::S1BearerSetupRequestParameters params);
void DoInitialUeMessage (uint64_t imsi, uint16_t rnti);
// S1-AP SAP ENB methods

View File

@@ -53,12 +53,6 @@ public:
uint32_t gtpTeid; /**< S1-bearer GTP tunnel endpoint identifier, see 36.423 9.2.1 */
};
/**
* Request the setup of a S1 bearer
*
*/
virtual void S1BearerSetupRequest (S1BearerSetupRequestParameters params) = 0;
/**
*
*
@@ -92,6 +86,7 @@ public:
DataRadioBearer is to be created */
EpsBearer bearer; /**< the characteristics of the bearer to be set
up */
uint8_t bearerId; /**< the EPS Bearer Identifier */
uint32_t gtpTeid; /**< S1-bearer GTP tunnel endpoint identifier, see 36.423 9.2.1 */
Ipv4Address transportLayerAddress; /**< IP Address of the SGW, see 36.423 9.2.1 */
};
@@ -119,7 +114,6 @@ public:
MemberEpcEnbS1SapProvider (C* owner);
// inherited from EpcEnbS1SapProvider
virtual void S1BearerSetupRequest (S1BearerSetupRequestParameters params);
virtual void InitialUeMessage (uint64_t imsi, uint16_t rnti);
private:
@@ -138,12 +132,6 @@ MemberEpcEnbS1SapProvider<C>::MemberEpcEnbS1SapProvider ()
{
}
template <class C>
void MemberEpcEnbS1SapProvider<C>::S1BearerSetupRequest (S1BearerSetupRequestParameters params)
{
m_owner->DoS1BearerSetupRequest (params);
}
template <class C>
void MemberEpcEnbS1SapProvider<C>::InitialUeMessage (uint64_t imsi, uint16_t rnti)

View File

@@ -110,7 +110,7 @@ public:
struct ErabToBeSetupItem
{
uint16_t erabId;
uint8_t erabId;
EpsBearer erabLevelQosParameters;
Ipv4Address transportLayerAddress;
uint32_t sgwTeid;
@@ -133,7 +133,7 @@ public:
*/
struct ErabSwitchedInUplinkItem
{
uint16_t erabId;
uint8_t erabId;
Ipv4Address transportLayerAddress;
uint32_t enbTeid;
};

View File

@@ -1101,15 +1101,10 @@ LteEnbRrc::DoRecvRrcConnectionReestablishmentComplete (uint16_t rnti, LteRrcSap:
void
LteEnbRrc::DoDataRadioBearerSetupRequest (EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters request)
{
EpcEnbS1SapProvider::S1BearerSetupRequestParameters response;
Ptr<UeManager> ueManager = GetUeManager (request.rnti);
response.rnti = request.rnti;
response.bid = ueManager->SetupDataRadioBearer (request.bearer, request.gtpTeid, request.transportLayerAddress);
response.gtpTeid = request.gtpTeid;
if (m_s1SapProvider)
{
m_s1SapProvider->S1BearerSetupRequest (response);
}
uint8_t bid = ueManager->SetupDataRadioBearer (request.bearer, request.gtpTeid, request.transportLayerAddress);
NS_ASSERT_MSG ( request.bearerId == 0 || bid == request.bearerId, "bearer ID mismatch (" << (uint32_t) bid << " != " << (uint32_t) request.bearerId << ", the assumption that ID are allocated in the same way by MME and RRC is not valid any more");
ueManager->ScheduleRrcConnectionReconfiguration ();
}

View File

@@ -657,11 +657,7 @@ EpcTestRrc::GetS1SapUser ()
void
EpcTestRrc::DoDataRadioBearerSetupRequest (EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters request)
{
EpcEnbS1SapProvider::S1BearerSetupRequestParameters response;
response.rnti = request.rnti;
response.bid = 1;
response.gtpTeid = request.gtpTeid;
m_s1SapProvider->S1BearerSetupRequest (response);
}