/* * e2ap_subscription_failure.hpp * * Created on: Nov 5, 2020 * Author: Shraboni Jana */ #ifndef SRC_XAPP_ASN_E2AP_E2AP_SUBSCRIPTION_FAILURE_HPP_ #define SRC_XAPP_ASN_E2AP_E2AP_SUBSCRIPTION_FAILURE_HPP_ /* * -- ************************************************************** -- -- RIC SUBSCRIPTION FAILURE -- -- ************************************************************** RICsubscriptionFailure ::= SEQUENCE { protocolIEs ProtocolIE-Container {{RICsubscriptionFailure-IEs}}, ... } RICsubscriptionFailure-IEs E2AP-PROTOCOL-IES ::= { { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory }| { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory }| { ID id-RICactions-NotAdmitted CRITICALITY reject TYPE RICaction-NotAdmitted-List PRESENCE mandatory }| { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, ... } */ #include #include #include #include #include #include #include #include #include #include #include #include #include "e2ap_consts.hpp" #include "e2ap_action.hpp" #include "e2ap_criticality_diagnostics.hpp" class E2APSubscriptionFailure { public: class SubscriptionFailureIEs{ private: long int ricRequestorID, ricInstanceID, ranFunctionID; RICactionNotAdmittedList *ricActionNotAdmittedlst; bool is_ricActionNotAdmitlst; E2APCriticalityDiagnostics *critical_diagnostic; bool is_criticality_diagnostic; public: SubscriptionFailureIEs(void):ricRequestorID(0), ricInstanceID(0),ranFunctionID(0),ricActionNotAdmittedlst(0),is_ricActionNotAdmitlst(false),critical_diagnostic(NULL), is_criticality_diagnostic(false){}; SubscriptionFailureIEs& set_ricRequestorID(long int req_id){ricRequestorID = req_id; return *this;}; SubscriptionFailureIEs& set_ranFunctionID(long int func_id){ranFunctionID = func_id; return *this;}; SubscriptionFailureIEs& set_ricInstanceID(long int inst_id){ricInstanceID = inst_id; return *this;}; SubscriptionFailureIEs& set_actionsNotAdmitted_list(RICactionNotAdmittedList &lstobj){ricActionNotAdmittedlst= &lstobj; is_ricActionNotAdmitlst = true; return *this;}; SubscriptionFailureIEs& set_critical_diagnostic(E2APCriticalityDiagnostics &obj){this->is_criticality_diagnostic = true; critical_diagnostic = &obj; return *this;}; long int get_ricInstanceID(){return this->ricInstanceID;}; long int get_ricRequestorID(){return this->ricRequestorID;}; long int get_ranFunctionID(){return this->ranFunctionID;}; bool get_is_ricActionNotAdmitlst(){return this->is_ricActionNotAdmitlst;}; RICactionNotAdmittedList& get_actionsNotAdmitted_list() {return *(this->ricActionNotAdmittedlst);}; E2APCriticalityDiagnostics* get_critical_diagnostic(){return (this->critical_diagnostic);}; bool get_is_criticality_diagnostic(){return this->is_criticality_diagnostic;} }; E2APSubscriptionFailure(SubscriptionFailureIEs&); E2APSubscriptionFailure(unsigned char *, size_t *); ~E2APSubscriptionFailure(); bool encode(unsigned char *, size_t * ); bool decode(unsigned char*, size_t *); std::string get_error (void) const {return _error_string ;}; SubscriptionFailureIEs& getIEs(){ return *_failureIEs.get();}; private: bool setfields(UnsuccessfulOutcome_t *); UnsuccessfulOutcome_t * _unsuccessMsg; E2AP_PDU_t * _e2ap_pdu_obj; RICsubscriptionFailure_IEs_t * IE_array; RICaction_NotAdmitted_ItemIEs_t * ie_not_admitted_list; RICactionNotAdmittedList _notadmitlst; E2APCriticalityDiagnostics _cdWrapperIEs; std::unique_ptr _failureIEs; CriticalityDiagnostics_IE_Item_t *CD_array; std::string _error_string; char _errbuf[ERR_LEN]; size_t _errbuf_len = ERR_LEN; }; #endif /* SRC_XAPP_ASN_E2AP_E2AP_SUBSCRIPTION_FAILURE_HPP_ */