Merge remote-tracking branch 'origin/dora_phytest_uecap_fix' into integration_2025_w34 (!3577)
Fix for UECAP file handling in dora/phytest mode
This commit is contained in:
@@ -77,7 +77,7 @@
|
|||||||
// and put it into a CG-ConfigInfo field
|
// and put it into a CG-ConfigInfo field
|
||||||
static int cg_config_info_from_ue_cap_file(uint32_t maxlen, uint8_t buf[maxlen])
|
static int cg_config_info_from_ue_cap_file(uint32_t maxlen, uint8_t buf[maxlen])
|
||||||
{
|
{
|
||||||
OCTET_STRING_t *os_cap = NULL;
|
OCTET_STRING_t *list_buf = NULL;
|
||||||
if (uecap_file != NULL) {
|
if (uecap_file != NULL) {
|
||||||
LOG_I(NR_RRC, "creating CG-ConfigInfo from UE capability file %s\n", uecap_file);
|
LOG_I(NR_RRC, "creating CG-ConfigInfo from UE capability file %s\n", uecap_file);
|
||||||
|
|
||||||
@@ -98,8 +98,17 @@ static int cg_config_info_from_ue_cap_file(uint32_t maxlen, uint8_t buf[maxlen])
|
|||||||
DevAssert(dec_rval.code == RC_OK);
|
DevAssert(dec_rval.code == RC_OK);
|
||||||
//xer_fprint(stdout, &asn_DEF_NR_UE_NR_Capability, cap);
|
//xer_fprint(stdout, &asn_DEF_NR_UE_NR_Capability, cap);
|
||||||
|
|
||||||
os_cap = calloc_or_fail(1, sizeof(*os_cap));
|
uint8_t *buf = NULL;
|
||||||
os_cap->size = uper_encode_to_new_buffer(&asn_DEF_NR_UE_NR_Capability, NULL, cap, (void **)&os_cap->buf);
|
int sizebuf = uper_encode_to_new_buffer(&asn_DEF_NR_UE_NR_Capability, NULL, cap, (void **)&buf);
|
||||||
|
NR_UE_CapabilityRAT_Container_t *cont = calloc_or_fail(1, sizeof(*cont));
|
||||||
|
cont->rat_Type = NR_RAT_Type_nr;
|
||||||
|
cont->ue_CapabilityRAT_Container.buf = buf;
|
||||||
|
cont->ue_CapabilityRAT_Container.size = sizebuf;
|
||||||
|
NR_UE_CapabilityRAT_ContainerList_t *clist = calloc_or_fail(1, sizeof(*clist));
|
||||||
|
asn1cSeqAdd(&clist->list, cont);
|
||||||
|
list_buf = calloc_or_fail(1, sizeof(*list_buf));
|
||||||
|
list_buf->size = uper_encode_to_new_buffer(&asn_DEF_NR_UE_CapabilityRAT_ContainerList, NULL, clist, (void **)&list_buf->buf);
|
||||||
|
ASN_STRUCT_FREE(asn_DEF_NR_UE_CapabilityRAT_ContainerList, clist);
|
||||||
}
|
}
|
||||||
|
|
||||||
NR_CG_ConfigInfo_t *cgci = calloc_or_fail(1, sizeof(*cgci));
|
NR_CG_ConfigInfo_t *cgci = calloc_or_fail(1, sizeof(*cgci));
|
||||||
@@ -108,7 +117,7 @@ static int cg_config_info_from_ue_cap_file(uint32_t maxlen, uint8_t buf[maxlen])
|
|||||||
cgci->criticalExtensions.choice.c1->present = NR_CG_ConfigInfo__criticalExtensions__c1_PR_cg_ConfigInfo;
|
cgci->criticalExtensions.choice.c1->present = NR_CG_ConfigInfo__criticalExtensions__c1_PR_cg_ConfigInfo;
|
||||||
NR_CG_ConfigInfo_IEs_t *cgci_ies = calloc_or_fail(1, sizeof(*cgci_ies));
|
NR_CG_ConfigInfo_IEs_t *cgci_ies = calloc_or_fail(1, sizeof(*cgci_ies));
|
||||||
cgci->criticalExtensions.choice.c1->choice.cg_ConfigInfo = cgci_ies;
|
cgci->criticalExtensions.choice.c1->choice.cg_ConfigInfo = cgci_ies;
|
||||||
cgci_ies->ue_CapabilityInfo = os_cap;
|
cgci_ies->ue_CapabilityInfo = list_buf;
|
||||||
|
|
||||||
//xer_fprint(stdout, &asn_DEF_NR_CG_ConfigInfo, cgci);
|
//xer_fprint(stdout, &asn_DEF_NR_CG_ConfigInfo, cgci);
|
||||||
asn_enc_rval_t rval = uper_encode_to_buffer(&asn_DEF_NR_CG_ConfigInfo, NULL, cgci, buf, maxlen);
|
asn_enc_rval_t rval = uper_encode_to_buffer(&asn_DEF_NR_CG_ConfigInfo, NULL, cgci, buf, maxlen);
|
||||||
|
|||||||
Reference in New Issue
Block a user