X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=test%2Ftest_e2ap.h;h=727cadefd1c5ea2f243e4b1d70b3e826740717d2;hb=858eb3785ad300196cf677143a6759f857344702;hp=427d8400e34706df6be1b2e491424cb4418ec6b8;hpb=4edb52e022fe23b8951488c959458ad68b644d47;p=ric-app%2Fhw.git diff --git a/test/test_e2ap.h b/test/test_e2ap.h index 427d840..727cade 100644 --- a/test/test_e2ap.h +++ b/test/test_e2ap.h @@ -29,8 +29,15 @@ #include #include "e2ap_control_failure.hpp" -#include "xapp.hpp" #include "e2ap_control_ack.hpp" +#include "e2ap_subsdel_request.hpp" +#include "e2ap_subsdel_response.hpp" +#include "e2ap_subsdel_failure.hpp" +#include "e2ap_criticality_diagnostics.hpp" +#include "e2ap_subscription_response.hpp" +#include "e2ap_subscription_failure.hpp" + + TEST(E2AP, ControlAcknowledgementEncode) { @@ -64,7 +71,7 @@ TEST(E2AP, ControlAcknowledgementEncode) } } -TEST(E2SM, ControlAcknowledgementDecode) +TEST(E2AP, ControlAcknowledgementDecode) { unsigned char e2ap_buff[4096]; char filename[100] = "controlack1.per"; @@ -131,7 +138,7 @@ TEST(E2AP, ControlFailureEncode) } } -TEST(E2SM, ControlFailureDecode) +TEST(E2AP, ControlFailureDecode) { unsigned char e2ap_buff[1024]; char filename[100] = "controlfail1.per"; @@ -165,4 +172,398 @@ TEST(E2SM, ControlFailureDecode) } +TEST(E2AP, SubscriptionDeleteRequest){ + + unsigned char buff[1024]; + size_t buff_size = 1024; + + + E2APSubscriptionDeleteRequest::SubscriptionDeleteRequestIEs dataObj; + + dataObj.set_ranFunctionID(1); + dataObj.set_ricInstanceID(1); + dataObj.set_ricRequestorID(3); + + E2APSubscriptionDeleteRequest requestObj(dataObj); + bool res = requestObj.encode(buff, &buff_size); + if(!res) + { + std::cout << requestObj.get_error() << std::endl; + } + ASSERT_TRUE(res); + + +} + +TEST(E2AP, SubDelResponseEncode) +{ + + unsigned char buff[1024]; + size_t buf_len = 1024; + + E2APSubscriptionDeleteResponse::SubscriptionDeleteResponseIEs infoObj; + infoObj.set_ranFunctionID(1); + infoObj.set_ricRequestorID(1); + infoObj.set_ricInstanceID(1); + + + E2APSubscriptionDeleteResponse subdelObj(infoObj); + + bool res = subdelObj.encode(buff, &buf_len); + if(!res) + { + std::cout << subdelObj.get_error() << std::endl; + } + ASSERT_TRUE(res); + FILE * pFile; + pFile = fopen ("subdelresponse1.per","w"); + if (pFile!=NULL) + { + fwrite (buff , sizeof(char), buf_len, pFile); + sleep(2); + fclose (pFile); + } + +} +TEST(E2AP, SubDelResponseDecode) +{ + sleep(10); + unsigned char e2ap_buff[1024]; + char filename[100] = "subdelresponse1.per"; + FILE *fp; + fp = fopen(filename,"rb"); + if(!fp) { + perror(filename); + exit(1); } + + size_t e2ap_buff_size = fread(e2ap_buff, 1, 1024, fp); + fclose(fp); + if(!e2ap_buff_size){ + fprintf(stderr, "%s: Empty or broken\n", filename); + exit(1); + } else { + fprintf(stderr, "e2ap buffer size: %ld \n", e2ap_buff_size); + } + + bool decode_status = true; + try{ + E2APSubscriptionDeleteResponse e2obj(&e2ap_buff[0],&e2ap_buff_size); + + + } catch(const char* e){ + decode_status = false; + std::cout << "Error Message: " << e << std::endl; + } + + + ASSERT_TRUE(decode_status); + +} + +TEST(E2AP, SubDelFailureEncode){ + unsigned char buff[1024]; + size_t buf_len = 1024; + + CriticalityDiagnosticsIEs crIEs1; + crIEs1.set_ieID(1); + crIEs1.set_typeOferror(1); + crIEs1.set_iEcriticality(2); + + CriticalityDiagnosticsIEs crIEs2; + crIEs2.set_ieID(1); + crIEs2.set_typeOferror(1); + crIEs2.set_iEcriticality(1); + + + + E2APCriticalityDiagnostics critObj; + critObj.set_procedureCode(10); + critObj.set_procedureCriticality(1); + critObj.set_ricInstanceID(101); + critObj.set_ricRequestorID(102); + critObj.set_triggeringMessage(1); + critObj.add(crIEs1); + critObj.add(crIEs2); + + E2APSubscriptionDeleteFailure::SubscriptionDeleteFailureIEs infoObj; + infoObj.set_ranFunctionID(1); + infoObj.set_ricRequestorID(1); + infoObj.set_ricInstanceID(1); + infoObj.set_ricCause(1); + infoObj.set_ricSubCause(2); + infoObj.set_critical_diagnostic(critObj); + + + E2APSubscriptionDeleteFailure subdelObj(infoObj); + + bool res = subdelObj.encode(buff, &buf_len); + if(!res) + { + std::cout << "Subscribtion Delete Failure Error Message" << subdelObj.get_error() << std::endl; + } + ASSERT_TRUE(res); + FILE * pFile; + pFile = fopen ("subdelfailure2.per","w"); + if (pFile!=NULL) + { + fwrite (buff , sizeof(char), buf_len, pFile); + sleep(2); + fclose (pFile); + } + +} + +TEST(E2AP, SubDelFailureDecode) +{ + sleep(10); + unsigned char e2ap_buff[1024]; + char filename[100] = "subdelfailure2.per"; + FILE *fp; + fp = fopen(filename,"rb"); + if(!fp) { + perror(filename); + exit(1); } + + size_t e2ap_buff_size = fread(e2ap_buff, 1, 1024, fp); + fclose(fp); + if(!e2ap_buff_size){ + fprintf(stderr, "%s: Empty or broken\n", filename); + exit(1); + } else { + fprintf(stderr, "e2ap buffer size: %ld \n", e2ap_buff_size); + } + + bool decode_status = true; + try{ + E2APSubscriptionDeleteFailure e2obj(&e2ap_buff[0],&e2ap_buff_size); + + std::cout << "Procedure Code: " << e2obj.getIEs().get_critical_diagnostic()->get_procedureCode() << std::endl; + std::cout << "Procedure Criticality: " << e2obj.getIEs().get_critical_diagnostic()->get_procedureCriticality() << std::endl; + std::cout << "Size OF LIST :" << e2obj.getIEs().get_critical_diagnostic()->get_list_count() << std::endl; + + int count = e2obj.getIEs().get_critical_diagnostic()->get_list_count() ; + std::vector *lst = e2obj.getIEs().get_critical_diagnostic()->get_list(); + for(int i=0; i< count; i++){ + std::cout<< "Typ Error:::" << (*lst)[i].get_typeOferror() << std::endl; + std::cout<< "iEcriticality:::" << (*lst)[i].get_iEcriticality() << std::endl; + std::cout<< "ieID:::" << (*lst)[i].get_ieID() << std::endl; + } + + } catch(const char* e){ + decode_status = false; + std::cout << "Error Message: " << e << std::endl; + } + + + ASSERT_TRUE(decode_status); + +} + +TEST(E2AP, SubResponseEncode){ + unsigned char buff[512]; + size_t buf_len = 512; + + RICactionAdmittedList::RICactionAdmittedItemIEs tmp1; + tmp1.set_ricActionID(1); + + RICactionAdmittedList admitlst; + admitlst.add(tmp1); + admitlst.add(RICactionAdmittedList::RICactionAdmittedItemIEs().set_ricActionID(2)); + + RICactionNotAdmittedList::RICactionNotAdmittedItemIEs tmp2; + tmp2.set_ricActionID(2); + tmp2.set_ricCause(1); + tmp2.set_ricSubCause(3); + RICactionNotAdmittedList notadmitlst; + notadmitlst.add(tmp2); + notadmitlst.add(RICactionNotAdmittedList::RICactionNotAdmittedItemIEs().set_ricActionID(2).set_ricCause(1).set_ricSubCause(1)); + + E2APSubscriptionResponse::SubscriptionResponseIEs infoObj; + infoObj.set_ranFunctionID(1); + infoObj.set_ricRequestorID(1); + infoObj.set_ricInstanceID(1); + infoObj.set_actionsNotAdmitted_list(notadmitlst); + infoObj.set_actionsAdmitted_list(admitlst); + + E2APSubscriptionResponse subObj(infoObj); + + bool res = subObj.encode(buff, &buf_len); + if(!res) + { + std::cout << "Subscription Response Error Message" << subObj.get_error() << std::endl; + } + ASSERT_TRUE(res); + FILE * pFile; + pFile = fopen ("subresponse1.per","w"); + if (pFile!=NULL) + { + fwrite (buff , sizeof(char), buf_len, pFile); + fclose (pFile); + } + +} +TEST(E2AP, SubResponseDecode) +{ + sleep(10); + unsigned char e2ap_buff[1024]; + char filename[100] = "subresponse2.per"; + FILE *fp; + fp = fopen(filename,"rb"); + if(!fp) { + perror(filename); + exit(1); } + + size_t e2ap_buff_size = fread(e2ap_buff, 1, 1024, fp); + fclose(fp); + if(!e2ap_buff_size){ + fprintf(stderr, "%s: Empty or broken\n", filename); + exit(1); + } else { + fprintf(stderr, "e2ap buffer size: %ld \n", e2ap_buff_size); + } + + bool decode_status = true; + try{ + E2APSubscriptionResponse e2obj(&e2ap_buff[0],&e2ap_buff_size); + + std::cout << "RAN Function ID: " << e2obj.getIEs().get_ranFunctionID() << std::endl; + std::cout << "Requestor ID: " << e2obj.getIEs().get_ricRequestorID() << std::endl; + std::cout << "Instance ID :" << e2obj.getIEs().get_ricInstanceID() << std::endl; + + int count = e2obj.getIEs().get_actionsAdmitted_list().get_list_count() ; + std::vector *lst = e2obj.getIEs().get_actionsAdmitted_list().get_list(); + for(int i=0; i< count; i++){ + std::cout<< "Action ID:::" << (*lst)[i].get_ricActionID() << std::endl; + + } + int count2 = e2obj.getIEs().get_actionsNotAdmitted_list().get_list_count() ; + std::vector *lst2 = e2obj.getIEs().get_actionsNotAdmitted_list().get_list(); + for(int i=0; i< count2; i++){ + std::cout<< "Action ID:::" << (*lst2)[i].get_ricActionID() << std::endl; + std::cout<< "Cause:::" << (*lst2)[i].get_ricCause() << std::endl; + std::cout<< "Sub Cause:::" << (*lst2)[i].get_ricSubCause() << std::endl; + } + + } catch(const char* e){ + decode_status = false; + std::cout << "Error Message: " << e << std::endl; + } + + + ASSERT_TRUE(decode_status); + +} + +TEST(E2AP, SubFailureEncode){ + unsigned char buff[512]; + size_t buf_len = 512; + + CriticalityDiagnosticsIEs crIEs1; + crIEs1.set_ieID(1); + crIEs1.set_typeOferror(1); + crIEs1.set_iEcriticality(2); + + CriticalityDiagnosticsIEs crIEs2; + crIEs2.set_ieID(1); + crIEs2.set_typeOferror(1); + crIEs2.set_iEcriticality(1); + + + + E2APCriticalityDiagnostics critObj; + critObj.set_procedureCode(10); + critObj.set_procedureCriticality(1); + critObj.set_ricInstanceID(101); + critObj.set_ricRequestorID(102); + critObj.set_triggeringMessage(1); + critObj.add(crIEs1); + critObj.add(crIEs2); + + RICactionNotAdmittedList::RICactionNotAdmittedItemIEs tmp2; + tmp2.set_ricActionID(2); + tmp2.set_ricCause(1); + tmp2.set_ricSubCause(3); + RICactionNotAdmittedList notadmitlst; + notadmitlst.add(tmp2); + notadmitlst.add(RICactionNotAdmittedList::RICactionNotAdmittedItemIEs().set_ricActionID(2).set_ricCause(1).set_ricSubCause(1)); + + E2APSubscriptionFailure::SubscriptionFailureIEs infoObj; + infoObj.set_ranFunctionID(1); + infoObj.set_ricRequestorID(1); + infoObj.set_ricInstanceID(1); + infoObj.set_actionsNotAdmitted_list(notadmitlst); + infoObj.set_critical_diagnostic(critObj); + + + E2APSubscriptionFailure subObj(infoObj); + + bool res = subObj.encode(buff, &buf_len); + if(!res) + { + std::cout << "Subscription Failure Error Message" << subObj.get_error() << std::endl; + } + ASSERT_TRUE(res); + FILE * pFile; + pFile = fopen ("subfailure1.per","w"); + if (pFile!=NULL) + { + fwrite (buff , sizeof(char), buf_len, pFile); + fclose (pFile); + } + +} + +TEST(E2AP, SubFailureDecode) +{ + sleep(10); + unsigned char e2ap_buff[1024]; + char filename[100] = "subfailure1.per"; + FILE *fp; + fp = fopen(filename,"rb"); + if(!fp) { + perror(filename); + exit(1); } + + size_t e2ap_buff_size = fread(e2ap_buff, 1, 1024, fp); + fclose(fp); + if(!e2ap_buff_size){ + fprintf(stderr, "%s: Empty or broken\n", filename); + exit(1); + } else { + fprintf(stderr, "e2ap buffer size: %ld \n", e2ap_buff_size); + } + + bool decode_status = true; + try{ + E2APSubscriptionFailure e2obj(&e2ap_buff[0],&e2ap_buff_size); + + std::cout << "RAN Function ID: " << e2obj.getIEs().get_ranFunctionID() << std::endl; + std::cout << "Requestor ID: " << e2obj.getIEs().get_ricRequestorID() << std::endl; + std::cout << "Instance ID :" << e2obj.getIEs().get_ricInstanceID() << std::endl; + int count = e2obj.getIEs().get_critical_diagnostic()->get_list_count() ; + std::vector *lst = e2obj.getIEs().get_critical_diagnostic()->get_list(); + for(int i=0; i< count; i++){ + std::cout<< "Typ Error:::" << (*lst)[i].get_typeOferror() << std::endl; + std::cout<< "iEcriticality:::" << (*lst)[i].get_iEcriticality() << std::endl; + std::cout<< "ieID:::" << (*lst)[i].get_ieID() << std::endl; + } + + int count2 = e2obj.getIEs().get_actionsNotAdmitted_list().get_list_count() ; + std::vector *lst2 = e2obj.getIEs().get_actionsNotAdmitted_list().get_list(); + for(int i=0; i< count2; i++){ + std::cout<< "Action ID:::" << (*lst2)[i].get_ricActionID() << std::endl; + std::cout<< "Cause:::" << (*lst2)[i].get_ricCause() << std::endl; + std::cout<< "Sub Cause:::" << (*lst2)[i].get_ricSubCause() << std::endl; + } + + } catch(const char* e){ + decode_status = false; + std::cout << "Error Message: " << e << std::endl; + } + + + ASSERT_TRUE(decode_status); + +} + #endif /* TEST_TEST_E2AP_H_ */