Introduction

Performance RIC benchmarking is a feature that aims to provide the performance metrics on both the RAN (Radio Access Network) and Near-RT RIC platform. It involves the communication of E2-simulator from RAN side to Near-RT RIC platform infrastructure that uses the xApp onboarded on RIC platform. The xApp that interacts messages with E2simulator through the Near RT RIC platform pods and records the time that provides metrics on latency/throughput on the RIC platform and on the xApp onboarded on RIC platform is termed as Bouncer xApp.


Features:    

  • The Bouncer xApp demonstrate RIC benchmarking using the E2 simulator communicating with Near-RT RIC platform .
  • Bouncer xApp interacts with E2simulator using the Near- RT RIC platform for sending the RIC Subscription Request and receiving Response for the same.
  • Bouncer xApp receives the RIC indication and sends the Control Message.
  • This communication is stored in a file with timestamp to determine the latency/throughput as part of Performance RIC benchmarking purpose.


Architecture:



 


Prerequisites:

Near-RT RIC platform setup is required. Link for Near-RT RIC installation.

E2-interface (E2-Simulator) code needs to be build and deployed.

The Bouncer xApp needs to be build, deployed and onboarded on the Near RT RIC platform.


Building E2Sim(E2-interface):

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:

[E2AP] Unpacked E2AP-PDU: index = 2, procedureCode = 1

[E2AP] Received SETUP-RESPONSE-SUCCESS

This means the E2Sim(RAN) has connected to E2term pod of RIC Platform successfully, and its ready to communicate with xApp. So keep it as it is. and run the Bouncer xApp.

So now you can follow the steps to Deploy the Bouncer xApp. 

If, the E2Sim logs doesn't shows above RESPONSE, then it means the E2sim is not connected to E2term pod of RIC Platform and check the status of E2term pods and probe accordingly. 


To delete a running E2sim pod:

kubectl delete deployment.apps/e2sim -n namespace

Go to path : ric_benchmarking/e2-interface/e2sim/e2sm_examples/kpm_e2sm/helm

helm del --purge e2sim


To restart the E2Sim pod:

Note: This is done only when either post re-deployment of RIC Platform Pods / RESTART of RIC platform Pods

kubectl -n test rollout restart deployment e2sim


Building xApp:

docker build -f Dockerfile -t nexus3.o-ran-sc.org:10002/oran-ric/bouncer_test:1.0.0 .

docker push nexus3.o-ran-sc.org:10002/oran-ric/bouncer_test:1.0.0


Preparing an xApp for onboarding:

Here we are preparing for API calls into the xApp On-Boarder by providing the locations of the xApp descriptors:


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 

For eg. 

NAME                                                       READY  STATUS   RESTARTS  AGE
ricxapp-bouncer-xapp-b8f45f4f6-tnvpq   1/1        Running  0                2m2s

Once Bouncer xApp pod is spawned, after around 90 secs, the E2sim logs gets updated with RIC Subscription, RIC Response and RIC Indications 


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.


Results:

Round trip time for each interaction are recorded and stored in the timestamp.txt file that gets created in the container.

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

]

  • No labels

26 Comments

  1. Dear all,
    during deployment, i met problem.

    curl --location --request GET "http://10.108.185.56:32080/onboard/api/v1/charts"
    "bouncer-xapp": [
    {
    "name": "bouncer-xapp",
    "version": "2.0.0",
    "description": "Standard xApp Helm Chart",
    "apiVersion": "v1",
    "appVersion": "1.0",
    "urls": [
    "charts/bouncer-xapp-2.0.0.tgz"
    ],
    "created": "2021-08-12T13:55:39.077135015Z",
    "digest": "b54187094ed0f7faf9baadf21a4c82516a23adbb1a2ed0ad0d1b92aad3b998a5"
    }

    curl --location --request POST "http://10.108.185.56:32080/appmgr/ric/v1/xapps" --header 'Content-Type: application/json' --data-raw '{"xappName": "bouncer-xapp"}' -v
    Note: Unnecessary use of -X or --request, POST is already inferred.
    * Trying 10.108.185.56...
    * TCP_NODELAY set
    * Connected to 10.108.185.56 (10.108.185.56) port 32080 (#0)
    > POST /appmgr/ric/v1/xapps HTTP/1.1
    > Host: 10.108.185.56:32080
    > User-Agent: curl/7.58.0
    > Accept: */*
    > Content-Type: application/json
    > Content-Length: 28
    >
    * upload completely sent off: 28 out of 28 bytes
    < HTTP/1.1 501 Not Implemented
    < Content-Type: application/json
    < Content-Length: 56
    < Connection: keep-alive
    < Date: Thu, 12 Aug 2021 14:00:25 GMT
    < X-Kong-Upstream-Latency: 1
    < X-Kong-Proxy-Latency: 1
    < Via: kong/1.4.3
    <
    "operation XappDeployXapp has not yet been implemented"

  2. please check RIC-826. This seems to be the same issue.

  3. Let's follow this up in JIRA case RIC-826. I added your last comment there

  4. dear all,
    if you will meet problem like me, please find solution.
    Back-off pulling image "nexus3.o-ran-sc.org:10002/o-ran-sc/ric-app-bouncer:2.0.0"
    ->
    KUBE_EDITOR="nano" kubectl edit deploy ricxapp-bouncer-xapp -n ricxapp
    change deployment image to "nexus3.o-ran-sc.org:10004/o-ran-sc/ric-app-bouncer:2.0.0"

  5. Hi,

    I´m trying to push the E2sin image to the nexus repository but I get:

    The push refers to repository [nexus3.o-ran-sc.org:10002/oran-ric/e2simul]
    aac0b1e4db20: Preparing 10fe42fa6dfd: Preparing 72c8579dec0d: Preparing c232c2cb1227: Preparing 619f9c39433d: Preparing 6c8662072062: Waiting 6f6ad31c694f: Waiting f7a7d23c2d41: Waiting dea5e2149350: Waiting 770a9e329c52: Waiting 03d718aad9c4: Waiting cb678f9e67e1: Waiting 6345f75ef121: Waiting db5648ca1602: Waiting 17c362cf614d: Waiting 1bf503e0c025: Waiting 6dae3dd4be3b: Waiting 9dfdc6c2cdae: Waiting b6ac51ac7a06: Waiting e2cf47ababd5: Waiting fe6d8881187d: Waiting 23135df75b44: Waiting b43408d5f11b: Waiting unauthorized: access to the requested resource is not authorized


    Does this have something to do with access/user permissions in the repository?


    Many thanks,


    BR

    1. for tests, you can also docker run e2sim image without onboarding it.

      1. Hi Kamil, thanks so much for your answer. I had tried that previously and it got stuck, guess I wasn´t patient enough, I´ve run it again and looks like it´s working!! Cheers

  6. cd dep/bin

    Undeployment
    ./undeploy-ric-platform

    export HELM_HOME=/home/ubuntu/.helm

    Deployment
    ./deploy-ric-platform -f ../RECIPE_EXAMPLE/PLATFORM/example_recipe.yaml


    kubectl rollout restart deployment --namespace ricplt deployment-ricplt-e2term-alpha deployment-ricplt-e2mgr deployment-ricplt-submgr deployment-ricplt-rtmgr

    kubectl get pods -n ricplt //to check the pods status


    Hi All,

    We are performing testing on Bouncer xApp and we have observed 1 issue here. While deployment of E2 SIM it starts sending E2 setup request. Below are the steps we are performing

    cd dep/bin
    Undeployment
    ./undeploy-ric-platform

    export HELM_HOME=/home/ubuntu/.helm
    Deployment
    ./deploy-ric-platform -f ../RECIPE_EXAMPLE/PLATFORM/example_recipe.yaml
    kubectl rollout restart deployment --namespace ricplt deployment-ricplt-e2term-alpha deployment-ricplt-e2mgr deployment-ricplt-submgr deployment-ricplt-rtmgr
    kubectl get pods -n ricplt //to check the pods status


    Building E2Sim(E2-interface):

    Running the setup with Kubernetes pod :
    ---------------------------------------
    kubectl get pods -n test
    helm delete e2sim --purge
    cd test/ric_benchmarking/e2-interface/e2sim/e2sm_examples/kpm_e2sm/helm/
    helm install --name e2sim --namespace test .

    Running the setup with Docker image :
    ---------------------------------------
    docker build -f Dockerfile -t oran.nexus:8082/oran-ric/e2_test:himanshu .
    sudo docker run -it --entrypoint=/bin/bash 493e7d3d9061
    cd src/.build/src/kpm/
    ./kpm_sim 192.168.122.66 32222 50


    After running the above steps we are getting issue after certain number of E2 responses. The issue which is coming is "Waiting for connection reset by peer" by E2T. This issue comes for some moment and after some time again E2 T starts sending E2 Setup responses.


    Please find attached the log and screen shot for the same.


    Regards,

    Amitexample_recipe_old.yaml

  7. Hello All,

    I asked this question no another comment. I'm replicating it here to maybe help some else that might have the same issue:


    I'm using a REST based subscription but Im having the following error in the submgr:

    (CREATE routeinfo(2/[service-ricxapp-bouncer-xapp-rmr.ricxapp:4500]) failed with error: [POST /handles/xapp-subscription-handle][400] provideXappSubscriptionHandleBadRequest ")


    I checked the body of the post the is seems to pass the swagger validation. Since either REST (out xapp) and rmr bouncer xapp) are having the same error. I wonder if it is something on my deployment...

    Can you shed some light on this one?


    Thanks!


    This is the error when we try the bouncer xApp

    {"ts":1646395075001,"crit":"INFO","id":"submgr","msg":"AssignToSubscription subs.EpList.Size()=1"}
    {"ts":1646395075003,"crit":"ERROR","id":"submgr","msg":"CREATE routeinfo(2/[service-ricxapp-bouncer-xapp-rmr.ricxapp:4500]) failed with error: [POST /handles/xapp-subscription-handle][400] provideXappSubscriptionHandleBadRequest "}
    {"ts":1646395075003,"crit":"ERROR","id":"submgr","msg":"XAPP-SubReq: transxapp(trans(1/meid(RanName=gnb_130_000_b5c67788))/transkey(service-ricxapp-bouncer-xapp-rmr.ricxapp:4500/0846930886)/0) err(RTMGR route create failure)"}




    And this is the error with our subscription xApp

    {"ts":1646396525236,"crit":"INFO","id":"submgr","msg":"AssignToSubscription subs.EpList.Size()=1"}
    {"ts":1646396525243,"crit":"ERROR","id":"submgr","msg":"CREATE routeinfo(3/[service-ricxapp-hello-subscription-xapp-rmr.ricxapp:4500]) failed with error: [POST /handles/xapp-subscription-handle][400] provideXappSubscriptionHandleBadRequest "}
    {"ts":1646396525243,"crit":"ERROR","id":"submgr","msg":"XAPP-SubReq Assign error: transxapp(trans(2/meid(RanName=gnb_130_000_b5c67788))/transkey(service-ricxapp-hello-subscription-xapp-rmr.ricxapp:4500/25v97Y4Cszl6zhxaB2PJrl6DFT1)/0) err(RTMGR route create failure)"}

  8. Hello,
    I've just finished the above steps on E2Sim and bouncer xApp (on D release), but the timestamp.txt file is empty in the container of the bouncer-xapp pod.
    I get this error in the logs of bouncer-xapp pod:
    {"SubscriptionId":"2ANxarLV7t9QxpfxPfZo3dduRJZ","SubscriptionInstances":[{"E2EventInstanceId":0,"ErrorCause":"RTMGR route create failure","XappEventInstanceId":12345}]}

    (the file of the logs is attached)
    Is there any solution to solve this problem?
    I would appreciate any help.

    1. Make sure that xAPP is registered in RIC platform. Once that is done, the error might be gone, unless properly configured.


      1. Thank you for your response;

        Yes, you're right the Bouncer xApp is not registered in the RIC platform; When I try "curl -i -X GET http://10.106.234.211:8080/ric/v1/xapps //IP=appmgr IP"  it only returns HW xApp. This means Bouncer xApp is not registered yet (the output of this command is attached).
        What should I do to solve the problem and register this xApp in RIC platform?

        Many Thanks

        1. Please use the xAPP writing guide version 2 for registering the xAPP (Python and C++). The xAPPs written in GO have the support to register itself, but the xAPPs written in Python & C++ needs to be registered in RIC platform.

          1. After xApp registration, the problem was solved. Thank you for your help.

            1. Hello, I register my xapp as following documentation. But I don't know what is the appInstanceName property. Can you show me your register example? Thanks!

              1. Hi, to the best of my knowledge, we can assign an arbitrary value to this parameter.
                Here is my command to register the Bouncer xApp:

                curl -X POST http://10.99.86.2:8080/ric/v1/register -H 'accept: application/json' -H 'Content-Type: application/json' -d '{ "appName":"bouncer-xapp", "appVersion":"1.0", "configPath":"", "appInstanceName":"bouncer-xapp", "httpEndpoint":"10.108.115.166:8080", "rmrEndpoint":"10.97.54.220:4560", "config":"{\r\n        \"xapp_name\": \"bouncer-xapp\",\r\n        \"version\": \"2.0.0\",\r\n        \"containers\": [\r\n            {\r\n                \"name\": \"bouncer-xapp\",\r\n                \"image\": {\r\n\t\t\"registry\": \"nexus3.o-ran-sc.org:10002\",\r\n\t\t\"name\": \"o-ran-sc/ric-app-bouncer\",\r\n\t\t\"tag\": \"2.0.0\"\r\n               \t}\r\n            }\r\n        ],\r\n        \"messaging\": {\r\n            \"ports\": [\r\n                {\r\n                        \"name\": \"http\",\r\n                        \"container\": \"bouncer-xapp\",\r\n                        \"port\": 8080,\r\n                        \"description\": \"http service\"\r\n                },\r\n                {\r\n                    \"name\": \"rmr-data\",\r\n                    \"container\": \"bouncer-xapp\",\r\n                    \"port\": 4560,\r\n\r\n                    \"rxMessages\": [\"RIC_SUB_RESP\", \"RIC_INDICATION\",\"RIC_SUB_DEL_RESP\"],\r\n                    \"txMessages\": [\"RIC_SUB_REQ\",\"RIC_SUB_DEL_REQ\"],\r\n                    \"policies\": [1],\r\n                    \"description\": \"rmr receive data port for Bouncer xApp\"\r\n                },\r\n                {\r\n                    \"name\": \"rmr-route\",\r\n                    \"container\": \"bouncer-xapp\",\r\n                    \"port\": 4561,\r\n                    \"description\": \"rmr route port for Bouncer xApp\"\r\n                }\r\n            ]\r\n        },\r\n        \"rmr\": {\r\n            \"protPort\": \"tcp:4560\",\r\n            \"maxSize\": 2072,\r\n            \"numWorkers\": 1,\r\n            \"txMessages\": [\"RIC_SUB_REQ\",\"RIC_SUB_DEL_REQ\"],\r\n            \"rxMessages\": [\"RIC_SUB_RESP\", \"RIC_INDICATION\",\"RIC_SUB_DEL_RESP\"],\r\n            \"policies\": [1]\r\n        },\r\n        \"http\":{\r\n                \"protPort\": \"tcp:8080\"\r\n\r\n        }\r\n  }\r\n"}'

                1. First of all, thank your reply. Here is my command to register the xapp:


                  curl -X 'POST' 'http://service-ricplt-appmgr-http:8080/ric/v1/register' -H 'accept:application/json' -H 'Content-Type:application/json' -d '{"appName": "hwxapp","appVersion": "1.0.0","configPath": "http://10.244.0.95:8080/get/config","appInstanceName": "ricxapp-hwxapp-769845964-wwzg6","httpEndpoint": "10.244.0.95:8080","rmrEndpoint": "10.244.0.95:4560"}'

                  I use the configPath. When visit http://10.244.0.95:8080/get/config, we will get :

                  { "containers": [ { "image": { "name": "hw-python", "registry": "cyl.com", "tag": "1.0.0" }, "name": "hwxapp" } ], "messaging": { "ports": [ { "container": "hwxapp", "description": "rmr receive data port for HWxapp", "name": "rmr-data", "policies": [ 1 ], "port": 4560, "rxMessages": [ "A1_POLICY_REQ", "RIC_HEALTH_CHECK_REQ" ], "txMessages": [ "A1_POLICY_RESP", "A1_POLICY_QUERY", "RIC_HEALTH_CHECK_RESP" ] }, { "container": "hwxapp", "description": "rmr route port for hwxapp", "name": "rmr-route", "port": 4561 }, { "container": "hwxapp", "description": "http receive data port for hwxapp", "name": "http-data", "port": 8080 } ] }, "rmr": { "maxSize": 2072, "numWorkers": 1, "policies": [ 1 ], "protPort": "tcp:4560", "rxMessages": [ "RIC_SUB_RESP", "RIC_INDICATION", "A1_POLICY_REQ", "RIC_HEALTH_CHECK_REQ" ], "txMessages": [ "RIC_SUB_REQ", "A1_POLICY_RESP", "A1_POLICY_QUERY", "RIC_HEALTH_CHECK_RESP" ] }, "version": "1.0.0", "xapp_name": "hwxapp" }

                  Bug this way doesn't work. I will try as you say.

                  Thank you again!

                  1. I think configPath would have to be just /get/config (which the app mgr appends to "httpEndpoint" when it queries the initial config from the xApp (as a callback). It's simpler to pass the initial config as part of the registration in the "config" attribute (which should be the same as the "controls" section in the xApp descriptor.

                    1. Thanks. Fortunately, it can wordk well according to Mohammad Sadegh Ghasrizadeh advice. The following is my new Request:

                      curl -X 'POST' 'http://service-ricplt-appmgr-http:8080/ric/v1/register' -H 'accept:application/json' -H 'Content-Type:application/json' -d '{"appName": "hwxapp","appVersion": "1.0.0","configPath": "","appInstanceName": "ricxapp-hwxapp","httpEndpoint": "10.244.0.95:8080","rmrEndpoint": "10.244.0.95:4560","config":"{\"xapp_name\":\"hwxapp\",\"version\":\"1.0.0\",\"containers\":[{\"name\":\"hwxapp\",\"image\":{\"registry\":\"cyl.com\",\"name\":\"hw-python\",\"tag\":\"1.0.0\"}}],\"messaging\":{\"ports\":[{\"name\":\"rmr-data\",\"container\":\"hwxapp\",\"port\":4560,\"rxMessages\":[\"A1_POLICY_REQ\",\"RIC_HEALTH_CHECK_REQ\"],\"txMessages\":[\"A1_POLICY_RESP\",\"A1_POLICY_QUERY\",\"RIC_HEALTH_CHECK_RESP\"],\"policies\":[1],\"description\":\"rmrreceivedataportforHWxapp\"},{\"name\":\"rmr-route\",\"container\":\"hwxapp\",\"port\":4561,\"description\":\"rmrrouteportforhwxapp\"},{\"name\":\"http-data\",\"container\":\"hwxapp\",\"port\":8080,\"description\":\"httpreceivedataportforhwxapp\"}]},\"rmr\":{\"protPort\":\"tcp:4560\",\"maxSize\":2072,\"numWorkers\":1,\"txMessages\":[\"RIC_SUB_REQ\",\"A1_POLICY_RESP\",\"A1_POLICY_QUERY\",\"RIC_HEALTH_CHECK_RESP\"],\"rxMessages\":[\"RIC_SUB_RESP\",\"RIC_INDICATION\",\"A1_POLICY_REQ\",\"RIC_HEALTH_CHECK_REQ\"],\"policies\":[1]}}"}'

                      But I think this url is too long.

                      Hello, Thoralf Czichy, i change my URL by your advice as following.

                      curl -X 'POST' 'http://service-ricplt-appmgr-http:8080/ric/v1/register' -H 'accept:application/json' -H 'Content-Type:application/json' -d '{"appName": "hwxapp","appVersion": "1.0.0","configPath": "/get/config","appInstanceName": "ricxapp-hwxapp","httpEndpoint": "10.244.0.95:8080","rmrEndpoint": "10.244.0.95:4560"}'

                      I use the configPath. When visit http://10.244.0.95:8080/get/config, we will get :

                      { "containers": [ { "image": { "name": "hw-python", "registry": "cyl.com", "tag": "1.0.0" }, "name": "hwxapp" } ], "messaging": { "ports": [ { "container": "hwxapp", "description": "rmr receive data port for HWxapp", "name": "rmr-data", "policies": [ 1 ], "port": 4560, "rxMessages": [ "A1_POLICY_REQ", "RIC_HEALTH_CHECK_REQ" ], "txMessages": [ "A1_POLICY_RESP", "A1_POLICY_QUERY", "RIC_HEALTH_CHECK_RESP" ] }, { "container": "hwxapp", "description": "rmr route port for hwxapp", "name": "rmr-route", "port": 4561 }, { "container": "hwxapp", "description": "http receive data port for hwxapp", "name": "http-data", "port": 8080 } ] }, "rmr": { "maxSize": 2072, "numWorkers": 1, "policies": [ 1 ], "protPort": "tcp:4560", "rxMessages": [ "RIC_SUB_RESP", "RIC_INDICATION", "A1_POLICY_REQ", "RIC_HEALTH_CHECK_REQ" ], "txMessages": [ "RIC_SUB_REQ", "A1_POLICY_RESP", "A1_POLICY_QUERY", "RIC_HEALTH_CHECK_RESP" ] }, "version": "1.0.0", "xapp_name": "hwxapp" }

                      It cannot work,too. I don't know  what the url (http://10.244.0.95:8080/get/config) need to response. According you advice, should I refer to the following picture? Can you  give an example of the url response(http://10.244.0.95:8080/get/config).


    2. This version fo bouncer xApp is on top of REST API where as D rel RIC plt is using RMR. So to get your bouncer work use either E or F rel.

  9. Hello,

    In my case, the timestamp.txt file in the bouncer xApp pod, only contains 12050 and 12040 message types. Also, all the "Time diff" are 0. 

    Why are all the time differences zero?
    And what does it mean?

    Thanks!

    The timestamp.txt is attached.

    1. Hi,

      I met the same issue, and it seems that Bouncer xApp dose not send RIC Control to e2sim.
      I only can observe RIC Indication from pcap but not RIC Control msg.

      May I know if you already solved the issue?
      Thanks.

      1. We have identified some problem in RIC Control with f rel. We are working on that. May be meanwhile you can use E rel

        1. Thanks for the response.

          I will give it a try!

    2. This timestamp file you can use for getting time difference of req and resp. You can ignore if you dont need such file

  10. I get below error msg on e2term when using latest e2sim provided in ric_benchmarking dir. why e2sim msg is not getting decoded?

    {"ts":1677241294447,"crit":"ERROR","id":"E2Terminator","mdc":{"PID":"140003135117056","POD_NAME":"deployment-ricplt-e2term-alpha-5d58997d8f-c27n7","CONTAINER_NAME":"container-ricplt-e2term","SERVICE_NAME":"RIC_E2_TERM","HOST_NAME":"ubuntu-20","SYSTEM_NAME":"SEP"},"msg":"Error 2 Decoding (unpack) E2AP PDU from RAN : "}