osmo-iuh-generated-files/hnbap_encoder.c

520 lines
19 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_encode_hnbregisterrequesties(
HNBAP_HNBRegisterRequest_t *hnbRegisterRequest,
HNBAP_HNBRegisterRequestIEs_t *hnbRegisterRequestIEs) {
HNBAP_IE_t *ie;
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_HNB_Identity,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_HNB_Identity,
&hnbRegisterRequestIEs->hnB_Identity)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&hnbRegisterRequest->hnbRegisterRequest_ies.list, ie);
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_HNB_Location_Information,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_HNB_Location_Information,
&hnbRegisterRequestIEs->hnB_Location_Information)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&hnbRegisterRequest->hnbRegisterRequest_ies.list, ie);
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_PLMNidentity,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_PLMNidentity,
&hnbRegisterRequestIEs->plmNidentity)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&hnbRegisterRequest->hnbRegisterRequest_ies.list, ie);
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_CellIdentity,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_CellIdentity,
&hnbRegisterRequestIEs->cellIdentity)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&hnbRegisterRequest->hnbRegisterRequest_ies.list, ie);
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_LAC,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_LAC,
&hnbRegisterRequestIEs->lac)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&hnbRegisterRequest->hnbRegisterRequest_ies.list, ie);
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_RAC,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_RAC,
&hnbRegisterRequestIEs->rac)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&hnbRegisterRequest->hnbRegisterRequest_ies.list, ie);
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_SAC,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_SAC,
&hnbRegisterRequestIEs->sac)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&hnbRegisterRequest->hnbRegisterRequest_ies.list, ie);
/* Optional field */
if ((hnbRegisterRequestIEs->presenceMask & HNBREGISTERREQUESTIES_HNBAP_CSG_ID_PRESENT)
== HNBREGISTERREQUESTIES_HNBAP_CSG_ID_PRESENT) {
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_CSG_ID,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_CSG_ID,
&hnbRegisterRequestIEs->csg_id)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&hnbRegisterRequest->hnbRegisterRequest_ies.list, ie);
}
return 0;
}
int hnbap_encode_hnbregisteraccepties(
HNBAP_HNBRegisterAccept_t *hnbRegisterAccept,
HNBAP_HNBRegisterAcceptIEs_t *hnbRegisterAcceptIEs) {
HNBAP_IE_t *ie;
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_RNC_ID,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_RNC_ID,
&hnbRegisterAcceptIEs->rnc_id)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&hnbRegisterAccept->hnbRegisterAccept_ies.list, ie);
return 0;
}
int hnbap_encode_hnbregisterrejecties(
HNBAP_HNBRegisterReject_t *hnbRegisterReject,
HNBAP_HNBRegisterRejectIEs_t *hnbRegisterRejectIEs) {
HNBAP_IE_t *ie;
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_Cause,
HNBAP_Criticality_ignore,
&asn_DEF_HNBAP_Cause,
&hnbRegisterRejectIEs->cause)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&hnbRegisterReject->hnbRegisterReject_ies.list, ie);
/* Optional field */
if ((hnbRegisterRejectIEs->presenceMask & HNBREGISTERREJECTIES_HNBAP_CRITICALITYDIAGNOSTICS_PRESENT)
== HNBREGISTERREJECTIES_HNBAP_CRITICALITYDIAGNOSTICS_PRESENT) {
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_CriticalityDiagnostics,
HNBAP_Criticality_ignore,
&asn_DEF_HNBAP_CriticalityDiagnostics,
&hnbRegisterRejectIEs->criticalityDiagnostics)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&hnbRegisterReject->hnbRegisterReject_ies.list, ie);
}
/* Conditional field */
if ((hnbRegisterRejectIEs->presenceMask & HNBREGISTERREJECTIES_HNBAP_BACKOFFTIMER_PRESENT)
== HNBREGISTERREJECTIES_HNBAP_BACKOFFTIMER_PRESENT) {
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_BackoffTimer,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_BackoffTimer,
&hnbRegisterRejectIEs->backoffTimer)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&hnbRegisterReject->hnbRegisterReject_ies.list, ie);
}
return 0;
}
int hnbap_encode_hnbde_registeries(
HNBAP_HNBDe_Register_t *hnbDe_Register,
HNBAP_HNBDe_RegisterIEs_t *hnbDe_RegisterIEs) {
HNBAP_IE_t *ie;
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_Cause,
HNBAP_Criticality_ignore,
&asn_DEF_HNBAP_Cause,
&hnbDe_RegisterIEs->cause)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&hnbDe_Register->hnbDe_Register_ies.list, ie);
/* Conditional field */
if ((hnbDe_RegisterIEs->presenceMask & HNBDE_REGISTERIES_HNBAP_BACKOFFTIMER_PRESENT)
== HNBDE_REGISTERIES_HNBAP_BACKOFFTIMER_PRESENT) {
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_BackoffTimer,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_BackoffTimer,
&hnbDe_RegisterIEs->backoffTimer)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&hnbDe_Register->hnbDe_Register_ies.list, ie);
}
return 0;
}
int hnbap_encode_ueregisterrequesties(
HNBAP_UERegisterRequest_t *ueRegisterRequest,
HNBAP_UERegisterRequestIEs_t *ueRegisterRequestIEs) {
HNBAP_IE_t *ie;
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_UE_Identity,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_UE_Identity,
&ueRegisterRequestIEs->uE_Identity)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&ueRegisterRequest->ueRegisterRequest_ies.list, ie);
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_Registration_Cause,
HNBAP_Criticality_ignore,
&asn_DEF_HNBAP_Registration_Cause,
&ueRegisterRequestIEs->registration_Cause)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&ueRegisterRequest->ueRegisterRequest_ies.list, ie);
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_UE_Capabilities,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_UE_Capabilities,
&ueRegisterRequestIEs->uE_Capabilities)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&ueRegisterRequest->ueRegisterRequest_ies.list, ie);
return 0;
}
int hnbap_encode_ueregisteraccepties(
HNBAP_UERegisterAccept_t *ueRegisterAccept,
HNBAP_UERegisterAcceptIEs_t *ueRegisterAcceptIEs) {
HNBAP_IE_t *ie;
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_UE_Identity,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_UE_Identity,
&ueRegisterAcceptIEs->uE_Identity)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&ueRegisterAccept->ueRegisterAccept_ies.list, ie);
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_Context_ID,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_Context_ID,
&ueRegisterAcceptIEs->context_ID)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&ueRegisterAccept->ueRegisterAccept_ies.list, ie);
return 0;
}
int hnbap_encode_ueregisterrejecties(
HNBAP_UERegisterReject_t *ueRegisterReject,
HNBAP_UERegisterRejectIEs_t *ueRegisterRejectIEs) {
HNBAP_IE_t *ie;
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_UE_Identity,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_UE_Identity,
&ueRegisterRejectIEs->uE_Identity)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&ueRegisterReject->ueRegisterReject_ies.list, ie);
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_Cause,
HNBAP_Criticality_ignore,
&asn_DEF_HNBAP_Cause,
&ueRegisterRejectIEs->cause)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&ueRegisterReject->ueRegisterReject_ies.list, ie);
/* Optional field */
if ((ueRegisterRejectIEs->presenceMask & UEREGISTERREJECTIES_HNBAP_CRITICALITYDIAGNOSTICS_PRESENT)
== UEREGISTERREJECTIES_HNBAP_CRITICALITYDIAGNOSTICS_PRESENT) {
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_CriticalityDiagnostics,
HNBAP_Criticality_ignore,
&asn_DEF_HNBAP_CriticalityDiagnostics,
&ueRegisterRejectIEs->criticalityDiagnostics)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&ueRegisterReject->ueRegisterReject_ies.list, ie);
}
return 0;
}
int hnbap_encode_uede_registeries(
HNBAP_UEDe_Register_t *ueDe_Register,
HNBAP_UEDe_RegisterIEs_t *ueDe_RegisterIEs) {
HNBAP_IE_t *ie;
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_Context_ID,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_Context_ID,
&ueDe_RegisterIEs->context_ID)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&ueDe_Register->ueDe_Register_ies.list, ie);
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_Cause,
HNBAP_Criticality_ignore,
&asn_DEF_HNBAP_Cause,
&ueDe_RegisterIEs->cause)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&ueDe_Register->ueDe_Register_ies.list, ie);
return 0;
}
int hnbap_encode_csgmembershipupdateies(
HNBAP_CSGMembershipUpdate_t *csgMembershipUpdate,
HNBAP_CSGMembershipUpdateIEs_t *csgMembershipUpdateIEs) {
HNBAP_IE_t *ie;
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_Context_ID,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_Context_ID,
&csgMembershipUpdateIEs->context_ID)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&csgMembershipUpdate->csgMembershipUpdate_ies.list, ie);
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_CSGMembershipStatus,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_CSGMembershipStatus,
&csgMembershipUpdateIEs->csgMembershipStatus)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&csgMembershipUpdate->csgMembershipUpdate_ies.list, ie);
return 0;
}
int hnbap_encode_tnlupdaterequesties(
HNBAP_TNLUpdateRequest_t *tnlUpdateRequest,
HNBAP_TNLUpdateRequestIEs_t *tnlUpdateRequestIEs) {
HNBAP_IE_t *ie;
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_Context_ID,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_Context_ID,
&tnlUpdateRequestIEs->context_ID)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&tnlUpdateRequest->tnlUpdateRequest_ies.list, ie);
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_RABList,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_RABList,
&tnlUpdateRequestIEs->rabList)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&tnlUpdateRequest->tnlUpdateRequest_ies.list, ie);
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_Update_cause,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_Update_cause,
&tnlUpdateRequestIEs->update_cause)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&tnlUpdateRequest->tnlUpdateRequest_ies.list, ie);
return 0;
}
int hnbap_encode_tnlupdateresponseies(
HNBAP_TNLUpdateResponse_t *tnlUpdateResponse,
HNBAP_TNLUpdateResponseIEs_t *tnlUpdateResponseIEs) {
HNBAP_IE_t *ie;
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_Context_ID,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_Context_ID,
&tnlUpdateResponseIEs->context_ID)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&tnlUpdateResponse->tnlUpdateResponse_ies.list, ie);
return 0;
}
int hnbap_encode_tnlupdatefailureies(
HNBAP_TNLUpdateFailure_t *tnlUpdateFailure,
HNBAP_TNLUpdateFailureIEs_t *tnlUpdateFailureIEs) {
HNBAP_IE_t *ie;
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_Context_ID,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_Context_ID,
&tnlUpdateFailureIEs->context_ID)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&tnlUpdateFailure->tnlUpdateFailure_ies.list, ie);
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_Cause,
HNBAP_Criticality_ignore,
&asn_DEF_HNBAP_Cause,
&tnlUpdateFailureIEs->cause)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&tnlUpdateFailure->tnlUpdateFailure_ies.list, ie);
/* Optional field */
if ((tnlUpdateFailureIEs->presenceMask & TNLUPDATEFAILUREIES_HNBAP_CRITICALITYDIAGNOSTICS_PRESENT)
== TNLUPDATEFAILUREIES_HNBAP_CRITICALITYDIAGNOSTICS_PRESENT) {
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_CriticalityDiagnostics,
HNBAP_Criticality_ignore,
&asn_DEF_HNBAP_CriticalityDiagnostics,
&tnlUpdateFailureIEs->criticalityDiagnostics)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&tnlUpdateFailure->tnlUpdateFailure_ies.list, ie);
}
return 0;
}
int hnbap_encode_hnbconfigtransferrequesties(
HNBAP_HNBConfigTransferRequest_t *hnbConfigTransferRequest,
HNBAP_HNBConfigTransferRequestIEs_t *hnbConfigTransferRequestIEs) {
HNBAP_IE_t *ie;
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_NeighbourInfoRequestList,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_NeighbourInfoRequestList,
&hnbConfigTransferRequestIEs->neighbourInfoRequestList)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&hnbConfigTransferRequest->hnbConfigTransferRequest_ies.list, ie);
return 0;
}
int hnbap_encode_hnbconfigtransferresponseies(
HNBAP_HNBConfigTransferResponse_t *hnbConfigTransferResponse,
HNBAP_HNBConfigTransferResponseIEs_t *hnbConfigTransferResponseIEs) {
HNBAP_IE_t *ie;
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_NeighbourInfoList,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_NeighbourInfoList,
&hnbConfigTransferResponseIEs->neighbourInfoList)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&hnbConfigTransferResponse->hnbConfigTransferResponse_ies.list, ie);
return 0;
}
int hnbap_encode_relocationcompleteies(
HNBAP_RelocationComplete_t *relocationComplete,
HNBAP_RelocationCompleteIEs_t *relocationCompleteIEs) {
HNBAP_IE_t *ie;
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_Context_ID,
HNBAP_Criticality_ignore,
&asn_DEF_HNBAP_Context_ID,
&relocationCompleteIEs->context_ID)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&relocationComplete->relocationComplete_ies.list, ie);
return 0;
}
int hnbap_encode_errorindicationies(
HNBAP_ErrorIndication_t *errorIndication,
HNBAP_ErrorIndicationIEs_t *errorIndicationIEs) {
HNBAP_IE_t *ie;
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_Cause,
HNBAP_Criticality_ignore,
&asn_DEF_HNBAP_Cause,
&errorIndicationIEs->cause)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&errorIndication->errorIndication_ies.list, ie);
/* Optional field */
if ((errorIndicationIEs->presenceMask & ERRORINDICATIONIES_HNBAP_CRITICALITYDIAGNOSTICS_PRESENT)
== ERRORINDICATIONIES_HNBAP_CRITICALITYDIAGNOSTICS_PRESENT) {
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_CriticalityDiagnostics,
HNBAP_Criticality_ignore,
&asn_DEF_HNBAP_CriticalityDiagnostics,
&errorIndicationIEs->criticalityDiagnostics)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&errorIndication->errorIndication_ies.list, ie);
}
return 0;
}
int hnbap_encode_u_rntiqueryrequesties(
HNBAP_U_RNTIQueryRequest_t *u_RNTIQueryRequest,
HNBAP_U_RNTIQueryRequestIEs_t *u_RNTIQueryRequestIEs) {
HNBAP_IE_t *ie;
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_U_RNTI,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_U_RNTI,
&u_RNTIQueryRequestIEs->u_rnti)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&u_RNTIQueryRequest->u_RNTIQueryRequest_ies.list, ie);
return 0;
}
int hnbap_encode_u_rntiqueryresponseies(
HNBAP_U_RNTIQueryResponse_t *u_RNTIQueryResponse,
HNBAP_U_RNTIQueryResponseIEs_t *u_RNTIQueryResponseIEs) {
HNBAP_IE_t *ie;
if ((ie = hnbap_new_ie(HNBAP_ProtocolIE_ID_id_HNB_GWResponse,
HNBAP_Criticality_reject,
&asn_DEF_HNBAP_HNB_GWResponse,
&u_RNTIQueryResponseIEs->hnB_GWResponse)) == NULL) {
return -1;
}
ASN_SEQUENCE_ADD(&u_RNTIQueryResponse->u_RNTIQueryResponse_ies.list, ie);
return 0;
}