1347 lines
60 KiB
C
1347 lines
60 KiB
C
/*******************************************************************************
|
|
* This file had been created by asn1tostruct.py script v0.5osmo1
|
|
* Please do not modify this file but regenerate it via script.
|
|
* Created on: 2022-11-14 12:42:18
|
|
* from ['../../../src/osmo-iuh/asn1/hnbap/HNBAP-PDU-Contents.asn']
|
|
******************************************************************************/
|
|
#include <osmocom/hnbap/hnbap_common.h>
|
|
#include <osmocom/hnbap/hnbap_ies_defs.h>
|
|
|
|
int hnbap_decode_hnbregisterrequesties(
|
|
HNBAP_HNBRegisterRequestIEs_t *hnbRegisterRequestIEs,
|
|
ANY_t *any_p) {
|
|
|
|
HNBAP_HNBRegisterRequest_t *hNBRegisterRequest_p = NULL;
|
|
int i, decoded = 0;
|
|
int tempDecoded = 0;
|
|
assert(any_p != NULL);
|
|
assert(hnbRegisterRequestIEs != NULL);
|
|
|
|
memset(hnbRegisterRequestIEs, 0, sizeof(HNBAP_HNBRegisterRequestIEs_t));
|
|
HNBAP_DEBUG("Decoding message HNBAP_HNBRegisterRequestIEs (%s:%d)\n", __FILE__, __LINE__);
|
|
|
|
tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_HNBAP_HNBRegisterRequest, (void**)&hNBRegisterRequest_p);
|
|
|
|
if (tempDecoded < 0 || hNBRegisterRequest_p == NULL) {
|
|
HNBAP_DEBUG("Decoding of message HNBAP_HNBRegisterRequestIEs failed\n");
|
|
return -1;
|
|
}
|
|
|
|
for (i = 0; i < hNBRegisterRequest_p->hnbRegisterRequest_ies.list.count; i++) {
|
|
HNBAP_IE_t *ie_p;
|
|
ie_p = hNBRegisterRequest_p->hnbRegisterRequest_ies.list.array[i];
|
|
switch(ie_p->id) {
|
|
case HNBAP_ProtocolIE_ID_id_HNB_Identity:
|
|
{
|
|
HNBAP_HNB_Identity_t *hnbaP_HNBIdentity_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_HNB_Identity, (void**)&hnbaP_HNBIdentity_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE hnB_Identity failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_HNB_Identity, hnbaP_HNBIdentity_p);
|
|
memcpy(&hnbRegisterRequestIEs->hnB_Identity, hnbaP_HNBIdentity_p, sizeof(HNBAP_HNB_Identity_t));
|
|
FREEMEM(hnbaP_HNBIdentity_p);
|
|
} break;
|
|
case HNBAP_ProtocolIE_ID_id_HNB_Location_Information:
|
|
{
|
|
HNBAP_HNB_Location_Information_t *hnbaP_HNBLocationInformation_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_HNB_Location_Information, (void**)&hnbaP_HNBLocationInformation_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE hnB_Location_Information failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_HNB_Location_Information, hnbaP_HNBLocationInformation_p);
|
|
memcpy(&hnbRegisterRequestIEs->hnB_Location_Information, hnbaP_HNBLocationInformation_p, sizeof(HNBAP_HNB_Location_Information_t));
|
|
FREEMEM(hnbaP_HNBLocationInformation_p);
|
|
} break;
|
|
case HNBAP_ProtocolIE_ID_id_PLMNidentity:
|
|
{
|
|
HNBAP_PLMNidentity_t *hnbaP_PLMNidentity_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_PLMNidentity, (void**)&hnbaP_PLMNidentity_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE plmNidentity failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_PLMNidentity, hnbaP_PLMNidentity_p);
|
|
memcpy(&hnbRegisterRequestIEs->plmNidentity, hnbaP_PLMNidentity_p, sizeof(HNBAP_PLMNidentity_t));
|
|
FREEMEM(hnbaP_PLMNidentity_p);
|
|
} break;
|
|
case HNBAP_ProtocolIE_ID_id_CellIdentity:
|
|
{
|
|
HNBAP_CellIdentity_t *hnbaP_CellIdentity_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_CellIdentity, (void**)&hnbaP_CellIdentity_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE cellIdentity failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_CellIdentity, hnbaP_CellIdentity_p);
|
|
memcpy(&hnbRegisterRequestIEs->cellIdentity, hnbaP_CellIdentity_p, sizeof(HNBAP_CellIdentity_t));
|
|
FREEMEM(hnbaP_CellIdentity_p);
|
|
} break;
|
|
case HNBAP_ProtocolIE_ID_id_LAC:
|
|
{
|
|
HNBAP_LAC_t *hnbap_lac_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_LAC, (void**)&hnbap_lac_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE lac failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_LAC, hnbap_lac_p);
|
|
memcpy(&hnbRegisterRequestIEs->lac, hnbap_lac_p, sizeof(HNBAP_LAC_t));
|
|
FREEMEM(hnbap_lac_p);
|
|
} break;
|
|
case HNBAP_ProtocolIE_ID_id_RAC:
|
|
{
|
|
HNBAP_RAC_t *hnbap_rac_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_RAC, (void**)&hnbap_rac_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE rac failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_RAC, hnbap_rac_p);
|
|
memcpy(&hnbRegisterRequestIEs->rac, hnbap_rac_p, sizeof(HNBAP_RAC_t));
|
|
FREEMEM(hnbap_rac_p);
|
|
} break;
|
|
case HNBAP_ProtocolIE_ID_id_SAC:
|
|
{
|
|
HNBAP_SAC_t *hnbap_sac_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_SAC, (void**)&hnbap_sac_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE sac failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_SAC, hnbap_sac_p);
|
|
memcpy(&hnbRegisterRequestIEs->sac, hnbap_sac_p, sizeof(HNBAP_SAC_t));
|
|
FREEMEM(hnbap_sac_p);
|
|
} break;
|
|
/* Optional field */
|
|
case HNBAP_ProtocolIE_ID_id_CSG_ID:
|
|
{
|
|
HNBAP_CSG_ID_t *hnbap_csgid_p = NULL;
|
|
hnbRegisterRequestIEs->presenceMask |= HNBREGISTERREQUESTIES_HNBAP_CSG_ID_PRESENT;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_CSG_ID, (void**)&hnbap_csgid_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE csg_id failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_CSG_ID, hnbap_csgid_p);
|
|
memcpy(&hnbRegisterRequestIEs->csg_id, hnbap_csgid_p, sizeof(HNBAP_CSG_ID_t));
|
|
FREEMEM(hnbap_csgid_p);
|
|
} break;
|
|
default:
|
|
HNBAP_DEBUG("Unknown protocol IE id (%d) for message hnbregisterrequesties\n", (int)ie_p->id);
|
|
return -1;
|
|
}
|
|
}
|
|
ASN_STRUCT_FREE(asn_DEF_HNBAP_HNBRegisterRequest, hNBRegisterRequest_p);
|
|
return decoded;
|
|
}
|
|
|
|
int hnbap_decode_hnbregisteraccepties(
|
|
HNBAP_HNBRegisterAcceptIEs_t *hnbRegisterAcceptIEs,
|
|
ANY_t *any_p) {
|
|
|
|
HNBAP_HNBRegisterAccept_t *hNBRegisterAccept_p = NULL;
|
|
int i, decoded = 0;
|
|
int tempDecoded = 0;
|
|
assert(any_p != NULL);
|
|
assert(hnbRegisterAcceptIEs != NULL);
|
|
|
|
memset(hnbRegisterAcceptIEs, 0, sizeof(HNBAP_HNBRegisterAcceptIEs_t));
|
|
HNBAP_DEBUG("Decoding message HNBAP_HNBRegisterAcceptIEs (%s:%d)\n", __FILE__, __LINE__);
|
|
|
|
tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_HNBAP_HNBRegisterAccept, (void**)&hNBRegisterAccept_p);
|
|
|
|
if (tempDecoded < 0 || hNBRegisterAccept_p == NULL) {
|
|
HNBAP_DEBUG("Decoding of message HNBAP_HNBRegisterAcceptIEs failed\n");
|
|
return -1;
|
|
}
|
|
|
|
for (i = 0; i < hNBRegisterAccept_p->hnbRegisterAccept_ies.list.count; i++) {
|
|
HNBAP_IE_t *ie_p;
|
|
ie_p = hNBRegisterAccept_p->hnbRegisterAccept_ies.list.array[i];
|
|
switch(ie_p->id) {
|
|
case HNBAP_ProtocolIE_ID_id_RNC_ID:
|
|
{
|
|
HNBAP_RNC_ID_t *hnbap_rncid_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_RNC_ID, (void**)&hnbap_rncid_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE rnc_id failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_RNC_ID, hnbap_rncid_p);
|
|
memcpy(&hnbRegisterAcceptIEs->rnc_id, hnbap_rncid_p, sizeof(HNBAP_RNC_ID_t));
|
|
FREEMEM(hnbap_rncid_p);
|
|
} break;
|
|
default:
|
|
HNBAP_DEBUG("Unknown protocol IE id (%d) for message hnbregisteraccepties\n", (int)ie_p->id);
|
|
return -1;
|
|
}
|
|
}
|
|
ASN_STRUCT_FREE(asn_DEF_HNBAP_HNBRegisterAccept, hNBRegisterAccept_p);
|
|
return decoded;
|
|
}
|
|
|
|
int hnbap_decode_hnbregisterrejecties(
|
|
HNBAP_HNBRegisterRejectIEs_t *hnbRegisterRejectIEs,
|
|
ANY_t *any_p) {
|
|
|
|
HNBAP_HNBRegisterReject_t *hNBRegisterReject_p = NULL;
|
|
int i, decoded = 0;
|
|
int tempDecoded = 0;
|
|
assert(any_p != NULL);
|
|
assert(hnbRegisterRejectIEs != NULL);
|
|
|
|
memset(hnbRegisterRejectIEs, 0, sizeof(HNBAP_HNBRegisterRejectIEs_t));
|
|
HNBAP_DEBUG("Decoding message HNBAP_HNBRegisterRejectIEs (%s:%d)\n", __FILE__, __LINE__);
|
|
|
|
tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_HNBAP_HNBRegisterReject, (void**)&hNBRegisterReject_p);
|
|
|
|
if (tempDecoded < 0 || hNBRegisterReject_p == NULL) {
|
|
HNBAP_DEBUG("Decoding of message HNBAP_HNBRegisterRejectIEs failed\n");
|
|
return -1;
|
|
}
|
|
|
|
for (i = 0; i < hNBRegisterReject_p->hnbRegisterReject_ies.list.count; i++) {
|
|
HNBAP_IE_t *ie_p;
|
|
ie_p = hNBRegisterReject_p->hnbRegisterReject_ies.list.array[i];
|
|
switch(ie_p->id) {
|
|
case HNBAP_ProtocolIE_ID_id_Cause:
|
|
{
|
|
HNBAP_Cause_t *hnbaP_Cause_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_Cause, (void**)&hnbaP_Cause_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE cause failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_Cause, hnbaP_Cause_p);
|
|
memcpy(&hnbRegisterRejectIEs->cause, hnbaP_Cause_p, sizeof(HNBAP_Cause_t));
|
|
FREEMEM(hnbaP_Cause_p);
|
|
} break;
|
|
/* Optional field */
|
|
case HNBAP_ProtocolIE_ID_id_CriticalityDiagnostics:
|
|
{
|
|
HNBAP_CriticalityDiagnostics_t *hnbaP_CriticalityDiagnostics_p = NULL;
|
|
hnbRegisterRejectIEs->presenceMask |= HNBREGISTERREJECTIES_HNBAP_CRITICALITYDIAGNOSTICS_PRESENT;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_CriticalityDiagnostics, (void**)&hnbaP_CriticalityDiagnostics_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_CriticalityDiagnostics, hnbaP_CriticalityDiagnostics_p);
|
|
memcpy(&hnbRegisterRejectIEs->criticalityDiagnostics, hnbaP_CriticalityDiagnostics_p, sizeof(HNBAP_CriticalityDiagnostics_t));
|
|
FREEMEM(hnbaP_CriticalityDiagnostics_p);
|
|
} break;
|
|
/* Conditional field */
|
|
case HNBAP_ProtocolIE_ID_id_BackoffTimer:
|
|
{
|
|
HNBAP_BackoffTimer_t *hnbaP_BackoffTimer_p = NULL;
|
|
hnbRegisterRejectIEs->presenceMask |= HNBREGISTERREJECTIES_HNBAP_BACKOFFTIMER_PRESENT;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_BackoffTimer, (void**)&hnbaP_BackoffTimer_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE backoffTimer failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_BackoffTimer, hnbaP_BackoffTimer_p);
|
|
memcpy(&hnbRegisterRejectIEs->backoffTimer, hnbaP_BackoffTimer_p, sizeof(HNBAP_BackoffTimer_t));
|
|
FREEMEM(hnbaP_BackoffTimer_p);
|
|
} break;
|
|
default:
|
|
HNBAP_DEBUG("Unknown protocol IE id (%d) for message hnbregisterrejecties\n", (int)ie_p->id);
|
|
return -1;
|
|
}
|
|
}
|
|
ASN_STRUCT_FREE(asn_DEF_HNBAP_HNBRegisterReject, hNBRegisterReject_p);
|
|
return decoded;
|
|
}
|
|
|
|
int hnbap_decode_hnbde_registeries(
|
|
HNBAP_HNBDe_RegisterIEs_t *hnbDe_RegisterIEs,
|
|
ANY_t *any_p) {
|
|
|
|
HNBAP_HNBDe_Register_t *hNBDe_Register_p = NULL;
|
|
int i, decoded = 0;
|
|
int tempDecoded = 0;
|
|
assert(any_p != NULL);
|
|
assert(hnbDe_RegisterIEs != NULL);
|
|
|
|
memset(hnbDe_RegisterIEs, 0, sizeof(HNBAP_HNBDe_RegisterIEs_t));
|
|
HNBAP_DEBUG("Decoding message HNBAP_HNBDe_RegisterIEs (%s:%d)\n", __FILE__, __LINE__);
|
|
|
|
tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_HNBAP_HNBDe_Register, (void**)&hNBDe_Register_p);
|
|
|
|
if (tempDecoded < 0 || hNBDe_Register_p == NULL) {
|
|
HNBAP_DEBUG("Decoding of message HNBAP_HNBDe_RegisterIEs failed\n");
|
|
return -1;
|
|
}
|
|
|
|
for (i = 0; i < hNBDe_Register_p->hnbDe_Register_ies.list.count; i++) {
|
|
HNBAP_IE_t *ie_p;
|
|
ie_p = hNBDe_Register_p->hnbDe_Register_ies.list.array[i];
|
|
switch(ie_p->id) {
|
|
case HNBAP_ProtocolIE_ID_id_Cause:
|
|
{
|
|
HNBAP_Cause_t *hnbaP_Cause_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_Cause, (void**)&hnbaP_Cause_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE cause failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_Cause, hnbaP_Cause_p);
|
|
memcpy(&hnbDe_RegisterIEs->cause, hnbaP_Cause_p, sizeof(HNBAP_Cause_t));
|
|
FREEMEM(hnbaP_Cause_p);
|
|
} break;
|
|
/* Conditional field */
|
|
case HNBAP_ProtocolIE_ID_id_BackoffTimer:
|
|
{
|
|
HNBAP_BackoffTimer_t *hnbaP_BackoffTimer_p = NULL;
|
|
hnbDe_RegisterIEs->presenceMask |= HNBDE_REGISTERIES_HNBAP_BACKOFFTIMER_PRESENT;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_BackoffTimer, (void**)&hnbaP_BackoffTimer_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE backoffTimer failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_BackoffTimer, hnbaP_BackoffTimer_p);
|
|
memcpy(&hnbDe_RegisterIEs->backoffTimer, hnbaP_BackoffTimer_p, sizeof(HNBAP_BackoffTimer_t));
|
|
FREEMEM(hnbaP_BackoffTimer_p);
|
|
} break;
|
|
default:
|
|
HNBAP_DEBUG("Unknown protocol IE id (%d) for message hnbde_registeries\n", (int)ie_p->id);
|
|
return -1;
|
|
}
|
|
}
|
|
ASN_STRUCT_FREE(asn_DEF_HNBAP_HNBDe_Register, hNBDe_Register_p);
|
|
return decoded;
|
|
}
|
|
|
|
int hnbap_decode_ueregisterrequesties(
|
|
HNBAP_UERegisterRequestIEs_t *ueRegisterRequestIEs,
|
|
ANY_t *any_p) {
|
|
|
|
HNBAP_UERegisterRequest_t *uERegisterRequest_p = NULL;
|
|
int i, decoded = 0;
|
|
int tempDecoded = 0;
|
|
assert(any_p != NULL);
|
|
assert(ueRegisterRequestIEs != NULL);
|
|
|
|
memset(ueRegisterRequestIEs, 0, sizeof(HNBAP_UERegisterRequestIEs_t));
|
|
HNBAP_DEBUG("Decoding message HNBAP_UERegisterRequestIEs (%s:%d)\n", __FILE__, __LINE__);
|
|
|
|
tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_HNBAP_UERegisterRequest, (void**)&uERegisterRequest_p);
|
|
|
|
if (tempDecoded < 0 || uERegisterRequest_p == NULL) {
|
|
HNBAP_DEBUG("Decoding of message HNBAP_UERegisterRequestIEs failed\n");
|
|
return -1;
|
|
}
|
|
|
|
for (i = 0; i < uERegisterRequest_p->ueRegisterRequest_ies.list.count; i++) {
|
|
HNBAP_IE_t *ie_p;
|
|
ie_p = uERegisterRequest_p->ueRegisterRequest_ies.list.array[i];
|
|
switch(ie_p->id) {
|
|
case HNBAP_ProtocolIE_ID_id_UE_Identity:
|
|
{
|
|
HNBAP_UE_Identity_t *hnbaP_UEIdentity_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_UE_Identity, (void**)&hnbaP_UEIdentity_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE uE_Identity failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_UE_Identity, hnbaP_UEIdentity_p);
|
|
memcpy(&ueRegisterRequestIEs->uE_Identity, hnbaP_UEIdentity_p, sizeof(HNBAP_UE_Identity_t));
|
|
FREEMEM(hnbaP_UEIdentity_p);
|
|
} break;
|
|
case HNBAP_ProtocolIE_ID_id_Registration_Cause:
|
|
{
|
|
HNBAP_Registration_Cause_t *hnbaP_RegistrationCause_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_Registration_Cause, (void**)&hnbaP_RegistrationCause_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE registration_Cause failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_Registration_Cause, hnbaP_RegistrationCause_p);
|
|
memcpy(&ueRegisterRequestIEs->registration_Cause, hnbaP_RegistrationCause_p, sizeof(HNBAP_Registration_Cause_t));
|
|
FREEMEM(hnbaP_RegistrationCause_p);
|
|
} break;
|
|
case HNBAP_ProtocolIE_ID_id_UE_Capabilities:
|
|
{
|
|
HNBAP_UE_Capabilities_t *hnbaP_UECapabilities_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_UE_Capabilities, (void**)&hnbaP_UECapabilities_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE uE_Capabilities failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_UE_Capabilities, hnbaP_UECapabilities_p);
|
|
memcpy(&ueRegisterRequestIEs->uE_Capabilities, hnbaP_UECapabilities_p, sizeof(HNBAP_UE_Capabilities_t));
|
|
FREEMEM(hnbaP_UECapabilities_p);
|
|
} break;
|
|
default:
|
|
HNBAP_DEBUG("Unknown protocol IE id (%d) for message ueregisterrequesties\n", (int)ie_p->id);
|
|
return -1;
|
|
}
|
|
}
|
|
ASN_STRUCT_FREE(asn_DEF_HNBAP_UERegisterRequest, uERegisterRequest_p);
|
|
return decoded;
|
|
}
|
|
|
|
int hnbap_decode_ueregisteraccepties(
|
|
HNBAP_UERegisterAcceptIEs_t *ueRegisterAcceptIEs,
|
|
ANY_t *any_p) {
|
|
|
|
HNBAP_UERegisterAccept_t *uERegisterAccept_p = NULL;
|
|
int i, decoded = 0;
|
|
int tempDecoded = 0;
|
|
assert(any_p != NULL);
|
|
assert(ueRegisterAcceptIEs != NULL);
|
|
|
|
memset(ueRegisterAcceptIEs, 0, sizeof(HNBAP_UERegisterAcceptIEs_t));
|
|
HNBAP_DEBUG("Decoding message HNBAP_UERegisterAcceptIEs (%s:%d)\n", __FILE__, __LINE__);
|
|
|
|
tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_HNBAP_UERegisterAccept, (void**)&uERegisterAccept_p);
|
|
|
|
if (tempDecoded < 0 || uERegisterAccept_p == NULL) {
|
|
HNBAP_DEBUG("Decoding of message HNBAP_UERegisterAcceptIEs failed\n");
|
|
return -1;
|
|
}
|
|
|
|
for (i = 0; i < uERegisterAccept_p->ueRegisterAccept_ies.list.count; i++) {
|
|
HNBAP_IE_t *ie_p;
|
|
ie_p = uERegisterAccept_p->ueRegisterAccept_ies.list.array[i];
|
|
switch(ie_p->id) {
|
|
case HNBAP_ProtocolIE_ID_id_UE_Identity:
|
|
{
|
|
HNBAP_UE_Identity_t *hnbaP_UEIdentity_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_UE_Identity, (void**)&hnbaP_UEIdentity_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE uE_Identity failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_UE_Identity, hnbaP_UEIdentity_p);
|
|
memcpy(&ueRegisterAcceptIEs->uE_Identity, hnbaP_UEIdentity_p, sizeof(HNBAP_UE_Identity_t));
|
|
FREEMEM(hnbaP_UEIdentity_p);
|
|
} break;
|
|
case HNBAP_ProtocolIE_ID_id_Context_ID:
|
|
{
|
|
HNBAP_Context_ID_t *hnbaP_ContextID_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_Context_ID, (void**)&hnbaP_ContextID_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE context_ID failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_Context_ID, hnbaP_ContextID_p);
|
|
memcpy(&ueRegisterAcceptIEs->context_ID, hnbaP_ContextID_p, sizeof(HNBAP_Context_ID_t));
|
|
FREEMEM(hnbaP_ContextID_p);
|
|
} break;
|
|
default:
|
|
HNBAP_DEBUG("Unknown protocol IE id (%d) for message ueregisteraccepties\n", (int)ie_p->id);
|
|
return -1;
|
|
}
|
|
}
|
|
ASN_STRUCT_FREE(asn_DEF_HNBAP_UERegisterAccept, uERegisterAccept_p);
|
|
return decoded;
|
|
}
|
|
|
|
int hnbap_decode_ueregisterrejecties(
|
|
HNBAP_UERegisterRejectIEs_t *ueRegisterRejectIEs,
|
|
ANY_t *any_p) {
|
|
|
|
HNBAP_UERegisterReject_t *uERegisterReject_p = NULL;
|
|
int i, decoded = 0;
|
|
int tempDecoded = 0;
|
|
assert(any_p != NULL);
|
|
assert(ueRegisterRejectIEs != NULL);
|
|
|
|
memset(ueRegisterRejectIEs, 0, sizeof(HNBAP_UERegisterRejectIEs_t));
|
|
HNBAP_DEBUG("Decoding message HNBAP_UERegisterRejectIEs (%s:%d)\n", __FILE__, __LINE__);
|
|
|
|
tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_HNBAP_UERegisterReject, (void**)&uERegisterReject_p);
|
|
|
|
if (tempDecoded < 0 || uERegisterReject_p == NULL) {
|
|
HNBAP_DEBUG("Decoding of message HNBAP_UERegisterRejectIEs failed\n");
|
|
return -1;
|
|
}
|
|
|
|
for (i = 0; i < uERegisterReject_p->ueRegisterReject_ies.list.count; i++) {
|
|
HNBAP_IE_t *ie_p;
|
|
ie_p = uERegisterReject_p->ueRegisterReject_ies.list.array[i];
|
|
switch(ie_p->id) {
|
|
case HNBAP_ProtocolIE_ID_id_UE_Identity:
|
|
{
|
|
HNBAP_UE_Identity_t *hnbaP_UEIdentity_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_UE_Identity, (void**)&hnbaP_UEIdentity_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE uE_Identity failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_UE_Identity, hnbaP_UEIdentity_p);
|
|
memcpy(&ueRegisterRejectIEs->uE_Identity, hnbaP_UEIdentity_p, sizeof(HNBAP_UE_Identity_t));
|
|
FREEMEM(hnbaP_UEIdentity_p);
|
|
} break;
|
|
case HNBAP_ProtocolIE_ID_id_Cause:
|
|
{
|
|
HNBAP_Cause_t *hnbaP_Cause_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_Cause, (void**)&hnbaP_Cause_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE cause failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_Cause, hnbaP_Cause_p);
|
|
memcpy(&ueRegisterRejectIEs->cause, hnbaP_Cause_p, sizeof(HNBAP_Cause_t));
|
|
FREEMEM(hnbaP_Cause_p);
|
|
} break;
|
|
/* Optional field */
|
|
case HNBAP_ProtocolIE_ID_id_CriticalityDiagnostics:
|
|
{
|
|
HNBAP_CriticalityDiagnostics_t *hnbaP_CriticalityDiagnostics_p = NULL;
|
|
ueRegisterRejectIEs->presenceMask |= UEREGISTERREJECTIES_HNBAP_CRITICALITYDIAGNOSTICS_PRESENT;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_CriticalityDiagnostics, (void**)&hnbaP_CriticalityDiagnostics_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_CriticalityDiagnostics, hnbaP_CriticalityDiagnostics_p);
|
|
memcpy(&ueRegisterRejectIEs->criticalityDiagnostics, hnbaP_CriticalityDiagnostics_p, sizeof(HNBAP_CriticalityDiagnostics_t));
|
|
FREEMEM(hnbaP_CriticalityDiagnostics_p);
|
|
} break;
|
|
default:
|
|
HNBAP_DEBUG("Unknown protocol IE id (%d) for message ueregisterrejecties\n", (int)ie_p->id);
|
|
return -1;
|
|
}
|
|
}
|
|
ASN_STRUCT_FREE(asn_DEF_HNBAP_UERegisterReject, uERegisterReject_p);
|
|
return decoded;
|
|
}
|
|
|
|
int hnbap_decode_uede_registeries(
|
|
HNBAP_UEDe_RegisterIEs_t *ueDe_RegisterIEs,
|
|
ANY_t *any_p) {
|
|
|
|
HNBAP_UEDe_Register_t *uEDe_Register_p = NULL;
|
|
int i, decoded = 0;
|
|
int tempDecoded = 0;
|
|
assert(any_p != NULL);
|
|
assert(ueDe_RegisterIEs != NULL);
|
|
|
|
memset(ueDe_RegisterIEs, 0, sizeof(HNBAP_UEDe_RegisterIEs_t));
|
|
HNBAP_DEBUG("Decoding message HNBAP_UEDe_RegisterIEs (%s:%d)\n", __FILE__, __LINE__);
|
|
|
|
tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_HNBAP_UEDe_Register, (void**)&uEDe_Register_p);
|
|
|
|
if (tempDecoded < 0 || uEDe_Register_p == NULL) {
|
|
HNBAP_DEBUG("Decoding of message HNBAP_UEDe_RegisterIEs failed\n");
|
|
return -1;
|
|
}
|
|
|
|
for (i = 0; i < uEDe_Register_p->ueDe_Register_ies.list.count; i++) {
|
|
HNBAP_IE_t *ie_p;
|
|
ie_p = uEDe_Register_p->ueDe_Register_ies.list.array[i];
|
|
switch(ie_p->id) {
|
|
case HNBAP_ProtocolIE_ID_id_Context_ID:
|
|
{
|
|
HNBAP_Context_ID_t *hnbaP_ContextID_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_Context_ID, (void**)&hnbaP_ContextID_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE context_ID failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_Context_ID, hnbaP_ContextID_p);
|
|
memcpy(&ueDe_RegisterIEs->context_ID, hnbaP_ContextID_p, sizeof(HNBAP_Context_ID_t));
|
|
FREEMEM(hnbaP_ContextID_p);
|
|
} break;
|
|
case HNBAP_ProtocolIE_ID_id_Cause:
|
|
{
|
|
HNBAP_Cause_t *hnbaP_Cause_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_Cause, (void**)&hnbaP_Cause_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE cause failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_Cause, hnbaP_Cause_p);
|
|
memcpy(&ueDe_RegisterIEs->cause, hnbaP_Cause_p, sizeof(HNBAP_Cause_t));
|
|
FREEMEM(hnbaP_Cause_p);
|
|
} break;
|
|
default:
|
|
HNBAP_DEBUG("Unknown protocol IE id (%d) for message uede_registeries\n", (int)ie_p->id);
|
|
return -1;
|
|
}
|
|
}
|
|
ASN_STRUCT_FREE(asn_DEF_HNBAP_UEDe_Register, uEDe_Register_p);
|
|
return decoded;
|
|
}
|
|
|
|
int hnbap_decode_csgmembershipupdateies(
|
|
HNBAP_CSGMembershipUpdateIEs_t *csgMembershipUpdateIEs,
|
|
ANY_t *any_p) {
|
|
|
|
HNBAP_CSGMembershipUpdate_t *cSGMembershipUpdate_p = NULL;
|
|
int i, decoded = 0;
|
|
int tempDecoded = 0;
|
|
assert(any_p != NULL);
|
|
assert(csgMembershipUpdateIEs != NULL);
|
|
|
|
memset(csgMembershipUpdateIEs, 0, sizeof(HNBAP_CSGMembershipUpdateIEs_t));
|
|
HNBAP_DEBUG("Decoding message HNBAP_CSGMembershipUpdateIEs (%s:%d)\n", __FILE__, __LINE__);
|
|
|
|
tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_HNBAP_CSGMembershipUpdate, (void**)&cSGMembershipUpdate_p);
|
|
|
|
if (tempDecoded < 0 || cSGMembershipUpdate_p == NULL) {
|
|
HNBAP_DEBUG("Decoding of message HNBAP_CSGMembershipUpdateIEs failed\n");
|
|
return -1;
|
|
}
|
|
|
|
for (i = 0; i < cSGMembershipUpdate_p->csgMembershipUpdate_ies.list.count; i++) {
|
|
HNBAP_IE_t *ie_p;
|
|
ie_p = cSGMembershipUpdate_p->csgMembershipUpdate_ies.list.array[i];
|
|
switch(ie_p->id) {
|
|
case HNBAP_ProtocolIE_ID_id_Context_ID:
|
|
{
|
|
HNBAP_Context_ID_t *hnbaP_ContextID_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_Context_ID, (void**)&hnbaP_ContextID_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE context_ID failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_Context_ID, hnbaP_ContextID_p);
|
|
memcpy(&csgMembershipUpdateIEs->context_ID, hnbaP_ContextID_p, sizeof(HNBAP_Context_ID_t));
|
|
FREEMEM(hnbaP_ContextID_p);
|
|
} break;
|
|
case HNBAP_ProtocolIE_ID_id_CSGMembershipStatus:
|
|
{
|
|
HNBAP_CSGMembershipStatus_t *hnbaP_CSGMembershipStatus_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_CSGMembershipStatus, (void**)&hnbaP_CSGMembershipStatus_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE csgMembershipStatus failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_CSGMembershipStatus, hnbaP_CSGMembershipStatus_p);
|
|
memcpy(&csgMembershipUpdateIEs->csgMembershipStatus, hnbaP_CSGMembershipStatus_p, sizeof(HNBAP_CSGMembershipStatus_t));
|
|
FREEMEM(hnbaP_CSGMembershipStatus_p);
|
|
} break;
|
|
default:
|
|
HNBAP_DEBUG("Unknown protocol IE id (%d) for message csgmembershipupdateies\n", (int)ie_p->id);
|
|
return -1;
|
|
}
|
|
}
|
|
ASN_STRUCT_FREE(asn_DEF_HNBAP_CSGMembershipUpdate, cSGMembershipUpdate_p);
|
|
return decoded;
|
|
}
|
|
|
|
int hnbap_decode_tnlupdaterequesties(
|
|
HNBAP_TNLUpdateRequestIEs_t *tnlUpdateRequestIEs,
|
|
ANY_t *any_p) {
|
|
|
|
HNBAP_TNLUpdateRequest_t *tNLUpdateRequest_p = NULL;
|
|
int i, decoded = 0;
|
|
int tempDecoded = 0;
|
|
assert(any_p != NULL);
|
|
assert(tnlUpdateRequestIEs != NULL);
|
|
|
|
memset(tnlUpdateRequestIEs, 0, sizeof(HNBAP_TNLUpdateRequestIEs_t));
|
|
HNBAP_DEBUG("Decoding message HNBAP_TNLUpdateRequestIEs (%s:%d)\n", __FILE__, __LINE__);
|
|
|
|
tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_HNBAP_TNLUpdateRequest, (void**)&tNLUpdateRequest_p);
|
|
|
|
if (tempDecoded < 0 || tNLUpdateRequest_p == NULL) {
|
|
HNBAP_DEBUG("Decoding of message HNBAP_TNLUpdateRequestIEs failed\n");
|
|
return -1;
|
|
}
|
|
|
|
for (i = 0; i < tNLUpdateRequest_p->tnlUpdateRequest_ies.list.count; i++) {
|
|
HNBAP_IE_t *ie_p;
|
|
ie_p = tNLUpdateRequest_p->tnlUpdateRequest_ies.list.array[i];
|
|
switch(ie_p->id) {
|
|
case HNBAP_ProtocolIE_ID_id_Context_ID:
|
|
{
|
|
HNBAP_Context_ID_t *hnbaP_ContextID_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_Context_ID, (void**)&hnbaP_ContextID_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE context_ID failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_Context_ID, hnbaP_ContextID_p);
|
|
memcpy(&tnlUpdateRequestIEs->context_ID, hnbaP_ContextID_p, sizeof(HNBAP_Context_ID_t));
|
|
FREEMEM(hnbaP_ContextID_p);
|
|
} break;
|
|
case HNBAP_ProtocolIE_ID_id_RABList:
|
|
{
|
|
HNBAP_RABList_t *hnbaP_RABList_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_RABList, (void**)&hnbaP_RABList_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE rabList failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_RABList, hnbaP_RABList_p);
|
|
memcpy(&tnlUpdateRequestIEs->rabList, hnbaP_RABList_p, sizeof(HNBAP_RABList_t));
|
|
FREEMEM(hnbaP_RABList_p);
|
|
} break;
|
|
case HNBAP_ProtocolIE_ID_id_Update_cause:
|
|
{
|
|
HNBAP_Update_cause_t *hnbaP_Updatecause_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_Update_cause, (void**)&hnbaP_Updatecause_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE update_cause failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_Update_cause, hnbaP_Updatecause_p);
|
|
memcpy(&tnlUpdateRequestIEs->update_cause, hnbaP_Updatecause_p, sizeof(HNBAP_Update_cause_t));
|
|
FREEMEM(hnbaP_Updatecause_p);
|
|
} break;
|
|
default:
|
|
HNBAP_DEBUG("Unknown protocol IE id (%d) for message tnlupdaterequesties\n", (int)ie_p->id);
|
|
return -1;
|
|
}
|
|
}
|
|
ASN_STRUCT_FREE(asn_DEF_HNBAP_TNLUpdateRequest, tNLUpdateRequest_p);
|
|
return decoded;
|
|
}
|
|
|
|
int hnbap_decode_tnlupdateresponseies(
|
|
HNBAP_TNLUpdateResponseIEs_t *tnlUpdateResponseIEs,
|
|
ANY_t *any_p) {
|
|
|
|
HNBAP_TNLUpdateResponse_t *tNLUpdateResponse_p = NULL;
|
|
int i, decoded = 0;
|
|
int tempDecoded = 0;
|
|
assert(any_p != NULL);
|
|
assert(tnlUpdateResponseIEs != NULL);
|
|
|
|
memset(tnlUpdateResponseIEs, 0, sizeof(HNBAP_TNLUpdateResponseIEs_t));
|
|
HNBAP_DEBUG("Decoding message HNBAP_TNLUpdateResponseIEs (%s:%d)\n", __FILE__, __LINE__);
|
|
|
|
tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_HNBAP_TNLUpdateResponse, (void**)&tNLUpdateResponse_p);
|
|
|
|
if (tempDecoded < 0 || tNLUpdateResponse_p == NULL) {
|
|
HNBAP_DEBUG("Decoding of message HNBAP_TNLUpdateResponseIEs failed\n");
|
|
return -1;
|
|
}
|
|
|
|
for (i = 0; i < tNLUpdateResponse_p->tnlUpdateResponse_ies.list.count; i++) {
|
|
HNBAP_IE_t *ie_p;
|
|
ie_p = tNLUpdateResponse_p->tnlUpdateResponse_ies.list.array[i];
|
|
switch(ie_p->id) {
|
|
case HNBAP_ProtocolIE_ID_id_Context_ID:
|
|
{
|
|
HNBAP_Context_ID_t *hnbaP_ContextID_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_Context_ID, (void**)&hnbaP_ContextID_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE context_ID failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_Context_ID, hnbaP_ContextID_p);
|
|
memcpy(&tnlUpdateResponseIEs->context_ID, hnbaP_ContextID_p, sizeof(HNBAP_Context_ID_t));
|
|
FREEMEM(hnbaP_ContextID_p);
|
|
} break;
|
|
default:
|
|
HNBAP_DEBUG("Unknown protocol IE id (%d) for message tnlupdateresponseies\n", (int)ie_p->id);
|
|
return -1;
|
|
}
|
|
}
|
|
ASN_STRUCT_FREE(asn_DEF_HNBAP_TNLUpdateResponse, tNLUpdateResponse_p);
|
|
return decoded;
|
|
}
|
|
|
|
int hnbap_decode_tnlupdatefailureies(
|
|
HNBAP_TNLUpdateFailureIEs_t *tnlUpdateFailureIEs,
|
|
ANY_t *any_p) {
|
|
|
|
HNBAP_TNLUpdateFailure_t *tNLUpdateFailure_p = NULL;
|
|
int i, decoded = 0;
|
|
int tempDecoded = 0;
|
|
assert(any_p != NULL);
|
|
assert(tnlUpdateFailureIEs != NULL);
|
|
|
|
memset(tnlUpdateFailureIEs, 0, sizeof(HNBAP_TNLUpdateFailureIEs_t));
|
|
HNBAP_DEBUG("Decoding message HNBAP_TNLUpdateFailureIEs (%s:%d)\n", __FILE__, __LINE__);
|
|
|
|
tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_HNBAP_TNLUpdateFailure, (void**)&tNLUpdateFailure_p);
|
|
|
|
if (tempDecoded < 0 || tNLUpdateFailure_p == NULL) {
|
|
HNBAP_DEBUG("Decoding of message HNBAP_TNLUpdateFailureIEs failed\n");
|
|
return -1;
|
|
}
|
|
|
|
for (i = 0; i < tNLUpdateFailure_p->tnlUpdateFailure_ies.list.count; i++) {
|
|
HNBAP_IE_t *ie_p;
|
|
ie_p = tNLUpdateFailure_p->tnlUpdateFailure_ies.list.array[i];
|
|
switch(ie_p->id) {
|
|
case HNBAP_ProtocolIE_ID_id_Context_ID:
|
|
{
|
|
HNBAP_Context_ID_t *hnbaP_ContextID_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_Context_ID, (void**)&hnbaP_ContextID_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE context_ID failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_Context_ID, hnbaP_ContextID_p);
|
|
memcpy(&tnlUpdateFailureIEs->context_ID, hnbaP_ContextID_p, sizeof(HNBAP_Context_ID_t));
|
|
FREEMEM(hnbaP_ContextID_p);
|
|
} break;
|
|
case HNBAP_ProtocolIE_ID_id_Cause:
|
|
{
|
|
HNBAP_Cause_t *hnbaP_Cause_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_Cause, (void**)&hnbaP_Cause_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE cause failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_Cause, hnbaP_Cause_p);
|
|
memcpy(&tnlUpdateFailureIEs->cause, hnbaP_Cause_p, sizeof(HNBAP_Cause_t));
|
|
FREEMEM(hnbaP_Cause_p);
|
|
} break;
|
|
/* Optional field */
|
|
case HNBAP_ProtocolIE_ID_id_CriticalityDiagnostics:
|
|
{
|
|
HNBAP_CriticalityDiagnostics_t *hnbaP_CriticalityDiagnostics_p = NULL;
|
|
tnlUpdateFailureIEs->presenceMask |= TNLUPDATEFAILUREIES_HNBAP_CRITICALITYDIAGNOSTICS_PRESENT;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_CriticalityDiagnostics, (void**)&hnbaP_CriticalityDiagnostics_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_CriticalityDiagnostics, hnbaP_CriticalityDiagnostics_p);
|
|
memcpy(&tnlUpdateFailureIEs->criticalityDiagnostics, hnbaP_CriticalityDiagnostics_p, sizeof(HNBAP_CriticalityDiagnostics_t));
|
|
FREEMEM(hnbaP_CriticalityDiagnostics_p);
|
|
} break;
|
|
default:
|
|
HNBAP_DEBUG("Unknown protocol IE id (%d) for message tnlupdatefailureies\n", (int)ie_p->id);
|
|
return -1;
|
|
}
|
|
}
|
|
ASN_STRUCT_FREE(asn_DEF_HNBAP_TNLUpdateFailure, tNLUpdateFailure_p);
|
|
return decoded;
|
|
}
|
|
|
|
int hnbap_decode_hnbconfigtransferrequesties(
|
|
HNBAP_HNBConfigTransferRequestIEs_t *hnbConfigTransferRequestIEs,
|
|
ANY_t *any_p) {
|
|
|
|
HNBAP_HNBConfigTransferRequest_t *hNBConfigTransferRequest_p = NULL;
|
|
int i, decoded = 0;
|
|
int tempDecoded = 0;
|
|
assert(any_p != NULL);
|
|
assert(hnbConfigTransferRequestIEs != NULL);
|
|
|
|
memset(hnbConfigTransferRequestIEs, 0, sizeof(HNBAP_HNBConfigTransferRequestIEs_t));
|
|
HNBAP_DEBUG("Decoding message HNBAP_HNBConfigTransferRequestIEs (%s:%d)\n", __FILE__, __LINE__);
|
|
|
|
tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_HNBAP_HNBConfigTransferRequest, (void**)&hNBConfigTransferRequest_p);
|
|
|
|
if (tempDecoded < 0 || hNBConfigTransferRequest_p == NULL) {
|
|
HNBAP_DEBUG("Decoding of message HNBAP_HNBConfigTransferRequestIEs failed\n");
|
|
return -1;
|
|
}
|
|
|
|
for (i = 0; i < hNBConfigTransferRequest_p->hnbConfigTransferRequest_ies.list.count; i++) {
|
|
HNBAP_IE_t *ie_p;
|
|
ie_p = hNBConfigTransferRequest_p->hnbConfigTransferRequest_ies.list.array[i];
|
|
switch(ie_p->id) {
|
|
case HNBAP_ProtocolIE_ID_id_NeighbourInfoRequestList:
|
|
{
|
|
HNBAP_NeighbourInfoRequestList_t *hnbaP_NeighbourInfoRequestList_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_NeighbourInfoRequestList, (void**)&hnbaP_NeighbourInfoRequestList_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE neighbourInfoRequestList failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_NeighbourInfoRequestList, hnbaP_NeighbourInfoRequestList_p);
|
|
memcpy(&hnbConfigTransferRequestIEs->neighbourInfoRequestList, hnbaP_NeighbourInfoRequestList_p, sizeof(HNBAP_NeighbourInfoRequestList_t));
|
|
FREEMEM(hnbaP_NeighbourInfoRequestList_p);
|
|
} break;
|
|
default:
|
|
HNBAP_DEBUG("Unknown protocol IE id (%d) for message hnbconfigtransferrequesties\n", (int)ie_p->id);
|
|
return -1;
|
|
}
|
|
}
|
|
ASN_STRUCT_FREE(asn_DEF_HNBAP_HNBConfigTransferRequest, hNBConfigTransferRequest_p);
|
|
return decoded;
|
|
}
|
|
|
|
int hnbap_decode_hnbconfigtransferresponseies(
|
|
HNBAP_HNBConfigTransferResponseIEs_t *hnbConfigTransferResponseIEs,
|
|
ANY_t *any_p) {
|
|
|
|
HNBAP_HNBConfigTransferResponse_t *hNBConfigTransferResponse_p = NULL;
|
|
int i, decoded = 0;
|
|
int tempDecoded = 0;
|
|
assert(any_p != NULL);
|
|
assert(hnbConfigTransferResponseIEs != NULL);
|
|
|
|
memset(hnbConfigTransferResponseIEs, 0, sizeof(HNBAP_HNBConfigTransferResponseIEs_t));
|
|
HNBAP_DEBUG("Decoding message HNBAP_HNBConfigTransferResponseIEs (%s:%d)\n", __FILE__, __LINE__);
|
|
|
|
tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_HNBAP_HNBConfigTransferResponse, (void**)&hNBConfigTransferResponse_p);
|
|
|
|
if (tempDecoded < 0 || hNBConfigTransferResponse_p == NULL) {
|
|
HNBAP_DEBUG("Decoding of message HNBAP_HNBConfigTransferResponseIEs failed\n");
|
|
return -1;
|
|
}
|
|
|
|
for (i = 0; i < hNBConfigTransferResponse_p->hnbConfigTransferResponse_ies.list.count; i++) {
|
|
HNBAP_IE_t *ie_p;
|
|
ie_p = hNBConfigTransferResponse_p->hnbConfigTransferResponse_ies.list.array[i];
|
|
switch(ie_p->id) {
|
|
case HNBAP_ProtocolIE_ID_id_NeighbourInfoList:
|
|
{
|
|
HNBAP_NeighbourInfoList_t *hnbaP_NeighbourInfoList_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_NeighbourInfoList, (void**)&hnbaP_NeighbourInfoList_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE neighbourInfoList failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_NeighbourInfoList, hnbaP_NeighbourInfoList_p);
|
|
memcpy(&hnbConfigTransferResponseIEs->neighbourInfoList, hnbaP_NeighbourInfoList_p, sizeof(HNBAP_NeighbourInfoList_t));
|
|
FREEMEM(hnbaP_NeighbourInfoList_p);
|
|
} break;
|
|
default:
|
|
HNBAP_DEBUG("Unknown protocol IE id (%d) for message hnbconfigtransferresponseies\n", (int)ie_p->id);
|
|
return -1;
|
|
}
|
|
}
|
|
ASN_STRUCT_FREE(asn_DEF_HNBAP_HNBConfigTransferResponse, hNBConfigTransferResponse_p);
|
|
return decoded;
|
|
}
|
|
|
|
int hnbap_decode_relocationcompleteies(
|
|
HNBAP_RelocationCompleteIEs_t *relocationCompleteIEs,
|
|
ANY_t *any_p) {
|
|
|
|
HNBAP_RelocationComplete_t *relocationComplete_p = NULL;
|
|
int i, decoded = 0;
|
|
int tempDecoded = 0;
|
|
assert(any_p != NULL);
|
|
assert(relocationCompleteIEs != NULL);
|
|
|
|
memset(relocationCompleteIEs, 0, sizeof(HNBAP_RelocationCompleteIEs_t));
|
|
HNBAP_DEBUG("Decoding message HNBAP_RelocationCompleteIEs (%s:%d)\n", __FILE__, __LINE__);
|
|
|
|
tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_HNBAP_RelocationComplete, (void**)&relocationComplete_p);
|
|
|
|
if (tempDecoded < 0 || relocationComplete_p == NULL) {
|
|
HNBAP_DEBUG("Decoding of message HNBAP_RelocationCompleteIEs failed\n");
|
|
return -1;
|
|
}
|
|
|
|
for (i = 0; i < relocationComplete_p->relocationComplete_ies.list.count; i++) {
|
|
HNBAP_IE_t *ie_p;
|
|
ie_p = relocationComplete_p->relocationComplete_ies.list.array[i];
|
|
switch(ie_p->id) {
|
|
case HNBAP_ProtocolIE_ID_id_Context_ID:
|
|
{
|
|
HNBAP_Context_ID_t *hnbaP_ContextID_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_Context_ID, (void**)&hnbaP_ContextID_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE context_ID failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_Context_ID, hnbaP_ContextID_p);
|
|
memcpy(&relocationCompleteIEs->context_ID, hnbaP_ContextID_p, sizeof(HNBAP_Context_ID_t));
|
|
FREEMEM(hnbaP_ContextID_p);
|
|
} break;
|
|
default:
|
|
HNBAP_DEBUG("Unknown protocol IE id (%d) for message relocationcompleteies\n", (int)ie_p->id);
|
|
return -1;
|
|
}
|
|
}
|
|
ASN_STRUCT_FREE(asn_DEF_HNBAP_RelocationComplete, relocationComplete_p);
|
|
return decoded;
|
|
}
|
|
|
|
int hnbap_decode_errorindicationies(
|
|
HNBAP_ErrorIndicationIEs_t *errorIndicationIEs,
|
|
ANY_t *any_p) {
|
|
|
|
HNBAP_ErrorIndication_t *errorIndication_p = NULL;
|
|
int i, decoded = 0;
|
|
int tempDecoded = 0;
|
|
assert(any_p != NULL);
|
|
assert(errorIndicationIEs != NULL);
|
|
|
|
memset(errorIndicationIEs, 0, sizeof(HNBAP_ErrorIndicationIEs_t));
|
|
HNBAP_DEBUG("Decoding message HNBAP_ErrorIndicationIEs (%s:%d)\n", __FILE__, __LINE__);
|
|
|
|
tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_HNBAP_ErrorIndication, (void**)&errorIndication_p);
|
|
|
|
if (tempDecoded < 0 || errorIndication_p == NULL) {
|
|
HNBAP_DEBUG("Decoding of message HNBAP_ErrorIndicationIEs failed\n");
|
|
return -1;
|
|
}
|
|
|
|
for (i = 0; i < errorIndication_p->errorIndication_ies.list.count; i++) {
|
|
HNBAP_IE_t *ie_p;
|
|
ie_p = errorIndication_p->errorIndication_ies.list.array[i];
|
|
switch(ie_p->id) {
|
|
case HNBAP_ProtocolIE_ID_id_Cause:
|
|
{
|
|
HNBAP_Cause_t *hnbaP_Cause_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_Cause, (void**)&hnbaP_Cause_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE cause failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_Cause, hnbaP_Cause_p);
|
|
memcpy(&errorIndicationIEs->cause, hnbaP_Cause_p, sizeof(HNBAP_Cause_t));
|
|
FREEMEM(hnbaP_Cause_p);
|
|
} break;
|
|
/* Optional field */
|
|
case HNBAP_ProtocolIE_ID_id_CriticalityDiagnostics:
|
|
{
|
|
HNBAP_CriticalityDiagnostics_t *hnbaP_CriticalityDiagnostics_p = NULL;
|
|
errorIndicationIEs->presenceMask |= ERRORINDICATIONIES_HNBAP_CRITICALITYDIAGNOSTICS_PRESENT;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_CriticalityDiagnostics, (void**)&hnbaP_CriticalityDiagnostics_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_CriticalityDiagnostics, hnbaP_CriticalityDiagnostics_p);
|
|
memcpy(&errorIndicationIEs->criticalityDiagnostics, hnbaP_CriticalityDiagnostics_p, sizeof(HNBAP_CriticalityDiagnostics_t));
|
|
FREEMEM(hnbaP_CriticalityDiagnostics_p);
|
|
} break;
|
|
default:
|
|
HNBAP_DEBUG("Unknown protocol IE id (%d) for message errorindicationies\n", (int)ie_p->id);
|
|
return -1;
|
|
}
|
|
}
|
|
ASN_STRUCT_FREE(asn_DEF_HNBAP_ErrorIndication, errorIndication_p);
|
|
return decoded;
|
|
}
|
|
|
|
int hnbap_decode_u_rntiqueryrequesties(
|
|
HNBAP_U_RNTIQueryRequestIEs_t *u_RNTIQueryRequestIEs,
|
|
ANY_t *any_p) {
|
|
|
|
HNBAP_U_RNTIQueryRequest_t *u_RNTIQueryRequest_p = NULL;
|
|
int i, decoded = 0;
|
|
int tempDecoded = 0;
|
|
assert(any_p != NULL);
|
|
assert(u_RNTIQueryRequestIEs != NULL);
|
|
|
|
memset(u_RNTIQueryRequestIEs, 0, sizeof(HNBAP_U_RNTIQueryRequestIEs_t));
|
|
HNBAP_DEBUG("Decoding message HNBAP_U_RNTIQueryRequestIEs (%s:%d)\n", __FILE__, __LINE__);
|
|
|
|
tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_HNBAP_U_RNTIQueryRequest, (void**)&u_RNTIQueryRequest_p);
|
|
|
|
if (tempDecoded < 0 || u_RNTIQueryRequest_p == NULL) {
|
|
HNBAP_DEBUG("Decoding of message HNBAP_U_RNTIQueryRequestIEs failed\n");
|
|
return -1;
|
|
}
|
|
|
|
for (i = 0; i < u_RNTIQueryRequest_p->u_RNTIQueryRequest_ies.list.count; i++) {
|
|
HNBAP_IE_t *ie_p;
|
|
ie_p = u_RNTIQueryRequest_p->u_RNTIQueryRequest_ies.list.array[i];
|
|
switch(ie_p->id) {
|
|
case HNBAP_ProtocolIE_ID_id_U_RNTI:
|
|
{
|
|
HNBAP_U_RNTI_t *hnbap_urnti_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_U_RNTI, (void**)&hnbap_urnti_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE u_rnti failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_U_RNTI, hnbap_urnti_p);
|
|
memcpy(&u_RNTIQueryRequestIEs->u_rnti, hnbap_urnti_p, sizeof(HNBAP_U_RNTI_t));
|
|
FREEMEM(hnbap_urnti_p);
|
|
} break;
|
|
default:
|
|
HNBAP_DEBUG("Unknown protocol IE id (%d) for message u_rntiqueryrequesties\n", (int)ie_p->id);
|
|
return -1;
|
|
}
|
|
}
|
|
ASN_STRUCT_FREE(asn_DEF_HNBAP_U_RNTIQueryRequest, u_RNTIQueryRequest_p);
|
|
return decoded;
|
|
}
|
|
|
|
int hnbap_decode_u_rntiqueryresponseies(
|
|
HNBAP_U_RNTIQueryResponseIEs_t *u_RNTIQueryResponseIEs,
|
|
ANY_t *any_p) {
|
|
|
|
HNBAP_U_RNTIQueryResponse_t *u_RNTIQueryResponse_p = NULL;
|
|
int i, decoded = 0;
|
|
int tempDecoded = 0;
|
|
assert(any_p != NULL);
|
|
assert(u_RNTIQueryResponseIEs != NULL);
|
|
|
|
memset(u_RNTIQueryResponseIEs, 0, sizeof(HNBAP_U_RNTIQueryResponseIEs_t));
|
|
HNBAP_DEBUG("Decoding message HNBAP_U_RNTIQueryResponseIEs (%s:%d)\n", __FILE__, __LINE__);
|
|
|
|
tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_HNBAP_U_RNTIQueryResponse, (void**)&u_RNTIQueryResponse_p);
|
|
|
|
if (tempDecoded < 0 || u_RNTIQueryResponse_p == NULL) {
|
|
HNBAP_DEBUG("Decoding of message HNBAP_U_RNTIQueryResponseIEs failed\n");
|
|
return -1;
|
|
}
|
|
|
|
for (i = 0; i < u_RNTIQueryResponse_p->u_RNTIQueryResponse_ies.list.count; i++) {
|
|
HNBAP_IE_t *ie_p;
|
|
ie_p = u_RNTIQueryResponse_p->u_RNTIQueryResponse_ies.list.array[i];
|
|
switch(ie_p->id) {
|
|
case HNBAP_ProtocolIE_ID_id_HNB_GWResponse:
|
|
{
|
|
HNBAP_HNB_GWResponse_t *hnbaP_HNBGWResponse_p = NULL;
|
|
tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_HNBAP_HNB_GWResponse, (void**)&hnbaP_HNBGWResponse_p);
|
|
if (tempDecoded < 0) {
|
|
HNBAP_DEBUG("Decoding of IE hnB_GWResponse failed\n");
|
|
return -1;
|
|
}
|
|
decoded += tempDecoded;
|
|
if (asn1_xer_print)
|
|
xer_fprint(stdout, &asn_DEF_HNBAP_HNB_GWResponse, hnbaP_HNBGWResponse_p);
|
|
memcpy(&u_RNTIQueryResponseIEs->hnB_GWResponse, hnbaP_HNBGWResponse_p, sizeof(HNBAP_HNB_GWResponse_t));
|
|
FREEMEM(hnbaP_HNBGWResponse_p);
|
|
} break;
|
|
default:
|
|
HNBAP_DEBUG("Unknown protocol IE id (%d) for message u_rntiqueryresponseies\n", (int)ie_p->id);
|
|
return -1;
|
|
}
|
|
}
|
|
ASN_STRUCT_FREE(asn_DEF_HNBAP_U_RNTIQueryResponse, u_RNTIQueryResponse_p);
|
|
return decoded;
|
|
}
|
|
|
|
int hnbap_free_hnbregisterrequesties(
|
|
HNBAP_HNBRegisterRequestIEs_t *hnbRegisterRequestIEs) {
|
|
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_HNB_Identity, &hnbRegisterRequestIEs->hnB_Identity);
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_HNB_Location_Information, &hnbRegisterRequestIEs->hnB_Location_Information);
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_PLMNidentity, &hnbRegisterRequestIEs->plmNidentity);
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_CellIdentity, &hnbRegisterRequestIEs->cellIdentity);
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_LAC, &hnbRegisterRequestIEs->lac);
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_RAC, &hnbRegisterRequestIEs->rac);
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_SAC, &hnbRegisterRequestIEs->sac);
|
|
/* Optional field */
|
|
if ((hnbRegisterRequestIEs->presenceMask & HNBREGISTERREQUESTIES_HNBAP_CSG_ID_PRESENT)
|
|
== HNBREGISTERREQUESTIES_HNBAP_CSG_ID_PRESENT)
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_CSG_ID, &hnbRegisterRequestIEs->csg_id);
|
|
return 0;
|
|
}
|
|
|
|
int hnbap_free_hnbregisteraccepties(
|
|
HNBAP_HNBRegisterAcceptIEs_t *hnbRegisterAcceptIEs) {
|
|
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_RNC_ID, &hnbRegisterAcceptIEs->rnc_id);
|
|
return 0;
|
|
}
|
|
|
|
int hnbap_free_hnbregisterrejecties(
|
|
HNBAP_HNBRegisterRejectIEs_t *hnbRegisterRejectIEs) {
|
|
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_Cause, &hnbRegisterRejectIEs->cause);
|
|
/* Optional field */
|
|
if ((hnbRegisterRejectIEs->presenceMask & HNBREGISTERREJECTIES_HNBAP_CRITICALITYDIAGNOSTICS_PRESENT)
|
|
== HNBREGISTERREJECTIES_HNBAP_CRITICALITYDIAGNOSTICS_PRESENT)
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_CriticalityDiagnostics, &hnbRegisterRejectIEs->criticalityDiagnostics);
|
|
/* Conditional field */
|
|
if ((hnbRegisterRejectIEs->presenceMask & HNBREGISTERREJECTIES_HNBAP_BACKOFFTIMER_PRESENT)
|
|
== HNBREGISTERREJECTIES_HNBAP_BACKOFFTIMER_PRESENT)
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_BackoffTimer, &hnbRegisterRejectIEs->backoffTimer);
|
|
return 0;
|
|
}
|
|
|
|
int hnbap_free_hnbde_registeries(
|
|
HNBAP_HNBDe_RegisterIEs_t *hnbDe_RegisterIEs) {
|
|
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_Cause, &hnbDe_RegisterIEs->cause);
|
|
/* Conditional field */
|
|
if ((hnbDe_RegisterIEs->presenceMask & HNBDE_REGISTERIES_HNBAP_BACKOFFTIMER_PRESENT)
|
|
== HNBDE_REGISTERIES_HNBAP_BACKOFFTIMER_PRESENT)
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_BackoffTimer, &hnbDe_RegisterIEs->backoffTimer);
|
|
return 0;
|
|
}
|
|
|
|
int hnbap_free_ueregisterrequesties(
|
|
HNBAP_UERegisterRequestIEs_t *ueRegisterRequestIEs) {
|
|
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_UE_Identity, &ueRegisterRequestIEs->uE_Identity);
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_Registration_Cause, &ueRegisterRequestIEs->registration_Cause);
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_UE_Capabilities, &ueRegisterRequestIEs->uE_Capabilities);
|
|
return 0;
|
|
}
|
|
|
|
int hnbap_free_ueregisteraccepties(
|
|
HNBAP_UERegisterAcceptIEs_t *ueRegisterAcceptIEs) {
|
|
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_UE_Identity, &ueRegisterAcceptIEs->uE_Identity);
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_Context_ID, &ueRegisterAcceptIEs->context_ID);
|
|
return 0;
|
|
}
|
|
|
|
int hnbap_free_ueregisterrejecties(
|
|
HNBAP_UERegisterRejectIEs_t *ueRegisterRejectIEs) {
|
|
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_UE_Identity, &ueRegisterRejectIEs->uE_Identity);
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_Cause, &ueRegisterRejectIEs->cause);
|
|
/* Optional field */
|
|
if ((ueRegisterRejectIEs->presenceMask & UEREGISTERREJECTIES_HNBAP_CRITICALITYDIAGNOSTICS_PRESENT)
|
|
== UEREGISTERREJECTIES_HNBAP_CRITICALITYDIAGNOSTICS_PRESENT)
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_CriticalityDiagnostics, &ueRegisterRejectIEs->criticalityDiagnostics);
|
|
return 0;
|
|
}
|
|
|
|
int hnbap_free_uede_registeries(
|
|
HNBAP_UEDe_RegisterIEs_t *ueDe_RegisterIEs) {
|
|
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_Context_ID, &ueDe_RegisterIEs->context_ID);
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_Cause, &ueDe_RegisterIEs->cause);
|
|
return 0;
|
|
}
|
|
|
|
int hnbap_free_csgmembershipupdateies(
|
|
HNBAP_CSGMembershipUpdateIEs_t *csgMembershipUpdateIEs) {
|
|
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_Context_ID, &csgMembershipUpdateIEs->context_ID);
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_CSGMembershipStatus, &csgMembershipUpdateIEs->csgMembershipStatus);
|
|
return 0;
|
|
}
|
|
|
|
int hnbap_free_tnlupdaterequesties(
|
|
HNBAP_TNLUpdateRequestIEs_t *tnlUpdateRequestIEs) {
|
|
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_Context_ID, &tnlUpdateRequestIEs->context_ID);
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_RABList, &tnlUpdateRequestIEs->rabList);
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_Update_cause, &tnlUpdateRequestIEs->update_cause);
|
|
return 0;
|
|
}
|
|
|
|
int hnbap_free_tnlupdateresponseies(
|
|
HNBAP_TNLUpdateResponseIEs_t *tnlUpdateResponseIEs) {
|
|
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_Context_ID, &tnlUpdateResponseIEs->context_ID);
|
|
return 0;
|
|
}
|
|
|
|
int hnbap_free_tnlupdatefailureies(
|
|
HNBAP_TNLUpdateFailureIEs_t *tnlUpdateFailureIEs) {
|
|
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_Context_ID, &tnlUpdateFailureIEs->context_ID);
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_Cause, &tnlUpdateFailureIEs->cause);
|
|
/* Optional field */
|
|
if ((tnlUpdateFailureIEs->presenceMask & TNLUPDATEFAILUREIES_HNBAP_CRITICALITYDIAGNOSTICS_PRESENT)
|
|
== TNLUPDATEFAILUREIES_HNBAP_CRITICALITYDIAGNOSTICS_PRESENT)
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_CriticalityDiagnostics, &tnlUpdateFailureIEs->criticalityDiagnostics);
|
|
return 0;
|
|
}
|
|
|
|
int hnbap_free_hnbconfigtransferrequesties(
|
|
HNBAP_HNBConfigTransferRequestIEs_t *hnbConfigTransferRequestIEs) {
|
|
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_NeighbourInfoRequestList, &hnbConfigTransferRequestIEs->neighbourInfoRequestList);
|
|
return 0;
|
|
}
|
|
|
|
int hnbap_free_hnbconfigtransferresponseies(
|
|
HNBAP_HNBConfigTransferResponseIEs_t *hnbConfigTransferResponseIEs) {
|
|
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_NeighbourInfoList, &hnbConfigTransferResponseIEs->neighbourInfoList);
|
|
return 0;
|
|
}
|
|
|
|
int hnbap_free_relocationcompleteies(
|
|
HNBAP_RelocationCompleteIEs_t *relocationCompleteIEs) {
|
|
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_Context_ID, &relocationCompleteIEs->context_ID);
|
|
return 0;
|
|
}
|
|
|
|
int hnbap_free_errorindicationies(
|
|
HNBAP_ErrorIndicationIEs_t *errorIndicationIEs) {
|
|
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_Cause, &errorIndicationIEs->cause);
|
|
/* Optional field */
|
|
if ((errorIndicationIEs->presenceMask & ERRORINDICATIONIES_HNBAP_CRITICALITYDIAGNOSTICS_PRESENT)
|
|
== ERRORINDICATIONIES_HNBAP_CRITICALITYDIAGNOSTICS_PRESENT)
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_CriticalityDiagnostics, &errorIndicationIEs->criticalityDiagnostics);
|
|
return 0;
|
|
}
|
|
|
|
int hnbap_free_u_rntiqueryrequesties(
|
|
HNBAP_U_RNTIQueryRequestIEs_t *u_RNTIQueryRequestIEs) {
|
|
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_U_RNTI, &u_RNTIQueryRequestIEs->u_rnti);
|
|
return 0;
|
|
}
|
|
|
|
int hnbap_free_u_rntiqueryresponseies(
|
|
HNBAP_U_RNTIQueryResponseIEs_t *u_RNTIQueryResponseIEs) {
|
|
|
|
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBAP_HNB_GWResponse, &u_RNTIQueryResponseIEs->hnB_GWResponse);
|
|
return 0;
|
|
}
|
|
|