diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2022-02-11 14:43:09 +0100 |
---|---|---|
committer | Philipp Maier <pmaier@sysmocom.de> | 2022-02-14 16:44:20 +0100 |
commit | 55e573ca33011303b942b0b457d35a5ef2b01de9 (patch) | |
tree | 52339e366e33167595805a5ac4a0e6e4edf53bac | |
parent | 7755801cf5a94d3d4d78fd921d8ca734f40b138c (diff) |
ranap_common: add decoder for RAB-ReleaseList
There is currently no decoder to decode RAB-ReleaseList objects properly.
Lets add one.
Change-Id: I4fc88402a863bc1482947985f759d3a26eea4164
Related: OS#5152
-rw-r--r-- | include/osmocom/ranap/ranap_common.h | 5 | ||||
-rw-r--r-- | src/ranap_common.c | 23 |
2 files changed, 28 insertions, 0 deletions
diff --git a/include/osmocom/ranap/ranap_common.h b/include/osmocom/ranap/ranap_common.h index 50d15ed..5b052f0 100644 --- a/include/osmocom/ranap/ranap_common.h +++ b/include/osmocom/ranap/ranap_common.h @@ -653,6 +653,11 @@ int ranap_decode_rab_faileditemies_fromlist( ANY_t *any_p); /* There is no generated decoder available, this is a custom one */ +int ranap_decode_rab_releaseitemies_fromlist( + RANAP_RAB_ReleaseItemIEs_t *raB_ReleaseItemIEs, + ANY_t *any_p); + +/* There is no generated decoder available, this is a custom one */ int ranap_decode_rab_setupormodifyitemfirst( RANAP_RAB_SetupOrModifyItemFirst_t *raB_SetupOrModifyItemFirst, ANY_t *any_p); diff --git a/src/ranap_common.c b/src/ranap_common.c index 362e639..b491614 100644 --- a/src/ranap_common.c +++ b/src/ranap_common.c @@ -605,6 +605,29 @@ int ranap_decode_rab_faileditemies_fromlist(RANAP_RAB_FailedItemIEs_t *raB_Faile return decoded; } +int ranap_decode_rab_releaseitemies_fromlist(RANAP_RAB_ReleaseItemIEs_t *raB_ReleaseItemIEs, ANY_t *any_p) +{ + RANAP_RAB_FailedItem_t *ranaP_RABReleaseItem_p = NULL; + int decoded; + + assert(any_p != NULL); + assert(raB_ReleaseItemIEs != NULL); + + memset(raB_ReleaseItemIEs, 0, sizeof(RANAP_RAB_ReleaseItemIEs_t)); + RANAP_DEBUG("Decoding message RANAP_RAB_ReleaseItemIEs (%s:%d)\n", __FILE__, __LINE__); + decoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_ReleaseItem, (void **)&ranaP_RABReleaseItem_p); + if (decoded < 0) { + LOGP(DRANAP, LOGL_ERROR, "Decoding of IE raB_ReleaseItem failed\n"); + return -1; + } + if (asn1_xer_print) + xer_fprint(stdout, &asn_DEF_RANAP_RAB_ReleaseItem, ranaP_RABReleaseItem_p); + memcpy(&raB_ReleaseItemIEs->raB_ReleaseItem, ranaP_RABReleaseItem_p, sizeof(RANAP_RAB_ReleaseItem_t)); + FREEMEM(ranaP_RABReleaseItem_p); + + return decoded; +} + int ranap_decode_rab_setupormodifyitemfirst( RANAP_RAB_SetupOrModifyItemFirst_t *raB_SetupOrModifyItemFirst, ANY_t *any_p) |