aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2015-12-16 20:30:11 +0100
committerHarald Welte <laforge@gnumonks.org>2015-12-16 20:30:11 +0100
commitc16117a22cff56ba794fae71f3e948cc5446342c (patch)
treeda5a864f2916113996f5110f24eac0181d0fe33c /src
parent8dacb07bafad4e2b2966453f9eb97696c0747124 (diff)
Add ranap_generate_outcome() function
Ranap has not only successsful and unsuccessful outcome, but also an unqualified general 'outcome'.
Diffstat (limited to 'src')
-rw-r--r--src/ranap_common.c30
-rw-r--r--src/ranap_common.h6
2 files changed, 33 insertions, 3 deletions
diff --git a/src/ranap_common.c b/src/ranap_common.c
index 0e2ef6a..8c212d3 100644
--- a/src/ranap_common.c
+++ b/src/ranap_common.c
@@ -112,9 +112,32 @@ struct msgb *ranap_generate_unsuccessful_outcome(
memset(&pdu, 0, sizeof(pdu));
pdu.present = RANAP_RANAP_PDU_PR_unsuccessfulOutcome;
- pdu.choice.successfulOutcome.procedureCode = procedureCode;
- pdu.choice.successfulOutcome.criticality = criticality;
- rc = ANY_fromType_aper(&pdu.choice.successfulOutcome.value, td, sptr);
+ pdu.choice.unsuccessfulOutcome.procedureCode = procedureCode;
+ pdu.choice.unsuccessfulOutcome.criticality = criticality;
+ rc = ANY_fromType_aper(&pdu.choice.unsuccessfulOutcome.value, td, sptr);
+ if (rc < 0) {
+ LOGP(DMAIN, LOGL_ERROR, "Error in ANY_fromType_aper\n");
+ return NULL;
+ }
+
+ return _ranap_gen_msg(&pdu);
+}
+
+struct msgb *ranap_generate_outcome(
+ e_RANAP_ProcedureCode procedureCode,
+ RANAP_Criticality_t criticality,
+ asn_TYPE_descriptor_t * td,
+ void *sptr)
+{
+ RANAP_RANAP_PDU_t pdu;
+ int rc;
+
+ memset(&pdu, 0, sizeof(pdu));
+
+ pdu.present = RANAP_RANAP_PDU_PR_outcome;
+ pdu.choice.outcome.procedureCode = procedureCode;
+ pdu.choice.outcome.criticality = criticality;
+ rc = ANY_fromType_aper(&pdu.choice.outcome.value, td, sptr);
if (rc < 0) {
LOGP(DMAIN, LOGL_ERROR, "Error in ANY_fromType_aper\n");
return NULL;
@@ -123,6 +146,7 @@ struct msgb *ranap_generate_unsuccessful_outcome(
return _ranap_gen_msg(&pdu);
}
+
RANAP_IE_t *ranap_new_ie(RANAP_ProtocolIE_ID_t id,
RANAP_Criticality_t criticality,
asn_TYPE_descriptor_t * type, void *sptr)
diff --git a/src/ranap_common.h b/src/ranap_common.h
index 84b4976..32a4436 100644
--- a/src/ranap_common.h
+++ b/src/ranap_common.h
@@ -607,6 +607,12 @@ struct msgb *ranap_generate_unsuccessful_outcome(
asn_TYPE_descriptor_t * td,
void *sptr);
+struct msgb *ranap_generate_outcome(
+ e_RANAP_ProcedureCode procedureCode,
+ RANAP_Criticality_t criticality,
+ asn_TYPE_descriptor_t * td,
+ void *sptr);
+
RANAP_IE_t *ranap_new_ie(RANAP_ProtocolIE_ID_t id, RANAP_Criticality_t criticality,
asn_TYPE_descriptor_t *type, void *sptr);