X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=test%2Ftest_subs.h;h=e50a473ad8cc66a7b75fc6cfadcda8f0f9c198b0;hb=ea129fa14c89d8f5cedacd9afc1e4dd7a30f1ae4;hp=2c33d55e6c34283bf6bf178081d2474b6f364e8a;hpb=23dad813c70c0d79cd1bd16009e00895e6509fd2;p=ric-app%2Fhw.git diff --git a/test/test_subs.h b/test/test_subs.h index 2c33d55..e50a473 100644 --- a/test/test_subs.h +++ b/test/test_subs.h @@ -25,40 +25,164 @@ #define BUFFER_SIZE 1024 using namespace std; + //generating a E2AP Subscription Message -TEST(SUBSCRIPTION, Request){ +TEST(SubscriptionRequest, MultipleRANParameters) +{ + unsigned char buff[1024]; + size_t buff_size = 1024; + + + //creating Action Definition + HWActionDefinition e2sm_actdefn1; + HWActionDefinition::RANParamIEs rparam1; + + rparam1.set_param_id(1); + rparam1.set_param_name("ENodeBID"); + rparam1.set_param_test(1); + rparam1.set_param_value("SR123"); + + e2sm_actdefn1.add(rparam1); + + HWActionDefinition::RANParamIEs rparam2; + + rparam2.set_param_id(1); + rparam2.set_param_name("UEID"); + rparam2.set_param_test(2); + rparam2.set_param_value("UE123"); + + e2sm_actdefn1.add(rparam2); - subscription_helper din; - subscription_helper dout; + //first Action Object - subscription_request sub_req; - subscription_request sub_recv; + E2APAction actionObj; + E2APAction::ActionIEs ieobj; + ieobj.set_ricActionID(1); + ieobj.set_ricActionType(1); + ieobj.set_ricActionDefinition(e2sm_actdefn1); - unsigned char buf[BUFFER_SIZE]; - size_t buf_size = BUFFER_SIZE; - bool res; + actionObj.add(ieobj); + HWEventTriggerDefinition eventObj; + eventObj.set_triggerNature(0); - //Random Data for request - int request_id = 1; - int function_id = 0; - std::string event_def = "HelloWorld Event Definition"; + //Now form the subscription. - din.set_request(request_id); - din.set_function_id(function_id); - din.set_event_def(event_def.c_str(), event_def.length()); + E2APSubscriptionRequest::SubscriptionRequestIEs infoObj; - std::string act_def = "HelloWorld Action Definition"; + infoObj.set_ranFunctionID(1); + infoObj.set_ricInstanceID(1); + infoObj.set_ricRequestorID(3); + infoObj.set_ricAction_ToBeSetup_List(actionObj); + infoObj.set_ricEventTriggerDefinition(eventObj); - din.add_action(1,1,(void*)act_def.c_str(), act_def.length(), 0); - res = sub_req.encode_e2ap_subscription(&buf[0], &buf_size, din); + E2APSubscriptionRequest requestObj(infoObj); + + //Alternate way of implementation + //requestObj.add(E2APSubscriptionRequest::SubscriptionRequestIEs().set_ranFunctionID(1).set_ricInstanceID(2).set_ricRequestorID(3).set_ricAction_ToBeSetup_List(actionObj)); + + bool res = requestObj.encode(buff, &buff_size); ASSERT_TRUE(res); +} + +TEST(SubscriptionRequest, MultipleActions) +{ + unsigned char buff[1024]; + size_t buff_size = 1024; + + + //creating Action Definition 1 + HWActionDefinition e2sm_actdefn1; + HWActionDefinition::RANParamIEs rparam1; + + rparam1.set_param_id(1); + rparam1.set_param_name("ENodeBID"); + rparam1.set_param_test(1); + rparam1.set_param_value("SR123"); + e2sm_actdefn1.add(rparam1); + HWActionDefinition e2sm_actdefn2; + HWActionDefinition::RANParamIEs rparam2; + + rparam2.set_param_id(1); + rparam2.set_param_name("UEID"); + rparam2.set_param_test(2); + rparam2.set_param_value("UE123"); + + e2sm_actdefn2.add(rparam2); + + + //first Action Object + + E2APAction actionObj; + E2APAction::ActionIEs ieobj; + ieobj.set_ricActionID(1); + ieobj.set_ricActionType(1); + ieobj.set_ricActionDefinition(e2sm_actdefn1); + ieobj.set_ricSubsequentAction(1,1); + actionObj.add(ieobj); + + //Second Action object. + actionObj.add(E2APAction::ActionIEs().set_ricActionID(4).set_ricActionType(2).set_ricActionDefinition(e2sm_actdefn2)); + + + HWEventTriggerDefinition eventObj; + eventObj.set_triggerNature(1); + + + + E2APSubscriptionRequest::SubscriptionRequestIEs dataObj; + + dataObj.set_ranFunctionID(1); + dataObj.set_ricInstanceID(1); + dataObj.set_ricRequestorID(3); + dataObj.set_ricAction_ToBeSetup_List(actionObj); + dataObj.set_ricEventTriggerDefinition(eventObj); + + E2APSubscriptionRequest requestObj(dataObj); + bool res = requestObj.encode(buff, &buff_size); + if(!res) + { + std::cout << requestObj.get_error() << std::endl; + } + ASSERT_TRUE(res); } +//create a MOck e2term +TEST (MOCK, E2TERM){ + + const char* meid = "test1"; + const char* sub_id = "sub1"; + //Send the Subscription Response. + xapp_rmr_header hdr; + hdr.message_type = RIC_SUB_RESP; + clock_gettime(CLOCK_REALTIME, &(hdr.ts)); + const char* strMsg = "Subscription Response for MEID: test1"; + hdr.payload_length = strlen(strMsg); + strcpy((char*)hdr.meid, meid); + strcpy((char*)hdr.sid,sub_id); + int total_num_msgs = 2; + int num_attempts = 10; + + std::unique_ptr rmr; + rmr = std::make_unique("4591",num_attempts); + rmr->xapp_rmr_init(true); + + XappSettings config; + + std::unique_ptr hw_xapp = std::make_unique(std::ref(config),std::ref(*rmr)); + while(1){ + bool res_msg = rmr->xapp_rmr_send(&hdr,(void*)strMsg); + if(res_msg){ + mdclog_write(MDCLOG_INFO, "Message Sent Successfully"); + break; + } + sleep(10); + } +} #endif /* TEST_TEST_SUBS_H_ */