diff --git a/simulations/nr/mec/README.md b/simulations/nr/mec/README.md index f907048fe..1c2b512c5 100644 --- a/simulations/nr/mec/README.md +++ b/simulations/nr/mec/README.md @@ -19,7 +19,7 @@ The "numMecServices" parameter selects the number of MEC services running on the ``` *.mecHost.mecPlatform.numMecServices = 1 -*.mecHost.mecPlatform.mecService[0].typename = "RNIService" +*.mecHost.mecPlatform.mecService[0].typename = "RniService" *.mecHost.mecPlatform.mecService[0].localAddress = "mecHost.mecPlatform" *.mecHost.mecPlatform.mecService[0].localPort = 10020 ``` diff --git a/simulations/nr/mec/requestResponseApp/ApplicationDescriptors/ResponseApp.json b/simulations/nr/mec/requestResponseApp/ApplicationDescriptors/ResponseApp.json index d038262d0..27bf10f40 100644 --- a/simulations/nr/mec/requestResponseApp/ApplicationDescriptors/ResponseApp.json +++ b/simulations/nr/mec/requestResponseApp/ApplicationDescriptors/ResponseApp.json @@ -12,7 +12,7 @@ "appServiceRequired": [ { "ServiceDependency" :{ - "serName" : "RNIService", + "serName" : "RniService", "version" : "v1", "serCategory": "Network" } diff --git a/simulations/nr/mec/rnisTest/ApplicationDescriptors/RnisTestApp.json b/simulations/nr/mec/rnisTest/ApplicationDescriptors/RnisTestApp.json index 6aa5b21e3..483449702 100644 --- a/simulations/nr/mec/rnisTest/ApplicationDescriptors/RnisTestApp.json +++ b/simulations/nr/mec/rnisTest/ApplicationDescriptors/RnisTestApp.json @@ -12,7 +12,7 @@ "appServiceRequired": [ { "ServiceDependency" :{ - "serName" : "RNIService", + "serName" : "RniService", "version" : "v2", "serCategory": "RNI" } diff --git a/simulations/nr/mec/rnisTest/README.txt b/simulations/nr/mec/rnisTest/README.txt index 38656ce97..f192426ef 100644 --- a/simulations/nr/mec/rnisTest/README.txt +++ b/simulations/nr/mec/rnisTest/README.txt @@ -6,7 +6,7 @@ The simulations/NR/mec/rnisTest folder includes a simulation example that shows and use the Radio Network Information Service. The RnisTest configuration in the omnetpp.ini file represents a scenario with one UE in a single-cell -network, endowed with one MEC Host. The MEC Platform within the MEC Host provides the RNIService. +network, endowed with one MEC Host. The MEC Platform within the MEC Host provides the RniService. The UE runs the UeRnisTestApp locally and interacts with the MecRnisTestApp residing at the MEC Host. The implementation of the applications can be found in apps/mec/RnisTestApp folder. @@ -14,8 +14,8 @@ The implementation of the applications can be found in apps/mec/RnisTestApp fold At the beginning of the simulation, the UE requests to MEC Orchestrator to instantiate a new MecRnisTestApp. Upon receiving an acknowledgement indicating that the MEC app has been deployed, the UeRnisTestApp sends a "start" message to the MecRnisTestApp, triggering a periodic request for -information to the RNIService from the MEC app. -The RNIService replies with a message in JSON format including the L2Measurements, as specified by +information to the RniService from the MEC app. +The RniService replies with a message in JSON format including the L2Measurements, as specified by the ETSI MEC specifications about the RNIS API. Each response obtained by the MEC app is forwarded to the UE app, which in turn prints it out to the Qtenv log (and to a file, if the logger flag has been set).con diff --git a/src/simu5g/apps/mec/MecRequestResponseApp/MecResponseApp.cc b/src/simu5g/apps/mec/MecRequestResponseApp/MecResponseApp.cc index 3348a6628..dad9b23d2 100644 --- a/src/simu5g/apps/mec/MecRequestResponseApp/MecResponseApp.cc +++ b/src/simu5g/apps/mec/MecRequestResponseApp/MecResponseApp.cc @@ -164,7 +164,7 @@ void MecResponseApp::handleMp1Message(int connId) if (!jsonBody.empty()) { jsonBody = jsonBody[0]; std::string serName = jsonBody["serName"]; - if (serName == "RNIService") { + if (serName == "RniService") { if (jsonBody.contains("transportInfo")) { nlohmann::json endPoint = jsonBody["transportInfo"]["endPoint"]["addresses"]; EV << "address: " << endPoint["host"] << " port: " << endPoint["port"] << endl; @@ -176,7 +176,7 @@ void MecResponseApp::handleMp1Message(int connId) } } else { - EV << "MecPlatooningApp::handleMp1Message - RNIService not found" << endl; + EV << "MecPlatooningApp::handleMp1Message - RniService not found" << endl; serviceAddress_ = L3Address(); } } @@ -221,7 +221,7 @@ void MecResponseApp::doComputation() void MecResponseApp::sendGetRequest() { //check if the ueAppAddress is specified - if (serviceSocket_->getState() == inet::TcpSocket::CONNECTED) { + if (serviceSocket_ != NULL && serviceSocket_->getState() == inet::TcpSocket::CONNECTED) { EV << "MecResponseApp::sendGetRequest(): send request to the Location Service" << endl; std::stringstream uri; uri << "/example/rni/v2/queries/layer2_meas"; //TODO filter the request to get less data @@ -243,7 +243,7 @@ void MecResponseApp::established(int connId) // once the connection with the Service Registry has been established, obtain the // endPoint (address+port) of the Location Service - const char *uri = "/example/mec_service_mgmt/v1/services?ser_name=RNIService"; + const char *uri = "/example/mec_service_mgmt/v1/services?ser_name=RniService"; std::string host = mp1Socket_->getRemoteAddress().str() + ":" + std::to_string(mp1Socket_->getRemotePort()); Http::sendGetRequest(mp1Socket_, host.c_str(), uri); diff --git a/src/simu5g/apps/mec/MecRequestResponseApp/MecResponseApp.ned b/src/simu5g/apps/mec/MecRequestResponseApp/MecResponseApp.ned index 6e19f0d26..4431b619b 100644 --- a/src/simu5g/apps/mec/MecRequestResponseApp/MecResponseApp.ned +++ b/src/simu5g/apps/mec/MecRequestResponseApp/MecResponseApp.ned @@ -30,6 +30,8 @@ simple MecResponseApp extends MecAppBase int responsePacketSize @unit(B) = default(50B); + int localUePort; + int minInstructions = default(9000000); int maxInstructions = default(11000000); } diff --git a/src/simu5g/apps/mec/RealTimeVideoStreamingApp/MecRTVideoStreamingReceiver.ned b/src/simu5g/apps/mec/RealTimeVideoStreamingApp/MecRTVideoStreamingReceiver.ned index 270c0a90b..2de88b24a 100644 --- a/src/simu5g/apps/mec/RealTimeVideoStreamingApp/MecRTVideoStreamingReceiver.ned +++ b/src/simu5g/apps/mec/RealTimeVideoStreamingApp/MecRTVideoStreamingReceiver.ned @@ -26,5 +26,6 @@ simple MecRTVideoStreamingReceiver extends MecAppBase @class(MecRTVideoStreamingReceiver); @display("i=block/app;is=s"); int packetSize @unit(B) = default(10B); + int localUePort; double initialPlayoutDelay @unit(s) = 150ms; } diff --git a/tests/fingerprint/simulations.csv b/tests/fingerprint/simulations.csv index eef8a7245..d18b294ef 100644 --- a/tests/fingerprint/simulations.csv +++ b/tests/fingerprint/simulations.csv @@ -84,17 +84,17 @@ /simulations/nr/mec/multiMecHost/, -f omnetpp.ini -c MultiMec -r 0, 20s, 0c01-c7b5/tplx;c6f8-ec85/~tNl;e58a-847e/sz, PASS, /simulations/nr/mec/multiOperator/, -f omnetpp.ini -c MultiOperator_MultiMec -r 0, 20s, c183-b1c3/tplx;a202-f6a6/~tNl;cc38-1a03/sz, PASS, /simulations/nr/mec/multiOperator/, -f omnetpp.ini -c MultiOperator_SingleMec -r 0, 20s, 7453-5838/tplx;5837-c83e/~tNl;16ba-7503/sz, PASS, -/simulations/nr/mec/requestResponseApp/, -f omnetpp.ini -c best_case -r 0, 5s, d2fc-dc3c/tplx;adec-e439/~tNl;f173-dc15/sz, PASS, -/simulations/nr/mec/requestResponseApp/, -f omnetpp.ini -c best_case_load_gen -r 0, 5s, d2fc-dc3c/tplx;adec-e439/~tNl;f173-dc15/sz, PASS, -/simulations/nr/mec/requestResponseApp/, -f omnetpp.ini -c bgUEs_gnb1 -r 0, 5s, c2a1-90a8/tplx;adec-e439/~tNl;b658-0a63/sz, PASS, -/simulations/nr/mec/requestResponseApp/, -f omnetpp.ini -c bgUEs_gnb2 -r 0, 5s, c2a1-90a8/tplx;adec-e439/~tNl;b658-0a63/sz, PASS, -/simulations/nr/mec/requestResponseApp/, -f omnetpp.ini -c farRNI -r 0, 5s, 238a-f3c0/tplx;adec-e439/~tNl;7361-1ae9/sz, PASS, -/simulations/nr/mec/requestResponseApp/, -f omnetpp.ini -c MultiMec -r 0, 5s, c2a1-90a8/tplx;adec-e439/~tNl;b658-0a63/sz, PASS, -/simulations/nr/mec/requestResponseApp/, -f omnetpp.ini -c nearRNI -r 0, 5s, 4f00-54a0/tplx;adec-e439/~tNl;13f8-3e9e/sz, PASS, -/simulations/nr/mec/requestResponseApp/, -f omnetpp.ini -c nearRNI_bgUEs_gnb1 -r 0, 5s, 4f00-54a0/tplx;adec-e439/~tNl;13f8-3e9e/sz, PASS, -/simulations/nr/mec/requestResponseApp/, -f omnetpp.ini -c nearRNI_bgUEs_gnb2 -r 0, 5s, 4f00-54a0/tplx;adec-e439/~tNl;13f8-3e9e/sz, PASS, -/simulations/nr/mec/requestResponseApp/, -f omnetpp.ini -c worst_case -r 0, 5s, d2fc-dc3c/tplx;adec-e439/~tNl;f173-dc15/sz, PASS, -/simulations/nr/mec/requestResponseApp/, -f omnetpp.ini -c worst_case_load_gen -r 0, 5s, d2fc-dc3c/tplx;adec-e439/~tNl;f173-dc15/sz, PASS, +/simulations/nr/mec/requestResponseApp/, -f omnetpp.ini -c best_case -r 0, 10s, 2d01-2d89/tplx;646f-e204/~tNl;9843-27a5/sz, PASS, +/simulations/nr/mec/requestResponseApp/, -f omnetpp.ini -c best_case_load_gen -r 0, 10s, 070a-89e5/tplx;68c9-daad/~tNl;6443-27aa/sz, PASS, +/simulations/nr/mec/requestResponseApp/, -f omnetpp.ini -c bgUEs_gnb1 -r 0, 10s, eb0e-1658/tplx;865f-562a/~tNl;ab2c-d2d2/sz, PASS, +/simulations/nr/mec/requestResponseApp/, -f omnetpp.ini -c bgUEs_gnb2 -r 0, 10s, eb0e-1658/tplx;865f-562a/~tNl;ab2c-d2d2/sz, PASS, +/simulations/nr/mec/requestResponseApp/, -f omnetpp.ini -c farRNI -r 0, 10s, 0228-ea68/tplx;92d5-51b1/~tNl;8a0a-1273/sz, PASS, +/simulations/nr/mec/requestResponseApp/, -f omnetpp.ini -c MultiMec -r 0, 10s, eb0e-1658/tplx;865f-562a/~tNl;ab2c-d2d2/sz, PASS, +/simulations/nr/mec/requestResponseApp/, -f omnetpp.ini -c nearRNI -r 0, 10s, dc22-f3a4/tplx;124b-f628/~tNl;0d13-0af5/sz, PASS, +/simulations/nr/mec/requestResponseApp/, -f omnetpp.ini -c nearRNI_bgUEs_gnb1 -r 0, 10s, dc22-f3a4/tplx;124b-f628/~tNl;0d13-0af5/sz, PASS, +/simulations/nr/mec/requestResponseApp/, -f omnetpp.ini -c nearRNI_bgUEs_gnb2 -r 0, 10s, dc22-f3a4/tplx;124b-f628/~tNl;0d13-0af5/sz, PASS, +/simulations/nr/mec/requestResponseApp/, -f omnetpp.ini -c worst_case -r 0, 10s, 170c-d176/tplx;e749-180f/~tNl;6443-27aa/sz, PASS, +/simulations/nr/mec/requestResponseApp/, -f omnetpp.ini -c worst_case_load_gen -r 0, 10s, 49b7-5399/tplx;9753-99a0/~tNl;6443-27aa/sz, PASS, /simulations/nr/mec/rnisTest/, -f omnetpp.ini -c RnisTest -r 0, 5s, c9a0-d49e/tplx;633f-50d8/~tNl;6ae9-f4dc/sz, PASS, /simulations/nr/mec/singleMecHost/, -f omnetpp.ini -c BgGeneratorApp -r 0, 5s, a64d-8180/tplx;1cf9-34be/~tNl;9ff0-3d43/sz, PASS, /simulations/nr/mec/singleMecHost/, -f omnetpp.ini -c LoadGenerator -r 0, 5s, f45b-c2e3/tplx;527b-faab/~tNl;9ff0-3d43/sz, PASS, @@ -120,7 +120,7 @@ /simulations/nr/tutorial/, -f omnetpp.ini -c Multiple-UEs -r 0, 5s, 1c69-a30b/tplx;fae1-004b/~tNl;911b-750d/sz, PASS, /simulations/nr/tutorial/, -f omnetpp.ini -c Numerology -r 0, 5s, fb28-e3fd/tplx;d46b-e1ec/~tNl;e91e-f3d9/sz, PASS, /simulations/nr/tutorial/, -f omnetpp.ini -c Single-UE -r 0, 5s, f524-33c2/tplx;8675-5f47/~tNl;8da4-38f2/sz, PASS, -/simulations/nr/videostreaming_dataset_generator/, -f omnetpp.ini -c UrbanNetwork -r 0, 5s, 03fa-04ee/tplx;56e7-b598/~tNl;7b04-51bc/sz, PASS, +/simulations/nr/videostreaming_dataset_generator/, -f omnetpp.ini -c UrbanNetwork -r 0, 10s, 5987-db9a/tplx;8c3b-d289/~tNl;2b40-6bb9/sz, PASS, /tutorials/nr/, -f omnetpp.ini -c BgTraffic -r 0, 5s, 9e6c-745b/tplx;77bc-4597/~tNl;3421-2729/sz, PASS, /tutorials/nr/, -f omnetpp.ini -c CarrierAggregation -r 0, 5s, dd77-d910/tplx;6f78-f509/~tNl;e1f6-d784/sz, PASS, /tutorials/nr/, -f omnetpp.ini -c Multiple-UEs -r 0, 5s, e36e-b3c6/tplx;9607-cd9f/~tNl;b433-42c8/sz, PASS,