Example xApp enhancement 48/5448/2
authorMohamed Abukar <abukar.mohamed@nokia.com>
Fri, 15 Jan 2021 13:21:45 +0000 (15:21 +0200)
committerMohamed Abukar <abukar.mohamed@nokia.com>
Fri, 15 Jan 2021 13:41:25 +0000 (15:41 +0200)
Change-Id: I5da8e30f0fc06f4b69746e810fc2dd351401569e
Signed-off-by: Mohamed Abukar <abukar.mohamed@nokia.com>
ci/Dockerfile
examples/build/Dockerfile
examples/build/build_example_xapp.sh
examples/cmd/example-xapp.go
examples/go.mod [changed mode: 0644->0755]
examples/go.sum

index 1e2d663..ed8b36f 100755 (executable)
@@ -17,7 +17,7 @@
 #
 #----------------------------------------------------------
 
-FROM nexus3.o-ran-sc.org:10004/o-ran-sc/bldr-ubuntu18-c-go:1.9.0 as xapp-base
+FROM nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-ubuntu18-c-go:1.9.0 as xapp-base
 RUN apt-get update -y \
     &&apt-get install -y \
     apt-utils \
index 5d0be6e..7cbc8ac 100755 (executable)
@@ -18,7 +18,7 @@
 #   platform project (RICP).
 #==================================================================================
 
-FROM nexus3.o-ran-sc.org:10004/bldr-ubuntu18-c-go:4-u18.04-nng as ubuntu-example-xapp
+FROM nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-ubuntu18-c-go:1.9.0 as ubuntu-example-xapp
 
 # Install utilities
 RUN apt update && apt install -y iputils-ping net-tools curl sudo
index 7d1a623..18facc0 100755 (executable)
@@ -22,12 +22,12 @@ set -eux
 echo "--> build_example_xapp.sh starts"
 
 # Install RMR from deb packages at packagecloud.io
-rmr=rmr_4.2.2_amd64.deb
-wget --content-disposition  https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/$rmr/download.deb
+rmr=rmr_4.5.0_amd64.deb
+wget --content-disposition  https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/$rmr/download.deb
 sudo dpkg -i $rmr
 rm $rmr
-rmrdev=rmr-dev_4.2.2_amd64.deb
-wget --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/$rmrdev/download.deb
+rmrdev=rmr-dev_4.5.0_amd64.deb
+wget --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/$rmrdev/download.deb
 sudo dpkg -i $rmrdev
 rm $rmrdev
 
index acb0b8d..f2ea456 100755 (executable)
@@ -30,7 +30,6 @@ import (
 
 // This could be defined in types.go
 type ExampleXapp struct {
-       msgChan               chan *xapp.RMRParams
        stats                 map[string]xapp.Counter
        rmrReady              bool
        waitForSdl            bool
@@ -55,25 +54,6 @@ func (e *ExampleXapp) handleRICExampleMessage(ranName string, r *xapp.RMRParams)
        }
 }
 
-func (e *ExampleXapp) messageLoop() {
-       for {
-               msg := <-e.msgChan
-               id := xapp.Rmr.GetRicMessageName(msg.Mtype)
-               defer xapp.Rmr.Free(msg.Mbuf)
-
-               xapp.Logger.Info("Message received: name=%s meid=%s subId=%d txid=%s len=%d", id, msg.Meid.RanName, msg.SubId, msg.Xid, msg.PayloadLen)
-
-               switch id {
-               case "RIC_INDICATION":
-                       e.handleRICIndication(msg.Meid.RanName, msg)
-               case "RIC_EXAMPLE_MESSAGE":
-                       e.handleRICExampleMessage(msg.Meid.RanName, msg)
-               default:
-                       xapp.Logger.Info("Unknown Message Type '%d', discarding", msg.Mtype)
-               }
-       }
-}
-
 func (e *ExampleXapp) Subscribe() {
        // Setup response callback to handle subscription response from SubMgr
        xapp.Subscription.SetResponseCB(func(resp *clientmodel.SubscriptionResponse) {
@@ -115,8 +95,24 @@ func (e *ExampleXapp) Subscribe() {
        }
 }
 
-func (e *ExampleXapp) Consume(rp *xapp.RMRParams) (err error) {
-       e.msgChan <- rp
+func (e *ExampleXapp) Consume(msg *xapp.RMRParams) (err error) {
+       id := xapp.Rmr.GetRicMessageName(msg.Mtype)
+
+       xapp.Logger.Info("Message received: name=%s meid=%s subId=%d txid=%s len=%d", id, msg.Meid.RanName, msg.SubId, msg.Xid, msg.PayloadLen)
+
+       switch id {
+       case "RIC_INDICATION":
+               e.handleRICIndication(msg.Meid.RanName, msg)
+       case "RIC_EXAMPLE_MESSAGE":
+               e.handleRICExampleMessage(msg.Meid.RanName, msg)
+       default:
+               xapp.Logger.Info("Unknown Message Type '%d', discarding", msg.Mtype)
+       }
+
+       defer func() {
+               xapp.Rmr.Free(msg.Mbuf)
+               msg.Mbuf = nil
+       }()
        return
 }
 
@@ -145,7 +141,6 @@ func (e *ExampleXapp) Run() {
        // Inject own REST handler for testing purpose
        xapp.Resource.InjectRoute("/ric/v1/testing", e.TestRestHandler, "POST")
 
-       go e.messageLoop()
        xapp.RunWithParams(e, e.waitForSdl)
 }
 
@@ -159,7 +154,6 @@ func GetMetricsOpts() []xapp.CounterOpts {
 func NewExampleXapp(rmrReady bool) *ExampleXapp {
        metrics := GetMetricsOpts()
        return &ExampleXapp{
-               msgChan:    make(chan *xapp.RMRParams),
                stats:      xapp.Metric.RegisterCounterGroup(metrics, "ExampleXapp"),
                rmrReady:   rmrReady,
                waitForSdl: xapp.Config.GetBool("db.waitForSdl"),
old mode 100644 (file)
new mode 100755 (executable)
index 750f9a8..570e3ec
@@ -2,10 +2,10 @@ go 1.12
 
 module gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/example-xapp
 
-require gerrit.o-ran-sc.org/r/ric-plt/xapp-frame v0.6.1
+require gerrit.o-ran-sc.org/r/ric-plt/xapp-frame v0.7.1
 
-replace gerrit.o-ran-sc.org/r/ric-plt/xapp-frame => gerrit.o-ran-sc.org/r/ric-plt/xapp-frame.git v0.6.1
+replace gerrit.o-ran-sc.org/r/ric-plt/xapp-frame => gerrit.o-ran-sc.org/r/ric-plt/xapp-frame.git v0.7.1
 
 replace gerrit.o-ran-sc.org/r/ric-plt/sdlgo => gerrit.o-ran-sc.org/r/ric-plt/sdlgo.git v0.5.0
 
-replace gerrit.o-ran-sc.org/r/com/golog => gerrit.o-ran-sc.org/r/com/golog.git v0.0.1
+replace gerrit.o-ran-sc.org/r/com/golog => gerrit.o-ran-sc.org/r/com/golog.git v0.0.2
index f36f60f..7a9fc76 100644 (file)
@@ -1,10 +1,14 @@
 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 gerrit.o-ran-sc.org/r/com/golog.git v0.0.1 h1:9RfO/Whehaaq5KiJTT7s+YOzmi9mT1C3HktfhwwMEmw=
 gerrit.o-ran-sc.org/r/com/golog.git v0.0.1/go.mod h1:b8YB31U8/4iRpABioeSzGi/YMzOQ/Zq7hrJmmXKqlJk=
+gerrit.o-ran-sc.org/r/com/golog.git v0.0.2 h1:Ix6SgFuzd6yW6Ur6+qDlGhDO65UYs8PiIkeAL1VaQ2o=
+gerrit.o-ran-sc.org/r/com/golog.git v0.0.2/go.mod h1:A7hUL52YQSO4dFIZNcj76XQ09C9PftAe3LyL7kqBnok=
 gerrit.o-ran-sc.org/r/ric-plt/alarm-go.git/alarm v0.4.0 h1:Uvyfuq2jyb1aosy2BEzH1g3pe2gy4sMgpsXlvjVeBzI=
 gerrit.o-ran-sc.org/r/ric-plt/alarm-go.git/alarm v0.4.0/go.mod h1:AdEWKtERGvOQy9ybLhyhrb9w9LLVn8i9xzTwoR5n4BY=
 gerrit.o-ran-sc.org/r/ric-plt/alarm-go.git/alarm v0.4.2 h1:XNfkp3PwZ7pfkPszX7NaX6DzToCGjcWTLbIHYqCFNu0=
 gerrit.o-ran-sc.org/r/ric-plt/alarm-go.git/alarm v0.4.2/go.mod h1:AdEWKtERGvOQy9ybLhyhrb9w9LLVn8i9xzTwoR5n4BY=
+gerrit.o-ran-sc.org/r/ric-plt/alarm-go.git/alarm v0.5.0 h1:OKDsIDlttbaoHwleyjflIWVZPgPvYbDhim6gWF0zf5E=
+gerrit.o-ran-sc.org/r/ric-plt/alarm-go.git/alarm v0.5.0/go.mod h1:AdEWKtERGvOQy9ybLhyhrb9w9LLVn8i9xzTwoR5n4BY=
 gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common v1.0.21 h1:eK9nUZOTMJ/EnMpH9bkWtMgOvCn3u4+PNCb9gu10s6w=
 gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common v1.0.21/go.mod h1:QJ1uPPZosGbhxUWpUpeM5fLqFHdnWTrVnvW2DgyOCes=
 gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common v1.0.35 h1:TGXHb4DNY8on+ej4S9VUnk2HibIC/5chDy64OE+bQBQ=
@@ -27,6 +31,8 @@ gerrit.o-ran-sc.org/r/ric-plt/xapp-frame.git v0.4.6 h1:Yhizs1A+0n0TLFxeGZO1YYQy8
 gerrit.o-ran-sc.org/r/ric-plt/xapp-frame.git v0.4.6/go.mod h1:29CdUcCrNEqVBjQWAlgeGrYxSWqSZ4e67xzhuSf6BkI=
 gerrit.o-ran-sc.org/r/ric-plt/xapp-frame.git v0.6.1 h1:w//eBu78PZNfTgiPD8encOMTfYQUkniNTCoVtQqgE/A=
 gerrit.o-ran-sc.org/r/ric-plt/xapp-frame.git v0.6.1/go.mod h1:bjhhEII07w+zPQzyvqTq84TjKQPa6IkcnSyWB1DfGHo=
+gerrit.o-ran-sc.org/r/ric-plt/xapp-frame.git v0.7.1 h1:gQOQip8Z3kixjL6SOLaJpzNGkm0J6WqO5EIHK+GjGnk=
+gerrit.o-ran-sc.org/r/ric-plt/xapp-frame.git v0.7.1/go.mod h1:MRTeTBLROgTA2t91SXYjTbRsxoOhMMvvkK/ChLVRZUU=
 github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
@@ -69,6 +75,7 @@ github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0
 github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
 github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
+github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
 github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
 github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
 github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
@@ -214,6 +221,8 @@ github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4k
 github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
 github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI=
 github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
+github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc=
+github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
 github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8=
 github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
 github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk=
@@ -312,3 +321,6 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
 gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
+k8s.io/utils v0.0.0-20201110183641-67b214c5f920 h1:CbnUZsM497iRC5QMVkHwyl8s2tB3g7yaSHkYPkpgelw=
+k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=