X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fxapp-asn%2Fe2ap%2Fe2ap_subscription_failure.hpp;fp=src%2Fxapp-asn%2Fe2ap%2Fe2ap_subscription_failure.hpp;h=3067e0d917923c24b452945f6edb4cb5b12684b3;hb=858eb3785ad300196cf677143a6759f857344702;hp=0000000000000000000000000000000000000000;hpb=4edb52e022fe23b8951488c959458ad68b644d47;p=ric-app%2Fhw.git diff --git a/src/xapp-asn/e2ap/e2ap_subscription_failure.hpp b/src/xapp-asn/e2ap/e2ap_subscription_failure.hpp new file mode 100644 index 0000000..3067e0d --- /dev/null +++ b/src/xapp-asn/e2ap/e2ap_subscription_failure.hpp @@ -0,0 +1,106 @@ +/* + * 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_ */