Multiple DRBs - Fix MR Conflicts: 1. RLC - Removed mispositioned conditional. 2. RRC - Replaced arguements in generateDRB func & use bool. 3. RRC - Removed the MAX_DRB_PDUSESSION definition. 4. SDAP - Replaced boolean_t with bool. 5. RRC - Fixed indentation in SDAP Configuration. 6. RRC - Changed var nb_drb_to_setup to 1.
This commit is contained in:
@@ -93,7 +93,6 @@
|
|||||||
|
|
||||||
#define NR_UE_MODULE_INVALID ((module_id_t) ~0) // FIXME attention! depends on type uint8_t!!!
|
#define NR_UE_MODULE_INVALID ((module_id_t) ~0) // FIXME attention! depends on type uint8_t!!!
|
||||||
#define NR_UE_INDEX_INVALID ((module_id_t) ~0) // FIXME attention! depends on type uint8_t!!! used to be -1
|
#define NR_UE_INDEX_INVALID ((module_id_t) ~0) // FIXME attention! depends on type uint8_t!!! used to be -1
|
||||||
#define MAX_DRB_PER_PDUSESSION 4
|
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
NR_RRC_OK=0,
|
NR_RRC_OK=0,
|
||||||
|
|||||||
+14
-19
@@ -755,10 +755,9 @@ rrc_gNB_generate_defaultRRCReconfiguration(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
NR_DRB_ToAddMod_t *generateDRB(rrc_gNB_ue_context_t *ue_context_pP,
|
NR_DRB_ToAddMod_t *generateDRB(const pdu_session_param_t *pduSession,
|
||||||
int iter,
|
|
||||||
long drb_id,
|
long drb_id,
|
||||||
boolean_t enable_sdap,
|
bool enable_sdap,
|
||||||
int do_drb_integrity,
|
int do_drb_integrity,
|
||||||
int do_drb_ciphering)
|
int do_drb_ciphering)
|
||||||
{
|
{
|
||||||
@@ -776,23 +775,23 @@ NR_DRB_ToAddMod_t *generateDRB(rrc_gNB_ue_context_t *ue_context_pP,
|
|||||||
SDAP_config->mappedQoS_FlowsToAdd = calloc(1, sizeof(struct NR_SDAP_Config__mappedQoS_FlowsToAdd));
|
SDAP_config->mappedQoS_FlowsToAdd = calloc(1, sizeof(struct NR_SDAP_Config__mappedQoS_FlowsToAdd));
|
||||||
memset(SDAP_config->mappedQoS_FlowsToAdd, 0, sizeof(struct NR_SDAP_Config__mappedQoS_FlowsToAdd));
|
memset(SDAP_config->mappedQoS_FlowsToAdd, 0, sizeof(struct NR_SDAP_Config__mappedQoS_FlowsToAdd));
|
||||||
|
|
||||||
SDAP_config->pdu_Session = ue_context_pP->ue_context.pduSession[iter].param.pdusession_id;
|
SDAP_config->pdu_Session = pduSession->param.pdusession_id;
|
||||||
|
|
||||||
if (enable_sdap) {
|
if (enable_sdap) {
|
||||||
SDAP_config->sdap_HeaderDL = NR_SDAP_Config__sdap_HeaderDL_present;
|
SDAP_config->sdap_HeaderDL = NR_SDAP_Config__sdap_HeaderDL_present;
|
||||||
SDAP_config->sdap_HeaderUL = NR_SDAP_Config__sdap_HeaderUL_present;
|
SDAP_config->sdap_HeaderUL = NR_SDAP_Config__sdap_HeaderUL_present;
|
||||||
} else {
|
} else {
|
||||||
SDAP_config->sdap_HeaderDL = NR_SDAP_Config__sdap_HeaderDL_absent;
|
SDAP_config->sdap_HeaderDL = NR_SDAP_Config__sdap_HeaderDL_absent;
|
||||||
SDAP_config->sdap_HeaderUL = NR_SDAP_Config__sdap_HeaderUL_absent;
|
SDAP_config->sdap_HeaderUL = NR_SDAP_Config__sdap_HeaderUL_absent;
|
||||||
}
|
}
|
||||||
|
|
||||||
SDAP_config->defaultDRB = true;
|
SDAP_config->defaultDRB = true;
|
||||||
|
|
||||||
for (int qos_flow_index = 0; qos_flow_index < ue_context_pP->ue_context.pduSession[iter].param.nb_qos; qos_flow_index++)
|
for (int qos_flow_index = 0; qos_flow_index < pduSession->param.nb_qos; qos_flow_index++)
|
||||||
{
|
{
|
||||||
NR_QFI_t *qfi = calloc(1, sizeof(NR_QFI_t));
|
NR_QFI_t *qfi = calloc(1, sizeof(NR_QFI_t));
|
||||||
*qfi = ue_context_pP->ue_context.pduSession[iter].param.qos[qos_flow_index].qfi;
|
*qfi = pduSession->param.qos[qos_flow_index].qfi;
|
||||||
ASN_SEQUENCE_ADD(&SDAP_config->mappedQoS_FlowsToAdd->list, qfi);
|
ASN_SEQUENCE_ADD(&SDAP_config->mappedQoS_FlowsToAdd->list, qfi);
|
||||||
}
|
}
|
||||||
|
|
||||||
SDAP_config->mappedQoS_FlowsToRelease = NULL;
|
SDAP_config->mappedQoS_FlowsToRelease = NULL;
|
||||||
@@ -860,7 +859,7 @@ rrc_gNB_generate_dedicatedRRCReconfiguration(
|
|||||||
int pdu_sessions_done = 0;
|
int pdu_sessions_done = 0;
|
||||||
int i;
|
int i;
|
||||||
uint8_t drb_id_to_setup_start = 1;
|
uint8_t drb_id_to_setup_start = 1;
|
||||||
uint8_t nb_drb_to_setup = 0;
|
uint8_t nb_drb_to_setup = 1;
|
||||||
long drb_priority[1] = {13}; // For now, we assume only one drb per pdu sessions with a default preiority (will be dynamique in future)
|
long drb_priority[1] = {13}; // For now, we assume only one drb per pdu sessions with a default preiority (will be dynamique in future)
|
||||||
NR_CellGroupConfig_t *cellGroupConfig = NULL;
|
NR_CellGroupConfig_t *cellGroupConfig = NULL;
|
||||||
|
|
||||||
@@ -902,12 +901,8 @@ rrc_gNB_generate_dedicatedRRCReconfiguration(
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
for(long drb_id_add = 0; drb_id_add <= nb_drb_to_setup; drb_id_add++){
|
for(long drb_id_add = 1; drb_id_add <= nb_drb_to_setup; drb_id_add++){
|
||||||
if(drb_id_add > MAX_DRB_PER_PDUSESSION)
|
NR_DRB_ToAddMod_t *DRB_config = generateDRB(&ue_context_pP->ue_context.pduSession[i],
|
||||||
break;
|
|
||||||
|
|
||||||
NR_DRB_ToAddMod_t *DRB_config = generateDRB(ue_context_pP,
|
|
||||||
i,
|
|
||||||
drb_id_add,
|
drb_id_add,
|
||||||
rrc->configuration.enable_sdap,
|
rrc->configuration.enable_sdap,
|
||||||
rrc->security.do_drb_integrity,
|
rrc->security.do_drb_integrity,
|
||||||
|
|||||||
@@ -303,7 +303,7 @@ static void nr_sdap_rx_entity(nr_sdap_entity_t *entity,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void nr_sdap_qfi2drb_map_update(nr_sdap_entity_t *entity, uint8_t qfi, rb_id_t drb, bool hasSdap) {
|
void nr_sdap_qfi2drb_map_update(nr_sdap_entity_t *entity, uint8_t qfi, rb_id_t drb, bool hasSdap){
|
||||||
if(qfi < SDAP_MAX_QFI &&
|
if(qfi < SDAP_MAX_QFI &&
|
||||||
qfi > SDAP_MAP_RULE_EMPTY &&
|
qfi > SDAP_MAP_RULE_EMPTY &&
|
||||||
drb > 0 &&
|
drb > 0 &&
|
||||||
@@ -381,7 +381,7 @@ void nr_sdap_ue_qfi2drb_config(nr_sdap_entity_t *existing_sdap_entity,
|
|||||||
{
|
{
|
||||||
LOG_D(SDAP, "RRC Configuring SDAP Entity\n");
|
LOG_D(SDAP, "RRC Configuring SDAP Entity\n");
|
||||||
uint8_t qfi = 0;
|
uint8_t qfi = 0;
|
||||||
boolean_t hasSdap = true;
|
bool hasSdap = true;
|
||||||
|
|
||||||
for(int i = 0; i < mappedQFIs2AddCount; i++){
|
for(int i = 0; i < mappedQFIs2AddCount; i++){
|
||||||
qfi = mapped_qfi_2_add[i];
|
qfi = mapped_qfi_2_add[i];
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
#define _NR_SDAP_ENTITY_H_
|
#define _NR_SDAP_ENTITY_H_
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <stdbool.h>
|
||||||
#include "openair2/COMMON/platform_types.h"
|
#include "openair2/COMMON/platform_types.h"
|
||||||
#include "openair2/LAYER2/nr_pdcp/nr_pdcp_entity.h"
|
#include "openair2/LAYER2/nr_pdcp/nr_pdcp_entity.h"
|
||||||
#include "NR_RadioBearerConfig.h"
|
#include "NR_RadioBearerConfig.h"
|
||||||
|
|||||||
Reference in New Issue
Block a user