removed obsolete S1BearerSetupRequest method from EpcEnbS1Sap
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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 ();
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user