Fixed LC config reporting based on existing LCs
This commit is contained in:
@@ -43,6 +43,9 @@
|
|||||||
#include "PHY/extern.h"
|
#include "PHY/extern.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
|
|
||||||
|
#include "RRC/LITE/extern.h"
|
||||||
|
#include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
|
||||||
|
|
||||||
|
|
||||||
void * enb[NUM_MAX_ENB];
|
void * enb[NUM_MAX_ENB];
|
||||||
void * enb_ue[NUM_MAX_ENB];
|
void * enb_ue[NUM_MAX_ENB];
|
||||||
@@ -375,7 +378,8 @@ int enb_agent_ue_state_change(mid_t mod_id, uint32_t rnti, uint8_t state_change)
|
|||||||
} else if (state_change == PROTOCOL__PRP_UE_STATE_CHANGE_TYPE__PRUESC_UPDATED
|
} else if (state_change == PROTOCOL__PRP_UE_STATE_CHANGE_TYPE__PRUESC_UPDATED
|
||||||
|| state_change == PROTOCOL__PRP_UE_STATE_CHANGE_TYPE__PRUESC_ACTIVATED) {
|
|| state_change == PROTOCOL__PRP_UE_STATE_CHANGE_TYPE__PRUESC_ACTIVATED) {
|
||||||
// TODO: Set the whole UE configuration message
|
// TODO: Set the whole UE configuration message
|
||||||
|
config->has_rnti = 1;
|
||||||
|
config->rnti = rnti;
|
||||||
} else if (state_change == PROTOCOL__PRP_UE_STATE_CHANGE_TYPE__PRUESC_MOVED) {
|
} else if (state_change == PROTOCOL__PRP_UE_STATE_CHANGE_TYPE__PRUESC_MOVED) {
|
||||||
// TODO: Not supported for now. Leave blank
|
// TODO: Not supported for now. Leave blank
|
||||||
}
|
}
|
||||||
@@ -1039,7 +1043,11 @@ int get_ue_transmission_antenna(mid_t mod_id, mid_t ue_id)
|
|||||||
|
|
||||||
int get_lcg(mid_t ue_id, mid_t lc_id)
|
int get_lcg(mid_t ue_id, mid_t lc_id)
|
||||||
{
|
{
|
||||||
return &UE_mac_inst[ue_id].logicalChannelConfig[lc_id]->ul_SpecificParameters->logicalChannelGroup;
|
if(UE_mac_inst[ue_id].logicalChannelConfig[lc_id] != NULL) {
|
||||||
|
return *UE_mac_inst[ue_id].logicalChannelConfig[lc_id]->ul_SpecificParameters->logicalChannelGroup;
|
||||||
|
} else {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int get_direction(mid_t ue_id, mid_t lc_id)
|
int get_direction(mid_t ue_id, mid_t lc_id)
|
||||||
@@ -1093,7 +1101,16 @@ int enb_agent_lc_config_reply(mid_t mod_id, const void *params, Protocol__Progra
|
|||||||
lc_ue_config[i]->has_rnti = 1;
|
lc_ue_config[i]->has_rnti = 1;
|
||||||
lc_ue_config[i]->rnti = get_ue_crnti(mod_id,i);
|
lc_ue_config[i]->rnti = get_ue_crnti(mod_id,i);
|
||||||
//TODO: Set the number of LC configurations that will be reported for this UE
|
//TODO: Set the number of LC configurations that will be reported for this UE
|
||||||
lc_ue_config[i]->n_lc_config = 3;
|
//Set this according to the current state of the UE. This is only a temporary fix
|
||||||
|
int status = 0;
|
||||||
|
status = mac_eNB_get_rrc_status(mod_id, get_ue_crnti(mod_id, i));
|
||||||
|
if (status < RRC_CONNECTED) {
|
||||||
|
lc_ue_config[i]->n_lc_config = 0;
|
||||||
|
} else if (status == RRC_CONNECTED) {
|
||||||
|
lc_ue_config[i]->n_lc_config = 1;
|
||||||
|
} else {
|
||||||
|
lc_ue_config[i]->n_lc_config = 3;
|
||||||
|
}
|
||||||
Protocol__PrpLcConfig **lc_config;
|
Protocol__PrpLcConfig **lc_config;
|
||||||
if (lc_ue_config[i]->n_lc_config > 0) {
|
if (lc_ue_config[i]->n_lc_config > 0) {
|
||||||
lc_config = malloc(sizeof(Protocol__PrpLcConfig *) * lc_ue_config[i]->n_lc_config);
|
lc_config = malloc(sizeof(Protocol__PrpLcConfig *) * lc_ue_config[i]->n_lc_config);
|
||||||
|
|||||||
Reference in New Issue
Block a user