RIC Applications

PTL

Summary

This includes open source sample xAPPs and platform applications that can we used for integration, testing, and demonstrations.

Project

Repos and Committers

ric-app/ad - Anomaly Detection xApp (C-D release - HCL)

ric-app/bouncer - xApp for RIC performance benchmarking (D release - HCL)

ric-app/hw - HelloWorld C++ demo xApp including a demo E2 SM (HelloWorld SM) (B-D releases - AT&T)

ric-app/hw-go - HelloWorld go demo xApp (D release - Samsung)

ric-app/hw-python - HelloWorld python demo xApp (D release - Samsung)

ric-app/lp - Load Prediction xApp (D release - CCMC)

ric-app/mc - Measurement Campaign xApp (B-D release - AT&T) - note: This xApp depends on input feed (X2 events in protobuf format) that is currently not provided by any open source xApp. (Note: com/gs-lite contains the GS-Lite stream processing library used by MC).

ric-app/qp - QoE Prediction xApp (trivial versions in earlier releases, real ML in D release - AT&T, HCL)

ric-app/ts - Traffic Steering xApp (B-E releases - AT&T, UTFPR)

ric-app/kpimon-go - KPI Monitor xApp uses an extended version of the E2 KPM SM to collect metrics from E2 Node (C-D releases - Samsung)

scp/ric-app/ssp - Signal Storm Protection xApp (on hold due to patent issue  - Samsung)


NOTES:

  • Repositories that are indicated as scp/ repositories are repositories maintained by the ORAN Alliance and licensed under the ORAN Specification Code Project under licenses that are different from the licensing of the ORAN Software Community Project. For questions concerning an ORAN Specification Code Project code or documentation, please contact the ORAN Alliance.

  • The following repos are obsolete and no more maintained: ric-app/admin, ric-app/kpimon, ric-app/ml

Weekly Meeting

Project meetings

RIC project meetings are open to the public and held on Tuesdays at noon UTC.  World Time Zone Map

Zoom 1 Info:

UTC-timeTuesday 13:00

https://zoom.us/j/9644759813

New York (EDT / UTC-4)Tuesday 09:00+1 669 900 6833 // +1 646 558 8656 // 855 880 1246 (Toll Free) // 877 369 0926 (Toll Free)
Paris (CEST / UTC+2)Tuesday 15:00+33 7 5678 4048 // +33 1 8288 0188 // 805 082 588 (Toll Free)
Beijing (CST / UTC+8)Tuesday 21:00+86 10 87833177 // +86 10 53876330 // 400 616 8835 (Toll Free) // 400 669 9381 (Toll Free)
Tokyo (JST / UTC+9) Tuesday 22:00+81 524 564 439 // +81 3 4578 1488 // 0 800 100 5040 (Toll Free)
Helsinki  (EEST / UTC+3)Tuesday 16:00

+358 341092129

Other international numbersWorld Time Zone Map

International numbers available: https://zoom.us/u/acyy3hylQi

Demos

Pendulum Video of Near Real Time RIC in Action


MC-xAPP demo

Jira for RICAPP

Key Summary T Created Updated Due Assignee Reporter P Status Resolution
Loading...
Refresh

Recent space activity

Space contributors

{"mode":"list","scope":"descendants","limit":"5","showLastTime":"true","order":"update","contextEntityId":1179662}

RIC Applications

PTL

Sunil Kumar Singh

Summary

This includes open source sample xAPPs and platform applications that can we used for integration, testing, and demonstrations.

Project

Repos and Committers

ric-app/ad - Anomaly Detection xApp (C-D release - HCL)

ric-app/bouncer - xApp for RIC performance benchmarking (D release - HCL)

ric-app/hw - HelloWorld C++ demo xApp including a demo E2 SM (HelloWorld SM) (B-D releases - AT&T)

ric-app/hw-go - HelloWorld go demo xApp (D release - Samsung)

ric-app/hw-python - HelloWorld python demo xApp (D release - Samsung)

ric-app/lp - Load Prediction xApp (D release - CCMC)

ric-app/mc - Measurement Campaign xApp (B-D release - AT&T) - note: This xApp depends on input feed (X2 events in protobuf format) that is currently not provided by any open source xApp. (Note: com/gs-lite contains the GS-Lite stream processing library used by MC).

ric-app/qp - QoE Prediction xApp (trivial versions in earlier releases, real ML in D release - AT&T, HCL)

ric-app/qp-driver -QP driver xApp - collects input data for QP from SDL layer (B-C releases - functionality merged in the QP xApp starting D Release - AT&T, HCL)

ric-app/ts - Traffic Steering xApp (B-D releases - AT&T, Parana University)

scp/ric-app/kpimon - KPI Monitor xApp uses an extended version of the E2 KPM SM to collect metrics from E2 Node (C-D releases - Samsung)

scp/ric-app/ssp - Signal Storm Protection xApp (on hold due to patent issue  - Samsung)


NOTES:

  • Repositories that are indicated as scp/ repositories are repositories maintained by the ORAN Alliance and licensed under the ORAN Specification Code Project under licenses that are different from the licensing of the ORAN Software Community Project. For questions concerning an ORAN Specification Code Project code or documentation, please contact the ORAN Alliance.

  • The following repos are obsolete and no more maintained: ric-app/admin, ric-app/kpimon, ric-app/ml

Weekly Meeting

Project meetings

RIC project meetings are open to the public and held on Tuesdays at noon UTC.  World Time Zone Map

Zoom 1 Info:

UTC-timeTuesday 13:00

https://zoom.us/j/9644759813

New York (EDT / UTC-4)Tuesday 09:00+1 669 900 6833 // +1 646 558 8656 // 855 880 1246 (Toll Free) // 877 369 0926 (Toll Free)
Paris (CEST / UTC+2)Tuesday 15:00+33 7 5678 4048 // +33 1 8288 0188 // 805 082 588 (Toll Free)
Beijing (CST / UTC+8)Tuesday 21:00+86 10 87833177 // +86 10 53876330 // 400 616 8835 (Toll Free) // 400 669 9381 (Toll Free)
Tokyo (JST / UTC+9) Tuesday 22:00+81 524 564 439 // +81 3 4578 1488 // 0 800 100 5040 (Toll Free)
Helsinki  (EEST / UTC+3)Tuesday 16:00

+358 341092129

Other international numbersWorld Time Zone Map

International numbers available: https://zoom.us/u/acyy3hylQi

Demos

Pendulum Video of Near Real Time RIC in Action


MC-xAPP demo

Jira for RICAPP

Key Summary T Created Updated Due Assignee Reporter P Status Resolution
Loading...
Refresh

Recent space activity

Space contributors

{"mode":"list","scope":"descendants","limit":"5","showLastTime":"true","order":"update","contextEntityId":1179662}

  • No labels

14 Comments

  1. user-59b16

    Uploading RICAPP progress report on behalf of Matti. He is having Confluence publishing issues.

  2. Hi 

    I am trying to deploy Admission control xapp . After cloning the ric-app/admin repo ,I have checked  the installation_guide.rst that says " Pre-requisite software packages that must be installed prior to compiling are documented in the Dockerfile (and also in README under src/) in the repository ". 

    So instead of doing manually if I just run the Dockerfile sript it is showing following errors.

     

    Please help me to understand how to proceed and in which path the following packages to be installed in the admin repository.

    1. mdclog : a logging library
    2. rmr : RIC message router (if installing on the deb package, next generation nano msg must be separately installed)
    3. rapidjson : a header only file for manipulation of json.
    4. libcurl : the libcurl header and library for posting to a web-server
    5. gcc (version > 4.x) .. has not been tested with other compilers as of now

    1. Hi Sudipta,

      Thank you for your interest on the AC xApp. AC xApp was part of the OSC Amber release but it was not part of the Bronze release because it was not updated to the latest E2 specs. It is not currently part of any of the OSC use cases, so it has not been kept up to date. In case you are interested in updating the AC xApp for some purpose, let me know and we can discuss.

      Matti



      1. Thanks for your quick reply. Yes I am interested .Please update the ACxapp .

        What I understood is ric-app/admin is under amber release and it is not part of bronze. Is it possible to clone the it/dep repository with bronze release for  installing near realtime RIC platform and subsequently clone ric-app/admin with amber release? can I deploy the admission control xapp like that?

  3.  Also in the ric-app/admin Dockerfile , this path is mentioned which is empty

  4. I am trying to run kpimon from cherry release, RIC_SUB_REQ request is successfully reaching "submgr" from xapp and in submgr I can see unpacking and packing of this request is done.
    However in i see below error logs, and the request is not reaching "e2term". Could anyone help me on this?

    {"log":"{\"ts\":1610619597909,\"crit\":\"INFO\",\"id\":\"submgr\",\"mdc\":{\"time\":\"2021-01-14T10:19:57\"},\"msg\":\"MSG to E2T: (retry 0) transsubs(trans(1/meid(RanName=gnb_734_733_b5c67788))) params(Src= Mtype=12010 SubId=1 Xid= Meid=meid(RanName=gnb_734_733_b5c67788) Paylens=44/44 Paymd5=34d7dae49e10500df8b53f6ecd4cd323)\"}\n","stream":"stdout","time":"2021-01-14T10:19:57.909856462Z"}
    {"log":"{\"ts\":1610619597909,\"crit\":\"DEBUG\",\"id\":\"submgr\",\"mdc\":{\"time\":\"2021-01-14T10:19:57\"},\"msg\":\"rmrClient: SendBuf failed -\u003e [tp=6] 2 - send/call could not find an endpoint based on msg type\"}\n","stream":"stdout","time":"2021-01-14T10:19:57.909864961Z"}
    {"log":"{\"ts\":1610619597909,\"crit\":\"DEBUG\",\"id\":\"submgr\",\"mdc\":{\"time\":\"2021-01-14T10:19:57\"},\"msg\":\"rmrClient: SendBuf failed -\u003e [tp=6] 2 - send/call could not find an endpoint based on msg type\"}\n","stream":"stdout","time":"2021-01-14T10:19:57.909872699Z"}
    {"log":"{\"ts\":1610619598399,\"crit\":\"INFO\",\"id\":\"submgr\",\"mdc\":{\"time\":\"2021-01-14T10:19:58\"},\"msg\":\"restapi: method=GET url=/ric/v1/health/ready\"}\n","stream":"stdout","time":"2021-01-14T10:19:58.399621586Z"}
    {"log":"{\"ts\":1610619598410,\"crit\":\"DEBUG\",\"id\":\"submgr\",\"mdc\":{\"time\":\"2021-01-14T10:19:58\"},\"msg\":\"rmrClient: SendBuf failed -\u003e [tp=6] 2 - send/call could not find an endpoint based on msg type\"}\n","stream":"stdout","time":"2021-01-14T10:19:58.410198922Z"}
    {"log":"{\"ts\":1610619598910,\"crit\":\"DEBUG\",\"id\":\"submgr\",\"mdc\":{\"time\":\"2021-01-14T10:19:58\"},\"msg\":\"rmrClient: SendBuf failed -\u003e [tp=6] 2 - send/call could not find an endpoint based on msg type\"}\n","stream":"stdout","time":"2021-01-14T10:19:58.910588192Z"}
    {"log":"{\"ts\":1610619599410,\"crit\":\"DEBUG\",\"id\":\"submgr\",\"mdc\":{\"time\":\"2021-01-14T10:19:59\"},\"msg\":\"rmrClient: SendBuf failed -\u003e [tp=6] 2 - send/call could not find an endpoint based on msg type\"}\n","stream":"stdout","time":"2021-01-14T10:19:59.410922693Z"}
    {"log":"{\"ts\":1610619599911,\"crit\":\"DEBUG\",\"id\":\"submgr\",\"mdc\":{\"time\":\"2021-01-14T10:19:59\"},\"msg\":\"rmrClient: SendBuf failed -\u003e [tp=6] 2 - send/call could not find an endpoint based on msg type\"}\n","stream":"stdout","time":"2021-01-14T10:19:59.911191444Z"}
    {"log":"{\"ts\":1610619600411,\"crit\":\"DEBUG\",\"id\":\"submgr\",\"mdc\":{\"time\":\"2021-01-14T10:20:00\"},\"msg\":\"rmrClient: SendBuf failed -\u003e [tp=6] 2 - send/call could not find an endpoint based on msg type\"}\n","stream":"stdout","time":"2021-01-14T10:20:00.41155312Z"}
    {"log":"{\"ts\":1610619600911,\"crit\":\"DEBUG\",\"id\":\"submgr\",\"mdc\":{\"time\":\"2021-01-14T10:20:00\"},\"msg\":\"rmrClient: SendBuf failed -\u003e [tp=6] 2 - send/call could not find an endpoint based on msg type\"}\n","stream":"stdout","time":"2021-01-14T10:20:00.911805894Z"}
    {"log":"{\"ts\":1610619601411,\"crit\":\"DEBUG\",\"id\":\"submgr\",\"mdc\":{\"time\":\"2021-01-14T10:20:01\"},\"msg\":\"rmrClient: SendBuf failed -\u003e [tp=6] 2 - send/call could not find an endpoint based on msg type\"}\n","stream":"stdout","time":"2021-01-14T10:20:01.412086377Z"}
    {"log":"{\"ts\":1610619601912,\"crit\":\"DEBUG\",\"id\":\"submgr\",\"mdc\":{\"time\":\"2021-01-14T10:20:01\"},\"msg\":\"rmrClient: SendBuf failed -\u003e [tp=6] 2 - send/call could not find an endpoint based on msg type\"}\n","stream":"stdout","time":"2021-01-14T10:20:01.912471762Z"}
    {"log":"1610619602 1/RMR [DBUG] 1610619602 1/RMR [INFO] rmr_rtc: sending table state: (OK \u003cid-missing\u003e \n","stream":"stderr","time":"2021-01-14T10:20:02.147030332Z"}
    {"log":") state=0 whid=0 table=(null)\n","stream":"stderr","time":"2021-01-14T10:20:02.14704402Z"}
    {"log":"1610619602 1/RMR [DBUG] 1610619602 1/RMR [INFO] rmr_rtc: sending table state: (OK \u003cid-missing\u003e \n","stream":"stderr","time":"2021-01-14T10:20:02.147292151Z"}
    {"log":") state=0 whid=0 table=(null)\n","stream":"stderr","time":"2021-01-14T10:20:02.147301498Z"}
    {"log":"{\"ts\":1610619602412,\"crit\":\"DEBUG\",\"id\":\"submgr\",\"mdc\":{\"time\":\"2021-01-14T10:20:02\"},\"msg\":\"rmrClient: SendBuf failed -\u003e [tp=6] 2 - send/call could not find an endpoint based on msg type\"}\n","stream":"stdout","time":"2021-01-14T10:20:02.41276409Z"}
    {"log":"{\"ts\":1610619604913,\"crit\":\"DEBUG\",\"id\":\"submgr\",\"mdc\":{\"time\":\"2021-01-14T10:20:04\"},\"msg\":\"SUBS-SubReq: Response handling event(NIL) transsubs(trans(1/meid(RanName=gnb_734_733_b5c67788))) subs(reqid(123:1)/meid(RanName=gnb_734_733_b5c67788)/service-ricxapp-xapp-pw-lb-rmr.ricxapp:4560) transxapp(trans(0/meid(RanName=gnb_734_733_b5c67788))/transkey(service-ricxapp-xapp-pw-lb-rmr.ricxapp:4560/)/1001)\"}\n","stream":"stdout","time":"2021-01-14T10:20:04.913239704Z"}
    {"log":"{\"ts\":1610619604913,\"crit\":\"INFO\",\"id\":\"submgr\",\"mdc\":{\"time\":\"2021-01-14T10:20:04\"},\"msg\":\"SUBS-SubReq: internal delete due event(NIL) transsubs(trans(1/meid(RanName=gnb_734_733_b5c67788))) subs(reqid(123:1)/meid(RanName=gnb_734_733_b5c67788)/service-ricxapp-xapp-pw-lb-rmr.ricxapp:4560) transxapp(trans(0/meid(RanName=gnb_734_733_b5c67788))/transkey(service-ricxapp-xapp-pw-lb-rmr.ricxapp:4560/)/1001)\"}\n","stream":"stdout","time":"2021-01-14T10:20:04.913298247Z"}
    {"log":"InitiatingMessage ::= {\n","stream":"stdout","time":"2021-01-14T10:20:04.913306378Z"}

    Thanks
    Siddesh

  5. Hi


    I am trying to run the QP xApp + QP-Driver xApp + Traffic xApp and I get the error message in the qp xApp showing the connection error (host=r4-influxdb.ricplt, port=8086). Does it relate to ricplt-influx-meta-0 being in Pending state? Or there are other problems I have to deal with. Please help me because I want to run the QP xApp in v0.0.4.


    Thanks for your help,

    Wei-Chi

    1. Is the inFlux DB running on your RIC platform?

      FYI. If you are using the latest (Dawn) version, you do not need the QP-driver xApp any more since the functionality has been integrated in the QP xApp itself.


      1. Hi Matti


        The inFlux DB pod is always in the pending state. I have looked for solutions in the o-ran wiki but still cannot let it run.

        On the other hand, if I run in the Dawn version and I would like to run the traffic xapp, do I only need the ts xapp & qp xapp?


        Thanks for your help,

        Wei-Chi

        1. In the Dawn Release, you do not need the QP-driver. However, the use case has been slightly modified in the Dawn use case in the sense that the AD (Anomaly Detection) xApp triggers the process when it detects an anomaly in a UE's performance. It will communicate the anomaly to TS, which will then request a throughput prediction from QP. Based on the prediction, the TS xApp will request a handover. However, we still do not have the E2SM RC implemented in the Dawn release, so for Dawn release, TS will issue a REST call to the Viavi simulator (which is not part of open source). I will see if I can find help for you on the inFlux issue.

          1. Hello Matti


            The log messages after I type in "kubectl describe pod -n ricplt ricplt-influxdb-meta-0" are shown below. Please help me with this. I really appreciate for your help.


            Thanks for your help,

            Wei-Chi

  6. Hi


    May I know the reasoning of using Isolation Forest model in AD xApp? Also i want to ask why we have to do both anomaly detection and degradation classification too. I interested to improve the model in AD xApps

    1. I will leave the detailed questions to the folks who designed and implemented the xApp (Deepanshu Karnwal ) - we could discuss supporting different models in this xApp (if it is easy to just plug in a different trained model in this xApp) or potentially creating a new repo for a different anomaly detection xApp (e.g., detecting different types of anomalies).

    2. Reason behind using Isolation forest were : It has small memory requirement comparative to other models and computationally inexpensive. Since we are going to have huge amount of data in 5G(in mili-seconds) these points going to make difference. Also on the dataset we have used, Isolation Forest were outperforming other algorithms. Since latency is one of most important feature of 5G Anomaly detection algorithm(unsupervised in nature) filters anomalous samples. Also we are interested in to drill down to parameters(radio/throughput etc.) which are changing drastically or having problems to take action upon them, hence need of degradation type.

      In Future release we can include functionality for supporting different/custom models.