aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2022-02-11 14:43:09 +0100
committerPhilipp Maier <pmaier@sysmocom.de>2022-02-14 16:44:20 +0100
commit55e573ca33011303b942b0b457d35a5ef2b01de9 (patch)
tree52339e366e33167595805a5ac4a0e6e4edf53bac
parent7755801cf5a94d3d4d78fd921d8ca734f40b138c (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.h5
-rw-r--r--src/ranap_common.c23
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)