Commit 5cd6b770 authored by Vaibhav Shrivastava's avatar Vaibhav Shrivastava Committed by jperaldi

RBList changes for MultiCell in RRC

parent c6f58152
......@@ -125,7 +125,7 @@ typedef struct {
struct ss_config_s ss;
// Variable to store Transaction ID for SS in case of RRCReconfiguration
long rrc_Transaction_Identifier;
RBConfig RB_Config[MAX_RBS];
RBConfig RB_Config[MAX_NUM_CCs][MAX_RBS];
} RAN_CONTEXT_t;
extern RAN_CONTEXT_t RC;
......
......@@ -211,6 +211,7 @@ typedef struct rb_info_s {
typedef struct RrcRblistCfgReq_s {
int rb_count;
int cell_index;
rb_info rb_list[MAX_RBS];
} RrcRblistCfgReq;
......
......@@ -2527,13 +2527,13 @@ do_RRCConnectionSetup(
//if (RC.ss.mode == SS_SOFTMODEM)
if (1) {
SRB1_rlc_config->choice.explicitValue.present = RC.RB_Config[1].RlcCfg.present;
SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.t_PollRetransmit = RC.RB_Config[1].RlcCfg.choice.am.ul_AM_RLC.t_PollRetransmit;
SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.pollPDU = RC.RB_Config[1].RlcCfg.choice.am.ul_AM_RLC.pollPDU;
SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.pollByte = RC.RB_Config[1].RlcCfg.choice.am.ul_AM_RLC.pollByte;
SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.maxRetxThreshold = RC.RB_Config[1].RlcCfg.choice.am.ul_AM_RLC.maxRetxThreshold;
SRB1_rlc_config->choice.explicitValue.choice.am.dl_AM_RLC.t_Reordering = RC.RB_Config[1].RlcCfg.choice.am.dl_AM_RLC.t_Reordering;
SRB1_rlc_config->choice.explicitValue.choice.am.dl_AM_RLC.t_StatusProhibit = RC.RB_Config[1].RlcCfg.choice.am.dl_AM_RLC.t_StatusProhibit;
SRB1_rlc_config->choice.explicitValue.present = RC.RB_Config[CC_id][1].RlcCfg.present;
SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.t_PollRetransmit = RC.RB_Config[CC_id][1].RlcCfg.choice.am.ul_AM_RLC.t_PollRetransmit;
SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.pollPDU = RC.RB_Config[CC_id][1].RlcCfg.choice.am.ul_AM_RLC.pollPDU;
SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.pollByte = RC.RB_Config[CC_id][1].RlcCfg.choice.am.ul_AM_RLC.pollByte;
SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.maxRetxThreshold = RC.RB_Config[CC_id][1].RlcCfg.choice.am.ul_AM_RLC.maxRetxThreshold;
SRB1_rlc_config->choice.explicitValue.choice.am.dl_AM_RLC.t_Reordering = RC.RB_Config[CC_id][1].RlcCfg.choice.am.dl_AM_RLC.t_Reordering;
SRB1_rlc_config->choice.explicitValue.choice.am.dl_AM_RLC.t_StatusProhibit = RC.RB_Config[CC_id][1].RlcCfg.choice.am.dl_AM_RLC.t_StatusProhibit;
} else {
SRB1_rlc_config->choice.explicitValue.present=LTE_RLC_Config_PR_am;
SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.t_PollRetransmit = rrc->srb1_timer_poll_retransmit;
......@@ -2552,8 +2552,8 @@ do_RRCConnectionSetup(
SRB1_lchan_config->choice.explicitValue.ul_SpecificParameters = SRB1_ul_SpecificParameters;
//if (RC.ss.mode == SS_SOFTMODEM)
if (1) {
SRB1_ul_SpecificParameters->priority = RC.RB_Config[1].Mac.ul_SpecificParameters->priority;
SRB1_ul_SpecificParameters->prioritisedBitRate = RC.RB_Config[1].Mac.ul_SpecificParameters->prioritisedBitRate;
SRB1_ul_SpecificParameters->priority = RC.RB_Config[CC_id][1].Mac.ul_SpecificParameters->priority;
SRB1_ul_SpecificParameters->prioritisedBitRate = RC.RB_Config[CC_id][1].Mac.ul_SpecificParameters->prioritisedBitRate;
} else {
SRB1_ul_SpecificParameters->priority = 1;
//assign_enum(&SRB1_ul_SpecificParameters->prioritisedBitRate,LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity);
......
......@@ -78,68 +78,69 @@ rrc_init_global_param(
Rlc_info_am_config.rlc.rlc_am_info.t_reordering = 50;
Rlc_info_am_config.rlc.rlc_am_info.t_status_prohibit = 10;
for(int i=0;i<MAX_RBS;i++)
for(int CC_id=0; CC_id<MAX_NUM_CCs; CC_id++)
{
RC.RB_Config[i].isRBConfigValid = FALSE;
memset(&RC.RB_Config[i],0,sizeof(RBConfig));
}
/*SRB1 Default Config for RLC and MAC*/
RC.RB_Config[1].RlcCfg.present = 1;
RC.RB_Config[1].RlcCfg.choice.am.ul_AM_RLC.t_PollRetransmit = 15;
RC.RB_Config[1].RlcCfg.choice.am.ul_AM_RLC.pollPDU = 0;
RC.RB_Config[1].RlcCfg.choice.am.ul_AM_RLC.pollByte = 14;
RC.RB_Config[1].RlcCfg.choice.am.ul_AM_RLC.maxRetxThreshold = 3;
RC.RB_Config[1].RlcCfg.choice.am.dl_AM_RLC.t_Reordering = 7;
RC.RB_Config[1].RlcCfg.choice.am.dl_AM_RLC.t_StatusProhibit = 0;
RC.RB_Config[1].Mac.ul_SpecificParameters = CALLOC(1, sizeof(struct LTE_LogicalChannelConfig__ul_SpecificParameters));
RC.RB_Config[1].Mac.ul_SpecificParameters->priority = 1;
RC.RB_Config[1].Mac.ul_SpecificParameters->prioritisedBitRate = 7;
/*SRB2 Default Config for RLC and MAC*/
RC.RB_Config[2].RlcCfg.present = LTE_RLC_Config_PR_am;
RC.RB_Config[2].RlcCfg.choice.am.ul_AM_RLC.t_PollRetransmit = LTE_T_PollRetransmit_ms15;
RC.RB_Config[2].RlcCfg.choice.am.ul_AM_RLC.pollPDU = LTE_PollPDU_p8;
RC.RB_Config[2].RlcCfg.choice.am.ul_AM_RLC.pollByte = LTE_PollByte_kB1000;
RC.RB_Config[2].RlcCfg.choice.am.ul_AM_RLC.maxRetxThreshold = LTE_UL_AM_RLC__maxRetxThreshold_t32;
RC.RB_Config[2].RlcCfg.choice.am.dl_AM_RLC.t_Reordering = LTE_T_Reordering_ms35;
RC.RB_Config[2].RlcCfg.choice.am.dl_AM_RLC.t_StatusProhibit = LTE_T_StatusProhibit_ms10;
RC.RB_Config[2].Mac.ul_SpecificParameters = CALLOC(1, sizeof(struct LTE_LogicalChannelConfig__ul_SpecificParameters));
RC.RB_Config[2].Mac.ul_SpecificParameters->priority = 3;
RC.RB_Config[2].Mac.ul_SpecificParameters->prioritisedBitRate = LTE_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity;
/*DRB Default Config for PDCP,RLC(AM) and MAC*/
RC.RB_Config[3].RlcCfg.present = LTE_RLC_Config_PR_am;
RC.RB_Config[3].RlcCfg.choice.am.ul_AM_RLC.t_PollRetransmit = LTE_T_PollRetransmit_ms50;
RC.RB_Config[3].RlcCfg.choice.am.ul_AM_RLC.pollPDU = LTE_PollPDU_p16;
RC.RB_Config[3].RlcCfg.choice.am.ul_AM_RLC.pollByte = LTE_PollByte_kBinfinity;
RC.RB_Config[3].RlcCfg.choice.am.ul_AM_RLC.maxRetxThreshold = LTE_UL_AM_RLC__maxRetxThreshold_t8;
RC.RB_Config[3].RlcCfg.choice.am.dl_AM_RLC.t_Reordering = LTE_T_Reordering_ms35;
RC.RB_Config[3].RlcCfg.choice.am.dl_AM_RLC.t_StatusProhibit = LTE_T_StatusProhibit_ms25;
RC.RB_Config[3].PdcpCfg.rlc_AM = CALLOC(1, sizeof(struct LTE_PDCP_Config__rlc_AM));
RC.RB_Config[3].PdcpCfg.rlc_AM->statusReportRequired = FALSE;
RC.RB_Config[3].PdcpCfg.headerCompression.present = LTE_PDCP_Config__headerCompression_PR_notUsed;
RC.RB_Config[3].Mac.ul_SpecificParameters = CALLOC(1, sizeof(struct LTE_LogicalChannelConfig__ul_SpecificParameters));
RC.RB_Config[3].Mac.ul_SpecificParameters->priority = 12;
RC.RB_Config[3].Mac.ul_SpecificParameters->prioritisedBitRate = LTE_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8;
RC.RB_Config[3].PdcpCfg.discardTimer = CALLOC(1, sizeof(long));
*(RC.RB_Config[3].PdcpCfg.discardTimer) = LTE_PDCP_Config__discardTimer_infinity;
/*DRB Default Config for PDCP,RLC(UM) and MAC*/
RC.RB_Config[4].RlcCfg.present = LTE_RLC_Config_PR_um_Bi_Directional;
RC.RB_Config[4].RlcCfg.choice.um_Bi_Directional.ul_UM_RLC.sn_FieldLength = LTE_SN_FieldLength_size10;
RC.RB_Config[4].RlcCfg.choice.um_Bi_Directional.dl_UM_RLC.sn_FieldLength = LTE_SN_FieldLength_size10;
RC.RB_Config[4].RlcCfg.choice.um_Bi_Directional.dl_UM_RLC.t_Reordering = LTE_T_Reordering_ms35;
RC.RB_Config[4].PdcpCfg.rlc_UM = CALLOC(1, sizeof(struct LTE_PDCP_Config__rlc_UM));
RC.RB_Config[4].PdcpCfg.rlc_UM->pdcp_SN_Size = LTE_PDCP_Config__rlc_UM__pdcp_SN_Size_len12bits;
RC.RB_Config[4].PdcpCfg.headerCompression.present = LTE_PDCP_Config__headerCompression_PR_notUsed;
RC.RB_Config[4].Mac.ul_SpecificParameters = CALLOC(1, sizeof(struct LTE_LogicalChannelConfig__ul_SpecificParameters));
RC.RB_Config[4].Mac.ul_SpecificParameters->priority = 12;
RC.RB_Config[4].Mac.ul_SpecificParameters->prioritisedBitRate = LTE_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8;
RC.RB_Config[4].PdcpCfg.discardTimer = CALLOC(1, sizeof(long));
*(RC.RB_Config[4].PdcpCfg.discardTimer) = LTE_PDCP_Config__discardTimer_infinity;
for(int i=0;i<MAX_RBS;i++)
{
RC.RB_Config[CC_id][i].isRBConfigValid = FALSE;
memset(&RC.RB_Config[CC_id][i],0,sizeof(RBConfig));
}
/*SRB1 Default Config for RLC and MAC*/
RC.RB_Config[CC_id][1].RlcCfg.present = 1;
RC.RB_Config[CC_id][1].RlcCfg.choice.am.ul_AM_RLC.t_PollRetransmit = 15;
RC.RB_Config[CC_id][1].RlcCfg.choice.am.ul_AM_RLC.pollPDU = 0;
RC.RB_Config[CC_id][1].RlcCfg.choice.am.ul_AM_RLC.pollByte = 14;
RC.RB_Config[CC_id][1].RlcCfg.choice.am.ul_AM_RLC.maxRetxThreshold = 3;
RC.RB_Config[CC_id][1].RlcCfg.choice.am.dl_AM_RLC.t_Reordering = 7;
RC.RB_Config[CC_id][1].RlcCfg.choice.am.dl_AM_RLC.t_StatusProhibit = 0;
RC.RB_Config[CC_id][1].Mac.ul_SpecificParameters = CALLOC(1, sizeof(struct LTE_LogicalChannelConfig__ul_SpecificParameters));
RC.RB_Config[CC_id][1].Mac.ul_SpecificParameters->priority = 1;
RC.RB_Config[CC_id][1].Mac.ul_SpecificParameters->prioritisedBitRate = 7;
/*SRB2 Default Config for RLC and MAC*/
RC.RB_Config[CC_id][2].RlcCfg.present = LTE_RLC_Config_PR_am;
RC.RB_Config[CC_id][2].RlcCfg.choice.am.ul_AM_RLC.t_PollRetransmit = LTE_T_PollRetransmit_ms15;
RC.RB_Config[CC_id][2].RlcCfg.choice.am.ul_AM_RLC.pollPDU = LTE_PollPDU_p8;
RC.RB_Config[CC_id][2].RlcCfg.choice.am.ul_AM_RLC.pollByte = LTE_PollByte_kB1000;
RC.RB_Config[CC_id][2].RlcCfg.choice.am.ul_AM_RLC.maxRetxThreshold = LTE_UL_AM_RLC__maxRetxThreshold_t32;
RC.RB_Config[CC_id][2].RlcCfg.choice.am.dl_AM_RLC.t_Reordering = LTE_T_Reordering_ms35;
RC.RB_Config[CC_id][2].RlcCfg.choice.am.dl_AM_RLC.t_StatusProhibit = LTE_T_StatusProhibit_ms10;
RC.RB_Config[CC_id][2].Mac.ul_SpecificParameters = CALLOC(1, sizeof(struct LTE_LogicalChannelConfig__ul_SpecificParameters));
RC.RB_Config[CC_id][2].Mac.ul_SpecificParameters->priority = 3;
RC.RB_Config[CC_id][2].Mac.ul_SpecificParameters->prioritisedBitRate = LTE_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity;
/*DRB Default Config for PDCP,RLC(AM) and MAC*/
RC.RB_Config[CC_id][3].RlcCfg.present = LTE_RLC_Config_PR_am;
RC.RB_Config[CC_id][3].RlcCfg.choice.am.ul_AM_RLC.t_PollRetransmit = LTE_T_PollRetransmit_ms50;
RC.RB_Config[CC_id][3].RlcCfg.choice.am.ul_AM_RLC.pollPDU = LTE_PollPDU_p16;
RC.RB_Config[CC_id][3].RlcCfg.choice.am.ul_AM_RLC.pollByte = LTE_PollByte_kBinfinity;
RC.RB_Config[CC_id][3].RlcCfg.choice.am.ul_AM_RLC.maxRetxThreshold = LTE_UL_AM_RLC__maxRetxThreshold_t8;
RC.RB_Config[CC_id][3].RlcCfg.choice.am.dl_AM_RLC.t_Reordering = LTE_T_Reordering_ms35;
RC.RB_Config[CC_id][3].RlcCfg.choice.am.dl_AM_RLC.t_StatusProhibit = LTE_T_StatusProhibit_ms25;
RC.RB_Config[CC_id][3].PdcpCfg.rlc_AM = CALLOC(1, sizeof(struct LTE_PDCP_Config__rlc_AM));
RC.RB_Config[CC_id][3].PdcpCfg.rlc_AM->statusReportRequired = FALSE;
RC.RB_Config[CC_id][3].PdcpCfg.headerCompression.present = LTE_PDCP_Config__headerCompression_PR_notUsed;
RC.RB_Config[CC_id][3].Mac.ul_SpecificParameters = CALLOC(1, sizeof(struct LTE_LogicalChannelConfig__ul_SpecificParameters));
RC.RB_Config[CC_id][3].Mac.ul_SpecificParameters->priority = 12;
RC.RB_Config[CC_id][3].Mac.ul_SpecificParameters->prioritisedBitRate = LTE_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8;
RC.RB_Config[CC_id][3].PdcpCfg.discardTimer = CALLOC(1, sizeof(long));
*(RC.RB_Config[CC_id][3].PdcpCfg.discardTimer) = LTE_PDCP_Config__discardTimer_infinity;
/*DRB Default Config for PDCP,RLC(UM) and MAC*/
RC.RB_Config[CC_id][4].RlcCfg.present = LTE_RLC_Config_PR_um_Bi_Directional;
RC.RB_Config[CC_id][4].RlcCfg.choice.um_Bi_Directional.ul_UM_RLC.sn_FieldLength = LTE_SN_FieldLength_size10;
RC.RB_Config[CC_id][4].RlcCfg.choice.um_Bi_Directional.dl_UM_RLC.sn_FieldLength = LTE_SN_FieldLength_size10;
RC.RB_Config[CC_id][4].RlcCfg.choice.um_Bi_Directional.dl_UM_RLC.t_Reordering = LTE_T_Reordering_ms35;
RC.RB_Config[CC_id][4].PdcpCfg.rlc_UM = CALLOC(1, sizeof(struct LTE_PDCP_Config__rlc_UM));
RC.RB_Config[CC_id][4].PdcpCfg.rlc_UM->pdcp_SN_Size = LTE_PDCP_Config__rlc_UM__pdcp_SN_Size_len12bits;
RC.RB_Config[CC_id][4].PdcpCfg.headerCompression.present = LTE_PDCP_Config__headerCompression_PR_notUsed;
RC.RB_Config[CC_id][4].Mac.ul_SpecificParameters = CALLOC(1, sizeof(struct LTE_LogicalChannelConfig__ul_SpecificParameters));
RC.RB_Config[CC_id][4].Mac.ul_SpecificParameters->priority = 12;
RC.RB_Config[CC_id][4].Mac.ul_SpecificParameters->prioritisedBitRate = LTE_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8;
RC.RB_Config[CC_id][4].PdcpCfg.discardTimer = CALLOC(1, sizeof(long));
*(RC.RB_Config[CC_id][4].PdcpCfg.discardTimer) = LTE_PDCP_Config__discardTimer_infinity;
}
return 0;
}
......
This diff is collapsed.
......@@ -710,6 +710,7 @@ static int sys_handle_radiobearer_list(struct RadioBearer_Type_RadioBearerList_T
{
LOG_A(ENB_SS, "[SYS] BearerList size:%lu\n", BearerList->d);
RRC_RBLIST_CFG_REQ(msg_p).rb_count = 0;
RRC_RBLIST_CFG_REQ(msg_p).cell_index = cell_index;
for (int i = 0; i < BearerList->d; i++)
{
LOG_A(ENB_SS, "[SYS] RB Index i:%d\n", i);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment