Pre-ci test passed git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4000 818b1a75-f10b-46b9-bf7c-635c3b92a50f
835 lines
25 KiB
C
Executable File
835 lines
25 KiB
C
Executable File
/***************************************************************************
|
|
rrc_msg_ies.h - description
|
|
-------------------
|
|
begin : Jan 6, 2003
|
|
copyright : (C) 2003, 2010 by Eurecom
|
|
email : Michelle.Wetterwald@eurecom.fr
|
|
**************************************************************************
|
|
Define structures for RRC peer-to-peer messages
|
|
***************************************************************************/
|
|
#ifndef __RRC_MSG_IES_H__
|
|
#define __RRC_MSG_IES_H__
|
|
|
|
#include "rrc_platform_types.h"
|
|
#include "rrc_msg_constant.h"
|
|
#include "rrc_bch_per_basic.h"
|
|
|
|
/**************************************************************/
|
|
/* For all Messages */
|
|
/**************************************************************/
|
|
/* IntegrityCheckInfo */
|
|
typedef u32 IntegrityCheckInfo;
|
|
|
|
/**************************************************************/
|
|
/* RRCConnectionRequest */
|
|
/**************************************************************/
|
|
/* IMEI_Digit */
|
|
typedef u8 IMEI_Digit;
|
|
|
|
/* IMEI */
|
|
typedef struct IMEI {
|
|
u8 numDigits;
|
|
IMEI_Digit digit[15];
|
|
} IMEI;
|
|
|
|
/* EstablishmentCause - Full 25.331 list */
|
|
typedef enum {
|
|
originatingConversationalCall = 0,
|
|
originatingStreamingCall = 1,
|
|
originatingInteractiveCall = 2,
|
|
originatingBackgroundCall = 3,
|
|
originatingSubscribedTrafficCall = 4,
|
|
terminatingConversationalCall = 5,
|
|
terminatingStreamingCall = 6,
|
|
terminatingInteractiveCall = 7,
|
|
terminatingBackgroundCall = 8,
|
|
emergencyCall = 9,
|
|
interRAT_CellReselection = 10,
|
|
interRAT_CellChangeOrder = 11,
|
|
registration = 12,
|
|
detach = 13,
|
|
originatingHighPrioritySignalling = 14,
|
|
originatingLowPrioritySignalling = 15,
|
|
callRe_establishment = 16,
|
|
terminatingHighPrioritySignalling = 17,
|
|
terminatingLowPrioritySignalling = 18,
|
|
terminatingCauseUnknown = 19,
|
|
} EstablishmentCause;
|
|
|
|
/* ProtocolErrorIndicator */
|
|
typedef enum {
|
|
noError = 0,
|
|
errorOccurred = 1
|
|
} ProtocolErrorIndicator;
|
|
|
|
/**************************************************************/
|
|
/* RRCConnectionSetup */
|
|
/**************************************************************/
|
|
/* IMEI -- cf RRCConnectionRequest */
|
|
|
|
/* RRC_TransactionIdentifier */
|
|
// value >= 0 && value <= 3
|
|
typedef u8 RRC_TransactionIdentifier;
|
|
|
|
/* ActivationTime */
|
|
// value >= 0 && value <= 255
|
|
typedef u16 ActivationTime;
|
|
|
|
/* U_RNTI */
|
|
//typedef struct U_RNTI {
|
|
// SRNC_Identity srnc_Identity;
|
|
// S_RNTI s_RNTI;
|
|
//} U_RNTI;
|
|
typedef u16 U_RNTI;
|
|
|
|
/* RRC_StateIndicator */
|
|
typedef enum {
|
|
cell_DCH = 0,
|
|
cell_FACH = 1,
|
|
cell_PCH = 2,
|
|
ura_PCH = 3
|
|
} RRC_StateIndicator;
|
|
|
|
/* NAS QOS Info - Moby Dick */
|
|
//typedef u8 IP_DSCP_Codes[MAXURAB];
|
|
//typedef u8 QOS_Classes[MAXURAB];
|
|
|
|
/* UE_Configuration */
|
|
typedef struct UE_Configuration {
|
|
u16 numoctets;
|
|
u8 data[MSG_UECONFIG_LGTH];
|
|
} UE_Configuration;
|
|
|
|
/**************************************************************/
|
|
/* RRCConnectionSetupComplete */
|
|
/**************************************************************/
|
|
// RRC_TransactionIdentifier
|
|
|
|
/* UE_RadioAccessCapability */
|
|
typedef enum {
|
|
rel_4 = 0,
|
|
eurecom_rrc = 7 // values != 0 are spare values
|
|
} UE_RadioAccessCapability;
|
|
|
|
/**************************************************************/
|
|
/* RRCConnectionReject */
|
|
/**************************************************************/
|
|
// IMEI
|
|
// RRC_TransactionIdentifier
|
|
|
|
/* WaitTime */
|
|
// value >= 0 && value <= 15
|
|
typedef u8 WaitTime;
|
|
|
|
/**************************************************************/
|
|
/* RRCConnectionRelease */
|
|
/**************************************************************/
|
|
// U_RNTI
|
|
|
|
/* ReleaseCause */
|
|
typedef enum {
|
|
normalEvent = 0,
|
|
unspecified = 1,
|
|
pre_emptiveRelease = 2,
|
|
congestion = 3,
|
|
re_establishmentReject = 4,
|
|
directedsignallingconnectionre_establishment = 5,
|
|
userInactivity = 6,
|
|
} ReleaseCause;
|
|
|
|
/**************************************************************/
|
|
/* InitialDirectTransfer */
|
|
/**************************************************************/
|
|
/* NAS_Message */
|
|
typedef struct NAS_Message {
|
|
u16 numoctets;
|
|
u8 data[MSG_NASDATA_LGTH];
|
|
} NAS_Message;
|
|
|
|
/**************************************************************/
|
|
/* RadioBearerSetup */
|
|
/**************************************************************/
|
|
/* RB_Identity */
|
|
// value >= 1 && value <= 32
|
|
typedef u16 RB_Identity;
|
|
|
|
/* NAS QOS Info - Moby Dick */
|
|
typedef u16 QOS_Class;
|
|
typedef u16 IP_DSCP_Code;
|
|
typedef u16 SAP_Id;
|
|
|
|
/* RB_InformationSetup */
|
|
typedef struct RB_InformationSetup {
|
|
RB_Identity rb_identity;
|
|
// PDCP_Info pdcp_Info;
|
|
// RLC_InfoChoice rlc_InfoChoice;
|
|
// RB_MappingInfo rb_MappingInfo;
|
|
QOS_Class qos_class;
|
|
IP_DSCP_Code ip_dscp_code;
|
|
SAP_Id sap_id;
|
|
} RB_InformationSetup;
|
|
|
|
/* RAB_InformationSetupList */
|
|
typedef struct RAB_InformationSetupList {
|
|
u16 numrabs;
|
|
RB_InformationSetup rbinfo[MAXRBSETUP];
|
|
} RAB_InformationSetupList;
|
|
|
|
/**************************************************************/
|
|
/* RadioBearerRelease */
|
|
/**************************************************************/
|
|
/* RB_InformationReleaseList */
|
|
typedef struct RB_InformationReleaseList {
|
|
u16 numrabs;
|
|
RB_Identity rbid[MAXRBSETUP];
|
|
} RB_InformationReleaseList;
|
|
|
|
/**************************************************************/
|
|
/* RadioBearerSetupFailure */
|
|
/**************************************************************/
|
|
// RRC_TransactionIdentifier rrc_TransactionIdentifier;
|
|
/* ProtocolErrorCause */
|
|
typedef enum {
|
|
asn1_ViolationOrEncodingError = 0,
|
|
messageTypeNonexistent = 1,
|
|
messageNotCompatibleWithReceiverState = 2,
|
|
ie_ValueNotComprehended = 3,
|
|
informationElementMissing = 4,
|
|
messageExtensionNotComprehended = 5,
|
|
} ProtocolErrorCause;
|
|
|
|
/* FailureCauseWithProtErr */
|
|
typedef struct FailureCauseWithProtErr {
|
|
u8 type;
|
|
ProtocolErrorCause protocolError;
|
|
} FailureCauseWithProtErr;
|
|
|
|
/**************************************************************/
|
|
/* CellUpdate */
|
|
/**************************************************************/
|
|
// U_RNTI
|
|
|
|
/* CellUpdateCause */
|
|
typedef enum {
|
|
cellReselection = 0,
|
|
periodicalCellUpdate = 1,
|
|
uplinkDataTransmission = 2,
|
|
utran_pagingResponse = 3,
|
|
re_enteredServiceArea = 4,
|
|
radiolinkFailure = 5,
|
|
rlc_unrecoverableError = 6,
|
|
} CellUpdateCause;
|
|
|
|
/* FailureCauseWithProtErrTrId */
|
|
typedef struct FailureCauseWithProtErrTrId {
|
|
RRC_TransactionIdentifier rrc_TransactionIdentifier;
|
|
FailureCauseWithProtErr failureCause;
|
|
} FailureCauseWithProtErrTrId;
|
|
|
|
/**************************************************************/
|
|
/* PagingType2 */
|
|
/**************************************************************/
|
|
// RRC_TransactionIdentifier
|
|
// IMEI
|
|
|
|
/* PAGING_Message */
|
|
typedef struct PAGING_Message {
|
|
u16 numoctets;
|
|
u8 data[MSG_PAGING_LGTH];
|
|
} PAGING_Message;
|
|
|
|
/**************************************************************/
|
|
/* MeasurementControl */
|
|
/**************************************************************/
|
|
// RRC_TransactionIdentifier
|
|
|
|
/* MeasurementIdentity */
|
|
// value >= 1 && value <= 16
|
|
typedef u16 MeasurementIdentity;
|
|
|
|
/* ReportingIntervalLong */
|
|
typedef enum {
|
|
int250 = 250,
|
|
int500 = 500,
|
|
int1000 = 1000,
|
|
int2000 = 2000,
|
|
int3000 = 3000,
|
|
int4000 = 4000,
|
|
int6000 = 6000,
|
|
int8000 = 8000,
|
|
int12000 = 12000,
|
|
int16000 = 16000,
|
|
int20000 = 20000,
|
|
int24000 = 24000,
|
|
int28000 = 28000,
|
|
int32000 = 32000,
|
|
int64000 = 64000,
|
|
} ReportingIntervalLong;
|
|
/* ReportingAmount */
|
|
typedef enum {
|
|
amount1 = 1,
|
|
amount2 = 2,
|
|
amount4 = 4,
|
|
amount8 = 8,
|
|
amount16 = 16,
|
|
amount32 = 32,
|
|
amount64 = 64,
|
|
amount_inf = 0
|
|
} ReportingAmount;
|
|
/* PeriodicalReportingCriteria */
|
|
typedef struct PeriodicalReportingCriteria {
|
|
ReportingAmount reportingAmount;
|
|
ReportingIntervalLong reportingInterval;
|
|
} PeriodicalReportingCriteria;
|
|
|
|
/* FilterCoefficient */
|
|
typedef enum {
|
|
coeff0 = 0, //default value
|
|
coeff1 = 1,
|
|
coeff2 = 2,
|
|
coeff3 = 3,
|
|
coeff4 = 4,
|
|
coeff5 = 5,
|
|
coeff6 = 6,
|
|
coeff7 = 7,
|
|
coeff8 = 8,
|
|
coeff9 = 9,
|
|
coeff11 = 11,
|
|
coeff13 = 13,
|
|
coeff15 = 15,
|
|
coeff17 = 17,
|
|
coeff19 = 19,
|
|
} FilterCoefficient;
|
|
|
|
/**************************************************************/
|
|
/* IntraFreqMeasQuantityList */
|
|
typedef enum {
|
|
primaryCCPCH_RSCP = 0,
|
|
pathloss = 1,
|
|
timeslotISCP = 2,
|
|
} IntraFreqMeasQuantityList;
|
|
/* IntraFreqMeasQuantity */
|
|
typedef struct IntraFreqMeasQuantity {
|
|
FilterCoefficient filterCoefficient;
|
|
// IntraFreqMeasQuantityList measureList[4]; //4 defined in 25.331 - not used
|
|
} IntraFreqMeasQuantity;
|
|
|
|
/* CellReportingQuantities */
|
|
typedef struct CellReportingQuantities {
|
|
u8 cellIdentity_reportingIndicator;
|
|
u8 timeslotISCP_reportingIndicator;
|
|
u8 primaryCCPCH_RSCP_reportingIndicator;
|
|
u8 pathloss_reportingIndicator;
|
|
} CellReportingQuantities;
|
|
|
|
/* MV_ue_State */
|
|
typedef enum {
|
|
mv_cell_DCH = 0,
|
|
mv_all_But_Cell_DCH = 1,
|
|
mv_all_States = 2
|
|
//} MV_ue_State;
|
|
///* MeasurementValidity */
|
|
//typedef struct MeasurementValidity {
|
|
// MV_ue_State ue_State;
|
|
} MeasurementValidity;
|
|
|
|
/* IntraFreqReportingCriteria_r4 */
|
|
typedef struct IntraFreqReportingCriteria_r4 {
|
|
int value; //FFS
|
|
} IntraFreqReportingCriteria_r4;
|
|
/* IntraFreqReportCriteria_r4 */
|
|
typedef struct IntraFreqReportCriteria_r4 {
|
|
u16 criteriaType;
|
|
union {
|
|
/* criteriaType = 1 */
|
|
IntraFreqReportingCriteria_r4 intraFreqReportingCriteria;
|
|
/* criteriaType = 2 */
|
|
PeriodicalReportingCriteria periodicalReportingCriteria;
|
|
/* criteriaType = 3 */
|
|
//ReportingCellStatusOpt *noReporting;
|
|
} criteriaDef;
|
|
} IntraFreqReportCriteria_r4;
|
|
|
|
/* IntraFrequencyMeasurement_r4 */
|
|
typedef struct IntraFrequencyMeasurement_r4 {
|
|
IntraFreqMeasQuantity intraFreqMeasQuantity;
|
|
CellReportingQuantities intraFreqReportingQuantity;
|
|
MeasurementValidity measurementValidity;
|
|
IntraFreqReportCriteria_r4 reportCriteria;
|
|
} IntraFrequencyMeasurement_r4;
|
|
|
|
/**************************************************************/
|
|
/* TransportChannelIdentity
|
|
(value >= 1 && value <= 32) */
|
|
typedef u8 TransportChannelIdentity;
|
|
/* UL_TrCH_Identity */
|
|
typedef struct UL_TrCH_Identity {
|
|
u8 ch_type;
|
|
TransportChannelIdentity ch_id;
|
|
} UL_TrCH_Identity;
|
|
/* TrafficVolumeMeasurementObjectList */
|
|
typedef struct TrafficVolumeMeasurementObjectList {
|
|
u8 numChannels;
|
|
UL_TrCH_Identity channel[MAXMEASTRCH]; // should be 32
|
|
} TrafficVolumeMeasurementObjectList;
|
|
|
|
/* TimeInterval
|
|
(value >= 1 && value <= 13) */
|
|
typedef u8 TimeInterval;
|
|
/* TrafficVolumeMeasQuantity */
|
|
typedef struct TrafficVolumeMeasQuantity {
|
|
u8 tf_type;
|
|
union {
|
|
/* tf_type = 1 */
|
|
/* tf_type = 2 */
|
|
TimeInterval averageRLC_BufferPayload;
|
|
/* tf_type = 3 */
|
|
TimeInterval varianceOfRLC_BufferPayload;
|
|
} timeinterval;
|
|
} TrafficVolumeMeasQuantity;
|
|
|
|
/* TrafficVolumeReportingQuantity */
|
|
typedef struct TrafficVolumeReportingQuantity {
|
|
u8 rlc_RB_BufferPayload;
|
|
u8 rlc_RB_BufferPayloadAverage;
|
|
u8 rlc_RB_BufferPayloadVariance;
|
|
} TrafficVolumeReportingQuantity;
|
|
|
|
// MeasurementValidity
|
|
|
|
/* TrafficVolumeReportingCriteria */
|
|
typedef struct TrafficVolumeReportingCriteria {
|
|
u16 value; //Temp
|
|
} TrafficVolumeReportingCriteria;
|
|
// PeriodicalReportingCriteria
|
|
/* TrafficVolumeReportCriteria */
|
|
typedef struct TrafficVolumeReportCriteria {
|
|
u16 criteriaType;
|
|
union {
|
|
/* criteriaType = 1 */
|
|
TrafficVolumeReportingCriteria trafficVolumeReportingCriteria;
|
|
/* criteriaType = 2 */
|
|
PeriodicalReportingCriteria periodicalReportingCriteria;
|
|
/* criteriaType = 3 */
|
|
} criteriaDef;
|
|
} TrafficVolumeReportCriteria;
|
|
|
|
/* TrafficVolumeMeasurement */
|
|
typedef struct TrafficVolumeMeasurement {
|
|
// TrafficVolumeMeasurementObjectList trafficVolumeMeasurementObjectList; FFS
|
|
// TrafficVolumeMeasQuantity trafficVolumeMeasQuantity; Ignored anyway
|
|
TrafficVolumeReportingQuantity trafficVolumeReportingQuantity;
|
|
MeasurementValidity measurementValidity;
|
|
TrafficVolumeReportCriteria reportCriteria;
|
|
} TrafficVolumeMeasurement;
|
|
|
|
/**************************************************************/
|
|
/* BLER_TransChIdList */
|
|
typedef struct BLER_TransChIdList {
|
|
u8 numTrCH;
|
|
TransportChannelIdentity ch_id[MAXMEASTRCH]; //should be 32
|
|
} BLER_TransChIdList;
|
|
|
|
/* TFCS_IdentityPlain
|
|
(value >= 1 && value <= 8) */
|
|
typedef u8 TFCS_IdentityPlain;
|
|
/* SIR_TFCS */
|
|
typedef TFCS_IdentityPlain SIR_TFCS;
|
|
/* SIR_TFCS_List */
|
|
typedef struct SIR_TFCS_List {
|
|
u8 numTFCS;
|
|
SIR_TFCS tfcs[MAXMEASTFCS];
|
|
} SIR_TFCS_List;
|
|
|
|
/* QualityReportingQuantity */
|
|
typedef struct QualityReportingQuantity {
|
|
u8 dl_TransChBLER;
|
|
// BLER_TransChIdList bler_dl_TransChIdList;FFS
|
|
SIR_TFCS_List sir_TFCS_List;
|
|
} QualityReportingQuantity;
|
|
|
|
/* QualityReportingCriteria */
|
|
typedef struct QualityReportingCriteria {
|
|
u16 value; //Temp
|
|
} QualityReportingCriteria;
|
|
// PeriodicalReportingCriteria
|
|
/* QualityReportCriteria */
|
|
typedef struct QualityReportCriteria {
|
|
u16 criteriaType;
|
|
union {
|
|
/* criteriaType = 1 */
|
|
QualityReportingCriteria qualityReportingCriteria;
|
|
/* criteriaType = 2 */
|
|
PeriodicalReportingCriteria periodicalReportingCriteria;
|
|
/* criteriaType = 3 */
|
|
} criteriaDef;
|
|
} QualityReportCriteria;
|
|
/* QualityMeasurement */
|
|
typedef struct QualityMeasurement {
|
|
QualityReportingQuantity qualityReportingQuantity;
|
|
QualityReportCriteria reportCriteria;
|
|
} QualityMeasurement;
|
|
|
|
/**************************************************************/
|
|
/* UE_MeasurementQuantity */
|
|
typedef enum {
|
|
ue_TransmittedPower = 0,
|
|
utra_Carrier_RSSI = 1,
|
|
} UE_MeasurementQuantity;
|
|
|
|
/* UE_InternalMeasQuantity */
|
|
typedef struct UE_InternalMeasQuantity {
|
|
UE_MeasurementQuantity measurementQuantity;
|
|
FilterCoefficient filterCoefficient;
|
|
} UE_InternalMeasQuantity;
|
|
|
|
/* UE_InternalReportingQuantity_r4 */
|
|
typedef struct UE_InternalReportingQuantity_r4 {
|
|
u8 ue_TransmittedPower;
|
|
u8 appliedTA; //modeSpecificInfo
|
|
} UE_InternalReportingQuantity_r4;
|
|
|
|
/* UE_InternalReportingCriteria */
|
|
typedef struct UE_InternalReportingCriteria {
|
|
u16 value; //Temp
|
|
} UE_InternalReportingCriteria;
|
|
// PeriodicalReportingCriteria
|
|
|
|
/* UE_InternalReportCriteria */
|
|
typedef struct UE_InternalReportCriteria {
|
|
u16 criteriaType;
|
|
union {
|
|
/* criteriaType = 1 */
|
|
UE_InternalReportingCriteria ue_InternalReportingCriteria;
|
|
/* criteriaType = 2 */
|
|
PeriodicalReportingCriteria periodicalReportingCriteria;
|
|
/* criteriaType = 3 */
|
|
} criteriaDef;
|
|
} UE_InternalReportCriteria;
|
|
|
|
/* UE_InternalMeasurement */
|
|
typedef struct UE_InternalMeasurement_r4 {
|
|
UE_InternalMeasQuantity ue_InternalMeasQuantity;
|
|
UE_InternalReportingQuantity_r4 ue_InternalReportingQuantity;
|
|
UE_InternalReportCriteria reportCriteria;
|
|
} UE_InternalMeasurement_r4;
|
|
|
|
//****************************************************************
|
|
/* MeasurementType */
|
|
typedef struct MeasurementType {
|
|
u16 measType;
|
|
union {
|
|
/* measType = 1 */
|
|
IntraFrequencyMeasurement_r4 intraFrequencyMeasurement;
|
|
/* measType = 2 */
|
|
//InterFrequencyMeasurement_r4 interFrequencyMeasurement;
|
|
/* measType = 5 */
|
|
TrafficVolumeMeasurement trafficVolumeMeasurement;
|
|
/* measType = 6 */
|
|
QualityMeasurement qualityMeasurement;
|
|
/* measType = 7 */
|
|
UE_InternalMeasurement_r4 ue_InternalMeasurement;
|
|
} type;
|
|
} MeasurementType;
|
|
|
|
/* MeasurementCommand_r4 */
|
|
typedef struct MeasurementCommand_r4 {
|
|
u16 cmdType;
|
|
union {
|
|
/* cmdType = 1 */
|
|
MeasurementType setup;
|
|
/* cmdType = 2 */
|
|
MeasurementType modify;
|
|
/* cmdType = 3 */
|
|
} command;
|
|
} MeasurementCommand_r4;
|
|
|
|
/* PeriodicalOrEventTrigger */
|
|
typedef enum {
|
|
periodical = 0,
|
|
eventTrigger = 1
|
|
} PeriodicalOrEventTrigger;
|
|
/* TransferMode */
|
|
typedef enum {
|
|
acknowledgedModeRLC = 0,
|
|
unacknowledgedModeRLC = 1
|
|
} TransferMode;
|
|
/* MeasurementReportingMode */
|
|
typedef struct MeasurementReportingMode {
|
|
TransferMode measurementReportTransferMode;
|
|
PeriodicalOrEventTrigger periodicalOrEventTrigger;
|
|
} MeasurementReportingMode;
|
|
|
|
|
|
/**************************************************************/
|
|
/* MeasurementReport */
|
|
/**************************************************************/
|
|
|
|
// MeasurementIdentity
|
|
|
|
/**************************************************************/
|
|
/* CellIdentity */
|
|
typedef u8 CellIdentity;
|
|
/* SFN_SFN_ObsTimeDifference
|
|
value >= 0 && value <= 16777215 */
|
|
typedef int SFN_SFN_ObsTimeDifference;
|
|
|
|
/* CellParametersID
|
|
value >= 0 && value <= 127 */
|
|
typedef u8 CellParametersID;
|
|
/* PrimaryCCPCH_RSCP
|
|
value >= 0 && value <= 127 */
|
|
typedef u8 PrimaryCCPCH_RSCP;
|
|
/* Pathloss
|
|
value >= 46 && value <= 173 */
|
|
typedef u16 Pathloss;
|
|
/* TimeslotISCP
|
|
value >= 0 && value <= 127 */
|
|
typedef u8 TimeslotISCP;
|
|
/* TimeslotISCP_List */
|
|
typedef struct TimeslotISCP_List {
|
|
u8 numSlots;
|
|
TimeslotISCP iscp[JRRM_SLOTS_PER_FRAME];
|
|
} TimeslotISCP_List;
|
|
|
|
/* CellMeasuredResults_modeSpecificInfo_tdd */
|
|
typedef struct CellMeasuredResults_modeSpecificInfo_tdd {
|
|
CellParametersID cellParametersID;
|
|
//TGSN proposedTGSN;
|
|
PrimaryCCPCH_RSCP primaryCCPCH_RSCP;
|
|
Pathloss pathloss;
|
|
TimeslotISCP_List timeslotISCP_List;
|
|
} CellMeasuredResults_modeSpecificInfo_tdd;
|
|
|
|
/* CellMeasuredResults */
|
|
typedef struct CellMeasuredResults {
|
|
CellIdentity cellIdentity;
|
|
//SFN_SFN_ObsTimeDifference sfn_SFN_ObsTimeDifference;
|
|
//CellSynchronisationInfo cellSynchronisationInfo;
|
|
CellMeasuredResults_modeSpecificInfo_tdd modeSpecificInfo;
|
|
} CellMeasuredResults;
|
|
|
|
/* IntraFreqMeasuredResultsList */
|
|
typedef struct IntraFreqMeasuredResultsList {
|
|
u8 numCells;
|
|
CellMeasuredResults cellMeas[MAXMEASCELLS];
|
|
} IntraFreqMeasuredResultsList;
|
|
|
|
/**************************************************************/
|
|
|
|
/* RLC_BuffersPayload */
|
|
typedef enum {
|
|
pl0 = 0,
|
|
pl4 = 1,
|
|
pl8 = 2,
|
|
pl16 = 3,
|
|
pl32 = 4,
|
|
pl64 = 5,
|
|
pl128 = 6,
|
|
pl256 = 7,
|
|
pl512 = 8,
|
|
pl1024 = 9,
|
|
pl2k = 10,
|
|
pl4k = 11,
|
|
pl8k = 12,
|
|
pl16k = 13,
|
|
pl32k = 14,
|
|
pl64k = 15,
|
|
pl128k = 16,
|
|
pl256k = 17,
|
|
pl512k = 18,
|
|
pl1024k = 19,
|
|
} RLC_BuffersPayload;
|
|
/* AverageRLC_BufferPayload */
|
|
typedef enum {
|
|
pla0 = 0,
|
|
pla4 = 1,
|
|
pla8 = 2,
|
|
pla16 = 3,
|
|
pla32 = 4,
|
|
pla64 = 5,
|
|
pla128 = 6,
|
|
pla256 = 7,
|
|
pla512 = 8,
|
|
pla1024 = 9,
|
|
pla2k = 10,
|
|
pla4k = 11,
|
|
pla8k = 12,
|
|
pla16k = 13,
|
|
pla32k = 14,
|
|
pla64k = 15,
|
|
pla128k = 16,
|
|
pla256k = 17,
|
|
pla512k = 18,
|
|
pla1024k = 19,
|
|
} AverageRLC_BufferPayload;
|
|
/* VarianceOfRLC_BufferPayload */
|
|
typedef enum {
|
|
plv0 = 0,
|
|
plv4 = 1,
|
|
plv8 = 2,
|
|
plv16 = 3,
|
|
plv32 = 4,
|
|
plv64 = 5,
|
|
plv128 = 6,
|
|
plv256 = 7,
|
|
plv512 = 8,
|
|
plv1024 = 9,
|
|
plv2k = 10,
|
|
plv4k = 11,
|
|
plv8k = 12,
|
|
plv16k = 13,
|
|
} VarianceOfRLC_BufferPayload;
|
|
/* TrafficVolumeMeasuredResults */
|
|
typedef struct TrafficVolumeMeasuredResults {
|
|
RB_Identity rb_Identity;
|
|
RLC_BuffersPayload rlc_BuffersPayload;
|
|
AverageRLC_BufferPayload averageRLC_BufferPayload;
|
|
VarianceOfRLC_BufferPayload varianceOfRLC_BufferPayload;
|
|
} TrafficVolumeMeasuredResults;
|
|
|
|
/* TrafficVolumeMeasuredResultsList */
|
|
typedef struct TrafficVolumeMeasuredResultsList {
|
|
u8 numRB;
|
|
TrafficVolumeMeasuredResults RBMeas[MAXMEASRBS]; // should be 32
|
|
} TrafficVolumeMeasuredResultsList;
|
|
|
|
/**************************************************************/
|
|
|
|
/* DL_TransportChannelBLER
|
|
(value >= 0 && value <= 63) */
|
|
typedef u8 DL_TransportChannelBLER;
|
|
/* BLER_MeasurementResults */
|
|
typedef struct BLER_MeasurementResults {
|
|
TransportChannelIdentity transportChannelIdentity;
|
|
DL_TransportChannelBLER dl_TransportChannelBLER;
|
|
} BLER_MeasurementResults;
|
|
/* BLER_MeasurementResultsList */
|
|
typedef struct BLER_MeasurementResultsList {
|
|
u8 numTrCH;
|
|
BLER_MeasurementResults measTrCH[MAXMEASTRCH]; // should be 32
|
|
} BLER_MeasurementResultsList;
|
|
|
|
|
|
// TFCS_IdentityPlain
|
|
/* SIR
|
|
(value >= 0 && value <= 63) */
|
|
typedef u8 SIR;
|
|
|
|
/* SIR_TimeslotList */
|
|
typedef struct SIR_TimeslotList {
|
|
u8 numSIR;
|
|
SIR sir[JRRM_SLOTS_PER_FRAME];
|
|
} SIR_TimeslotList;
|
|
/* SIR_MeasurementResults */
|
|
typedef struct SIR_MeasurementResults {
|
|
TFCS_IdentityPlain tfcs_ID;
|
|
SIR_TimeslotList sir_TimeslotList;
|
|
} SIR_MeasurementResults;
|
|
/* SIR_MeasurementList */
|
|
typedef struct SIR_MeasurementList {
|
|
u8 numTFCS;
|
|
SIR_MeasurementResults sirMeas[MAXMEASTFCS];
|
|
} SIR_MeasurementList;
|
|
|
|
|
|
/* QualityMeasuredResults */
|
|
typedef struct QualityMeasuredResults {
|
|
BLER_MeasurementResultsList blerMeasurementResultsList;
|
|
SIR_MeasurementList sir_MeasurementList;
|
|
} QualityMeasuredResults;
|
|
|
|
/**************************************************************/
|
|
|
|
/* UE_TransmittedPower
|
|
value >= 0 && value <= 104 */
|
|
typedef u8 UE_TransmittedPower;
|
|
/* UE_TransmittedPowerTDD_List */
|
|
typedef struct UE_TransmittedPowerTDD_List {
|
|
u8 numSlots;
|
|
UE_TransmittedPower xmitPower[JRRM_SLOTS_PER_FRAME];
|
|
} UE_TransmittedPowerTDD_List;
|
|
|
|
/* UL_TimingAdvance
|
|
value >= 0 && value <= 63 */
|
|
typedef u8 UL_TimingAdvance;
|
|
|
|
/* UE_InternalMeasuredResults_tdd */
|
|
typedef struct UE_InternalMeasuredResults_modeSpecificInfo_tdd {
|
|
UE_TransmittedPowerTDD_List ue_TransmittedPowerTDD_List;
|
|
UL_TimingAdvance appliedTA;
|
|
} UE_InternalMeasuredResults_tdd;
|
|
|
|
/**************************************************************/
|
|
/* MeasuredResults */
|
|
typedef struct MeasuredResults {
|
|
u8 measResult;
|
|
union {
|
|
/* measResult = 1 */
|
|
IntraFreqMeasuredResultsList intraFreqMeasuredResultsList;
|
|
/* measResult = 2 */
|
|
//InterFreqMeasuredResultsList interFreqMeasuredResultsList;
|
|
/* measResult = 4 */
|
|
TrafficVolumeMeasuredResultsList trafficVolumeMeasuredResultsList;
|
|
/* measResult = 5 */
|
|
QualityMeasuredResults qualityMeasuredResults;
|
|
/* measResult = 6 */
|
|
UE_InternalMeasuredResults_tdd ue_InternalMeasuredResults;
|
|
} result;
|
|
} MeasuredResults;
|
|
|
|
|
|
// /**************************************************************/
|
|
// /* OpenLoopPowerControl_IPDL_TDD_r4 */
|
|
// /**************************************************************/
|
|
// typedef struct OpenLoopPowerControl {
|
|
// s16 alpha __attribute__ ((packed));
|
|
// u16 maxPowerIncrease __attribute__ ((packed));
|
|
// } OpenLoopPowerControl;
|
|
//
|
|
// /**************************************************************/
|
|
// /* UL_DPCH_PowerControlInfo_tdd */
|
|
// /**************************************************************/
|
|
// typedef struct UplinkPhysicalChannelControl {
|
|
// s16 timingAdvance __attribute__ ((packed));
|
|
// u16 alpha __attribute__ ((packed));
|
|
// s16 prach_ConstantValue __attribute__ ((packed));
|
|
// s16 pusch_ConstantValue __attribute__ ((packed));
|
|
// s16 dpch_ConstantValue __attribute__ ((packed));
|
|
// OpenLoopPowerControl openLoopPowerControl __attribute__ ((packed));
|
|
// } UplinkPhysicalChannelControl;
|
|
//
|
|
// /**************************************************************/
|
|
// /* UL_DPCH_PowerControlInfo_tdd */
|
|
// /**************************************************************/
|
|
// typedef struct UL_DPCH_PowerControlInfo {
|
|
// s16 ul_TargetSIR __attribute__ ((packed));
|
|
// // UL_DPCH_PowerControlInfo_tdd_ul_OL_PC_Signalling ul_OL_PC_Signalling;
|
|
// } UL_DPCH_PowerControlInfo;
|
|
// /**************************************************************/
|
|
// /* CCTrCH_PowerControlInfo_r4 */
|
|
// /**************************************************************/
|
|
// typedef struct CCTrCH_PowerControlInfo {
|
|
// u16 tfcs_Identity __attribute__ ((packed)); // CCTrCH Index
|
|
// UL_DPCH_PowerControlInfo ul_DPCH_PowerControlInfo __attribute__ ((packed));
|
|
// } CCTrCH_PowerControlInfo;
|
|
// /**************************************************************/
|
|
// /* UplinkPhysicalChannelControl_r4_IEs */
|
|
// /**************************************************************/
|
|
// typedef struct UplinkPhysicalChannelControl_IE {
|
|
// u16 ue_id __attribute__ ((packed));
|
|
// CCTrCH_PowerControlInfo ccTrCH_PowerControlInfo __attribute__ ((packed)); //CCTrCH UL Power Control
|
|
// UplinkPhysicalChannelControl uplinkPhysicalChannelControl __attribute__ ((packed)); //PRACH/PUSCH Parameters
|
|
// } UplinkPhysicalChannelControl_IE;
|
|
|
|
//**************************************************************/
|
|
/* UE Capability Information */
|
|
/**************************************************************/
|
|
/* AccessStratumReleaseIndicator */
|
|
typedef u8 AccessStratumReleaseIndicator;
|
|
/* EurecomKernelReleaseIndicator */
|
|
typedef u8 EurecomKernelReleaseIndicator;
|
|
|
|
|
|
#endif
|