📄 rmc_context.h
字号:
rmc_freq_list_struct;
typedef struct
{
kal_uint8 valid;
kal_uint16 old_cell_arfcn;
}
rmc_old_cell_struct;
typedef struct rmpc_cell_desc_struct
{
kal_uint8 is_valid;
kal_uint8 bsic;
kal_uint16 arfcn;
kal_uint32 chan_type;
} rmpc_cell_desc_struct;
typedef struct sync_ind_info_struct
{
kal_uint8 nci; /* Normal Cell Ind.- whether out of
range Timing Advance is
accepted or not */
kal_uint8 rot; /* Report Observed Time Difference -
whether ROT should be included in
the Handover Complete Message */
kal_uint8 si; /* Sync Ind.- whether Non-Sync,Sync,
Pre-Sync,Pseudo-Sync Handover */
kal_uint8 atc; /* Access Type Control - Indicates
whether sending Access Bursts is
mandatory or not */
}
sync_ind_info_struct;
typedef struct backup_cell_alloc_struct
{
kal_uint8 num_chan;
kal_uint16 *arfcn_list;
}
backup_cell_alloc_struct;
/* DEDICATED MODE RELATED PARAMS */
typedef struct rmc_ded_mode_params_struct
{
/* For RR cell Change Order */
rmc_cell_desc_struct target_cell_desc; /* target cell Description */
/* For assignment Command & PDCH assignment */
#if 0 /* Claire del */
/* under construction !*/
/* under construction !*/
#endif
kal_uint8 asgn_type; /* flag indicating whether we
are processing assignment
Command or PDCH assignment or
Immediate asgn Extd:
0 -> asgn Cmd
1 -> PDCH Asgnmnt
2 -> Imme asgn extd
Init value = 0xff */
/* Shahul: for temp storage, freq-redef */
#if 0 /* Claire del 20021025 */
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
#endif
channel_desc_struct chan_desc_before_time; /* Channel Description before
Time */
channel_desc_struct chan_desc_after_time; /* Channel Description after Time */
channel_desc_struct chan_desc2after_time; /* Channel2 Description after
Time */
channel_desc_struct chan_desc2before_time;
STARTING_TIME_STRUCT_1 start_time; /* Starting Time for Channel1 */
ts_frame_no_struct ts_frame_no; /* used for PDCH Assign msg */
rmc_pwr_level_struct power_level; /* Power level to be used */
rmc_freq_list_struct freq_list_before_time; /* Reference frequency/MA/
freq Chl1 Seq before time */
rmc_freq_list_struct freq_list_after_time; /* Reference frequency/ MA chl1
Seq after time */
rmc_freq_list_struct freq_list2after_time; /* Reference frequency/ MA chl2
Seq after time */
/* In above case, we've taken only one data Str for Ref freq list/ MA/
* freq Chl Seq because only one of these list will be provided (& valid)
* for the MS for a given assignment Command/ PDCH assignment Message */
/* Doubt: Do we need to put it directly in psi.h as Mobile Allocation ?? */
/* For EMO */
rmc_ext_meas_struct ext_meas_freq; /* Extended Measurement Frequency
structure */
kal_uint8 chl_mode;
kal_uint8 chl_type; /* channel mode for chl set 1, see assignment command */
kal_uint8 rr_cause; /* The assignment status */
sync_ind_info_struct sync_info; /* Type of handover */
kal_uint8 rtd; /* Real Time Difference */
/*kal_uint8 otd; */ /* Observed Timer Difference */
kal_uint32 otd; /* Observed Timer Difference */
kal_uint8 handover_ref; /* Handover Reference */
kal_uint8 phy_info_recvd;
}
rmc_ded_mode_params_struct;
/* Claire add (CSRR)*/
typedef struct multi_rate_config_struct
{
kal_uint8 length;
kal_uint8 mr_version;
kal_uint8 start_mode;
kal_uint8 icmi;
kal_uint8 speech_params[5];
}
multi_rate_config_struct;
/* Claire add: Previously defined in mpal_common_struct.h */
typedef struct {
kal_uint8 ul_slot_map;
kal_uint8 dl_slot_map;
kal_uint8 is_mode_valid;
kal_uint8 set_mode;
} multi_slot_struct;
typedef struct ho_rel_para_struct
{
MS_CIPHER_MODE_ENUM ms_cipher_mode; /* Flag indicating ciphering
state of CSRR */
cipher_setting_struct cipher_set; /* Stucture used to store
ciphering related parameters. */
kal_uint8 new_cipher_key[8]; /* Store cipher key assigned by MM*/
/* Claire add to store CKSN */
kal_uint8 cipher_key_seq_num;
kal_bool multislot_decode_req; /* Flag indicating whether
multimode IE needs to be
decoded. */
multi_slot_struct ch_set_desc[8]; /* multi slot IE stuct */
kal_uint8 ischl_mode_supported; /* flag indicating whether the
channel mode is supported
or not. */
kal_uint8 is_multi_slot_set; /* Flag indicating whether
multi slot mode is enabled
or not */
kal_uint8 num_ch_set; /* number of channel sets in
multislot IE */
}
multi_slot_para_struct;
/* Begin Paul add */
#ifdef __CB__
typedef struct
{
kal_bool is_scheduled;
kal_uint8 begin_slot;
kal_uint8 end_slot;
kal_uint8 current_slot;
kal_uint8 schedule_period;
kal_uint8 new_message_count;
kal_uint8 schedule_bitmap[CB_SCHEDULE_BITMAP_SIZE];
kal_uint8 message_description
[CB_SCHEDULE_MESSAGE_DESCRIPTION_SIZE];
}
cb_schedule_data_struct; /* Used to keep the data of schedule message
* from the L1 */
typedef struct
{
kal_uint16 cbmi_num;
kal_uint16 cbmir_num;
kal_uint16 cbmid_num;
kal_uint16 cbmi[MAX_CB_MSG_ID];
kal_uint16 cbmir[MAX_CB_MSG_ID_RANGE*2];
kal_uint16 cbmid[MAX_CB_MSG_ID_DWNLD];
}
cb_mi_struct; /* Used to keep the data of CBMI from the MMI */
typedef struct
{
kal_uint8 dcs_num;
kal_uint16 dcs[MAX_CB_DCS];
}
cb_dcs_struct; /* Used to keep the data of DCS from the MMI */
typedef struct
{
kal_uint16 sn;
kal_uint16 mi;
kal_uint8 cbch_mode; /* CBCH_MODE_NORMAL/
CBCH_MODE_EXTENDED */
kal_uint8 pp;
}
cb_received_entry_struct; /* The history is used to keep the received
* Normal CB and STK CB */
#ifdef __GEOGRAPHY_CB__
typedef enum
{
CELL_CHANGED ,
LA_CHANGED,
PLMN_CHANGED
} cb_geography_enum;
/* 040809 Henry change */
typedef struct
{
la_identification_struct old_la_plmn;
cell_id_struct old_ci;
kal_uint8 history_num;
cb_received_entry_struct history[MAX_CB_HISTORY];
}
cb_received_history_struct; /* list of history */
#else
typedef struct
{
kal_uint8 old_plmn[3];
kal_uint8 old_lai[2];
kal_uint8 old_ci[2];
kal_uint8 history_num;
cb_received_entry_struct history[MAX_CB_HISTORY];
}
cb_received_history_struct; /* list of history */
#endif
#endif
/* End Paul add */
#ifdef __GPRS_MODE__
/*****************************************************************************
* GPRS part (Vincent add)
*****************************************************************************/
/* TBF RELATED PARAMETERS */
typedef struct rmc_tbf_params_struct
{
channel_desc_struct chan_desc_before_time; /* Channel Description before
Time */
channel_desc_struct chan_desc_after_time; /* Channel Description after Time*/
STARTING_TIME_STRUCT_1 start_time; /* Starting Time */
rmc_freq_list_struct freq_list_before_time;
rmc_freq_list_struct freq_list_after_time;
kal_uint8 *tbf_asgn_ptr; /* Pointer to UL/DL IE in a PDCH msg or
IA Rest Octets in Imm Asgn Msg */
kal_uint8 tbf_asgn_length; /* Length of UL/DL IE in a PDCH msg */
} rmc_tbf_params_struct;
#endif /* end of __GPRS_MODE__ */
#ifdef __EGPRS_MODE__
/* EGPRS part */
typedef struct
{
kal_bool valid_flag;
kal_uint8 value;
}ext_ra_struct;
#endif /* end of __EPGRS_MODE__ */
/*****************************************************************************
* RMC Context
*****************************************************************************/
typedef struct rmc_context_struct
{
kal_uint16 begin_of_rmc_cntx;
kal_uint8 rmc_state; /* value in rmc_state enum */
rmc_ded_mode_params_struct dedicated_mode_params;
rmc_ded_mode_params_struct backup_dedicated_mode_params; /* To keep the
backup of the
dedicated_mode_params
during Handover
*/
/* Already in Pkt_Access_Var struct */
timing_advance_struct time_adv; /* Timing Advance */
kal_uint8 curr_req_id; /* request id of current access procedure */
kal_uint8 num_channel_req; /* number of Channel Requests sent */
est_cause_enum chan_req_cause; /* Packet Access cause */
kal_uint8 tx_integer; /* tx-Integer parameter */
kal_uint16 slot_param; /* Slot Params */
/* Lanslo 20050814 */
#ifdef __EGPRS_MODE__
/*Simon: for 11 bit EPCR */
kal_uint16 chan_req_mesg; /* actual channel request */
#else
kal_uint8 chan_req_mesg; /* actual channel request */
#endif
/* eo Lanslo 20050814 */
kal_uint8 acs_type_req; /* access type requested by,
MAC ONE_PHASE or TWO_PHASE */
/* Claire note : acs_type_req use ACCESS_TYPE enum */
kal_uint8 rand_val; /* random value to be passed to L1 */
kal_uint8 is_assignment_received; /* flag set after receiving any
assignment msg (Imm asgn) */
kal_uint8 two_message_assignment; /* first part of a two message assignment
recvd */
kal_uint8 reject_rcvd; /* Packet Reject has been received */
rmc_req_ref_struct first_assign; /* Request reference of first immediate
assignment */
rmc_req_ref_struct second_assign;/*Simon20060808 Request reference of second immediate
assignment */
rmc_req_ref_struct chan_req[3]; /* Three Channel Requests to be stored */
kal_uint8 index_of_chan_req; /* Index to chan_req array
matched */
/* 2004-01-27, define extra backup cell_reselection candidate */
kal_uint8 num_monitor_resel_arfcn;
/*Byron: 2005-03-31: record the channel type to identify if SI1 exists or not*/
kal_uint8 channel_type;
#if 0 //jack 20040730, useless and remove
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
#endif
kal_uint8 is_rlc_triggered_cell_resel; /* flag to indicate if the reselection is triggered
by the RLC*/
kal_uint8 is_dsf_trigger_resel ; /*The flag to indicate if the reselection
is triggered by Downlink Signalling Failure. */
kal_uint8 is_c1based_cell_resel; /* jack: new add, this flag (if RR_SET) indicates that the*/
kal_uint8 is_c2based_cell_resel; /* this flag (if RR_SET) indicates that the reselection is triggered
by every C2 resel (IMP) */
kal_uint8 is_t3126based_cell_resel; /* this flag (if RR_SET) indicates that the reselection is triggered
by t3126 timer timeout */
kal_uint8 is_cba_cell_resel; /* this flag (if RR_SET) indicates that the reselection is triggered
by cell bar access */
#ifdef __GPRS_MODE__
kal_uint8 is_si_triggered_cell_resel; /* flag to indicate if the reselection is triggered
by the lack of receiving SI13 for 60sec*/
kal_uint8 is_c32based_cell_resel; /*jack: new add, The flag is set when one of the top
SIX neighbor cells' C32 value meets the
requirement of C32 triggering reselection
according to the Spec. of 05.08. */
kal_uint16 C32_arfcn; /*jack: new add, When the C32_criteria
is met, set c32_arfcn to
be the candidate for the C32 reselection.*/
#endif /*end of __GPRS_MODE__ */
kal_bool is_C1_criteria; /*jack: new add, The flag is set when
update serving cell C1 value below 0.*/
kal_bool is_C2_criteria; /*jack: new add, The flag is set when one of the top
SIX neighbor cells' C2 value meets the
requirement of C2 triggering reselection
according to the Spec. of 05.08. */
kal_uint8 C1_resel_counter; /* The coutner is to count the C1 reselection (C1<0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -