X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fxapp-asn%2Fe2ap%2Fe2ap_subsdel_failure.hpp;fp=src%2Fxapp-asn%2Fe2ap%2Fe2ap_subsdel_failure.hpp;h=69b0aaa5336a8b919ea573a8c910badecea21ee6;hb=858eb3785ad300196cf677143a6759f857344702;hp=0000000000000000000000000000000000000000;hpb=4edb52e022fe23b8951488c959458ad68b644d47;p=ric-app%2Fhw.git diff --git a/src/xapp-asn/e2ap/e2ap_subsdel_failure.hpp b/src/xapp-asn/e2ap/e2ap_subsdel_failure.hpp new file mode 100644 index 0000000..69b0aaa --- /dev/null +++ b/src/xapp-asn/e2ap/e2ap_subsdel_failure.hpp @@ -0,0 +1,122 @@ +/* +================================================================================== + + Copyright (c) 2019-2020 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + +/* + * e2ap_subsdel_failure.hpp + * + * Created on: Oct 29, 2020 + * Author: Shraboni Jana + */ +/*-- ************************************************************** +-- +-- RIC SUBSCRIPTION DELETE FAILURE +-- +-- ************************************************************** +RICsubscriptionDeleteFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RICsubscriptionDeleteFailure-IEs}}, + ... +} + +RICsubscriptionDeleteFailure-IEs E2AP-PROTOCOL-IES ::= { + { ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory }| + { ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} +*/ +#ifndef SRC_XAPP_ASN_E2AP_E2AP_SUBSDEL_FAILURE_HPP_ +#define SRC_XAPP_ASN_E2AP_E2AP_SUBSDEL_FAILURE_HPP_ + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "e2ap_criticality_diagnostics.hpp" +#include "e2ap_consts.hpp" + +class E2APSubscriptionDeleteFailure{ +public: + + class SubscriptionDeleteFailureIEs{ + private: + long int ricRequestorID, ricInstanceID, ranFunctionID, ricCause, ricSubCause; + E2APCriticalityDiagnostics *critical_diagnostic; + bool is_criticality_diagnostic; + public: + SubscriptionDeleteFailureIEs(void):ricRequestorID(0), ricInstanceID(0),ranFunctionID(0), ricCause(0), ricSubCause(0),critical_diagnostic(NULL), is_criticality_diagnostic(false){}; + SubscriptionDeleteFailureIEs& set_ricRequestorID(long int req_id){ricRequestorID = req_id; return *this;}; + SubscriptionDeleteFailureIEs& set_ranFunctionID(long int func_id){ranFunctionID = func_id; return *this;}; + SubscriptionDeleteFailureIEs& set_ricInstanceID(long int inst_id){ricInstanceID = inst_id; return *this;}; + SubscriptionDeleteFailureIEs& set_ricCause(long int cause){ricCause = cause; return *this;}; + SubscriptionDeleteFailureIEs& set_ricSubCause(long int subcause){ricSubCause = subcause; return *this;}; + SubscriptionDeleteFailureIEs& 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;}; + long int get_ricCause(){return this->ricCause;}; + long int get_ricSubCause(){return this->ricSubCause;}; + E2APCriticalityDiagnostics* get_critical_diagnostic(){return (this->critical_diagnostic);}; + bool get_is_criticality_diagnostic(){return this->is_criticality_diagnostic;} + + }; + E2APSubscriptionDeleteFailure(SubscriptionDeleteFailureIEs&); + E2APSubscriptionDeleteFailure(unsigned char *, size_t *); + ~E2APSubscriptionDeleteFailure(); + bool encode(unsigned char *, size_t * ); + bool decode(unsigned char*, size_t *); + std::string get_error (void) const {return _error_string ;}; + SubscriptionDeleteFailureIEs& getIEs(){ return *_failureIEs.get();}; + +private: + + bool setfields(UnsuccessfulOutcome_t *); + UnsuccessfulOutcome_t * _unsuccessMsg; + E2AP_PDU_t * _e2ap_pdu_obj; + RICsubscriptionDeleteFailure_IEs_t * IE_array; + CriticalityDiagnostics_IE_Item_t *CD_array; + std::unique_ptr _failureIEs; + E2APCriticalityDiagnostics _cdWrapperIEs; + + std::string _error_string; + char _errbuf[ERR_LEN]; + size_t _errbuf_len = ERR_LEN; + +}; + + + + + + + + +#endif /* SRC_XAPP_ASN_E2AP_E2AP_SUBSDEL_FAILURE_HPP_ */