2 ==================================================================================
4 Copyright (c) 2019-2020 AT&T Intellectual Property.
6 Licensed under the Apache License, Version 2.0 (the "License");
7 you may not use this file except in compliance with the License.
8 You may obtain a copy of the License at
10 http://www.apache.org/licenses/LICENSE-2.0
12 Unless required by applicable law or agreed to in writing, software
13 distributed under the License is distributed on an "AS IS" BASIS,
14 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 See the License for the specific language governing permissions and
16 limitations under the License.
17 ==================================================================================
20 * e2ap_subscription_response.hpp
22 * Created on: Nov 1, 2020
23 * Author: Shraboni Jana
26 #ifndef SRC_XAPP_ASN_E2AP_SUBSCRIPTION_RESPONSE_HPP_
27 #define SRC_XAPP_ASN_E2AP_SUBSCRIPTION_RESPONSE_HPP_
28 /*-- **************************************************************
30 -- RIC SUBSCRIPTION RESPONSE
32 -- **************************************************************
33 RICsubscriptionResponse ::= SEQUENCE {
34 protocolIEs ProtocolIE-Container{{RICsubscriptionResponse-IEs}},
38 RICsubscriptionResponse-IEs E2AP-PROTOCOL-IES ::= {
39 { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory } |
40 { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory } |
41 { ID id-RICactions-Admitted CRITICALITY reject TYPE RICaction-Admitted-List PRESENCE mandatory } |
42 { ID id-RICactions-NotAdmitted CRITICALITY reject TYPE RICaction-NotAdmitted-List PRESENCE optional },
48 RICaction-Admitted-List ::= SEQUENCE (SIZE(1..maxofRICactionID)) OF ProtocolIE-SingleContainer{{RICaction-Admitted-ItemIEs}}
50 RICaction-Admitted-ItemIEs E2AP-PROTOCOL-IES ::= {
51 { ID id-RICaction-Admitted-Item CRITICALITY ignore TYPE RICaction-Admitted-Item PRESENCE mandatory },
55 RICaction-Admitted-Item ::= SEQUENCE {
56 ricActionID RICactionID,
60 RICaction-NotAdmitted-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-SingleContainer { {RICaction-NotAdmitted-ItemIEs} }
62 RICaction-NotAdmitted-ItemIEs E2AP-PROTOCOL-IES ::= {
63 { ID id-RICaction-NotAdmitted-Item CRITICALITY ignore TYPE RICaction-NotAdmitted-Item PRESENCE mandatory },
67 RICaction-NotAdmitted-Item ::= SEQUENCE {
68 ricActionID RICactionID,
72 #include <mdclog/mdclog.h>
78 #include <SuccessfulOutcome.h>
79 #include <ProtocolIE-Field.h>
80 #include <ProcedureCode.h>
81 #include "e2ap_consts.hpp"
82 #include "e2ap_action.hpp"
83 class E2APSubscriptionResponse {
86 class SubscriptionResponseIEs{
88 long int ricRequestorID, ricInstanceID, ranFunctionID;
89 RICactionNotAdmittedList *ricActionNotAdmittedlst;
90 RICactionAdmittedList *ricActionAdmittedlst;
91 bool is_ricActionAdmitlst;
92 bool is_ricActionNotAdmitlst;
94 SubscriptionResponseIEs(void):ricRequestorID(0), ricInstanceID(0),ranFunctionID(0),ricActionNotAdmittedlst(0),ricActionAdmittedlst(0),is_ricActionAdmitlst(false),is_ricActionNotAdmitlst(false){};
96 SubscriptionResponseIEs& set_ricRequestorID(long int req_id){ricRequestorID = req_id; return *this;};
97 SubscriptionResponseIEs& set_ranFunctionID(long int func_id){ranFunctionID = func_id; return *this;};
98 SubscriptionResponseIEs& set_ricInstanceID(long int inst_id){ricInstanceID = inst_id; return *this;};
99 SubscriptionResponseIEs& set_actionsAdmitted_list(RICactionAdmittedList &lstobj){ricActionAdmittedlst= &lstobj;is_ricActionAdmitlst=true; return *this;};
100 SubscriptionResponseIEs& set_actionsNotAdmitted_list(RICactionNotAdmittedList &lstobj){ricActionNotAdmittedlst= &lstobj; is_ricActionNotAdmitlst = true; return *this;};
102 long int get_ricInstanceID(){return this->ricInstanceID;};
103 long int get_ricRequestorID(){return this->ricRequestorID;};
104 long int get_ranFunctionID(){return this->ranFunctionID;};
105 bool get_is_ricActionNotAdmitlst(){return this->is_ricActionNotAdmitlst;};
106 bool get_is_ricActionAdmitlst(){return this->is_ricActionAdmitlst;};
107 RICactionAdmittedList& get_actionsAdmitted_list() {return *(this->ricActionAdmittedlst);};
108 RICactionNotAdmittedList& get_actionsNotAdmitted_list() {return *(this->ricActionNotAdmittedlst);};
112 E2APSubscriptionResponse(SubscriptionResponseIEs&);
113 E2APSubscriptionResponse(unsigned char *, size_t *);
114 ~E2APSubscriptionResponse();
115 bool encode(unsigned char *, size_t * );
116 bool decode(unsigned char*, size_t *);
117 std::string get_error (void) const {return _error_string ;};
118 SubscriptionResponseIEs& getIEs(){ return *_responseIEs.get();};
123 bool setfields(SuccessfulOutcome_t *);
125 SuccessfulOutcome_t * _successMsg;
126 E2AP_PDU_t * _e2ap_pdu_obj;
127 RICsubscriptionResponse_IEs_t * IE_array;
128 RICaction_Admitted_ItemIEs_t * ie_admitted_list;
129 RICaction_NotAdmitted_ItemIEs_t * ie_not_admitted_list;
131 RICactionAdmittedList _admitlst;
132 RICactionNotAdmittedList _notadmitlst;
133 std::unique_ptr<SubscriptionResponseIEs> _responseIEs;
136 std::string _error_string;
137 char _errbuf[ERR_LEN];
138 size_t _errbuf_len = ERR_LEN;
145 #endif /* SRC_XAPP_ASN_E2AP_SUBSCRIPTION_RESPONSE_HPP_ */