compilation done need to verify with GES endc setup
This commit is contained in:
@@ -2126,6 +2126,7 @@ rrc_eNB_generate_RRCConnectionReestablishmentReject(
|
|||||||
ue_p->Srb0.Tx_buffer.payload_size);
|
ue_p->Srb0.Tx_buffer.payload_size);
|
||||||
}
|
}
|
||||||
#ifdef GES_ENDC_SUPPORT
|
#ifdef GES_ENDC_SUPPORT
|
||||||
|
#if 0
|
||||||
void rrc_generate_SgNBReleaseRequest(
|
void rrc_generate_SgNBReleaseRequest(
|
||||||
const protocol_ctxt_t *const ctxt_pP,
|
const protocol_ctxt_t *const ctxt_pP,
|
||||||
rrc_eNB_ue_context_t *const ue_context_pP
|
rrc_eNB_ue_context_t *const ue_context_pP
|
||||||
@@ -2146,7 +2147,7 @@ void rrc_generate_SgNBReleaseRequest(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
/*
|
/*
|
||||||
* Generate the RRC Connection Release to UE.
|
* Generate the RRC Connection Release to UE.
|
||||||
@@ -2167,6 +2168,7 @@ rrc_eNB_generate_RRCConnectionRelease(
|
|||||||
T(T_ENB_RRC_CONNECTION_RELEASE, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame),
|
T(T_ENB_RRC_CONNECTION_RELEASE, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame),
|
||||||
T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti));
|
T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti));
|
||||||
#ifdef GES_ENDC_SUPPORT
|
#ifdef GES_ENDC_SUPPORT
|
||||||
|
#if 0
|
||||||
if(ue_context_pP != NULL)
|
if(ue_context_pP != NULL)
|
||||||
{
|
{
|
||||||
if(ue_context_pP->ue_context.Status == RRC_NR_NSA)
|
if(ue_context_pP->ue_context.Status == RRC_NR_NSA)
|
||||||
@@ -2174,6 +2176,7 @@ rrc_eNB_generate_RRCConnectionRelease(
|
|||||||
//rrc_eNB_generate_SgNBReleaseRequest(ctxt_pP,ue_context_pP);
|
//rrc_eNB_generate_SgNBReleaseRequest(ctxt_pP,ue_context_pP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
size = do_RRCConnectionRelease(ctxt_pP->module_id, buffer,rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id));
|
size = do_RRCConnectionRelease(ctxt_pP->module_id, buffer,rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id));
|
||||||
ue_context_pP->ue_context.ue_reestablishment_timer = 0;
|
ue_context_pP->ue_context.ue_reestablishment_timer = 0;
|
||||||
@@ -4375,7 +4378,7 @@ static int encode_CG_ConfigInfo(
|
|||||||
asn_enc_rval_t enc_rval;
|
asn_enc_rval_t enc_rval;
|
||||||
int RRC_OK = 1;
|
int RRC_OK = 1;
|
||||||
int index = 0;
|
int index = 0;
|
||||||
char temp_buff[4096];
|
char temp_buff[ASN_MAX_ENCODE_SIZE];
|
||||||
|
|
||||||
rb_config = calloc(1,sizeof( struct NR_RadioBearerConfig));
|
rb_config = calloc(1,sizeof( struct NR_RadioBearerConfig));
|
||||||
AssertFatal(rb_config != NULL,"failed to allocate memory for rb_config");
|
AssertFatal(rb_config != NULL,"failed to allocate memory for rb_config");
|
||||||
@@ -4450,7 +4453,7 @@ static int encode_CG_ConfigInfo(
|
|||||||
ue_CapabilityInfo != NULL, "failed to allocate memory for ue_capabilityinfo");
|
ue_CapabilityInfo != NULL, "failed to allocate memory for ue_capabilityinfo");
|
||||||
#if 1
|
#if 1
|
||||||
enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_UE_CapabilityRAT_ContainerList,NULL,
|
enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_UE_CapabilityRAT_ContainerList,NULL,
|
||||||
(void*)ue_context_pP->ue_context.UE_Capability,temp_buff,4096);
|
(void*)ue_context_pP->ue_context.UE_Capability,temp_buff,ASN_MAX_ENCODE_SIZE);
|
||||||
AssertFatal(enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %jd)!\n",
|
AssertFatal(enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %jd)!\n",
|
||||||
enc_rval.failed_type->name, enc_rval.encoded);
|
enc_rval.failed_type->name, enc_rval.encoded);
|
||||||
OCTET_STRING_fromBuf( cg_configinfo->criticalExtensions.choice.c1->choice.cg_ConfigInfo->ue_CapabilityInfo,
|
OCTET_STRING_fromBuf( cg_configinfo->criticalExtensions.choice.c1->choice.cg_ConfigInfo->ue_CapabilityInfo,
|
||||||
@@ -4472,7 +4475,7 @@ static int encode_CG_ConfigInfo(
|
|||||||
= calloc(1,sizeof(OCTET_STRING_t));
|
= calloc(1,sizeof(OCTET_STRING_t));
|
||||||
AssertFatal(cg_configinfo->criticalExtensions.choice.c1->choice.cg_ConfigInfo->
|
AssertFatal(cg_configinfo->criticalExtensions.choice.c1->choice.cg_ConfigInfo->
|
||||||
mcg_RB_Config != NULL, "failed to allocate memory for mcg_rb_config");
|
mcg_RB_Config != NULL, "failed to allocate memory for mcg_rb_config");
|
||||||
enc_rval = uper_encode_to_buffer(&asn_DEF_NR_RadioBearerConfig,NULL,(void *)rb_config,temp_buff,4096);
|
enc_rval = uper_encode_to_buffer(&asn_DEF_NR_RadioBearerConfig,NULL,(void *)rb_config,temp_buff,ASN_MAX_ENCODE_SIZE);
|
||||||
AssertFatal(enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %jd)!\n",
|
AssertFatal(enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %jd)!\n",
|
||||||
enc_rval.failed_type->name, enc_rval.encoded);
|
enc_rval.failed_type->name, enc_rval.encoded);
|
||||||
OCTET_STRING_fromBuf(cg_configinfo->criticalExtensions.choice.c1->choice.cg_ConfigInfo->mcg_RB_Config,
|
OCTET_STRING_fromBuf(cg_configinfo->criticalExtensions.choice.c1->choice.cg_ConfigInfo->mcg_RB_Config,
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ void rrc_gNB_generate_SgNBAdditionRequestAcknowledge(
|
|||||||
|
|
||||||
struct rrc_gNB_ue_context_s *rrc_gNB_allocate_new_UE_context(gNB_RRC_INST *rrc_instance_pP);
|
struct rrc_gNB_ue_context_s *rrc_gNB_allocate_new_UE_context(gNB_RRC_INST *rrc_instance_pP);
|
||||||
|
|
||||||
void rrc_parse_ue_capabilities(gNB_RRC_INST *rrc,LTE_UE_CapabilityRAT_ContainerList_t *UE_CapabilityRAT_ContainerList, x2ap_ENDC_sgnb_addition_req_t *m);
|
void rrc_parse_ue_capabilities(gNB_RRC_INST *rrc,LTE_UE_CapabilityRAT_ContainerList_t *UE_CapabilityRAT_ContainerList, x2ap_ENDC_sgnb_addition_req_t *m, NR_CG_ConfigInfo_IEs_t * cg_config_info);
|
||||||
|
|
||||||
void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_p, x2ap_ENDC_sgnb_addition_req_t *m);
|
void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_p, x2ap_ENDC_sgnb_addition_req_t *m);
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ int parse_CG_ConfigInfo(gNB_RRC_INST *rrc, NR_CG_ConfigInfo_t *CG_ConfigInfo, x2
|
|||||||
AssertFatal(1==0,"[InterNode] Failed to decode NR_UE_CapabilityRAT_ContainerList (%zu bits), size of OCTET_STRING %lu\n",
|
AssertFatal(1==0,"[InterNode] Failed to decode NR_UE_CapabilityRAT_ContainerList (%zu bits), size of OCTET_STRING %lu\n",
|
||||||
dec_rval.consumed, cg_ConfigInfo->ue_CapabilityInfo->size);
|
dec_rval.consumed, cg_ConfigInfo->ue_CapabilityInfo->size);
|
||||||
}
|
}
|
||||||
rrc_parse_ue_capabilities(rrc,UE_CapabilityRAT_ContainerList, m,cg_ConfigInfo->criticalExtensions.choice.c1->choice.cg_ConfigInfo);
|
rrc_parse_ue_capabilities(rrc,UE_CapabilityRAT_ContainerList, m,cg_ConfigInfo);
|
||||||
}
|
}
|
||||||
if (cg_ConfigInfo->candidateCellInfoListMN) AssertFatal(1==0,"Can't handle candidateCellInfoListMN yet\n");
|
if (cg_ConfigInfo->candidateCellInfoListMN) AssertFatal(1==0,"Can't handle candidateCellInfoListMN yet\n");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
#include "openair2/LAYER2/NR_MAC_gNB/mac_proto.h"
|
#include "openair2/LAYER2/NR_MAC_gNB/mac_proto.h"
|
||||||
#include "openair2/RRC/LTE/rrc_eNB_GTPV1U.h"
|
#include "openair2/RRC/LTE/rrc_eNB_GTPV1U.h"
|
||||||
|
|
||||||
void rrc_parse_ue_capabilities(gNB_RRC_INST *rrc, LTE_UE_CapabilityRAT_ContainerList_t *UE_CapabilityRAT_ContainerList, x2ap_ENDC_sgnb_addition_req_t *m, struct NR_CG_ConfigInfo_IEs * cg_config_info) {
|
void rrc_parse_ue_capabilities(gNB_RRC_INST *rrc, LTE_UE_CapabilityRAT_ContainerList_t *UE_CapabilityRAT_ContainerList, x2ap_ENDC_sgnb_addition_req_t *m, NR_CG_ConfigInfo_IEs_t *cg_config_info) {
|
||||||
|
|
||||||
struct rrc_gNB_ue_context_s *ue_context_p = NULL;
|
struct rrc_gNB_ue_context_s *ue_context_p = NULL;
|
||||||
OCTET_STRING_t *ueCapabilityRAT_Container_nr = NULL;
|
OCTET_STRING_t *ueCapabilityRAT_Container_nr = NULL;
|
||||||
@@ -96,12 +96,25 @@ void rrc_parse_ue_capabilities(gNB_RRC_INST *rrc, LTE_UE_CapabilityRAT_Container
|
|||||||
|
|
||||||
if ( LOG_DEBUGFLAG(DEBUG_ASN1 && ueCapabilityRAT_Container_MRDC != NULL) ) {
|
if ( LOG_DEBUGFLAG(DEBUG_ASN1 && ueCapabilityRAT_Container_MRDC != NULL) ) {
|
||||||
xer_fprint(stdout, &asn_DEF_NR_UE_MRDC_Capability, ue_context_p->ue_context.UE_Capability_MRDC);
|
xer_fprint(stdout, &asn_DEF_NR_UE_MRDC_Capability, ue_context_p->ue_context.UE_Capability_MRDC);
|
||||||
}
|
}
|
||||||
|
|
||||||
rrc_add_nsa_user(rrc,ue_context_p, m, cg_config_info);
|
if(cg_config_info->mcg_RB_Config) {
|
||||||
|
asn_dec_rval_t dec_rval = uper_decode(NULL,
|
||||||
|
&asn_DEF_NR_RadioBearerConfig,
|
||||||
|
(void**)&ue_context_p->ue_context.rb_config,
|
||||||
|
cg_config_info->mcg_RB_Config->buf,
|
||||||
|
cg_config_info->mcg_RB_Config->size, 0, 0);
|
||||||
|
|
||||||
|
if((dec_rval.code != RC_OK) && (dec_rval.consumed == 0)) {
|
||||||
|
AssertFatal(1==0,"[InterNode] Failed to decode mcg_rb_config (%zu bits), size of OCTET_STRING %lu\n",
|
||||||
|
dec_rval.consumed, cg_config_info->mcg_RB_Config->size);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
xer_fprint(stdout, &asn_DEF_NR_RadioBearerConfig, (const void*)ue_context_p->ue_context.rb_config);
|
||||||
|
rrc_add_nsa_user(rrc,ue_context_p, m);
|
||||||
}
|
}
|
||||||
|
|
||||||
void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_p, x2ap_ENDC_sgnb_addition_req_t *m, struct NR_CG_ConfigInfo_IEs * cg_config_info) {
|
void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_p, x2ap_ENDC_sgnb_addition_req_t *m) {
|
||||||
|
|
||||||
// generate nr-Config-r15 containers for LTE RRC : inside message for X2 EN-DC (CG-Config Message from 38.331)
|
// generate nr-Config-r15 containers for LTE RRC : inside message for X2 EN-DC (CG-Config Message from 38.331)
|
||||||
|
|
||||||
@@ -133,7 +146,7 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
|
|||||||
|
|
||||||
ue_context_p->ue_context.rb_config = calloc(1,sizeof(NR_RRCReconfiguration_t));
|
ue_context_p->ue_context.rb_config = calloc(1,sizeof(NR_RRCReconfiguration_t));
|
||||||
|
|
||||||
fill_default_rbconfig(ue_context_p->ue_context.rb_config,m, cg_config_info);
|
//fill_default_rbconfig(ue_context_p->ue_context.rb_config,m, cg_config_info);
|
||||||
ue_context_p->ue_id_rnti = ue_context_p->ue_context.secondaryCellGroup->spCellConfig->reconfigurationWithSync->newUE_Identity;
|
ue_context_p->ue_id_rnti = ue_context_p->ue_context.secondaryCellGroup->spCellConfig->reconfigurationWithSync->newUE_Identity;
|
||||||
NR_CG_Config_t *CG_Config = calloc(1,sizeof(*CG_Config));
|
NR_CG_Config_t *CG_Config = calloc(1,sizeof(*CG_Config));
|
||||||
memset((void*)CG_Config,0,sizeof(*CG_Config));
|
memset((void*)CG_Config,0,sizeof(*CG_Config));
|
||||||
|
|||||||
@@ -2031,8 +2031,9 @@ void fill_default_reconfig(NR_ServingCellConfigCommon_t *servingcellconfigcommon
|
|||||||
// nonCriticalExtension
|
// nonCriticalExtension
|
||||||
reconfig->nonCriticalExtension = NULL;
|
reconfig->nonCriticalExtension = NULL;
|
||||||
}
|
}
|
||||||
|
#if 0
|
||||||
void fill_default_rbconfig(NR_RadioBearerConfig_t *rbconfig, x2ap_ENDC_sgnb_addition_req_t *m, struct NR_CG_ConfigInfo_IEs *cg_config_info) {
|
void fill_default_rbconfig(NR_RadioBearerConfig_t *rbconfig, x2ap_ENDC_sgnb_addition_req_t *m, struct NR_CG_ConfigInfo_IEs *cg_config_info) {
|
||||||
|
/*
|
||||||
if(cg_config_info->mcg_RB_Config) {
|
if(cg_config_info->mcg_RB_Config) {
|
||||||
asn_dec_rval dec_rval = uper_decode(NULL,
|
asn_dec_rval dec_rval = uper_decode(NULL,
|
||||||
&asn_DEF_NR_RadioBearerConfig,
|
&asn_DEF_NR_RadioBearerConfig,
|
||||||
@@ -2045,6 +2046,8 @@ void fill_default_rbconfig(NR_RadioBearerConfig_t *rbconfig, x2ap_ENDC_sgnb_addi
|
|||||||
dec_rval.consumed, cg_ConfigInfo->ue_CapabilityInfo->size);
|
dec_rval.consumed, cg_ConfigInfo->ue_CapabilityInfo->size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
rbconfig->srb_ToAddModList = NULL;
|
rbconfig->srb_ToAddModList = NULL;
|
||||||
rbconfig->srb3_ToRelease = NULL;
|
rbconfig->srb3_ToRelease = NULL;
|
||||||
@@ -2091,3 +2094,4 @@ void fill_default_rbconfig(NR_RadioBearerConfig_t *rbconfig, x2ap_ENDC_sgnb_addi
|
|||||||
xer_fprint(stdout, &asn_DEF_NR_RadioBearerConfig, (const void*)rbconfig);
|
xer_fprint(stdout, &asn_DEF_NR_RadioBearerConfig, (const void*)rbconfig);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user