...
Near-RT RIC platform setup is required. Link for Near-RT RIC installation.
...
Path: to build Dockerfile : ric_benchmarking/e2-interface/e2sim/e2sm_examples/kpm_e2sm/
build -f Dockerfile -t nexus3.o-ran-sc.org:10002/oran-ric/e2simul:2.0.0 .
docker push nexus3.o-ran-sc.org:10002/oran-ric/e2simul:2.0.0 .
Note: For Running single/multiple instances of E2Sims, Kindly, follow the README file and update the Dockerfile accordingly before building it.
...
Installing E2Sim(E2-interface):
helm install -n e2sim . --namespace <namespace_name>
check E2Sim pod: kubectl get pods -n <namespaces_name>
kubectl logs <e2sim-pod> -n namespace --follow
The logs must show the entries in the end as below:
...
Onboarding of xApp:
STEP -1:
echo '{"config-file.json_url": "https://gerrit.o-ran-sc.org/r/gitweb?p=ric-app/bouncer.git;a=blob;f=Bouncer/init/config-file.json;hb=HEAD"}' > onboard.bouncer.url
STEP -2:
curl --location --request POST "http://$(hostname):32080/onboard/api/v1/onboard/download" --header 'Content-Type: application/json' --data-binary "@./onboard.bouncer.url"
To view onboarded charts:
curl --location --request GET "http://$(hostname):32080/onboard/api/v1/charts"
STEP -3: Deploying xApp
Deploy the xApp by invoking the xApp Manager's API.
Note: that the names of the xApp to be deployed must match with what the on-boarder has.
Once receiving the deploy API call, the xApp Manager will make API call into Helm/Kubernetes to deploy the xApp's Helm chart.
The Routing Manager is also involved if the xApp needs to process RMR messages, – it will complete the routes and send out route updates.
curl --location --request POST "http://$(hostname):32080/appmgr/ric/v1/xapps" --header 'Content-Type: application/json' --data-raw '{"xappName": "bouncer-xapp"}'
Now check the bouncer xApp pod:
kubectl get pods -n ricxapp ricxapp
For eg.
NAME READY STATUS RESTARTS AGE
ricxapp-bouncer-xapp-b8f45f4f6-tnvpq 1/1 Running 0 2m2s
...
To delete an onboarded xApp:
curl --location --request DELETE "http://$(hostname):32080/appmgr/ric/v1/xapps/bouncer-xapp"
Note: where the name: 'bouncer-xapp' is the name of your xApp.
...
command to login to container: kubectl exec -it <bouncer xapp pod> -n ricxapp /bin/bash
Inside container cd /tmp
cat timestamp.txt
snippet:
[
Received Msg with msgType 28 June: 12011 at time: 1624982927922998
Received Msg with msgType 28 June: 12011 at time: 1624982928923207
Received Msg with msgType 28 June: 12050 at time: 1624982929923397
Send Msg with msgType 28 June: 12040 at time: 1624982929923510
Time diff: 113
]
Similarly, login to the E2sim container and find the timestamp file for E2Sim
kubectl exec -it <E2Sim pod> -n <E2sim namespace> /bin/bash
inside Container cd /tmp
cat Timestamp.txt
snippet:
[
Sent RIC Indication at time: 1606157488066
Received RIC Control Msg at time: 1606157489066
Time diff in Microseconds:1000
]