From 3ab28fd2f0206d84a7d96932c85f9a202d6645b7 Mon Sep 17 00:00:00 2001 From: Raymond Knopp <raymond.knopp@eurecom.fr> Date: Sat, 20 Dec 2014 21:49:50 +0000 Subject: [PATCH] Reverted ASN.1 source to original Rel10 version, small updates in RRC for Rel8/Rel10 compatibility git-svn-id: http://svn.eurecom.fr/openair4G/trunk@6302 818b1a75-f10b-46b9-bf7c-635c3b92a50f --- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 22 ++++++++-------- openair2/RRC/LITE/defs.h | 15 +++++++++++ openair2/RRC/LITE/rrc_UE.c | 38 +++++++++++++++------------ 3 files changed, 47 insertions(+), 28 deletions(-) diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 3c967625c8..42621f7a2d 100644 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -607,9 +607,9 @@ uint8_t do_SIB23(uint8_t Mod_id, , RrcConfigurationReq *configuration #endif ) { - struct SystemInformation_r8_IEs_sib_TypeAndInfo_Member *sib2_part,*sib3_part; + struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *sib2_part,*sib3_part; #ifdef Rel10 - struct SystemInformation_r8_IEs_sib_TypeAndInfo_Member *sib13_part; + struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *sib13_part; MBSFN_SubframeConfigList_t *MBSFNSubframeConfigList; MBSFN_AreaInfoList_r9_t *MBSFNArea_list; struct MBSFN_AreaInfo_r9 *MBSFN_Area1, *MBSFN_Area2; @@ -637,22 +637,22 @@ uint8_t do_SIB23(uint8_t Mod_id, #else LOG_I(RRC,"[eNB %d] Configuration SIB2/3\n", Mod_id); #endif - sib2_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs_sib_TypeAndInfo_Member)); - sib3_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs_sib_TypeAndInfo_Member)); - memset(sib2_part,0,sizeof(struct SystemInformation_r8_IEs_sib_TypeAndInfo_Member)); - memset(sib3_part,0,sizeof(struct SystemInformation_r8_IEs_sib_TypeAndInfo_Member)); + sib2_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); + sib3_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); + memset(sib2_part,0,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); + memset(sib3_part,0,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); - sib2_part->present = SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib2; - sib3_part->present = SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib3; + sib2_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2; + sib3_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib3; *sib2 = &sib2_part->choice.sib2; *sib3 = &sib3_part->choice.sib3; #ifdef Rel10 if (MBMS_flag > 0) { - sib13_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs_sib_TypeAndInfo_Member)); - memset(sib13_part,0,sizeof(struct SystemInformation_r8_IEs_sib_TypeAndInfo_Member)); - sib13_part->present = SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib13_v920; + sib13_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); + memset(sib13_part,0,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); + sib13_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920; *sib13 = &sib13_part->choice.sib13_v920; } #endif diff --git a/openair2/RRC/LITE/defs.h b/openair2/RRC/LITE/defs.h index dedf3d9b1d..7a3aa306da 100644 --- a/openair2/RRC/LITE/defs.h +++ b/openair2/RRC/LITE/defs.h @@ -78,6 +78,21 @@ #include "UE-EUTRA-Capability.h" #include "MeasResults.h" +// This corrects something generated by asn1c which is different between Rel8 and Rel10 +#ifndef Rel10 +#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member SystemInformation_r8_IEs_sib_TypeAndInfo_Member +#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib2 +#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib3 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib3 +#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib4 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib4 +#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib5 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib5 +#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib6 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib6 +#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib7 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib7 +#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib8 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib8 +#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib9 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib9 +#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib10 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib10 +#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib11 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib11 +#endif + //#include "L3_rrc_defs.h" #ifndef NO_RRM #include "L3_rrc_interface.h" diff --git a/openair2/RRC/LITE/rrc_UE.c b/openair2/RRC/LITE/rrc_UE.c index af5413c1b6..b5fa79ac6f 100644 --- a/openair2/RRC/LITE/rrc_UE.c +++ b/openair2/RRC/LITE/rrc_UE.c @@ -1855,11 +1855,14 @@ int decode_BCCH_DLSCH_Message(module_id_t ue_mod_idP, frame_t frameP,uint8_t eNB rrc_set_sub_state (ue_mod_idP, RRC_SUB_STATE_IDLE_RECEIVING_SIB); //memset(&bcch_message,0,sizeof(BCCH_DL_SCH_Message_t)); - // LOG_D(RRC,"[UE %d] Decoding DL_BCCH_DLSCH_Message\n",ue_mod_idP) /* - for (i=0;i<Sdu_len;i++) - printf("%x.",Sdu[i]); - printf("\n");*/ + LOG_D(RRC,"[UE %d] Decoding DL_BCCH_DLSCH_Message\n",ue_mod_idP); + int i; + for (i=0;i<Sdu_len;i++) + printf("%x.",Sdu[i]); + printf("\n"); + */ + dec_rval = uper_decode_complete(NULL, &asn_DEF_BCCH_DL_SCH_Message, (void **)&bcch_message, @@ -2202,11 +2205,12 @@ void dump_sib13(SystemInformationBlockType13_r9_t *sib13) { #endif //const char SIBPeriod[7][7]= {"80ms\0","160ms\0","320ms\0","640ms\0","1280ms\0","2560ms\0","5120ms\0"}; + int decode_SI(module_id_t ue_mod_idP, frame_t frameP,uint8_t eNB_index,uint8_t si_window) { SystemInformation_t **si=&UE_rrc_inst[ue_mod_idP].si[eNB_index][si_window]; int i; - struct SystemInformation_r8_IEs_sib_TypeAndInfo_Member *typeandinfo; + struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *typeandinfo; vcd_signal_dumper_dump_function_by_name(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_UE_DECODE_SI , VCD_FUNCTION_IN); @@ -2225,7 +2229,7 @@ int decode_SI(module_id_t ue_mod_idP, frame_t frameP,uint8_t eNB_index,uint8_t s typeandinfo=(*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.array[i]; switch(typeandinfo->present) { - case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib2: + case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2: UE_rrc_inst[ue_mod_idP].sib2[eNB_index] = &typeandinfo->choice.sib2; LOG_D(RRC,"[UE %d] Frame %d Found SIB2 from eNB %d\n",ue_mod_idP,frameP,eNB_index); dump_sib2(UE_rrc_inst[ue_mod_idP].sib2[eNB_index]); @@ -2302,7 +2306,7 @@ int decode_SI(module_id_t ue_mod_idP, frame_t frameP,uint8_t eNB_index,uint8_t s #endif } break; - case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib3: + case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib3: UE_rrc_inst[ue_mod_idP].sib3[eNB_index] = &typeandinfo->choice.sib3; LOG_I(RRC,"[UE %d] Frame %d Found SIB3 from eNB %d\n",ue_mod_idP,frameP,eNB_index); dump_sib3(UE_rrc_inst[ue_mod_idP].sib3[eNB_index]); @@ -2310,44 +2314,44 @@ int decode_SI(module_id_t ue_mod_idP, frame_t frameP,uint8_t eNB_index,uint8_t s rrc_set_sub_state (ue_mod_idP, RRC_SUB_STATE_IDLE_SIB_COMPLETE); break; - case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib4: + case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib4: UE_rrc_inst[ue_mod_idP].sib4[eNB_index] = &typeandinfo->choice.sib4; LOG_I(RRC,"[UE %d] Frame %d Found SIB4 from eNB %d\n",ue_mod_idP,frameP,eNB_index); break; - case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib5: + case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib5: UE_rrc_inst[ue_mod_idP].sib5[eNB_index] = &typeandinfo->choice.sib5; LOG_I(RRC,"[UE %d] Found SIB5 from eNB %d\n",ue_mod_idP,eNB_index); break; - case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib6: + case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib6: UE_rrc_inst[ue_mod_idP].sib6[eNB_index] = &typeandinfo->choice.sib6; LOG_I(RRC,"[UE %d] Found SIB6 from eNB %d\n",ue_mod_idP,eNB_index); break; - case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib7: + case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib7: UE_rrc_inst[ue_mod_idP].sib7[eNB_index] = &typeandinfo->choice.sib7; LOG_I(RRC,"[UE %d] Found SIB7 from eNB %d\n",ue_mod_idP,eNB_index); break; - case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib8: + case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib8: UE_rrc_inst[ue_mod_idP].sib8[eNB_index] = &typeandinfo->choice.sib8; LOG_I(RRC,"[UE %d] Found SIB8 from eNB %d\n",ue_mod_idP,eNB_index); break; - case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib9: + case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib9: UE_rrc_inst[ue_mod_idP].sib9[eNB_index] = &typeandinfo->choice.sib9; LOG_I(RRC,"[UE %d] Found SIB9 from eNB %d\n",ue_mod_idP,eNB_index); break; - case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib10: + case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib10: UE_rrc_inst[ue_mod_idP].sib10[eNB_index] = &typeandinfo->choice.sib10; LOG_I(RRC,"[UE %d] Found SIB10 from eNB %d\n",ue_mod_idP,eNB_index); break; - case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib11: + case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib11: UE_rrc_inst[ue_mod_idP].sib11[eNB_index] = &typeandinfo->choice.sib11; LOG_I(RRC,"[UE %d] Found SIB11 from eNB %d\n",ue_mod_idP,eNB_index); break; #ifdef Rel10 - case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib12_v920: + case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib12_v920: UE_rrc_inst[ue_mod_idP].sib12[eNB_index] = &typeandinfo->choice.sib12_v920; LOG_I(RRC,"[RRC][UE %d] Found SIB12 from eNB %d\n",ue_mod_idP,eNB_index); break; - case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib13_v920: + case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920: UE_rrc_inst[ue_mod_idP].sib13[eNB_index] = &typeandinfo->choice.sib13_v920; LOG_I(RRC,"[RRC][UE %d] Found SIB13 from eNB %d\n",ue_mod_idP,eNB_index); dump_sib13(UE_rrc_inst[ue_mod_idP].sib13[eNB_index]); -- 2.26.2