Add implementation of RRC Connection Reject in Ue Recv.
This commit is contained in:
@@ -1097,6 +1097,11 @@ LteEnbRrc::GetTypeId (void)
|
||||
BooleanValue (true),
|
||||
MakeBooleanAccessor (&LteEnbRrc::m_admitHandoverRequest),
|
||||
MakeBooleanChecker ())
|
||||
.AddAttribute ("AdmitRrcConnectionRequest",
|
||||
"Whether to admit a connection request from a Ue",
|
||||
BooleanValue (true),
|
||||
MakeBooleanAccessor (&LteEnbRrc::m_admitRrcConnectionRequest),
|
||||
MakeBooleanChecker ())
|
||||
.AddTraceSource ("ConnectionEstablished",
|
||||
"trace fired upon successful RRC connection establishment",
|
||||
MakeTraceSourceAccessor (&LteEnbRrc::m_connectionEstablishedTrace))
|
||||
@@ -1273,7 +1278,18 @@ void
|
||||
LteEnbRrc::DoRecvRrcConnectionRequest (uint16_t rnti, LteRrcSap::RrcConnectionRequest msg)
|
||||
{
|
||||
NS_LOG_FUNCTION (this << rnti);
|
||||
GetUeManager (rnti)->RecvRrcConnectionRequest (msg);
|
||||
|
||||
if (m_admitRrcConnectionRequest == true)
|
||||
{
|
||||
GetUeManager (rnti)->RecvRrcConnectionRequest (msg);
|
||||
}
|
||||
else
|
||||
{
|
||||
NS_LOG_INFO ("rejecting connection request to rnti " << rnti);
|
||||
LteRrcSap::RrcConnectionReject rejectMsg;
|
||||
rejectMsg.waitTime = 3;
|
||||
m_rrcSapUser->SendRrcConnectionReject (rnti, rejectMsg);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -574,6 +574,7 @@ public:
|
||||
RLC_UM_ALWAYS = 2,
|
||||
RLC_AM_ALWAYS = 3,
|
||||
PER_BASED = 4};
|
||||
|
||||
private:
|
||||
|
||||
|
||||
@@ -725,6 +726,7 @@ private:
|
||||
bool m_reconfigureUes;
|
||||
|
||||
bool m_admitHandoverRequest;
|
||||
bool m_admitRrcConnectionRequest;
|
||||
|
||||
// imsi cellid rnti
|
||||
TracedCallback<uint64_t, uint16_t, uint16_t> m_connectionEstablishedTrace;
|
||||
|
||||
@@ -288,11 +288,13 @@ LteUeRrcProtocolReal::DoReceivePdcpPdu (Ptr<Packet> p)
|
||||
RrcConnectionReestablishmentHeader rrcConnectionReestablishmentHeader;
|
||||
RrcConnectionReestablishmentRejectHeader rrcConnectionReestablishmentRejectHeader;
|
||||
RrcConnectionSetupHeader rrcConnectionSetupHeader;
|
||||
RrcConnectionRejectHeader rrcConnectionRejectHeader;
|
||||
|
||||
// Declare possible messages
|
||||
LteRrcSap::RrcConnectionReestablishment rrcConnectionReestablishmentMsg;
|
||||
LteRrcSap::RrcConnectionReestablishmentReject rrcConnectionReestablishmentRejectMsg;
|
||||
LteRrcSap::RrcConnectionSetup rrcConnectionSetupMsg;
|
||||
LteRrcSap::RrcConnectionReject rrcConnectionRejectMsg;
|
||||
|
||||
// Deserialize packet and call member recv function with appropiate structure
|
||||
switch ( rrcDlCcchMessage.GetMessageType () )
|
||||
@@ -311,7 +313,9 @@ LteUeRrcProtocolReal::DoReceivePdcpPdu (Ptr<Packet> p)
|
||||
break;
|
||||
case 2:
|
||||
// RrcConnectionReject
|
||||
// ...
|
||||
p->RemoveHeader (rrcConnectionReestablishmentRejectHeader);
|
||||
rrcConnectionReestablishmentRejectMsg = rrcConnectionReestablishmentRejectHeader.GetMessage ();
|
||||
m_ueRrcSapProvider->RecvRrcConnectionReject (rrcConnectionRejectMsg);
|
||||
break;
|
||||
case 3:
|
||||
// RrcConnectionSetup
|
||||
|
||||
@@ -693,6 +693,7 @@ void
|
||||
LteUeRrc::DoRecvRrcConnectionReject (LteRrcSap::RrcConnectionReject msg)
|
||||
{
|
||||
NS_LOG_FUNCTION (this);
|
||||
LeaveConnectedMode();
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user