Added RRC ASN1 decoded messages in ITTI logs.
Modified SystemInformation-r8-IEs ASN1 definition to fix issue with GCC and GCCXML. pre-ci ok. git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4365 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
@@ -5,7 +5,12 @@
|
|||||||
* Author: winckel
|
* Author: winckel
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
MESSAGE_DEF(RRC_DL_BCCH_MESSAGE, MESSAGE_PRIORITY_MED_PLUS, RrcDlBcchMessage, rrc_dl_bcch_message)
|
||||||
|
MESSAGE_DEF(RRC_DL_CCCH_MESSAGE, MESSAGE_PRIORITY_MED_PLUS, RrcDlCcchMessage, rrc_dl_ccch_message)
|
||||||
|
MESSAGE_DEF(RRC_DL_DCCH_MESSAGE, MESSAGE_PRIORITY_MED_PLUS, RrcDlDcchMessage, rrc_dl_dcch_message)
|
||||||
MESSAGE_DEF(RRC_UE_EUTRA_CAPABILITY, MESSAGE_PRIORITY_MED_PLUS, RrcUeEutraCapability, rrc_ue_eutra_capability)
|
MESSAGE_DEF(RRC_UE_EUTRA_CAPABILITY, MESSAGE_PRIORITY_MED_PLUS, RrcUeEutraCapability, rrc_ue_eutra_capability)
|
||||||
|
MESSAGE_DEF(RRC_UL_CCCH_MESSAGE, MESSAGE_PRIORITY_MED_PLUS, RrcUlCcchMessage, rrc_ul_ccch_message)
|
||||||
|
MESSAGE_DEF(RRC_UL_DCCH_MESSAGE, MESSAGE_PRIORITY_MED_PLUS, RrcUlDcchMessage, rrc_ul_dcch_message)
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------//
|
//-------------------------------------------------------------------------------------------//
|
||||||
// Messages from MAC layer
|
// Messages from MAC layer
|
||||||
|
|||||||
@@ -8,7 +8,12 @@
|
|||||||
#ifndef RRC_MESSAGES_TYPES_H_
|
#ifndef RRC_MESSAGES_TYPES_H_
|
||||||
#define RRC_MESSAGES_TYPES_H_
|
#define RRC_MESSAGES_TYPES_H_
|
||||||
|
|
||||||
|
#include "BCCH-DL-SCH-Message.h"
|
||||||
|
#include "DL-CCCH-Message.h"
|
||||||
|
#include "DL-DCCH-Message.h"
|
||||||
#include "UE-EUTRA-Capability.h"
|
#include "UE-EUTRA-Capability.h"
|
||||||
|
#include "UL-CCCH-Message.h"
|
||||||
|
#include "UL-DCCH-Message.h"
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------//
|
//-------------------------------------------------------------------------------------------//
|
||||||
// Defines to access message fields.
|
// Defines to access message fields.
|
||||||
@@ -34,7 +39,12 @@
|
|||||||
#define CCCH_SDU_SIZE (128)
|
#define CCCH_SDU_SIZE (128)
|
||||||
#define MCCH_SDU_SIZE (128)
|
#define MCCH_SDU_SIZE (128)
|
||||||
|
|
||||||
|
typedef BCCH_DL_SCH_Message_t RrcDlBcchMessage;
|
||||||
|
typedef DL_CCCH_Message_t RrcDlCcchMessage;
|
||||||
|
typedef DL_DCCH_Message_t RrcDlDcchMessage;
|
||||||
typedef UE_EUTRA_Capability_t RrcUeEutraCapability;
|
typedef UE_EUTRA_Capability_t RrcUeEutraCapability;
|
||||||
|
typedef UL_CCCH_Message_t RrcUlCcchMessage;
|
||||||
|
typedef UL_DCCH_Message_t RrcUlDcchMessage;
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------//
|
//-------------------------------------------------------------------------------------------//
|
||||||
// Messages from MAC layer
|
// Messages from MAC layer
|
||||||
|
|||||||
@@ -425,7 +425,7 @@ uint8_t do_SIB2_AT4(uint8_t Mod_id,
|
|||||||
BCCH_DL_SCH_Message_t *bcch_message,
|
BCCH_DL_SCH_Message_t *bcch_message,
|
||||||
SystemInformationBlockType2_t **sib2) {
|
SystemInformationBlockType2_t **sib2) {
|
||||||
|
|
||||||
struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *sib2_part;
|
struct SystemInformation_r8_IEs_sib_TypeAndInfo_Member *sib2_part;
|
||||||
|
|
||||||
asn_enc_rval_t enc_rval;
|
asn_enc_rval_t enc_rval;
|
||||||
|
|
||||||
@@ -438,13 +438,13 @@ uint8_t do_SIB2_AT4(uint8_t Mod_id,
|
|||||||
|
|
||||||
bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count=0;
|
bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count=0;
|
||||||
|
|
||||||
sib2_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member));
|
sib2_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs_sib_TypeAndInfo_Member));
|
||||||
memset(sib2_part,0,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member));
|
memset(sib2_part,0,sizeof(struct SystemInformation_r8_IEs_sib_TypeAndInfo_Member));
|
||||||
|
|
||||||
ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list,
|
ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list,
|
||||||
sib2_part);
|
sib2_part);
|
||||||
|
|
||||||
sib2_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2;
|
sib2_part->present = SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib2;
|
||||||
|
|
||||||
*sib2 = &sib2_part->choice.sib2;
|
*sib2 = &sib2_part->choice.sib2;
|
||||||
|
|
||||||
@@ -605,9 +605,9 @@ uint8_t do_SIB23(uint8_t Mod_id,
|
|||||||
) {
|
) {
|
||||||
|
|
||||||
|
|
||||||
struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *sib2_part,*sib3_part;
|
struct SystemInformation_r8_IEs_sib_TypeAndInfo_Member *sib2_part,*sib3_part;
|
||||||
#ifdef Rel10
|
#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_SubframeConfigList_t *MBSFNSubframeConfigList;
|
||||||
MBSFN_AreaInfoList_r9_t *MBSFNArea_list;
|
MBSFN_AreaInfoList_r9_t *MBSFNArea_list;
|
||||||
struct MBSFN_AreaInfo_r9 *MBSFN_Area1, *MBSFN_Area2;
|
struct MBSFN_AreaInfo_r9 *MBSFN_Area1, *MBSFN_Area2;
|
||||||
@@ -635,22 +635,22 @@ uint8_t do_SIB23(uint8_t Mod_id,
|
|||||||
#else
|
#else
|
||||||
LOG_I(RRC,"Configuration SIB2/3\n");
|
LOG_I(RRC,"Configuration SIB2/3\n");
|
||||||
#endif
|
#endif
|
||||||
sib2_part = CALLOC(1,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));
|
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(sib2_part,0,sizeof(struct SystemInformation_r8_IEs_sib_TypeAndInfo_Member));
|
||||||
memset(sib3_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;
|
sib2_part->present = SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib2;
|
||||||
sib3_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib3;
|
sib3_part->present = SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib3;
|
||||||
|
|
||||||
*sib2 = &sib2_part->choice.sib2;
|
*sib2 = &sib2_part->choice.sib2;
|
||||||
*sib3 = &sib3_part->choice.sib3;
|
*sib3 = &sib3_part->choice.sib3;
|
||||||
|
|
||||||
#ifdef Rel10
|
#ifdef Rel10
|
||||||
if (MBMS_flag > 0) {
|
if (MBMS_flag > 0) {
|
||||||
sib13_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member));
|
sib13_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs_sib_TypeAndInfo_Member));
|
||||||
memset(sib13_part,0,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->present = SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib13_v920;
|
||||||
*sib13 = &sib13_part->choice.sib13_v920;
|
*sib13 = &sib13_part->choice.sib13_v920;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -1919,9 +1919,9 @@ OAI_UECapability_t *fill_ue_capability() {
|
|||||||
MessageDef *message_p;
|
MessageDef *message_p;
|
||||||
|
|
||||||
message_p = itti_alloc_new_message (TASK_RRC_UE, RRC_UE_EUTRA_CAPABILITY);
|
message_p = itti_alloc_new_message (TASK_RRC_UE, RRC_UE_EUTRA_CAPABILITY);
|
||||||
memcpy (&message_p->msg, UE_EUTRA_Capability, sizeof(RrcUeEutraCapability));
|
memcpy (&message_p->msg, (void *) UE_EUTRA_Capability, sizeof(RrcUeEutraCapability));
|
||||||
|
|
||||||
itti_send_msg_to_task (TASK_RRC_UE, INSTANCE_DEFAULT, message_p);
|
itti_send_msg_to_task (TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1957,7 +1957,7 @@ return 0;
|
|||||||
uint8_t do_SIB2_cell(uint8_t Mod_id, LTE_DL_FRAME_PARMS *frame_parms, uint8_t *buffer,
|
uint8_t do_SIB2_cell(uint8_t Mod_id, LTE_DL_FRAME_PARMS *frame_parms, uint8_t *buffer,
|
||||||
BCCH_DL_SCH_Message_t *bcch_message, SystemInformationBlockType2_t **sib2) {
|
BCCH_DL_SCH_Message_t *bcch_message, SystemInformationBlockType2_t **sib2) {
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *sib2_part;
|
struct SystemInformation_r8_IEs_sib_TypeAndInfo_Member *sib2_part;
|
||||||
asn_enc_rval_t enc_rval;
|
asn_enc_rval_t enc_rval;
|
||||||
|
|
||||||
if (bcch_message)
|
if (bcch_message)
|
||||||
@@ -1973,9 +1973,9 @@ uint8_t do_SIB2_cell(uint8_t Mod_id, LTE_DL_FRAME_PARMS *frame_parms, uint8_t *b
|
|||||||
}
|
}
|
||||||
LOG_I(RRC,"Configuration SIB2 CELLULAR\n");
|
LOG_I(RRC,"Configuration SIB2 CELLULAR\n");
|
||||||
|
|
||||||
sib2_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member));
|
sib2_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs_sib_TypeAndInfo_Member));
|
||||||
memset(sib2_part,0,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member));
|
memset(sib2_part,0,sizeof(struct SystemInformation_r8_IEs_sib_TypeAndInfo_Member));
|
||||||
sib2_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2;
|
sib2_part->present = SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib2;
|
||||||
*sib2 = &sib2_part->choice.sib2;
|
*sib2 = &sib2_part->choice.sib2;
|
||||||
|
|
||||||
// sib2
|
// sib2
|
||||||
|
|||||||
@@ -680,7 +680,10 @@ SystemInformation ::= SEQUENCE {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
SystemInformation-r8-IEs ::= SEQUENCE {
|
SystemInformation-r8-IEs ::= SEQUENCE {
|
||||||
sib-TypeAndInfo SEQUENCE (SIZE (1..maxSIB)) OF CHOICE {
|
sib-TypeAndInfo SEQUENCE (SIZE (1..maxSIB)) OF SystemInformation-r8-IEs-sib-TypeAndInfo-Member,
|
||||||
|
nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
|
||||||
|
}
|
||||||
|
SystemInformation-r8-IEs-sib-TypeAndInfo-Member ::= CHOICE {
|
||||||
sib2 SystemInformationBlockType2,
|
sib2 SystemInformationBlockType2,
|
||||||
sib3 SystemInformationBlockType3,
|
sib3 SystemInformationBlockType3,
|
||||||
sib4 SystemInformationBlockType4,
|
sib4 SystemInformationBlockType4,
|
||||||
@@ -692,8 +695,6 @@ SystemInformation-r8-IEs ::= SEQUENCE {
|
|||||||
sib10 SystemInformationBlockType10,
|
sib10 SystemInformationBlockType10,
|
||||||
sib11 SystemInformationBlockType11,
|
sib11 SystemInformationBlockType11,
|
||||||
...
|
...
|
||||||
},
|
|
||||||
nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1141,7 +1141,10 @@ SystemInformation ::= SEQUENCE {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
SystemInformation-r8-IEs ::= SEQUENCE {
|
SystemInformation-r8-IEs ::= SEQUENCE {
|
||||||
sib-TypeAndInfo SEQUENCE (SIZE (1..maxSIB)) OF CHOICE {
|
sib-TypeAndInfo SEQUENCE (SIZE (1..maxSIB)) OF SystemInformation-r8-IEs-sib-TypeAndInfo-Member,
|
||||||
|
nonCriticalExtension SystemInformation-v8a0-IEs OPTIONAL
|
||||||
|
}
|
||||||
|
SystemInformation-r8-IEs-sib-TypeAndInfo-Member ::= CHOICE {
|
||||||
sib2 SystemInformationBlockType2,
|
sib2 SystemInformationBlockType2,
|
||||||
sib3 SystemInformationBlockType3,
|
sib3 SystemInformationBlockType3,
|
||||||
sib4 SystemInformationBlockType4,
|
sib4 SystemInformationBlockType4,
|
||||||
@@ -1155,10 +1158,7 @@ SystemInformation-r8-IEs ::= SEQUENCE {
|
|||||||
...,
|
...,
|
||||||
sib12-v920 SystemInformationBlockType12-r9,
|
sib12-v920 SystemInformationBlockType12-r9,
|
||||||
sib13-v920 SystemInformationBlockType13-r9
|
sib13-v920 SystemInformationBlockType13-r9
|
||||||
},
|
|
||||||
nonCriticalExtension SystemInformation-v8a0-IEs OPTIONAL
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SystemInformation-v8a0-IEs ::= SEQUENCE {
|
SystemInformation-v8a0-IEs ::= SEQUENCE {
|
||||||
lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP
|
lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OP
|
||||||
nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
|
nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
|
||||||
|
|||||||
+46
-17
@@ -300,6 +300,17 @@ int rrc_ue_decode_ccch(u8 Mod_id, u32 frame, SRB_INFO *Srb_info, u8 eNB_index){
|
|||||||
xer_fprint(stdout,&asn_DEF_DL_CCCH_Message,(void*)dl_ccch_msg);
|
xer_fprint(stdout,&asn_DEF_DL_CCCH_Message,(void*)dl_ccch_msg);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(ENABLE_ITTI)
|
||||||
|
{
|
||||||
|
MessageDef *message_p;
|
||||||
|
|
||||||
|
message_p = itti_alloc_new_message (TASK_RRC_UE, RRC_DL_CCCH_MESSAGE);
|
||||||
|
memcpy (&message_p->msg, (void *) dl_ccch_msg, sizeof(RrcDlCcchMessage));
|
||||||
|
|
||||||
|
itti_send_msg_to_task (TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if ((dec_rval.code != RC_OK) && (dec_rval.consumed==0)) {
|
if ((dec_rval.code != RC_OK) && (dec_rval.consumed==0)) {
|
||||||
LOG_E(RRC,"[UE %d] Frame %d : Failed to decode DL-CCCH-Message (%d bytes)\n",Mod_id,dec_rval.consumed);
|
LOG_E(RRC,"[UE %d] Frame %d : Failed to decode DL-CCCH-Message (%d bytes)\n",Mod_id,dec_rval.consumed);
|
||||||
vcd_signal_dumper_dump_function_by_name(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_CCCH, VCD_FUNCTION_OUT);
|
vcd_signal_dumper_dump_function_by_name(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_CCCH, VCD_FUNCTION_OUT);
|
||||||
@@ -1290,6 +1301,17 @@ void rrc_ue_decode_dcch(u8 Mod_id,u32 frame,u8 Srb_id, u8 *Buffer,u8 eNB_index)
|
|||||||
xer_fprint(stdout,&asn_DEF_DL_DCCH_Message,(void*)dl_dcch_msg);
|
xer_fprint(stdout,&asn_DEF_DL_DCCH_Message,(void*)dl_dcch_msg);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(ENABLE_ITTI)
|
||||||
|
{
|
||||||
|
MessageDef *message_p;
|
||||||
|
|
||||||
|
message_p = itti_alloc_new_message (TASK_RRC_UE, RRC_DL_DCCH_MESSAGE);
|
||||||
|
memcpy (&message_p->msg, (void *) dl_dcch_msg, sizeof(RrcDlDcchMessage));
|
||||||
|
|
||||||
|
itti_send_msg_to_task (TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (dl_dcch_msg->message.present == DL_DCCH_MessageType_PR_c1) {
|
if (dl_dcch_msg->message.present == DL_DCCH_MessageType_PR_c1) {
|
||||||
|
|
||||||
if (UE_rrc_inst[Mod_id].Info[eNB_index].State >= RRC_CONNECTED) {
|
if (UE_rrc_inst[Mod_id].Info[eNB_index].State >= RRC_CONNECTED) {
|
||||||
@@ -1420,6 +1442,17 @@ int decode_BCCH_DLSCH_Message(u8 Mod_id,u32 frame,u8 eNB_index,u8 *Sdu,u8 Sdu_le
|
|||||||
}
|
}
|
||||||
// xer_fprint(stdout, &asn_DEF_BCCH_DL_SCH_Message, (void*)&bcch_message);
|
// xer_fprint(stdout, &asn_DEF_BCCH_DL_SCH_Message, (void*)&bcch_message);
|
||||||
|
|
||||||
|
#if defined(ENABLE_ITTI)
|
||||||
|
{
|
||||||
|
MessageDef *message_p;
|
||||||
|
|
||||||
|
message_p = itti_alloc_new_message (TASK_RRC_UE, RRC_DL_BCCH_MESSAGE);
|
||||||
|
memcpy (&message_p->msg, (void *) bcch_message, sizeof(RrcDlBcchMessage));
|
||||||
|
|
||||||
|
itti_send_msg_to_task (TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (bcch_message->message.present == BCCH_DL_SCH_MessageType_PR_c1) {
|
if (bcch_message->message.present == BCCH_DL_SCH_MessageType_PR_c1) {
|
||||||
switch (bcch_message->message.choice.c1.present) {
|
switch (bcch_message->message.choice.c1.present) {
|
||||||
case BCCH_DL_SCH_MessageType__c1_PR_systemInformationBlockType1:
|
case BCCH_DL_SCH_MessageType__c1_PR_systemInformationBlockType1:
|
||||||
@@ -1648,7 +1681,7 @@ int decode_SI(u8 Mod_id,u32 frame,u8 eNB_index,u8 si_window) {
|
|||||||
|
|
||||||
SystemInformation_t **si=&UE_rrc_inst[Mod_id].si[eNB_index][si_window];
|
SystemInformation_t **si=&UE_rrc_inst[Mod_id].si[eNB_index][si_window];
|
||||||
int i;
|
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);
|
vcd_signal_dumper_dump_function_by_name(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_UE_DECODE_SI , VCD_FUNCTION_IN);
|
||||||
|
|
||||||
@@ -1667,7 +1700,7 @@ int decode_SI(u8 Mod_id,u32 frame,u8 eNB_index,u8 si_window) {
|
|||||||
typeandinfo=(*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.array[i];
|
typeandinfo=(*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.array[i];
|
||||||
|
|
||||||
switch(typeandinfo->present) {
|
switch(typeandinfo->present) {
|
||||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2:
|
case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib2:
|
||||||
UE_rrc_inst[Mod_id].sib2[eNB_index] = &typeandinfo->choice.sib2;
|
UE_rrc_inst[Mod_id].sib2[eNB_index] = &typeandinfo->choice.sib2;
|
||||||
LOG_D(RRC,"[UE %d] Frame %d Found SIB2 from eNB %d\n",Mod_id,frame,eNB_index);
|
LOG_D(RRC,"[UE %d] Frame %d Found SIB2 from eNB %d\n",Mod_id,frame,eNB_index);
|
||||||
dump_sib2(UE_rrc_inst[Mod_id].sib2[eNB_index]);
|
dump_sib2(UE_rrc_inst[Mod_id].sib2[eNB_index]);
|
||||||
@@ -1712,51 +1745,51 @@ int decode_SI(u8 Mod_id,u32 frame,u8 eNB_index,u8 si_window) {
|
|||||||
UE_rrc_inst[Mod_id].Info[eNB_index].State = RRC_SI_RECEIVED;
|
UE_rrc_inst[Mod_id].Info[eNB_index].State = RRC_SI_RECEIVED;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib3:
|
case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib3:
|
||||||
UE_rrc_inst[Mod_id].sib3[eNB_index] = &typeandinfo->choice.sib3;
|
UE_rrc_inst[Mod_id].sib3[eNB_index] = &typeandinfo->choice.sib3;
|
||||||
LOG_I(RRC,"[UE %d] Frame %d Found SIB3 from eNB %d\n",Mod_id,frame,eNB_index);
|
LOG_I(RRC,"[UE %d] Frame %d Found SIB3 from eNB %d\n",Mod_id,frame,eNB_index);
|
||||||
dump_sib3(UE_rrc_inst[Mod_id].sib3[eNB_index]);
|
dump_sib3(UE_rrc_inst[Mod_id].sib3[eNB_index]);
|
||||||
UE_rrc_inst[Mod_id].Info[eNB_index].SIStatus = 1;
|
UE_rrc_inst[Mod_id].Info[eNB_index].SIStatus = 1;
|
||||||
break;
|
break;
|
||||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib4:
|
case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib4:
|
||||||
UE_rrc_inst[Mod_id].sib4[eNB_index] = &typeandinfo->choice.sib4;
|
UE_rrc_inst[Mod_id].sib4[eNB_index] = &typeandinfo->choice.sib4;
|
||||||
LOG_I(RRC,"[UE %d] Frame %d Found SIB4 from eNB %d\n",Mod_id,frame,eNB_index);
|
LOG_I(RRC,"[UE %d] Frame %d Found SIB4 from eNB %d\n",Mod_id,frame,eNB_index);
|
||||||
break;
|
break;
|
||||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib5:
|
case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib5:
|
||||||
UE_rrc_inst[Mod_id].sib5[eNB_index] = &typeandinfo->choice.sib5;
|
UE_rrc_inst[Mod_id].sib5[eNB_index] = &typeandinfo->choice.sib5;
|
||||||
LOG_I(RRC,"[UE %d] Found SIB5 from eNB %d\n",Mod_id,eNB_index);
|
LOG_I(RRC,"[UE %d] Found SIB5 from eNB %d\n",Mod_id,eNB_index);
|
||||||
break;
|
break;
|
||||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib6:
|
case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib6:
|
||||||
UE_rrc_inst[Mod_id].sib6[eNB_index] = &typeandinfo->choice.sib6;
|
UE_rrc_inst[Mod_id].sib6[eNB_index] = &typeandinfo->choice.sib6;
|
||||||
LOG_I(RRC,"[UE %d] Found SIB6 from eNB %d\n",Mod_id,eNB_index);
|
LOG_I(RRC,"[UE %d] Found SIB6 from eNB %d\n",Mod_id,eNB_index);
|
||||||
break;
|
break;
|
||||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib7:
|
case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib7:
|
||||||
UE_rrc_inst[Mod_id].sib7[eNB_index] = &typeandinfo->choice.sib7;
|
UE_rrc_inst[Mod_id].sib7[eNB_index] = &typeandinfo->choice.sib7;
|
||||||
LOG_I(RRC,"[UE %d] Found SIB7 from eNB %d\n",Mod_id,eNB_index);
|
LOG_I(RRC,"[UE %d] Found SIB7 from eNB %d\n",Mod_id,eNB_index);
|
||||||
break;
|
break;
|
||||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib8:
|
case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib8:
|
||||||
UE_rrc_inst[Mod_id].sib8[eNB_index] = &typeandinfo->choice.sib8;
|
UE_rrc_inst[Mod_id].sib8[eNB_index] = &typeandinfo->choice.sib8;
|
||||||
LOG_I(RRC,"[UE %d] Found SIB8 from eNB %d\n",Mod_id,eNB_index);
|
LOG_I(RRC,"[UE %d] Found SIB8 from eNB %d\n",Mod_id,eNB_index);
|
||||||
break;
|
break;
|
||||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib9:
|
case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib9:
|
||||||
UE_rrc_inst[Mod_id].sib9[eNB_index] = &typeandinfo->choice.sib9;
|
UE_rrc_inst[Mod_id].sib9[eNB_index] = &typeandinfo->choice.sib9;
|
||||||
LOG_I(RRC,"[UE %d] Found SIB9 from eNB %d\n",Mod_id,eNB_index);
|
LOG_I(RRC,"[UE %d] Found SIB9 from eNB %d\n",Mod_id,eNB_index);
|
||||||
break;
|
break;
|
||||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib10:
|
case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib10:
|
||||||
UE_rrc_inst[Mod_id].sib10[eNB_index] = &typeandinfo->choice.sib10;
|
UE_rrc_inst[Mod_id].sib10[eNB_index] = &typeandinfo->choice.sib10;
|
||||||
LOG_I(RRC,"[UE %d] Found SIB10 from eNB %d\n",Mod_id,eNB_index);
|
LOG_I(RRC,"[UE %d] Found SIB10 from eNB %d\n",Mod_id,eNB_index);
|
||||||
break;
|
break;
|
||||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib11:
|
case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib11:
|
||||||
UE_rrc_inst[Mod_id].sib11[eNB_index] = &typeandinfo->choice.sib11;
|
UE_rrc_inst[Mod_id].sib11[eNB_index] = &typeandinfo->choice.sib11;
|
||||||
LOG_I(RRC,"[UE %d] Found SIB11 from eNB %d\n",Mod_id,eNB_index);
|
LOG_I(RRC,"[UE %d] Found SIB11 from eNB %d\n",Mod_id,eNB_index);
|
||||||
break;
|
break;
|
||||||
#ifdef Rel10
|
#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[Mod_id].sib12[eNB_index] = &typeandinfo->choice.sib12_v920;
|
UE_rrc_inst[Mod_id].sib12[eNB_index] = &typeandinfo->choice.sib12_v920;
|
||||||
LOG_I(RRC,"[RRC][UE %d] Found SIB12 from eNB %d\n",Mod_id,eNB_index);
|
LOG_I(RRC,"[RRC][UE %d] Found SIB12 from eNB %d\n",Mod_id,eNB_index);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920:
|
case SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib13_v920:
|
||||||
UE_rrc_inst[Mod_id].sib13[eNB_index] = &typeandinfo->choice.sib13_v920;
|
UE_rrc_inst[Mod_id].sib13[eNB_index] = &typeandinfo->choice.sib13_v920;
|
||||||
LOG_I(RRC,"[RRC][UE %d] Found SIB13 from eNB %d\n",Mod_id,eNB_index);
|
LOG_I(RRC,"[RRC][UE %d] Found SIB13 from eNB %d\n",Mod_id,eNB_index);
|
||||||
dump_sib13(UE_rrc_inst[Mod_id].sib13[eNB_index]);
|
dump_sib13(UE_rrc_inst[Mod_id].sib13[eNB_index]);
|
||||||
@@ -2181,10 +2214,6 @@ void *rrc_ue_task(void *args_p) {
|
|||||||
LOG_D(RRC, "Received %s\n", msg_name);
|
LOG_D(RRC, "Received %s\n", msg_name);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RRC_UE_EUTRA_CAPABILITY: // TODO debug code, should be removed later.
|
|
||||||
LOG_D(RRC, "Received %s\n", msg_name);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case RRC_MAC_IN_SYNC_IND:
|
case RRC_MAC_IN_SYNC_IND:
|
||||||
LOG_D(RRC, "Received %s: instance %d, frame %d, eNB %d\n", msg_name, instance,
|
LOG_D(RRC, "Received %s: instance %d, frame %d, eNB %d\n", msg_name, instance,
|
||||||
RRC_MAC_IN_SYNC_IND (msg_p).frame, RRC_MAC_IN_SYNC_IND (msg_p).enb_index);
|
RRC_MAC_IN_SYNC_IND (msg_p).frame, RRC_MAC_IN_SYNC_IND (msg_p).enb_index);
|
||||||
|
|||||||
@@ -633,6 +633,18 @@ rrc_eNB_decode_dcch (u8 Mod_id, u32 frame, u8 Srb_id, u8 UE_index,
|
|||||||
dec_rval = uper_decode (NULL,
|
dec_rval = uper_decode (NULL,
|
||||||
&asn_DEF_UL_DCCH_Message,
|
&asn_DEF_UL_DCCH_Message,
|
||||||
(void **) &ul_dcch_msg, Rx_sdu, sdu_size, 0, 0);
|
(void **) &ul_dcch_msg, Rx_sdu, sdu_size, 0, 0);
|
||||||
|
|
||||||
|
#if defined(ENABLE_ITTI)
|
||||||
|
{
|
||||||
|
MessageDef *message_p;
|
||||||
|
|
||||||
|
message_p = itti_alloc_new_message (TASK_RRC_ENB, RRC_UL_DCCH_MESSAGE);
|
||||||
|
memcpy (&message_p->msg, (void *) ul_dcch_msg, sizeof(RrcUlDcchMessage));
|
||||||
|
|
||||||
|
itti_send_msg_to_task (TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
for (i = 0; i < sdu_size; i++)
|
for (i = 0; i < sdu_size; i++)
|
||||||
LOG_T (RRC, "%x.", Rx_sdu[i]);
|
LOG_T (RRC, "%x.", Rx_sdu[i]);
|
||||||
LOG_T (RRC, "\n");
|
LOG_T (RRC, "\n");
|
||||||
@@ -893,7 +905,19 @@ rrc_eNB_decode_ccch (u8 Mod_id, u32 frame, SRB_INFO * Srb_info)
|
|||||||
dec_rval =
|
dec_rval =
|
||||||
uper_decode (NULL, &asn_DEF_UL_CCCH_Message, (void **) &ul_ccch_msg,
|
uper_decode (NULL, &asn_DEF_UL_CCCH_Message, (void **) &ul_ccch_msg,
|
||||||
(uint8_t *) Srb_info->Rx_buffer.Payload, 100, 0, 0);
|
(uint8_t *) Srb_info->Rx_buffer.Payload, 100, 0, 0);
|
||||||
for (i = 0; i < 8; i++)
|
|
||||||
|
#if defined(ENABLE_ITTI)
|
||||||
|
{
|
||||||
|
MessageDef *message_p;
|
||||||
|
|
||||||
|
message_p = itti_alloc_new_message (TASK_RRC_ENB, RRC_UL_CCCH_MESSAGE);
|
||||||
|
memcpy (&message_p->msg, (void *) ul_ccch_msg, sizeof(RrcUlCcchMessage));
|
||||||
|
|
||||||
|
itti_send_msg_to_task (TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
for (i = 0; i < 8; i++)
|
||||||
LOG_T (RRC, "%x.", ((u8 *) & ul_ccch_msg)[i]);
|
LOG_T (RRC, "%x.", ((u8 *) & ul_ccch_msg)[i]);
|
||||||
if (dec_rval.consumed == 0)
|
if (dec_rval.consumed == 0)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user