25 #include "ns3/mac48-address.h"
27 #include "ns3/inet-socket-address.h"
28 #include "ns3/uinteger.h"
144 uint16_t enbUeS1Id = params.
rnti;
146 uint64_t imsi = mmeUeS1Id;
150 uint16_t gci = params.
cellId;
151 std::list<EpcS1apSapMme::ErabSwitchedInDownlinkItem> erabToBeSwitchedInDownlinkList;
152 for (std::list<EpcEnbS1SapProvider::BearerToBeSwitched>::iterator bit = params.
bearersToBeSwitched.begin ();
158 flowId.
m_bid = bit->epsBearerId;
159 uint32_t teid = bit->teid;
167 erab.
erabId = bit->epsBearerId;
171 erabToBeSwitchedInDownlinkList.push_back (erab);
180 std::map<uint16_t, std::map<uint8_t, uint32_t> >::iterator rntiIt =
m_rbidTeidMap.find (rnti);
183 for (std::map<uint8_t, uint32_t>::iterator bidIt = rntiIt->second.begin ();
184 bidIt != rntiIt->second.end ();
187 uint32_t teid = bidIt->second;
199 for (std::list<EpcS1apSapEnb::ErabToBeSetupItem>::iterator erabIt = erabToBeSetupList.begin ();
200 erabIt != erabToBeSetupList.end ();
205 uint64_t imsi = mmeUeS1Id;
206 std::map<uint64_t, uint16_t>::iterator imsiIt =
m_imsiRntiMap.find (imsi);
208 uint16_t rnti = imsiIt->second;
212 params.
bearer = erabIt->erabLevelQosParameters;
214 params.
gtpTeid = erabIt->sgwTeid;
230 uint64_t imsi = mmeUeS1Id;
231 std::map<uint64_t, uint16_t>::iterator imsiIt =
m_imsiRntiMap.find (imsi);
233 uint16_t rnti = imsiIt->second;
253 uint16_t rnti = tag.
GetRnti ();
254 uint8_t bid = tag.
GetBid ();
255 NS_LOG_LOGIC (
"received packet with RNTI=" << (uint32_t) rnti <<
", BID=" << (uint32_t) bid);
256 std::map<uint16_t, std::map<uint8_t, uint32_t> >::iterator rntiIt =
m_rbidTeidMap.find (rnti);
259 NS_LOG_WARN (
"UE context not found, discarding packet");
263 std::map<uint8_t, uint32_t>::iterator bidIt = rntiIt->second.find (bid);
264 NS_ASSERT (bidIt != rntiIt->second.end ());
265 uint32_t teid = bidIt->second;
278 uint32_t teid = gtpu.
GetTeid ();
279 std::map<uint32_t, EpsFlowId_t>::iterator it =
m_teidRbidMap.find (teid);
308 gtpu.SetLength (packet->
GetSize () + gtpu.GetSerializedSize () - 8);