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