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 { ...@@ -125,7 +125,7 @@ typedef struct {
struct ss_config_s ss; struct ss_config_s ss;
// Variable to store Transaction ID for SS in case of RRCReconfiguration // Variable to store Transaction ID for SS in case of RRCReconfiguration
long rrc_Transaction_Identifier; long rrc_Transaction_Identifier;
RBConfig RB_Config[MAX_RBS]; RBConfig RB_Config[MAX_NUM_CCs][MAX_RBS];
} RAN_CONTEXT_t; } RAN_CONTEXT_t;
extern RAN_CONTEXT_t RC; extern RAN_CONTEXT_t RC;
......
...@@ -211,6 +211,7 @@ typedef struct rb_info_s { ...@@ -211,6 +211,7 @@ typedef struct rb_info_s {
typedef struct RrcRblistCfgReq_s { typedef struct RrcRblistCfgReq_s {
int rb_count; int rb_count;
int cell_index;
rb_info rb_list[MAX_RBS]; rb_info rb_list[MAX_RBS];
} RrcRblistCfgReq; } RrcRblistCfgReq;
......
...@@ -2527,13 +2527,13 @@ do_RRCConnectionSetup( ...@@ -2527,13 +2527,13 @@ do_RRCConnectionSetup(
//if (RC.ss.mode == SS_SOFTMODEM) //if (RC.ss.mode == SS_SOFTMODEM)
if (1) { if (1) {
SRB1_rlc_config->choice.explicitValue.present = RC.RB_Config[1].RlcCfg.present; 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[1].RlcCfg.choice.am.ul_AM_RLC.t_PollRetransmit; 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[1].RlcCfg.choice.am.ul_AM_RLC.pollPDU; 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[1].RlcCfg.choice.am.ul_AM_RLC.pollByte; 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[1].RlcCfg.choice.am.ul_AM_RLC.maxRetxThreshold; 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[1].RlcCfg.choice.am.dl_AM_RLC.t_Reordering; 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[1].RlcCfg.choice.am.dl_AM_RLC.t_StatusProhibit; 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 { } else {
SRB1_rlc_config->choice.explicitValue.present=LTE_RLC_Config_PR_am; 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; SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.t_PollRetransmit = rrc->srb1_timer_poll_retransmit;
...@@ -2552,8 +2552,8 @@ do_RRCConnectionSetup( ...@@ -2552,8 +2552,8 @@ do_RRCConnectionSetup(
SRB1_lchan_config->choice.explicitValue.ul_SpecificParameters = SRB1_ul_SpecificParameters; SRB1_lchan_config->choice.explicitValue.ul_SpecificParameters = SRB1_ul_SpecificParameters;
//if (RC.ss.mode == SS_SOFTMODEM) //if (RC.ss.mode == SS_SOFTMODEM)
if (1) { if (1) {
SRB1_ul_SpecificParameters->priority = RC.RB_Config[1].Mac.ul_SpecificParameters->priority; SRB1_ul_SpecificParameters->priority = RC.RB_Config[CC_id][1].Mac.ul_SpecificParameters->priority;
SRB1_ul_SpecificParameters->prioritisedBitRate = RC.RB_Config[1].Mac.ul_SpecificParameters->prioritisedBitRate; SRB1_ul_SpecificParameters->prioritisedBitRate = RC.RB_Config[CC_id][1].Mac.ul_SpecificParameters->prioritisedBitRate;
} else { } else {
SRB1_ul_SpecificParameters->priority = 1; SRB1_ul_SpecificParameters->priority = 1;
//assign_enum(&SRB1_ul_SpecificParameters->prioritisedBitRate,LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity); //assign_enum(&SRB1_ul_SpecificParameters->prioritisedBitRate,LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity);
......
...@@ -78,68 +78,69 @@ rrc_init_global_param( ...@@ -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_reordering = 50;
Rlc_info_am_config.rlc.rlc_am_info.t_status_prohibit = 10; 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; for(int i=0;i<MAX_RBS;i++)
memset(&RC.RB_Config[i],0,sizeof(RBConfig)); {
} 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[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;
/*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; return 0;
} }
......
This diff is collapsed.
...@@ -710,6 +710,7 @@ static int sys_handle_radiobearer_list(struct RadioBearer_Type_RadioBearerList_T ...@@ -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); 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).rb_count = 0;
RRC_RBLIST_CFG_REQ(msg_p).cell_index = cell_index;
for (int i = 0; i < BearerList->d; i++) for (int i = 0; i < BearerList->d; i++)
{ {
LOG_A(ENB_SS, "[SYS] RB Index i:%d\n", 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