Files
openairinterface5g/openair2/RRC/CELLULAR/rrc_bch_constant.h
T
2013-06-25 09:05:02 +00:00

143 lines
5.1 KiB
C
Executable File

/***************************************************************************
rrc_bch_constant.h - description
-------------------
copyright : (C) 2002, 2010 by Eurecom
email : Michelle.Wetterwald@eurecom.fr
**************************************************************************
Define structures for Broadcast MIB and SIBs
***************************************************************************/
#ifndef __RRC_BCH_CONSTANT_H__
#define __RRC_BCH_CONSTANT_H__
#include "rrc_bch_per_basic.h"
#define maxBlock 210
typedef char ENCODEDBLOCK[maxBlock];
#define maxSI 30 // (262-16)bits/8 = 30.75
typedef char ENCODEDSI[maxSI];
#define LSIBfixed 24 //= 30-4-2 * spec=28 when PER unaligned
#define LSIBcompl 25 //= 30-4-1 * spec=29 when PER unaligned
#define supportedSIBs 6 //with value_tags [SIBs 1,2,5,11,18] - 14 is time-out
#define maxSIB1NAS 200 // max num of bytes for NAS data in SIB 1
#define maxSIBNAS 110 // max num of bytes for NAS data in SIB 18
typedef struct { /* PER control block */
ENCODEDBLOCK *buffer; /* start of data buffer */
int buff_index; /* index for next data */
int buff_size; /* size of data in the encoded buffer */
int bitoffset; /* for PER unaligned - FFS */
ENCODEDBLOCK *data; /* start of encoded data */
int data_size; /* size of encoded data */
int data_offset; /* in bytes - PER unaligned is FFS */
int errInfo; /* error info */
} PERParms;
#define NO_BLOCK 0xFF
// Default broadcast scheduling
/*
Rules : Repetition must be a constant as defined below
0 <= position <= 2 pow sib_rep -1
eg : sib_rep = 4096, position<= 2047
Current definition MIB: Rep32, pos 0
Long SIBs (>5segments) Rep128, pos 7 [9 segments available]: SIB1, SIB5, SIB18
Short SIBs (<=5 segments) Rep64, pos 3 [5 segments available]: SIB2, SIB11?, SIB14?
*/
#define LONG_SIB_POS 7
#define SHORT_SIB_POS 2
#define MIB_REP SchedulingInformation_scheduling_rep32
#define MIB_POS 0
#define SIB1_REP SchedulingInformation_scheduling_rep64 //128
#define SIB1_POS LONG_SIB_POS
//#define SIB2_REP SchedulingInformation_scheduling_rep64
//#define SIB2_POS SHORT_SIB_POS
#define SIB2_REP SchedulingInformation_scheduling_norep
#define SIB2_POS 0
#define SIB5_REP SchedulingInformation_scheduling_rep64 //128
#define SIB5_POS LONG_SIB_POS + 16 //=(64/2)/2 +7
#define SIB11_REP SchedulingInformation_scheduling_norep
#define SIB11_POS 0
#define SIB14_REP SchedulingInformation_scheduling_rep64
#define SIB14_POS SHORT_SIB_POS + 2
#define SIB14_TFACTOR 7
#define SIB18_REP SchedulingInformation_scheduling_rep64
#define SIB18_POS SHORT_SIB_POS + 16
//Temp
#define maxSIBperMsg 16
//#define P_SUCCESS 0
//#define P_MISCLERROR 1
//#define P_OUTOFBOUNDS 2
//#define P_INVDIGIT 3
/* Segment Combination Types */
#define BCH_noSegment 1
#define BCH_firstSegment 2
#define BCH_subsequentSegment 3
#define BCH_lastSegmentShort 4
#define BCH_lastAndFirst 5
#define BCH_lastAndComplete 6
#define BCH_lastAndCompleteAndFirst 7
#define BCH_completeSIB_List 8
#define BCH_completeAndFirst 9
#define BCH_completeSIB 10
#define BCH_lastSegment 11
/* PLMN_Type */
#define PLMN_gsm_MAP 1
#define PLMN_ansi_41 2
#define PLMN_gsm_MAP_and_ANSI_41 3
#define PLMN_MobyDick 4
/* SIBSb tag constants */
#define SIBSb_sysInfoType1 1
#define SIBSb_sysInfoType2 2
#define SIBSb_sysInfoType3 3
#define SIBSb_sysInfoType4 4
#define SIBSb_sysInfoType5 5
#define SIBSb_sysInfoType6 6
#define SIBSb_sysInfoType7 7
#define SIBSb_sysInfoType8 8
#define SIBSb_sysInfoType9 9
#define SIBSb_sysInfoType10 10
#define SIBSb_sysInfoType11 11
#define SIBSb_sysInfoType12 12
#define SIBSb_sysInfoType13 13
#define SIBSb_sysInfoType13_1 14
#define SIBSb_sysInfoType13_2 15
#define SIBSb_sysInfoType13_3 16
#define SIBSb_sysInfoType13_4 17
#define SIBSb_sysInfoType14 18
#define SIBSb_sysInfoType15 19
#define SIBSb_sysInfoType16 20
#define SIBSb_sysInfoType17 21
#define SIBSb_sysInfoTypeSB1 22
#define SIBSb_sysInfoTypeSB2 23
#define SIBSb_sysInfoType15_1 24
#define SIBSb_sysInfoType15_2 25
#define SIBSb_sysInfoType15_3 26
#define SIBSb_sysInfoType15_4 27
#define SIBSb_sysInfoType18 28
#define SIBSb_sysInfoType15_5 29
/* SchedulingInformation Sib_Pos */
#define SchedulingInformation_scheduling_norep 0
#define SchedulingInformation_scheduling_rep4 1
#define SchedulingInformation_scheduling_rep8 2
#define SchedulingInformation_scheduling_rep16 3
#define SchedulingInformation_scheduling_rep32 4
#define SchedulingInformation_scheduling_rep64 5
#define SchedulingInformation_scheduling_rep128 6
#define SchedulingInformation_scheduling_rep256 7
#define SchedulingInformation_scheduling_rep512 8
#define SchedulingInformation_scheduling_rep1024 9
#define SchedulingInformation_scheduling_rep2048 10
#define SchedulingInformation_scheduling_rep4096 11
#endif