Fix E2SM Indication message RANContainer parsing issue.
[scp/ric-app/kpimon.git] / e2ap / wrapper.h
1 #ifndef _WRAPPER_H_
2 #define _WRAPPER_H_
3
4 #include "RICsubscriptionRequest.h"
5 #include "RICsubscriptionResponse.h"
6 #include "RICsubscriptionDeleteRequest.h"
7 #include "RICsubscriptionDeleteResponse.h"
8 #include "RICcontrolRequest.h"
9 #include "RICindication.h"
10 #include "E2AP-PDU.h"
11 #include "InitiatingMessage.h"
12 #include "SuccessfulOutcome.h"
13 #include "UnsuccessfulOutcome.h"
14 #include "ProtocolIE-Container.h"
15 #include "ProtocolIE-Field.h"
16 #include "RICactionDefinition.h"
17 #include "RICsubsequentAction.h"
18 #include "CauseRIC.h"
19
20 typedef struct RICindicationMessage {
21         long requestorID;
22         long requestSequenceNumber;
23         long ranfunctionID;
24         long actionID;
25         long indicationSN;
26         long indicationType;
27         uint8_t *indicationHeader;
28         size_t indicationHeaderSize;
29         uint8_t *indicationMessage;
30         size_t indicationMessageSize;
31         uint8_t *callProcessID;
32         size_t callProcessIDSize;
33 } RICindicationMsg;
34
35 typedef struct RICcauseItem {
36         int ricCauseType;
37         long ricCauseID;
38 } RICcauseItem;
39
40 typedef struct RICactionAdmittedList {
41         long ricActionID[16];
42         int count;
43 } RICactionAdmittedList;
44
45 typedef struct RICactionNotAdmittedList {
46         long ricActionID[16];
47         RICcauseItem ricCause[16];
48         int count;
49 } RICactionNotAdmittedList;
50
51 typedef struct RICsubscriptionResponseMessage {
52         long requestorID;
53         long requestSequenceNumber;
54         long ranfunctionID;
55         RICactionAdmittedList ricActionAdmittedList;
56         RICactionNotAdmittedList ricActionNotAdmittedList;
57 } RICsubscriptionResponseMsg;
58
59 typedef struct RICactionDefinition {
60         uint8_t *actionDefinition;
61         int size;
62 } RICactionDefinition;
63
64 typedef struct RICSubsequentAction {
65         int isValid;
66         long subsequentActionType;
67         long timeToWait;
68 } RICSubsequentAction;
69
70 size_t encode_E2AP_PDU(E2AP_PDU_t* pdu, void* buffer, size_t buf_size);
71 E2AP_PDU_t* decode_E2AP_PDU(const void* buffer, size_t buf_size);
72
73 /* RICsubscriptionRequest */
74 long e2ap_get_ric_subscription_request_sequence_number(void *buffer, size_t buf_size);
75 ssize_t  e2ap_set_ric_subscription_request_sequence_number(void *buffer, size_t buf_size, long sequence_number);
76 ssize_t e2ap_encode_ric_subscription_request_message(void *buffer, size_t buf_size, long ricRequestorID, long ricRequestSequenceNumber, long ranFunctionID, void *eventTriggerDefinition, size_t eventTriggerDefinitionSize, int actionCount, long *actionIds, long* actionTypes, RICactionDefinition *actionDefinitions, RICSubsequentAction *subsequentActionTypes);
77
78 /* RICsubscriptionResponse */
79 long e2ap_get_ric_subscription_response_sequence_number(void *buffer, size_t buf_size);
80 ssize_t  e2ap_set_ric_subscription_response_sequence_number(void *buffer, size_t buf_size, long sequence_number);
81 RICsubscriptionResponseMsg* e2ap_decode_ric_subscription_response_message(void *buffer, size_t buf_size);
82
83 /* RICsubscriptionFailure */
84 long e2ap_get_ric_subscription_failure_sequence_number(void *buffer, size_t buf_size);
85
86 /* RICsubscriptionDeleteRequest */
87 long e2ap_get_ric_subscription_delete_request_sequence_number(void *buffer, size_t buf_size);
88 ssize_t  e2ap_set_ric_subscription_delete_request_sequence_number(void *buffer, size_t buf_size, long sequence_number);
89 ssize_t e2ap_encode_ric_subscription_delete_request_message(void *buffer, size_t buf_size, long ricRequestorID, long ricRequestSequenceNumber, long ranFunctionID);
90
91 /* RICsubscriptionDeleteResponse */
92 long e2ap_get_ric_subscription_delete_response_sequence_number(void *buffer, size_t buf_size);
93 ssize_t  e2ap_set_ric_subscription_delete_response_sequence_number(void *buffer, size_t buf_size, long sequence_number);
94
95 /* RICsubscriptionDeleteFailure */
96 long e2ap_get_ric_subscription_delete_failure_sequence_number(void *buffer, size_t buf_size);
97
98 /* RICindication */
99 RICindicationMsg* e2ap_decode_ric_indication_message(void *buffer, size_t buf_size);
100 void e2ap_free_decoded_ric_indication_message(RICindicationMsg* msg);
101
102 #endif /* _WRAPPER_H_ */