git-svn-id: http://svn.eurecom.fr/openair4G/trunk@5883 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
@@ -1794,8 +1794,42 @@ uint16_t do_RRCConnectionReconfiguration(uint8_t Mod
|
|||||||
return((enc_rval.encoded+7)/8);
|
return((enc_rval.encoded+7)/8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t do_RRCConnectionRelease(uint8_t Mod_id,
|
||||||
|
uint8_t *buffer,
|
||||||
|
uint8_t Transaction_id) {
|
||||||
|
|
||||||
|
asn_enc_rval_t enc_rval;
|
||||||
|
|
||||||
|
DL_DCCH_Message_t dl_dcch_msg;
|
||||||
|
RRCConnectionRelease_t *rrcConnectionRelease;
|
||||||
|
|
||||||
|
|
||||||
|
memset(&dl_dcch_msg,0,sizeof(DL_DCCH_Message_t));
|
||||||
|
|
||||||
|
dl_dcch_msg.message.present = DL_DCCH_MessageType_PR_c1;
|
||||||
|
dl_dcch_msg.message.choice.c1.present = DL_DCCH_MessageType__c1_PR_rrcConnectionReconfiguration;
|
||||||
|
rrcConnectionRelease = &dl_dcch_msg.message.choice.c1.choice.rrcConnectionRelease;
|
||||||
|
|
||||||
|
// RRCConnectionRelease
|
||||||
|
rrcConnectionRelease->rrc_TransactionIdentifier = Transaction_id;
|
||||||
|
rrcConnectionRelease->criticalExtensions.present = RRCConnectionRelease__criticalExtensions_PR_c1;
|
||||||
|
rrcConnectionRelease->criticalExtensions.choice.c1.present =RRCConnectionRelease__criticalExtensions__c1_PR_rrcConnectionRelease_r8 ;
|
||||||
|
|
||||||
|
rrcConnectionRelease->criticalExtensions.choice.c1.choice.rrcConnectionRelease_r8.releaseCause = ReleaseCause_other;
|
||||||
|
rrcConnectionRelease->criticalExtensions.choice.c1.choice.rrcConnectionRelease_r8.redirectedCarrierInfo = NULL;
|
||||||
|
rrcConnectionRelease->criticalExtensions.choice.c1.choice.rrcConnectionRelease_r8.idleModeMobilityControlInfo = NULL;
|
||||||
|
|
||||||
|
rrcConnectionRelease->criticalExtensions.choice.c1.choice.rrcConnectionRelease_r8.nonCriticalExtension=CALLOC(1,sizeof(*rrcConnectionRelease->criticalExtensions.choice.c1.choice.rrcConnectionRelease_r8.nonCriticalExtension));
|
||||||
|
|
||||||
|
enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message,
|
||||||
|
(void*)&dl_dcch_msg,
|
||||||
|
buffer,
|
||||||
|
RRC_BUF_SIZE);
|
||||||
|
}
|
||||||
|
|
||||||
uint8_t TMGI[5] = {4,3,2,1,0};//TMGI is a string of octet, ref. TS 24.008 fig. 10.5.4a
|
uint8_t TMGI[5] = {4,3,2,1,0};//TMGI is a string of octet, ref. TS 24.008 fig. 10.5.4a
|
||||||
|
|
||||||
|
|
||||||
#ifdef Rel10
|
#ifdef Rel10
|
||||||
uint8_t do_MBSFNAreaConfig(uint8_t Mod_id,
|
uint8_t do_MBSFNAreaConfig(uint8_t Mod_id,
|
||||||
LTE_DL_FRAME_PARMS *frame_parms,
|
LTE_DL_FRAME_PARMS *frame_parms,
|
||||||
|
|||||||
@@ -196,6 +196,16 @@ uint16_t do_RRCConnectionReconfiguration(uint8_t Mod
|
|||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
\brief Generate an RRCConnectionRequest UL-CCCH-Message (UE) based on random string or S-TMSI. This
|
||||||
|
routine only generates an mo-data establishment cause.
|
||||||
|
@param Mod_id Module ID of eNB
|
||||||
|
@param buffer Pointer to PER-encoded ASN.1 description of UL-DCCH-Message PDU
|
||||||
|
@param transaction_id Transaction index
|
||||||
|
@returns Size of encoded bit stream in bytes*/
|
||||||
|
|
||||||
|
uint8_t do_RRCConnectionRelease(uint8_t Mod_id, uint8_t *buffer,int Transaction_id);
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* \brief Generate an MCCH-Message (eNB). This routine configures MBSFNAreaConfiguration (PMCH-InfoList and Subframe Allocation for MBMS data)
|
* \brief Generate an MCCH-Message (eNB). This routine configures MBSFNAreaConfiguration (PMCH-InfoList and Subframe Allocation for MBMS data)
|
||||||
* @param buffer Pointer to PER-encoded ASN.1 description of MCCH-Message PDU
|
* @param buffer Pointer to PER-encoded ASN.1 description of MCCH-Message PDU
|
||||||
|
|||||||
@@ -604,6 +604,12 @@ void rrc_eNB_process_RRCConnectionSetupComplete(module_id_t module_idP, frame_t
|
|||||||
\param rrcConnectionReconfigurationComplete Pointer to RRCConnectionReconfigurationComplete message*/
|
\param rrcConnectionReconfigurationComplete Pointer to RRCConnectionReconfigurationComplete message*/
|
||||||
void rrc_eNB_process_RRCConnectionReconfigurationComplete(module_id_t module_idP,frame_t frameP,module_id_t ue_module_idP,RRCConnectionReconfigurationComplete_r8_IEs_t *rrcConnectionReconfigurationComplete);
|
void rrc_eNB_process_RRCConnectionReconfigurationComplete(module_id_t module_idP,frame_t frameP,module_id_t ue_module_idP,RRCConnectionReconfigurationComplete_r8_IEs_t *rrcConnectionReconfigurationComplete);
|
||||||
|
|
||||||
|
/**\brief Generate the RRCConnectionRelease
|
||||||
|
\param module_idP Instance ID for eNB
|
||||||
|
\param frame Frame index
|
||||||
|
\param ue_module_idP Index of UE receiving the message*/
|
||||||
|
void rrc_eNB_generate_RRCConnectionRelease(module_id_t module_idP,frame_t frameP, ue_id_t ue_idP);
|
||||||
|
|
||||||
#if defined(ENABLE_ITTI)
|
#if defined(ENABLE_ITTI)
|
||||||
/**\brief RRC eNB task.
|
/**\brief RRC eNB task.
|
||||||
\param void *args_p Pointer on arguments to start the task. */
|
\param void *args_p Pointer on arguments to start the task. */
|
||||||
|
|||||||
@@ -618,14 +618,36 @@ void rrc_eNB_generate_UECapabilityEnquiry(
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void rrc_eNB_generate_RRCConnectionRelease(module_id_t enb_mod_idP,
|
||||||
|
frame_t frameP,
|
||||||
|
ue_id_t ue_idP) {
|
||||||
|
|
||||||
|
uint8_t buffer[RRC_BUF_SIZE];
|
||||||
|
uint16_t size;
|
||||||
|
|
||||||
|
memset(buffer, 0, RRC_BUF_SIZE);
|
||||||
|
|
||||||
|
size = do_RRCConnectionRelease(enb_mod_idP, buffer,rrc_eNB_get_next_transaction_identifier(enb_mod_idP));
|
||||||
|
|
||||||
|
LOG_I(RRC,
|
||||||
|
"[eNB %d] Frame %d Logical Channel DL-DCCH, Generate RRCConnectionRelease (bytes %d, UE id %d)\n",
|
||||||
|
enb_mod_idP, frameP, size, ue_idP);
|
||||||
|
|
||||||
|
LOG_D(RRC,
|
||||||
|
"[FRAME %05d][RRC_eNB][MOD %u/%u][][--- PDCP_DATA_REQ/%d Bytes (rrcConnectionRelease to UE %d MUI %d) --->][PDCP][MOD %u/%u][RB %u]\n",
|
||||||
|
frameP, enb_mod_idP, ue_idP, size, ue_idP, rrc_eNB_mui, enb_mod_idP, ue_idP, DCCH);
|
||||||
|
//rrc_rlc_data_req(enb_mod_idP,frameP, 1,(ue_idP*NB_RB_MAX)+DCCH,rrc_eNB_mui++,0,size,(char*)buffer);
|
||||||
|
pdcp_rrc_data_req(enb_mod_idP, ue_idP, frameP, 1, DCCH, rrc_eNB_mui++, 0, size, buffer, 1);
|
||||||
|
}
|
||||||
|
|
||||||
/*------------------------------------------------------------------------------*/
|
/*------------------------------------------------------------------------------*/
|
||||||
static void rrc_eNB_generate_defaultRRCConnectionReconfiguration(
|
static void rrc_eNB_generate_defaultRRCConnectionReconfiguration(
|
||||||
module_id_t enb_mod_idP,
|
module_id_t enb_mod_idP,
|
||||||
frame_t frameP,
|
frame_t frameP,
|
||||||
module_id_t ue_mod_idP,
|
module_id_t ue_mod_idP,
|
||||||
uint8_t ho_state) {
|
uint8_t ho_state) {
|
||||||
#if defined(ENABLE_ITTI)
|
#if defined(ENABLE_ITTI)
|
||||||
eNB_RRC_UE_INFO *UE_info = &eNB_rrc_inst[enb_mod_idP].Info.UE[ue_mod_idP];
|
eNB_RRC_UE_INFO *UE_info = &eNB_rrc_inst[enb_mod_idP].Info.UE[ue_mod_idP];
|
||||||
#endif
|
#endif
|
||||||
uint8_t buffer[RRC_BUF_SIZE];
|
uint8_t buffer[RRC_BUF_SIZE];
|
||||||
uint16_t size;
|
uint16_t size;
|
||||||
|
|||||||
Reference in New Issue
Block a user