Applied S. Held's patches 16, additional modifications for UE frequency scanning and RSRP/RSSI calibration for ExpressMIMO2 and USRP B210

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7536 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
Raymond Knopp
2015-06-05 14:10:02 +00:00
parent ea65577360
commit 6e76ecddfe
47 changed files with 1601 additions and 1016 deletions
+3 -3
View File
@@ -195,10 +195,10 @@ typedef struct UE_RRC_INFO_s {
#ifdef Rel10
uint8_t MCCHStatus[8]; // MAX_MBSFN_AREA
#endif
uint8_t SIwindowsize;
uint8_t SIwindowsize; //!< Corresponds to the SIB1 si-WindowLength parameter. The unit is ms. Possible values are (final): 1,2,5,10,15,20,40
uint8_t handoverTarget;
HO_STATE_t ho_state;
uint16_t SIperiod;
uint16_t SIperiod; //!< Corresponds to the SIB1 si-Periodicity parameter (multiplied by 10). Possible values are (final): 80,160,320,640,1280,2560,5120
unsigned short UE_index;
uint32_t T300_active;
uint32_t T300_cnt;
@@ -460,7 +460,7 @@ typedef struct UE_RRC_INST_s {
uint8_t SIB1Status[NB_CNX_UE];
uint8_t SIStatus[NB_CNX_UE];
SystemInformationBlockType1_t *sib1[NB_CNX_UE];
SystemInformation_t *si[NB_CNX_UE][8];
SystemInformation_t *si[NB_CNX_UE]; //!< Temporary storage for an SI message. Decoding happens in decode_SI().
SystemInformationBlockType2_t *sib2[NB_CNX_UE];
SystemInformationBlockType3_t *sib3[NB_CNX_UE];
SystemInformationBlockType4_t *sib4[NB_CNX_UE];
+4 -72
View File
@@ -77,12 +77,7 @@ rrc_rx_tx(
\param ctxt_pP Running context
\param Srb_info Pointer to SRB_INFO structure (SRB0)
\param eNB_index Index of corresponding eNB/CH*/
int
rrc_ue_decode_ccch(
const protocol_ctxt_t* const ctxt_pP,
const SRB_INFO* const Srb_info,
const uint8_t eNB_index
);
int rrc_ue_decode_ccch( const protocol_ctxt_t* const ctxt_pP, const SRB_INFO* const Srb_info, const uint8_t eNB_index );
/** \brief Decodes a DL-DCCH message and invokes appropriate routine to handle the message
\param ctxt_pP Running context
@@ -106,17 +101,6 @@ rrc_ue_generate_RRCConnectionRequest(
const uint8_t eNB_index
);
/** \brief Generates/Encodes RRCConnnectionSetupComplete message at UE
\param ctxt_pP Running context
\param eNB_index Index of corresponding eNB/CH
\param Transaction_id Transaction identifier*/
void
rrc_ue_generate_RRCConnectionSetupComplete(
const protocol_ctxt_t* const ctxt_pP,
const uint8_t eNB_index,
const uint8_t Transaction_id
);
/** \brief process the received rrcConnectionReconfiguration message at UE
\param ctxt_pP Running context
\param *rrcConnectionReconfiguration pointer to the sturcture
@@ -128,17 +112,6 @@ rrc_ue_process_rrcConnectionReconfiguration(
uint8_t eNB_index
);
/** \brief Generates/Encodes RRCConnectionReconfigurationComplete message at UE
\param ctxt_pP Running context
\param eNB_index Index of corresponding eNB/CH
\param Transaction_id RRC transaction identifier */
void
rrc_ue_generate_RRCConnectionReconfigurationComplete(
const protocol_ctxt_t* const ctxt_pP,
const uint8_t eNB_index,
const uint8_t Transaction_id
);
/** \brief Establish SRB1 based on configuration in SRB_ToAddMod structure. Configures RLC/PDCP accordingly
\param module_idP Instance ID of UE
\param frame Frame index
@@ -347,41 +320,15 @@ void rrc_lite_in_sync_ind(module_id_t module_idP, frame_t frameP, uint16_t eNB_i
void rrc_lite_out_of_sync_ind(module_id_t module_idP, frame_t frameP, unsigned short eNB_index);
int
decode_MCCH_Message(
const protocol_ctxt_t* const ctxt_pP,
const uint8_t eNB_index,
const uint8_t* const Sdu,
const uint8_t Sdu_len,
const uint8_t mbsfn_sync_area
);
int decode_MCCH_Message( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, const uint8_t* const Sdu, const uint8_t Sdu_len, const uint8_t mbsfn_sync_area );
void decode_MBSFNAreaConfiguration(module_id_t module_idP, uint8_t eNB_index, frame_t frameP,uint8_t mbsfn_sync_area);
int
decode_BCCH_DLSCH_Message(
int decode_BCCH_DLSCH_Message(
const protocol_ctxt_t* const ctxt_pP,
const uint8_t eNB_index,
uint8_t* const Sdu,
const uint8_t Sdu_len,
const uint8_t rsrq,
const uint8_t rsrp
);
int
decode_SIB1(
const protocol_ctxt_t* const ctxt_pP,
const uint8_t eNB_index,
const uint8_t rsrq,
const uint8_t rsrp
);
int
decode_SI(
const protocol_ctxt_t* const ctxt_pP,
const uint8_t eNB_index,
const uint8_t si_window
);
const uint8_t rsrp );
void
ue_meas_filtering(
@@ -426,12 +373,6 @@ rrc_eNB_process_MeasurementReport(
const MeasResults_t* const measResults2
);
void
rrc_ue_generate_MeasurementReport(
const protocol_ctxt_t* const ctxt_pP,
uint8_t eNB_index
);
void
rrc_eNB_generate_HandoverPreparationInformation(
const protocol_ctxt_t* const ctxt_pP,
@@ -444,15 +385,6 @@ check_handovers(
protocol_ctxt_t* const ctxt_pP
);
uint8_t check_trigger_meas_event(
uint8_t module_idP,
frame_t frameP,
uint8_t eNB_index,
uint8_t ue_cnx_index,
uint8_t meas_index,
Q_OffsetRange_t ofn, Q_OffsetRange_t ocn, Hysteresis_t hys,
Q_OffsetRange_t ofs, Q_OffsetRange_t ocs, long a3_offset, TimeToTrigger_t ttt);
//void rrc_ue_process_ueCapabilityEnquiry(uint8_t module_idP,uint32_t frame,UECapabilityEnquiry_t *UECapabilityEnquiry,uint8_t eNB_index);
/*void
rrc_ue_process_securityModeCommand(
+787 -483
View File
File diff suppressed because it is too large Load Diff
+4 -1
View File
@@ -378,7 +378,7 @@ init_MCCH(
int sync_area = 0;
// initialize RRC_eNB_INST MCCH entry
eNB_rrc_inst[enb_mod_idP].carrier[CC_id].MCCH_MESSAGE =
malloc(eNB_rrc_inst[enb_mod_idP].carrier[CC_id].num_mbsfn_sync_area * sizeof(uint32_t *));
malloc(eNB_rrc_inst[enb_mod_idP].carrier[CC_id].num_mbsfn_sync_area * sizeof(uint8_t*));
for (sync_area = 0; sync_area < eNB_rrc_inst[enb_mod_idP].carrier[CC_id].num_mbsfn_sync_area; sync_area++) {
@@ -3289,9 +3289,11 @@ openair_rrc_lite_eNB_init(
// }
// }
eNB_rrc_inst[ctxt.module_id].Nb_ue = 0;
for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) {
eNB_rrc_inst[ctxt.module_id].carrier[CC_id].Srb0.Active = 0;
}
uid_linear_allocator_init(&eNB_rrc_inst[ctxt.module_id].uid_allocator);
RB_INIT(&eNB_rrc_inst[ctxt.module_id].rrc_ue_head);
RB_INIT(&eNB_rrc_inst[ctxt.module_id].rrc_rnti_head);
@@ -3334,6 +3336,7 @@ openair_rrc_lite_eNB_init(
eNB_rrc_inst[ctxt.module_id].carrier[CC_id].cba_rnti[3],
eNB_rrc_inst[ctxt.module_id].carrier[CC_id].num_active_cba_groups);
}
#endif
for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) {