OTF | OAM | NONRTRIC | RICP | RICAPP | O-DU | O-CU | Test Result | Notes | ||
---|---|---|---|---|---|---|---|---|---|---|
Deployment Artifacts | Docker Container | E2sim docker image needs to be generated locally for different RIC instance, will improve in the Cherry maintenance window. KPIMON needs CI jobs for image releasing QPdriver image 1.0.9 in staging is different than the 1.0.9 image in release repo Need to release QP and TS xApp images | ||||||||
xApp Descriptors | Need to update TS, QP, QP driver descriptors to release version Need to create a descriptor for KPMMON | |||||||||
E2E Flows | E2 setup | |||||||||
E2 Subscription | ||||||||||
E2 Indication | ||||||||||
KPMMON write to SDL | ||||||||||
Create A1 Policy | ||||||||||
TS read from SDL | ||||||||||
TS sends triggers to QP driver | ||||||||||
QP driver gets data from SDL | ||||||||||
QP driver send data to QP | ||||||||||
QP provide prediction | ||||||||||
TS make control decision |
MWC LA Demo Video
Test Manual
Deploy E2Simulator
There are several steps below that need to be taken to run this successfully. Sorry it is not yet as smooth as it should be. Some of these need to be automated properly, and some have to do with platform issues. If someone could take some of these on it would be helpful.
1. Deploy RIC platform
2. kubectl rollout restart deployment --namespace ricplt deployment-ricplt-e2mgr deployment-ricplt-e2term-alpha (The e2mgr and e2term need to be restarted; this is due to some issues with health check; I don’t know whether it has been resolved by that team)
3. clone sim/e2-interface
4. In the root directory of e2sim: Follow directions in README to produce the deb files
5. Since the deb files are not yet pushed to package cloud, we need to copy them
6. cp e2sim*deb ../e2sm_examples/kpm_e2sm
7. cd ../e2sm_examples/kpm_e2sm
8. Edit the Dockerfile at the bottom to have IP address of service-ricplt-e2term-sctp-alpha service
9. docker build .
10. docker tag <tag just built> e2simul:0.0.2
11. helm install –namespace ricplt helm
Once deployed, kubectl logs will show:
- An E2 Setup Request from E2 Simulator to E2 Term
- An E2 Setup Response from E2 Term to E2 Simulator
Onboarding and Deployment of xApps
The Use case involves four different xApps:
- Traffic Steering (TS) xApp (AT&T)
- QoE Prediction Driver (QPDriver) xApp (AT&T)
- QoE Prediction (QP) xApp (AT&T)
- KPIMON xApp (Samsung)
The first step is to deploy KPIMON xApp
Since KPIMON xApp does not yet have a CI job to create an image in Nexus and also does not have an xApp descriptor,
currently KPIMON deployment must be done in the following way:
- clone scp/ric-app/kpimon (note it is different than the ric-app/kpimon repo)
- docker build .
- docker tag <image tag just created> nexus3.o-ran-sc.org:10002/ric-app-kpimon:1.0.0
- curl -X POST --data-binary @xappkpimon-0.2.0.tgz http://<vm-name>:32080/helmrepo/api/charts (Push hand-crafted helm chart to appmgr chart museum)
We include the helm chart tarball here:
Now deploy the other three xApps
Each of these three xApps have a descriptor in their gerrit repo under the xapp-descriptor/ directory.
None of them have xapp specific controls and therefore no individual json schema
(Update Nov 23, QPDriver needs a separate schema file)
Here are the URLs for each which can be included in HTTP POST call to onboard tool
TS xApp:
QPDriver xApp:
Descriptor:
Schema:
QP xApp
Here is the URL for the Xapp Onboarder in your environment. The values 'ingress_host', 'ingress_port_http' and 'xapp_onboarder_path' refer to the hostname and port for reaching Kong ingress controller, and the ingress path assigned to xapp onboarder (likely the path is set to 'onboard').
http://{{ingress_host}}:{{ingress_port_http}}/{{xapp_onboarder_path}}/api/v1/onboard/download
As an example, the message body for the TS xapp is below. This needs to be sent in a POST request with Content-Type equal to 'application/json'
{
"config-file.json_url": "https://gerrit.o-ran-sc.org/r/gitweb?p=ric-app/qp-driver.git;a=blob_plain;f=xapp-descriptor/config.json;hb=HEAD"
}
To subsequently deploy any of these xapps, use the following command:
curl --location --request POST "http://{{ingress_host}}:{{ingress_port_http}}/{{xapp_onboarder_path}}/ric/v1/xapps" --header 'Content-Type: application/json' --data-raw '{"xappName": "trafficxapp"}'
(where xappName would be later set to 'qpdriver' and 'qp' to deploy the QP Driver and QP xapps respectively)
Creation of Traffic Steering Policy Type and Policy Instance
TS xApp consumes an A1 Policy
Below are the steps for providing it with a policy.
Policy Type Create
Copy the following into a file called create.json -
Policy Type Create
|
Then run:
curl -X PUT --header "Content-Type: application/json" --data-binary @create.json http://<Base URL for Kong>/a1mediator/a1-p/policytypes/20008
Policy Create
Run command:
curl -X PUT --header "Content-Type: application/json" --data "{\"threshold\" : 5}" http://<Base URL for Kong>/a1mediator/a1-p/policytypes/20008/policies/tsapolicy145
73 Comments
Javi G
When trying to deploy the E2 simulator, I get the following error:
Is there any solution to this?
Javi G
I apparently solved this with this command:
but then got a Cmakelist not found in /playpen error, so I copied the Dockerfile to the e2sim folder and then removed the build folder... I'm not sure if that's the way to go, it just made it work (apparently).
But now, when I reached last step (helm install –namespace ricplt helm) I got this error:
Any solution to this? Are the previous steps done correctly?
Javi G
It finally worked.
Now I have doubts on how to send the Schema file. Using this command "ttp://{{ingress_host}}:{{ingress_port_http}}/{{xapp_onboarder_path}}/api/v1/onboard/download" I get this error:
Is that the right command?
Another error I get, is when trying to deploy the xapps:
Any help would be appreciated.
Pratheek Upadhyaya
I know this is a bit late.
But for users who encounter the same issue in the future,
echo '{"config-file.json_url": "https://gerrit.o-ran-sc.org/r/gitweb?p=ric-app/qp.git;a=blob_plain;f=xapp-descriptor/config.json;hb=HEAD" }' > onboard.qp.url
sudo curl --location --request POST "http://10.107.226.208:32080/onboard/api/v1/onboard/download" --header 'Content-Type: application/json' --data-binary "@./onboard.qp.url"
sudo curl --location --request GET "http://10.107.226.208:32080/onboard/api/v1/charts"
sudo curl --location --request POST "http://10.107.226.208:32080/appmgr/ric/v1/xapps" --header 'Content-Type: application/json' --data-raw '{"xappName": "qp"}' -v
Remember to replace the IP address with the IP of your Kong ingress controller. This you can find out using
sudo kubectl get service -A | grep 32080
Note that I have illustrated the steps for only one xApp. You'll have to repeat this for the other two(qpdriver & trafficsteering). Refer to Zheng Gao's tutorial for more details – (https://blog.csdn.net/jeffyko/article/details/107426626?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-1&spm=1001.2101.3001.4242)
Travis Machacek
Hi Pratheek,
Do you know how the Schema url we see here is intended to be used?
Pratheek Upadhyaya
If someone encounters the "manifest unknown" error try following these steps (This worked for me):
Pull the dockerfile base image
docker pull
nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-ubuntu18-c-go:1.9.0
Set the appropriate tag - This can be found in the DockerFile
docker tag
nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-ubuntu18-c-go:1.9.0 nexus3.o-ran-sc.org:10004/o-ran-sc/bldr-ubuntu18-c-go:8-u18.04
Run docker build . after following the above two steps.
P.S : If you are not able to pull the docker image(step 1), try logging into the o-ran docker registry server
docker login -u docker -p docker https://nexus3.o-ran-sc.org:10004
docker login -u docker -p docker https://nexus3.o-ran-sc.org:10002
Then continue with the steps mentioned above.
Hope this helps someone.
Kamil Kociszewski
in my case, change docker file line helped.
nexus3.o-ran-sc.org:10004/o-ran-sc/bldr-ubuntu18-c-go:1.9.0
->
nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-ubuntu18-c-go:1.9.0
Travis Machacek
I ran into this issue as well. I ended up building the bldr-ubuntu18-c-go image myself since I could not pull down any image with any tag. The steps to do this are:
git clone http://gerrit.o-ran-sc.org/r/it/dev
cd dev/bldr-imgs/bldr-ubuntu18-c-go
docker build -t bldr-ubuntu18-c-go:8-u18.04
If you run into the issue where the "go get -v github.com/ory/go-acc" command returns with a non-zero code (hcl not found), I fixed this by changing line 80 of the Dockerfile
from:
to
GO111MODULE=on is a way to force go to work in "modules mode" and will get the packages that are missing.
I was then able to build the image in /kpm_e2sm with the locally built bldr-ubuntu18-c-go:8-u18.04 image rather than the one from nexus. You might need to change that line in the kpm_e2sm/Dockerfile to make sure it looks for the locally built one rather than the one from nexus.
As for your issue with helm install –namespace ricplt helm, when I copied the command from this page, there was only one space before namespace but there needs to be two (--namespace). This was the result:
$ sudo helm install --namespace ricplt helm
NAME: running-seagull
LAST DEPLOYED: Mon Mar 22 23:45:36 2021
NAMESPACE: ricplt
STATUS: DEPLOYED
RESOURCES:
==> v1/Pod(related)
NAME READY STATUS RESTARTS AGE
e2sim-66c676d66b-mf77c 0/1 Pending 0 0s
==> v1/Deployment
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
e2sim 1 0 0 0 0s
Hope some of this helps.
Agustin F. Pozuelo
It looks like "bldr-ubuntu18-c-go" has a new tag "1.9.0" in nexus3.
I updated it in the Dockerfiles for e2sim as part of this change request:
https://gerrit.o-ran-sc.org/r/c/sim/e2-interface/+/6175/5
The build works now, locally and in Jenkins.
Stefan Draskoci
Hello,
When onboarding the kpimon xApp and reviewing its logs, I get a constant "Waiting for RMR to be ready ..." message, the implication being that the RMR route table has not been read, since the int(C.rmr_redy(m.context)) portion within xapp_frame/pkg/xapp/rmr.go is not returning a 1. Fundamentally, even though the routes.txt file, which is meant to contain the routing table, does exist and is being passed as the RMR_SEED_RT environment variable in the Dockerfile, the file itself is empty. Even when I try to populate it with the appropriate routes, it still isn't read and as such the xApp never starts working since the RMR is never ready.
For added context, within the example xApp that is found in the xapp_frame folder, the routing table file is populated, the file is correctly passed as the ENV in the Dockerfile, and the xApp correctly references it in order to start the RMR. When I remove the contents of the routing table file and rebuild the image, the same issue that exists with the KPIMON xApp happens, as you would expect.
Could you advise me on how to proceed; what routes should exist within the routes.txt file and how can I modify rhe Dockerfile so that the building of the image properly reads it.
Yevhenii Mormul
Hello Stefan,
Have you found any sollutions to this problem? What I have is somewhat similar to yours:
{"ts":1625734432909,"crit":"INFO","id":"kpimon","mdc":{"time":"2021-07-08T08:53:52"},"msg":"rmrClient: Waiting for RMR to be ready ..."}
1625734433 1/RMR [INFO] endpoint: no counts: empty table
However my pod is getting deployed. It is just the xapp not functioning properly, because it has no routing table. I also tried changing the routing file, but it didn't help. Also try commenting out the line, which copies the RMR_SEED_RT to routes.txt.
Stefan Draskoci
Hi Yevhenii,
Yes, same on my side. The pod is deployed and running but the xApp itself never reaches the RIC_SUB_REQ portion because the RMR is never reported as ready. Unfortunately, even after a lot of troubleshooting and testing with various RMR and xapp_frame versions, I have no solution. Maybe we should post our concern somewhere else
Yevhenii Mormul
Hi, is there any other way to access the UE and Cell metrics and be able to write something into it?
Kamil Kociszewski
hi,
there is resolution for this issue below in comments.
Yevhenii
Hi everyone,
So i have successfully deployed the e2sim, but I am struggling with finding any manuals for it.
Also, has anyone managed to get hands on that e2-sim by viavi present into the video, if so could you please share the git link?
Any help would be appreciated,
Yevhenii
Pratheek Upadhyaya
Hello,
The E2-sim by Viavi is not yet released to the open-source community. They have just released the data (https://github.com/o-ran-sc/sim-e2-interface-data/blob/master/VIAVI%20RIC%20Tester%20Demo%20dataset.md). This gives a short description of the data. The E2-Sim is called the RIC tester and you might have to buy it from Viavi (https://www.viavisolutions.com/en-us/products/teravm-o-ran-ric-tester#overview). As far as I know, they haven't made it open source yet.
Yevhenii
Hi Pratheek,
Thanks for your help. Do you have any clue on how to feed the particular emulation data into the E2 SIM? For example, let's say I want to have 3 cells and a few stationary UE. I looked through the entire e2-interface folder and have not found any guidance on this topic.
BR,
Yevhenii
Javier Renart Espi
Hi Pratheek, do you know any open source simulator that can generate this kind of cell and UE reports?
Kamil Kociszewski
After successful deployment of KPIMON, KPIMON trigger e2sim(o-ran opensource) to send reports.
Please note that xapps need to be deployed after e2sim (or do rollout restart deployment of xapp) to correctly send subsrcibe events to e2sim (observed on kpimon and hwxapp).
please find example message:
[E2AP ASN] Encoded succesfully, encoded size = 147
in sctp send data func
data.len is 147after getting sent_len
De line is {"cellMeasReport":{"du-id":1010,"measTimeStampRf":"2020-11-05T15:39:58.859766","cellMeasReportList":[{"nrCellIdentity":10,"throughput":0.3,"pdcpByteMeasReport":{"measPeriodPdcpBytes":10,"pdcpBytesDl":307.2,"pdcpBytesUl":307.2},"prbMeasReport":{"measPeriodPrb":10,"availPrbDl":250,"availPrbUl":250}}]}}
key is valid
first key is cellMeasReport
it is equal to cell meas report
UE number 0
Cell ID 10
Bytes DL 307.200012
Bytes UL 307.200012
Avail PRB DL 250
Avail PRB UL 250
Encoding Style 5 Message body
inner er encded is 14
after encoding message
error length 0
error buf
Mukuan Junior Salem
Hello Everyone,
I got some error while building docker image kpimon xapp
Step 27/36 : RUN go build ./cmd/kpimon.go && pwd && ls -lat
---> Running in 1c6ed14d9733
# gerrit.o-ran-sc.org/r/ric-plt/sdlgo
../../../ric-plt/sdlgo/sdl.go:63:3: cannot use sdlgoredis.Create() (type *sdlgoredis.DB) as type iDatabase in field value:
*sdlgoredis.DB does not implement iDatabase (wrong type for DelIEPub method)
have DelIEPub(string, string, string, interface {}) (bool, error)
want DelIEPub([]string, string, interface {}) (bool, error)
../../../ric-plt/sdlgo/sdl.go:306:19: too many arguments in call to s.iDatabase.SetIEPub
have (string, string, string, interface {}, interface {})
want ([]string, string, interface {}, interface {})
../../../ric-plt/sdlgo/sdl.go:327:19: too many arguments in call to s.iDatabase.SetNXPub
have (string, string, string, interface {})
want ([]string, string, interface {})
../../../ric-plt/sdlgo/sdl.go:386:19: too many arguments in call to s.iDatabase.DelIEPub
have (string, string, string, interface {})
want ([]string, string, interface {})
../../../ric-plt/sdlgo/syncstorage.go:66:34: s.db.instances undefined (type *Database has no field or method instances)
../../../ric-plt/sdlgo/syncstorage.go:68:13: s.db.instances undefined (type *Database has no field or method instances)
../../../ric-plt/sdlgo/syncstorage.go:112:25: s.db.instances undefined (type *Database has no field or method instances)
../../../ric-plt/sdlgo/syncstorage.go:320:36: not enough arguments in call to s.getDbBackend(ns).SetIEPub
have ([]string, string, interface {}, interface {})
want (string, string, string, interface {}, interface {})
../../../ric-plt/sdlgo/syncstorage.go:344:36: not enough arguments in call to s.getDbBackend(ns).SetNXPub
have ([]string, string, interface {})
want (string, string, string, interface {})
../../../ric-plt/sdlgo/syncstorage.go:614:6: iDatabase redeclared in this block
previous declaration at ../../../ric-plt/sdlgo/sdl.go:609:6
../../../ric-plt/sdlgo/syncstorage.go:344:36: too many errors
did anyone knows this error ?
Thanks
BR,
Mukuan
Pratheek Upadhyaya
This might be due to pulling the SDL package from the master branch. I would say try pulling sdl from cherry branch. You will need to add "-b cherry" in the DockerFile where sdl package is being cloned.
Kamil Kociszewski
thank you, this helped in my case.
Javier Renart Espi
This worked, but I'm getting a CrashLoopBackOff on the pod, and logs are empty. The image doesn't seem to do anything. Do you know what's going on?
Kamil Kociszewski
try installing like this:
docker run --rm -u 0 -it -d -p 8090:8080 -e DEBUG=1 -e STORAGE=local -e STORAGE_LOCAL_ROOTDIR=/charts -v $(pwd)/charts:/charts chartmuseum/chartmuseum:latest
export CHART_REPO_URL=http://0.0.0.0:8090
curl -X POST --data-binary @xappkpimon-0.2.0.tgz http://localhost:8090/helmrepo/api/charts
dms_cli install xappkpimon 0.2.0 ricxapp
Javier Renart Espi
I was trying to install version 1.0.0 of kpimon xapp (https://gerrit.o-ran-sc.org/r/admin/repos/scp/ric-app/kpimon). The 0.2.0 is a different xapp, or just an older version?
I finally managed to install v1.0.0
Kamil Kociszewski
Javier Renart Espi
i tried to deploy 1.0.0 with your notes :
"Add this below:
ENV PATH $PATH:/usr/local/bin
ENV GOPATH /go
ENV GOBIN /go/bin
ENV RMR_SEED_RT /opt/routes.txt
COPY routes.txt /opt/routes.txt"
+
"I solved this by adding this line to the end of the Dockerfile
CMD ./kpimon -f /go/src/gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/config/config-file.yaml"
my steps:
Before i used 0.2.0 file that is attached at this page and use mentioned by me instructions do get pod running but with rmr route errors.
Javier Renart Espi
You shouldn't get the crashloopbackoff when you add the CMD line. Make sure you're deploying the correct image in dms_cli. you can also execute manually in the container bash this command to check if it works: ./kpimon -f /go/src/gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/config/config-file.yaml
Kamil Kociszewski
i run new container via docker and execute script and it looks like it working and routes are included.
now, i need to find out why pod crashing.
Kamil Kociszewski
can you share your Dockerfile and config.json?
Javier Renart Espi
Dockerfileconfig.json
I deployed it as 1.0.2, to make sure I was deploying the new image.
Kamil Kociszewski
thank you very much, it already workin also on my side!
i just repeat whole process form begining and now its working.
thanks Javier Renart Espiand Federico Rossi.
i suggest to update this page with dms_cli install method + update Dockerfile and config.json in GitHub - o-ran-sc/scp-ric-app-kpimon: Mirror of the scp/ric-app/kpimon repo
Kamil Kociszewski
please correct this point:
11. helm install –namespace ricplt helm
→
11. helm install --namespace ricplt helm
user-919ab
Hi All,
Can anyone get the solution for the below issue? How to resolve the Imagepullbackoff
Thanks in advance
Kamil Kociszewski
please find solution below in comments.
Kamil Kociszewski
please find current install method for KPIMON that helped me with this process
git clone https://github.com/o-ran-sc/scp-ric-app-kpimon
edit routes.txt
(add)
newrt|start
rte|20011|service-ricplt-a1mediator-rmr.ricplt:4562
rte|12010|service-ricplt-e2term-rmr-alpha.ricplt:38000
newrt|end
edit Docker file
(edit)
FROM nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-ubuntu20-c-go:1.0.0 as kpimonbuild
(edit)
RUN git clone "https://gerrit.o-ran-sc.org/r/ric-plt/sdlgo" -b cherry
(Add)
just before RUN go build ./cmd/kpimon.go && pwd && ls -lat add the line RUN go env -w GO111MODULE=off
(edit)
ENV PATH $PATH:/usr/local/bin
ENV GOPATH /go
ENV GOBIN /go/bin
ENV RMR_SEED_RT /opt/routes.txt
COPY routes.txt /opt/routes.txt
(Add at the end)
CMD ./kpimon -f /go/src/gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/config/config-file.yaml
build docker image
docker build .
docker tag (container id) nexus3.o-ran-sc.org:10002/ric-app-kpimon:1.0.0
edit scp-ric-app-kpimon/xapp-descriptor/config.json
"name": "xappkpimon",
"image": {
"registry": "nexus3.o-ran-sc.org:10002",
"name": "ric-app-kpimon",
"tag": "1.0.0"
Install xapp using dms_cli tool
docker run --rm -u 0 -it -d -p 8090:8080 -e DEBUG=1 -e STORAGE=local -e STORAGE_LOCAL_ROOTDIR=/charts -v $(pwd)/charts:/charts chartmuseum/chartmuseum:latest
export CHART_REPO_URL=http://0.0.0.0:8090
dms_cli onboard config.json ~/dep/xapps/embedded-schema.json (here you need to insert your path to embedded-schema.json)
dms_cli install xappkpimon 1.0.0 ricxapp
Anand SVR
what kind of config required at e2term for KPImon. The router.txt at e2-term doesn't contain any entry for kpimon
Divyani Achari
I followed the steps above but I am getting the following error .
ricxapp ricxapp-xappkpimon-67779646d9-nbk9k 0/1 CrashLoopBackOff 7 14m
Logs -
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled <unknown> default-scheduler Successfully assigned ricxapp/ricxapp-xappkpimon-67779646d9-nbk9k to instance-1
Normal Pulled 14m (x5 over 15m) kubelet, instance-1 Container image "nexus3.o-ran-sc.org:10002/ric-app-kpimon:1.0.0" already present on machine
Normal Created 14m (x5 over 15m) kubelet, instance-1 Created container xappkpimon
Normal Started 14m (x5 over 15m) kubelet, instance-1 Started container xappkpimon
Warning BackOff 35s (x71 over 15m) kubelet, instance-1 Back-off restarting failed container
Divyani Achari
The following is the error I am getting for kubectl describe command -
Warning FailedCreatePodSandBox 63s kubelet, instance-1 Failed create pod sandbox: rpc error: code = Unknown desc = failed to set up sandbox container "2d2f7e9c31899ba825ff3b8568625c7be28fcc5c7bac45652489b7d8d27ad594" network for pod "ricxapp-xappkpimon-67779646d9-nbk9k": networkPlugin cni failed to set up pod "ricxapp-xappkpimon-67779646d9-nbk9k_ricxapp" network: open /run/flannel/subnet.env: no such file or directory
Warning FailedCreatePodSandBox 59s kubelet, instance-1 Failed create pod sandbox: rpc error: code = Unknown desc = failed to set up sandbox container "6cda90607928afaea99b6b2175b085e5ec82e146f7fd86a47f411893e20699ac" network for pod "ricxapp-xappkpimon-67779646d9-nbk9k": networkPlugin cni failed to set up pod "ricxapp-xappkpimon-67779646d9-nbk9k_ricxapp" network: open /run/flannel/subnet.env: no such file or directory
Normal SandboxChanged 57s (x3 over 65s) kubelet, instance-1 Pod sandbox changed, it will be killed and re-created.
Normal Pulled 45s kubelet, instance-1 Container image "nexus3.o-ran-sc.org:10002/ric-app-kpimon:1.0.0" already present on machine
Normal Created 40s kubelet, instance-1 Created container xappkpimon
Normal Started 39s kubelet, instance-1 Started container xappkpimon
Warning BackOff 37s kubelet, instance-1 Back-off restarting failed container
Dan Shmirer
Hi Everyone,
I'm getting the following error during the docker build process
Step 17/36 : RUN cd xapp-frame && GO111MODULE=on go mod vendor -v && cp -r vendor/* /go/src/ && rm -rf vendor
---> Running in 7a19e58669db
Fetching https://golang.org/x/net?go-get=1
go: finding github.com/go-openapi/swag v0.19.7
go: finding github.com/go-openapi/errors v0.19.3
go: finding github.com/go-openapi/validate v0.19.6
go: finding github.com/spf13/viper v1.4.0
go: finding github.com/go-openapi/runtime v0.19.4
Parsing meta tags from https://golang.org/x/net?go-get=1 (status code 200)
get "golang.org/x/net": found meta tag get.metaImport{Prefix:"golang.org/x/net", VCS:"git", RepoRoot:"https://go.googlesource.com/net"} at https://golang.org/x/net?go-get=1
go: finding golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297
go: finding gerrit.o-ran-sc.org/r/ric-plt/sdlgo.git v0.5.2
go: finding gerrit.o-ran-sc.org/r/com/golog.git v0.0.0-20190604083303-aaffc8ebe3f1
go: finding gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common v1.0.35
go: finding gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader v1.0.35
go: finding github.com/go-openapi/loads v0.19.4
go: finding github.com/spf13/pflag v1.0.3
go: finding github.com/go-openapi/loads v0.19.2
go: finding gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities v1.0.35
go: finding gerrit.o-ran-sc.org/r/ric-plt/alarm-go.git/alarm v0.4.2
go: finding github.com/gorilla/websocket v1.4.0
Fetching https://go.uber.org/atomic?go-get=1
go: finding github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77
Fetching https://gopkg.in/check.v1?go-get=1
go: finding github.com/stretchr/testify v1.3.0
Parsing meta tags from https://go.uber.org/atomic?go-get=1 (status code 200)
get "go.uber.org/atomic": found meta tag get.metaImport{Prefix:"go.uber.org/atomic", VCS:"git", RepoRoot:"https://github.com/uber-go/atomic"} at https://go.uber.org/atomic?go-get=1
go: finding go.uber.org/atomic v1.4.0
go: finding github.com/vektah/gqlparser v1.1.2
go: finding github.com/golang/protobuf v1.3.4
go: finding github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef
Parsing meta tags from https://gopkg.in/check.v1?go-get=1 (status code 200)
get "gopkg.in/check.v1": found meta tag get.metaImport{Prefix:"gopkg.in/check.v1", VCS:"git", RepoRoot:"https://gopkg.in/check.v1"} at https://gopkg.in/check.v1?go-get=1
go: finding gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127
go: finding github.com/go-openapi/analysis v0.19.2
go: finding github.com/go-openapi/swag v0.19.5
go: gopkg.in/check.v1@v1.0.0-20180628173108-788fd7840127: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /go/pkg/mod/cache/vcs/7e5fa1eab4705eb80c9746632736cea906708d060702d529df6241d1c8c2c9f9: exit status 128:
fatal: unable to access 'https://gopkg.in/check.v1/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
go: finding github.com/stretchr/testify v1.5.1
Fetching https://go.uber.org/multierr?go-get=1
go: finding github.com/davecgh/go-spew v1.1.1
go: finding github.com/gorilla/mux v1.7.1
go: finding github.com/gogo/protobuf v1.2.1
go: finding github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0
go: finding github.com/go-openapi/strfmt v0.19.3
Parsing meta tags from https://go.uber.org/multierr?go-get=1 (status code 200)
get "go.uber.org/multierr": found meta tag get.metaImport{Prefix:"go.uber.org/multierr", VCS:"git", RepoRoot:"https://github.com/uber-go/multierr"} at https://go.uber.org/multierr?go-get=1
go: finding go.uber.org/multierr v1.1.0
go: finding github.com/pkg/errors v0.8.1
go: finding github.com/go-openapi/analysis v0.19.5
go: finding github.com/magiconair/properties v1.8.0
go: finding github.com/hashicorp/hcl v1.0.0
Fetching https://go.uber.org/zap?go-get=1
go: finding github.com/mitchellh/mapstructure v1.1.2
Fetching https://gopkg.in/yaml.v2?go-get=1
go: finding github.com/stretchr/testify v1.4.0
Fetching https://google.golang.org/grpc?go-get=1
Parsing meta tags from https://go.uber.org/zap?go-get=1 (status code 200)
get "go.uber.org/zap": found meta tag get.metaImport{Prefix:"go.uber.org/zap", VCS:"git", RepoRoot:"https://github.com/uber-go/zap"} at https://go.uber.org/zap?go-get=1
go: finding go.uber.org/zap v1.10.0
go: finding github.com/go-openapi/swag v0.19.2
Parsing meta tags from https://gopkg.in/yaml.v2?go-get=1 (status code 200)
get "gopkg.in/yaml.v2": found meta tag get.metaImport{Prefix:"gopkg.in/yaml.v2", VCS:"git", RepoRoot:"https://gopkg.in/yaml.v2"} at https://gopkg.in/yaml.v2?go-get=1
go: finding gopkg.in/yaml.v2 v2.2.2
go: finding github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6
Parsing meta tags from https://google.golang.org/grpc?go-get=1 (status code 200)
get "google.golang.org/grpc": found meta tag get.metaImport{Prefix:"google.golang.org/grpc", VCS:"git", RepoRoot:"https://github.com/grpc/grpc-go"} at https://google.golang.org/grpc?go-get=1
go: finding google.golang.org/grpc v1.21.0
go: gopkg.in/yaml.v2@v2.2.2: unknown revision v2.2.2
go: finding github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5
go: finding github.com/spf13/jwalterweatherman v1.0.0
go: finding github.com/dgrijalva/jwt-go v3.2.0+incompatible
go: finding github.com/ugorji/go v1.1.4
go: finding gopkg.in/yaml.v2 v2.2.4
go: gopkg.in/yaml.v2@v2.2.4: unknown revision v2.2.4
go: finding github.com/coreos/etcd v3.3.10+incompatible
go: finding github.com/mailru/easyjson v0.7.0
go: finding github.com/go-redis/redis v6.15.3+incompatible
go: finding github.com/soheilhy/cmux v0.1.4
go: finding github.com/jessevdk/go-flags v1.4.0
go: finding github.com/grpc-ecosystem/grpc-gateway v1.9.0
go: finding github.com/go-openapi/jsonpointer v0.19.3
go: finding github.com/go-openapi/spec v0.19.3
go: finding github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63
Fetching https://go.etcd.io/bbolt?go-get=1
go: finding github.com/go-openapi/strfmt v0.19.0
go: finding github.com/spf13/cast v1.3.0
Parsing meta tags from https://go.etcd.io/bbolt?go-get=1 (status code 200)
get "go.etcd.io/bbolt": found meta tag get.metaImport{Prefix:"go.etcd.io/bbolt", VCS:"git", RepoRoot:"https://github.com/etcd-io/bbolt"} at https://go.etcd.io/bbolt?go-get=1
go: finding go.etcd.io/bbolt v1.3.2
go: finding github.com/stretchr/testify v1.2.2
Fetching https://golang.org/x/sys?go-get=1
Parsing meta tags from https://golang.org/x/sys?go-get=1 (status code 200)
get "golang.org/x/sys": found meta tag get.metaImport{Prefix:"golang.org/x/sys", VCS:"git", RepoRoot:"https://go.googlesource.com/sys"} at https://golang.org/x/sys?go-get=1
go: finding golang.org/x/sys v0.0.0-20190204203706-41f3e6584952
go: finding github.com/go-openapi/errors v0.19.2
go: finding github.com/grpc-ecosystem/go-grpc-middleware v1.0.0
go: finding github.com/prometheus/client_golang v0.9.3
Fetching https://golang.org/x/time?go-get=1
Parsing meta tags from https://golang.org/x/time?go-get=1 (status code 200)
get "golang.org/x/time": found meta tag get.metaImport{Prefix:"golang.org/x/time", VCS:"git", RepoRoot:"https://go.googlesource.com/time"} at https://golang.org/x/time?go-get=1
go: finding golang.org/x/time v0.0.0-20190308202827-9d24e82272b4
go: finding github.com/go-openapi/jsonreference v0.19.3
go: finding github.com/google/btree v1.0.0
go: finding github.com/go-openapi/spec v0.19.2
go: finding github.com/docker/go-units v0.4.0
go: finding github.com/spf13/afero v1.1.2
go: finding github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f
Fetching https://golang.org/x/crypto?go-get=1
Fetching https://go.mongodb.org/mongo-driver?go-get=1
Parsing meta tags from https://golang.org/x/crypto?go-get=1 (status code 200)
get "golang.org/x/crypto": found meta tag get.metaImport{Prefix:"golang.org/x/crypto", VCS:"git", RepoRoot:"https://go.googlesource.com/crypto"} at https://golang.org/x/crypto?go-get=1
go: finding golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56
go: finding github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2
go: finding golang.org/x/net v0.0.0-20190522155817-f3200d17e092
go: finding github.com/go-openapi/validate v0.19.2
Fetching https://golang.org/x/tools?go-get=1
go: finding github.com/kr/pretty v0.1.0
Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
get "golang.org/x/tools": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools?go-get=1
go: finding golang.org/x/tools v0.0.0-20190617190820-da514acc4774
go: finding github.com/go-openapi/strfmt v0.19.4
Parsing meta tags from https://go.mongodb.org/mongo-driver?go-get=1 (status code 200)
get "go.mongodb.org/mongo-driver": found meta tag get.metaImport{Prefix:"go.mongodb.org/mongo-driver", VCS:"git", RepoRoot:"https://github.com/mongodb/mongo-go-driver.git"} at https://go.mongodb.org/mongo-driver?go-get=1
go: finding go.mongodb.org/mongo-driver v1.1.2
go: finding github.com/coreos/go-semver v0.2.0
go: finding github.com/pelletier/go-toml v1.2.0
go: finding github.com/stretchr/objx v0.2.0
go: finding github.com/fsnotify/fsnotify v1.4.7
go: finding github.com/jonboulle/clockwork v0.1.0
go: finding github.com/coreos/bbolt v1.3.2
go: finding github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e
go: error loading module requirements
The command '/bin/sh -c cd xapp-frame && GO111MODULE=on go mod vendor -v && cp -r vendor/* /go/src/ && rm -rf vendor' returned a non-zero code: 1
Has anyone else encountered this error?
Thanks for your time,
Dan Shmirer
Javier Renart Espi
I'm getting the same error now... Did you solve it?
Dan Shmirer
No, I'm using the c++ version from older release.
Michael Rimmer
This seemed to work for me - https://stackoverflow.com/a/69461176/10844516
Leo Zidane
Dont work so any more solutions???
Pratheek Upadhyaya
This error is basically because of an outdated version of Go (Go 1.12) installed in the base image nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-ubuntu18-c-go:1.9.0. This version fails some of the certificate checks and has broken links to revisions of Github repositories (Similar to this gopkg.in/yaml.v2@v2.2.4: unknown revision v2.2.4). That's why I guess it's stuck in the finding state and not downloading the dependencies. The fix is to use Ubuntu 20.04 image hosted by O-RAN-SC, which comes with GO 1.16. You can also build the image on your own using the Dockerfile hosted on https://gerrit.o-ran-sc.org/r/gitweb?p=it/dev.git;a=blob;f=bldr-imgs/bldr-ubuntu20-c-go/Dockerfile;h=8ddeb231c1631c4d25812c3c9527a38c29f0ae16;hb=HEAD. Here, you can change the version of Go to 1.17 too and build the base bldr-ubuntu20-c-go:1.0.0 image.
Change the 1st line of the Docker file to
FROM nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-ubuntu20-c-go:1.0.0 as kpimonbuild
Since we will be using Go 1.16 after the above change and Go 1.16 builds packages in module-aware mode by default, we need to set the environment variable GO111MODULE to off. So, just before
RUN go build ./cmd/kpimon.go && pwd && ls -lat add the line RUN go env -w GO111MODULE=off. So it basically looks like this,
RUN mkdir pkg
RUN go env -w GO111MODULE=off
RUN go build ./cmd/kpimon.go && pwd && ls -lat
FROM ubuntu:20.04 # The original Dockerfile uses an ubuntu 18.04 image. Change to 20.04
If the GO111MODULE=off is not set, an error occurs, asking for the go.mod file. Also, don't modify the line GO111MODULE=on go mod vendor -v. If you set the GO111MODULE=off here, then the package dependencies will not be resolved cleanly since the compiler will not identify gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp as a valid package.
More information regarding GO111MODULE and go.mod can be found here: https://maelvls.dev/go111module-everywhere/.
Hope this helps.
Regards,
Pratheek
Kamil Kociszewski
hi,
i met problem with lack of RIC_SUB_RESP for kpimon.
There is no answer sended after e2sim receive correctly RIC_SUB_REQ from kpimon.
e2sim get RIC_SUB_REQ correctly:
<E2AP-PDU>
<initiatingMessage>
<procedureCode>8</procedureCode>
<criticality><reject/></criticality>
<value>
<RICsubscriptionRequest>
<protocolIEs>
<RICsubscriptionRequest-IEs>
<id>29</id>
<criticality><reject/></criticality>
<value>
<RICrequestID>
<ricRequestorID>1001</ricRequestorID>
<ricInstanceID>1001</ricInstanceID>
</RICrequestID>
</value>
...
</E2AP-PDU>
e2sim not sending response, indication messages are generated with ue/cell metrics by sim.
KPIMON fail due to not receiving response:
RMR is ready now ...
{"ts":1633007921471,"crit":"DEBUG","id":"kpimon","mdc":{"time":"2021-09-30T13:18:41"},"msg":"send RIC_SUB_REQ to gNodeB with cnt=1"}
{"ts":1633007921471,"crit":"DEBUG","id":"kpimon","mdc":{"time":"2021-09-30T13:18:41"},"msg":"The RMR message to be sent is 12010 with SubId=1001"}
{"ts":1633007921473,"crit":"DEBUG","id":"kpimon","mdc":{"time":"2021-09-30T13:18:41"},"msg":"RIC_SUB_REQ[gnb_734_733_b5c67788]: Waiting for RIC_SUB_RESP..."}
{"ts":1633007926486,"crit":"DEBUG","id":"kpimon","mdc":{"time":"2021-09-30T13:18:46"},"msg":"RIC_SUB_REQ[gnb_734_733_b5c67788]: RIC Event Create Timer experied!"}
1633007947 10/RMR [INFO] sends: ts=1633007947 src=service-ricxapp-xappkpimon-rmr.ricxapp:4560 target=service-ricplt-a1mediator-rmr.ricplt:4562 open=0 succ=0 fail=0 (hard=0 soft=0)
Chandra Shekar Telagamaneni
Hi Kamil Kociszewski,
we are also getting same issue in Our KPImon logs. If you found any solution please let us know.
Thanks a lot
Hayanthika
Hi,
Did you get solution for this? am also struck in this step. pls help
Javier Renart Espi
Hi all, Pratheek Upadhyaya, is this flow currently working? I can't manage to make it work on Dawn release, but, will it work with cherry or bronze release?
Javier Renart Espi
At the end of the instructions, it is said that the TS xapp consumes an A1 policy. I have a policy just like in the example, but the TS Xapp doesn't show any comunication with the A1 mediator, eventhough there is callback, the TS xapp doesn't ask for the Policy at any time. How is this supposed to work?
Deena Md
hi Javier,
i'm also facing the same issue unable to get the A1 POLICY REQ being sent to TS xapp. i've created below policies
curl -X PUT --header "Content-Type: application/json" -d @create.json http://10.244.0.118:10000/a1-p/policytypes/20008
curl -X PUT --header "Content-Type: application/json" --data '{"threshold" : 12}' http://10.244.0.118:10000/a1-p/policytypes/20008/policies/tsapolicy145
In the a1-mediator logs i see following 'RMR_ERR_NOENDPT',
{"ts": 1634839103375, "crit": "DEBUG", "id": "/home/a1user/.local/bin/run-a1", "mdc": {"PID": 1, "SYSTEM_NAME": "", "HOST_NAME": "", "SERVICE_NAME": "", "CONTAINER_NAME": "", "POD_NAME": ""},
"msg": "_send_msg: sending: {'payload': b'{\"operation\": \"UPDATE\", \"policy_type_id\": 20008, \"policy_instance_id\": \"tsapolicy145\", \"payload\": {\"threshold\": 12}}', 'payload length': 116, 'message type': 20010, 'subscription id': 20008, 'transaction id': b'7bb83ea2329811ec83bf16552b9254e4', 'message state': 0, 'message status': 'RMR_OK', 'payload max size': 116, 'meid': b'', 'message source': 'service-ricplt-a1mediator-rmr.ricplt:4562', 'errno': 0}"}
{"ts": 1634839103375, "crit": "WARNING", "id": "/home/a1user/.local/bin/run-a1", "mdc": {"PID": 1, "SYSTEM_NAME": "", "HOST_NAME": "", "SERVICE_NAME": "", "CONTAINER_NAME": "", "POD_NAME": ""},
"msg": "RMR send failed; pre-send summary: {'payload': b'{\"operation\": \"UPDATE\", \"policy_type_id\": 20008, \"policy_instance_id\": \"tsapolicy145\", \"payload\": {\"threshold\": 12}}', 'payload length': 116, 'message type': 20010, 'subscription id': 20008, 'transaction id': b'7bb83ea2329811ec83bf16552b9254e4', 'message state': 0, 'message status': 'RMR_OK', 'payload max size': 116, 'meid': b'', 'message source': 'service-ricplt-a1mediator-rmr.ricplt:4562', 'errno': 0},
post-send summary: {'payload': None, 'payload length': 116, 'message type': 20010, 'subscription id': 20008, 'transaction id': b'7bb83ea2329811ec83bf16552b9254e4', 'message state': 2, 'message status': 'RMR_ERR_NOENDPT', 'payload max size': 116, 'meid': b'', 'message source': 'service-ricplt-a1mediator-rmr.ricplt:4562', 'errno': 6}"}
{"ts": 1634839103375, "crit": "DEBUG", "id": "/home/a1user/.local/bin/run-a1", "mdc": {"PID": 1, "SYSTEM_NAME": "", "HOST_NAME": "", "SERVICE_NAME": "", "CONTAINER_NAME": "", "POD_NAME": ""}, "msg": "_send_msg: result message state: 2"}
{"ts": 1634839103375, "crit": "WARNING", "id": "/home/a1user/.local/bin/run-a1", "mdc": {"PID": 1, "SYSTEM_NAME": "", "HOST_NAME": "", "SERVICE_NAME": "", "CONTAINER_NAME": "", "POD_NAME": ""}, "msg": "_send_msg: failed after 20 retries"}
::ffff:10.244.0.1 - - [2021-10-21 17:58:24] "GET /a1-p/healthcheck HTTP/1.1" 200 110 0.002131.
my route entries for a1-mediator are as below... Do we need to add the trafficsim route entry here explicitly ? Any pointers would greatly help..
mse|20010|SUBID|service-ricxapp-admctrl-rmr.ricxapp:4563
rte|20011|service-ricplt-a1mediator-rmr.ricplt:4562
rte|20012|service-ricplt-a1mediator-rmr.ricplt:4562
However, if i initiate a query from traffic SIM to A1 Policy query i'm able to get response.
Regards,
Deena
ervice-ricplt-a1mediator-rmr.ricplt:4562
Deepanshu Karnwal
Hello Javier and Deena Md, prior to Dawn release we had this functionality where via A1 policy and a threshold value users were being qualified for further investigation. But in Dawn release that has been suppressed for time being and might be used in later versions.
Deena Md
thanks Deepanshu for the information, is there any way i can make it work...i need it only for a single flow..not for production enviornment.
Javier Renart Espi
If we deploy the Cherry RIC will it work?
Travis Machacek
Deena Md Javier Renart Espi Was anyone able to get A1 policy flow working? Running into the same issue. Even tried on cherry release of Near-RT RIC.
Leo Zidane
I am new to this does anyone know why helm install --namespace ricplt helm failed??
Step 17/18 : CMD kpm_sim 10.110.102.29 36422
---> Using cache
---> 63fbf3c986b3
Step 18/18 : CMD service-ricplt-e2term-sctp-alpha 10.98.215.40
---> Using cache
---> cc2c2d5cec91
Successfully built cc2c2d5cec91
root@leo-VirtualBox:/home/leo/ric-app-hw/init/e2-interface/e2sim/e2sm_examples/kpm_e2sm# docker tag cc2c2d5cec91 e2simul:0.0.2
root@leo-VirtualBox:/home/leo/ric-app-hw/init/e2-interface/e2sim/e2sm_examples/kpm_e2sm# helm install --namespace ricplt helm
Error: INSTALLATION FAILED: must either provide a name or specify --generate-name
root@leo-VirtualBox:/home/leo/ric-app-hw/init/e2-interface/e2sim/e2sm_examples/kpm_e2sm#
Leo Zidane
I am new to this does anyone know why helm install --namespace ricplt helm failed??
Step 17/18 : CMD kpm_sim 10.110.102.29 36422
---> Using cache
---> 63fbf3c986b3
Step 18/18 : CMD service-ricplt-e2term-sctp-alpha 10.98.215.40
---> Using cache
---> cc2c2d5cec91
Successfully built cc2c2d5cec91
root@leo-VirtualBox:/home/leo/ric-app-hw/init/e2-interface/e2sim/e2sm_examples/kpm_e2sm# docker tag cc2c2d5cec91 e2simul:0.0.2
root@leo-VirtualBox:/home/leo/ric-app-hw/init/e2-interface/e2sim/e2sm_examples/kpm_e2sm# helm install --namespace ricplt helm
Error: INSTALLATION FAILED: must either provide a name or specify --generate-name
root@leo-VirtualBox:/home/leo/ric-app-hw/init/e2-interface/e2sim/e2sm_examples/kpm_e2sm#
Leo Zidane
Have the following errors anyone can help pls!!
Step 18/18 : CMD service-ricplt-e2term-sctp-alpha 10.98.215.40
---> Using cache
---> 6b9fc8819b20
Successfully built 6b9fc8819b20
root@leo-VirtualBox:/home/leo/ric-app-hw/init/e2-interface/e2sim/e2sm_examples/kpm_e2sm# helm install --namespace ricplt helm --generate-name
Error: INSTALLATION FAILED: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(Deployment.spec.template.spec.containers[0]): unknown field "restartPolicy" in io.k8s.api.core.v1.Container
root@leo-VirtualBox:/home/leo/ric-app-hw/init/e2-interface/e2sim/e2sm_examples/kpm_e2sm# docker tag 6b9fc8819b20 e2simul:0.0.2
root@leo-VirtualBox:/home/leo/ric-app-hw/init/e2-interface/e2sim/e2sm_examples/kpm_e2sm# helm install --namespace ricplt helm --generate-name
Error: INSTALLATION FAILED: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(Deployment.spec.template.spec.containers[0]): unknown field "restartPolicy" in io.k8s.api.core.v1.Container
root@leo-VirtualBox:/home/leo/ric-app-hw/init/e2-interface/e2sim/e2sm_examples/kpm_e2sm#
Federico Rossi
Leo ZidaneEdit helm/templates/deployment.yaml and just remove the entry "restartPolicy: never", redeploy and it will work.
For the release name go under the helm directory and then type: helm install (your-release-name) . -n ricplt
example:
helm install e2sim . -n ricplt
helm list -n ricplt | grep e2sim
e2sim ricplt 1 2022-02-11 17:09:30.135383065 -0500 EST deployed e2sim-3.0.0 1.0
to uninstall:
helm uninstall e2sim -n ricplt
Chandra Shekar Telagamaneni
Hi Federico Rossiand Leo Zidane I got the same issue but after deployment E2sim goes to CrashLoopBackOff. please find code of docker file changes and deployment.yaml below
I saw that when I cloned repo CMD service-ricplt-e2term-sctp-alpha 10.108.156.174 is not present in Docker file. So I added as below and built e2simul:0.0.3 image.
Dockerfile:
CMD kpm_sim 10.108.156.174 36422
CMD service-ricplt-e2term-sctp-alpha 10.108.156.174
After building image. Ran helm install --name e2sim ./helm -n ricplt command pod goes to crashloop.
deployment.yaml:-
spec:
containers:
- name: e2sim
image: e2simul:0.0.3
imagePullPolicy: IfNotPresent
restartPolicy: OnFailure
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 98s default-scheduler Successfully assigned ricplt/e2sim-76c4444cd4-79lvt to [node_name]
Normal Pulled 7s (x5 over 97s) kubelet, [node_name] Container image "e2simul:0.0.3" already present on machine
Normal Created 6s (x5 over 97s) kubelet, [node_name] Created container e2sim
Normal Started 6s (x5 over 97s) kubelet, [node_name] Started container e2sim
Warning BackOff 5s (x8 over 95s) kubelet, [node_name] Back-off restarting failed container
could please suggest on this?
Thanks a lot
Leo Zidane
this forum is it alive dont see any updates very sad...
Kamil Kociszewski
in case, you meet problem after deploying QP xApp (problem with redis.py, problem with import from redis._compat), just add
RUN pip install --force-reinstall redis==3.0.1
after
RUN pip install ricxappframe
in Dockerfile and rebuild image using
docker build --network host --no-cache .
Leo Zidane
I got this influx db issue but it appears no one can resolve it any expert out here??
Hi All,
while checking logs of AD pod, got below error
requests.exceptions.ConnectionError: HTTPConnectionPool(host='r4-influxdb.ricplt', port=8086): Max retries exceeded with url: /query?q=DROP+DATABASE+%22UEData%22 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f4e94c0f890>: Failed to establish a new connection: [Errno -2] Name or service not known'))
after installing InfluxDB using steps from https://docs.o-ran-sc.org/projects/o-ran-sc-it-dep/en/latest/installation-guides.html#ric-applications
kubectl get services -n ricinfra
nfs-release-1-nfs-server-provisioner ClusterIP 10.105.234.32 <none>
I have modified host for 2 files in AD pod based on current page comment suggestion-
database.py
----------
From host = str (default='r4-influxdb.ricplt.svc.cluster.local') to host = 10.105.234.32
& insert.py
--------
from host= 'r4-influxdb.ricplt.svc.cluster.local' to host = 10.105.234.32
but still getting same error in the logs.
could you please help me with next steps to resolve this error or new method to resolve it, Would be great.
Marko Pilipović
Why did you use NFS provisioner IP for influxDB IP?
If you want to hardcode the IP then you need to get the IP of the correct service:
kubectl get services -n ricplt | grep influxdb
I think it is better to do what the other commenters mentioned, rename 'r4-influxdb.ricplt' to 'ricplt-influxdb.ricplt' in the required files. If this does not work then try out hardcoding the IPs.
Leo Zidane
Hi
I can deploy the AD xApp but cannot do for TS Xapp
node-0:~> git clone "https://gerrit.o-ran-sc.org/r/ric-app/ts"
Cloning into 'ts'...
remote: Counting objects: 9, done
remote: Total 396 (delta 0), reused 396 (delta 0)
Receiving objects: 100% (396/396), 179.08 KiB | 2.21 MiB/s, done.
Resolving deltas: 100% (187/187), done.
node-0:~/ts/xapp-descriptor> curl --location --request POST "http://node-0.leonard-118064.fcp.emulab.net:32080/onboard/api/v1/onboard/download" --header 'Content-Type: application/json' --data-binary "@./onboard.ts.url"
{
"errors": {
"config-file.json_url": "'config-file.json_url' is a required property"
},
"message": "Input payload validation failed"
Marko Pilipović
Seems like the json file "onboard.ts.url" you have prepared is missing the "config-file.json_url" attribute.
If you are using the RIC platform from master branch why don't you try using the dms_cli for onboarding?
dms_cli onboard xapp-descriptor/config.json xapp-descriptor/schema.json
Kamil Kociszewski
Dear all,
do someone already upgrade kpimon with getting ranList from RNIB instead of getting it from env?
str := os.Getenv("ranList")
Now, im setting this parameter with fixed id in xApp config
i see that hwxapp getting it using C code:
"get_rnib_gnblist();"
Chandra Shekar Telagamaneni
Hi All,
To bring up KPIMON there are two ways.
one is following as below which is mentioned in this wiki page (please note I have done port forward)
kubectl port-forward r4-infrastructure-kong-646b68bd88-xjxkb 32088:32080 -n ricplt &
curl -X POST --data-binary @xappkpimon-0.2.0.tgz http://<<VM-IP>>:32088/helmrepo/api/charts
curl: (28) Failed to connect to 10.32.243.146 port 32088: Connection timed out
and another way was given in comment section as below:
Install xapp using dms_cli tool
docker run --rm -u 0 -it -d -p 8090:8080 -e DEBUG=1 -e STORAGE=local -e STORAGE_LOCAL_ROOTDIR=/charts -v $(pwd)/charts:/charts chartmuseum/chartmuseum:latest
export CHART_REPO_URL=http://0.0.0.0:8090
dms_cli onboard config.json ~/dep/xapps/embedded-schema.json
dms_cli: command not found
dms_cli install xappkpimon 1.0.0 ricxapp
I am Unable to find embedded-schema.json file
please note-we are using master branch.
Please Help
Thanks
Kamil Kociszewski
Hi,
please find embedded-schema.json
embedded-schema.json
Chandra Shekar Telagamaneni
Thanks Kamil Kociszewski,
But as you can see the error dms_cli: command not found
could you please provide steps or wiki page to install dms_cli.
it will be really grateful.
Kamil Kociszewski
i just used commands from:
"xApp Onboarding using CLI tool called dms_cli"
Installation Guides — oran master documentation (o-ran-sc.org)
Chandra Shekar Telagamaneni
Hi all,
We in the last step of deployment KPI Mon.
curl -X GET http://localhost:8090/api/charts | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 292 100 292 0 0 97333 0 --:--:-- --:--:-- --:--:-- 97333
{
"xappkpimon": [
{
"name": "xappkpimon",
"version": "1.0.0",
"description": "Standard xApp Helm Chart",
"apiVersion": "v1",
"appVersion": "1.0",
"urls": [
"charts/xappkpimon-1.0.0.tgz"
],
"created": "2022-07-18T05:46:53.740094499Z",
"digest": "c30d3f972fe34cdb469a0cf4b104f8fdae01f00be5bc57746a37f7bb344c2933"
}
]
}
dms_cli install --xapp_chart_name=xappkpimon --version=1.0.0 --namespace=ricxapp
Error: This command needs 1 argument: chart name
status: NOT_OK
could you please suggest here?
Thank you so much
Karan Rawat
I have clone this repo in VM and try to build Traffic Steering xApp. can anyone suggest that is this the right way to build TS xApp
after cloning it I tried to build TS xApp But I'm facing some issues while running this command ./populate_db.sh
saying - Error: unknown flag: --purge
Sending build context to Docker daemon 19.97kB
Error: unknown flag: --name
the logs are given below-
ubuntu@5g-xapp-ric:~/O-RANSC/ts/test/populatedb$ sudo ./populate_db.sh
Error: unknown flag: --purge
Sending build context to Docker daemon 19.97kB
Step 1/18 : FROM nexus3.o-ran-sc.org:10004/o-ran-sc/bldr-ubuntu18-c-go:8-u18.04 as buildenv
---> cdcad96bd128
Step 2/18 : RUN mkdir /playpen
---> Using cache
---> b67ef92cd96d
Step 3/18 : RUN mkdir /playpen/src
---> Using cache
---> d5de2f65cda7
Step 4/18 : ENV LD_LIBRARY_PATH=/usr/local/lib
---> Using cache
---> 590fe3eef328
Step 5/18 : RUN sudo apt-get update
---> Using cache
---> 8975e68b4ff5
Step 6/18 : RUN apt-get install -y cpputest
---> Using cache
---> 60f2f15039c3
Step 7/18 : RUN apt-get remove -y libboost-all-dev
---> Using cache
---> c9bd95e154f4
Step 8/18 : RUN apt-get install -y libboost-all-dev
---> Using cache
---> 693da838608e
Step 9/18 : RUN apt-get install -y libhiredis-dev
---> Using cache
---> 8256af2d1006
Step 10/18 : RUN apt-get install -y valgrind
---> Using cache
---> 504611253431
Step 11/18 : RUN git clone https://gerrit.o-ran-sc.org/r/ric-plt/sdl
---> Using cache
---> 46f40ba26c32
Step 12/18 : RUN cd sdl && ./autogen.sh && ./configure && make all && make install
---> Using cache
---> d4e12c7ddfa2
Step 13/18 : COPY src/* /playpen/src/
---> Using cache
---> d10a29c5bf89
Step 14/18 : RUN cd /playpen/src; make
---> Using cache
---> 5033d0f7725e
Step 15/18 : ENV DBAAS_HOSTNAME="6379"
---> Using cache
---> eb6d9a9a4d1a
Step 16/18 : ENV DBAAS_SERVICE_HOST="service-ricplt-dbaas-tcp.ricplt"
---> Using cache
---> ae7db0f10b7b
Step 17/18 : WORKDIR /playpen/src
---> Using cache
---> 125895ef61d2
Step 18/18 : CMD ./write_sdl
---> Using cache
---> 18aa3e17bd80
Successfully built 18aa3e17bd80
Successfully tagged ts-write-sdl:0.0.1
Error: unknown flag: --name
Simon Chang
Hi all,
I met a issue when I try to run kpimon xapp to trigger RIC subscription.
It seems that ric e2term does not send the RIC subscription to the right address.
The gnb-ID of e2 simulator should be b5c67788 (I had checked pcap), but it seems that e2term is trying to send the RIC subscription to gnb-ID 16b8cef1.
Please check the log below.
Does anyone have idea for the issue? Thanks.
[E2term log when doing e2 setup]
{"ts":1693454789722,"crit":"INFO","id":"E2Terminator","mdc":{"PID":"","POD_NAME":"deployment-ricplt-e2term-alpha-867f7484c5-stlxk","CONTAINER_NAME":"container-ricplt-e2term","SERVICE_NAME":"RIC_E2_TERM","HOST_NAME":"xxx","SYSTEM_NAME":"SEP"},"msg":"New connection request from sctp network "}
{"ts":1693454789728,"crit":"INFO","id":"E2Terminator","mdc":{"PID":"140057063188224","POD_NAME":"deployment-ricplt-e2term-alpha-867f7484c5-stlxk","CONTAINER_NAME":"container-ricplt-e2term","SERVICE_NAME":"RIC_E2_TERM","HOST_NAME":"xxx","SYSTEM_NAME":"SEP"},"msg":"send message to gnb_734_733_16b8cef1 address"}
[KPIMON xapp log]
{"ts":1693452441278,"crit":"DEBUG","id":"kpimon","mdc":{"time":"2023-08-31T03:27:21"},"msg":"send RIC_SUB_REQ to gNodeB with cnt=1"}
{"ts":1693452441278,"crit":"DEBUG","id":"kpimon","mdc":{"time":"2023-08-31T03:27:21"},"msg":"The RMR message to be sent is 12010 with SubId=1001"}
{"ts":1693452441279,"crit":"DEBUG","id":"kpimon","mdc":{"time":"2023-08-31T03:27:21"},"msg":"RIC_SUB_REQ[gnb_734_733_b5c67788]: Waiting for RIC_SUB_RESP..."}
{"ts":1693452446288,"crit":"DEBUG","id":"kpimon","mdc":{"time":"2023-08-31T03:27:26"},"msg":"RIC_SUB_REQ[gnb_734_733_b5c67788]: RIC Event Create Timer experied!"}
[E2term log after run KPIMON xapp]
{"ts":1693454476374,"crit":"ERROR","id":"E2Terminator","mdc":{"PID":"","POD_NAME":"deployment-ricplt-e2term-alpha-867f7484c5-stlxk","CONTAINER_NAME":"container-ricplt-e2term","SERVICE_NAME":"RIC_E2_TERM","HOST_NAME":"xxx","SYSTEM_NAME":"SEP"},"msg":"Failed to send message no CU entry gnb_734_733_b5c67788"}
{"ts":1693454476374,"crit":"ERROR","id":"E2Terminator","mdc":{"PID":"","POD_NAME":"deployment-ricplt-e2term-alpha-867f7484c5-stlxk","CONTAINER_NAME":"container-ricplt-e2term","SERVICE_NAME":"RIC_E2_TERM","HOST_NAME":"xxx","SYSTEM_NAME":"SEP"},"msg":"Error handling Xapp message"}