From: Mohamed Abukar Date: Fri, 15 Jan 2021 13:21:45 +0000 (+0200) Subject: Example xApp enhancement X-Git-Tag: v0.7.2~1 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=587d21a022bda35ad41671cdadbd3cf08a7e2ac5;p=ric-plt%2Fxapp-frame.git Example xApp enhancement Change-Id: I5da8e30f0fc06f4b69746e810fc2dd351401569e Signed-off-by: Mohamed Abukar --- diff --git a/ci/Dockerfile b/ci/Dockerfile index 1e2d663..ed8b36f 100755 --- a/ci/Dockerfile +++ b/ci/Dockerfile @@ -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 \ diff --git a/examples/build/Dockerfile b/examples/build/Dockerfile index 5d0be6e..7cbc8ac 100755 --- a/examples/build/Dockerfile +++ b/examples/build/Dockerfile @@ -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 diff --git a/examples/build/build_example_xapp.sh b/examples/build/build_example_xapp.sh index 7d1a623..18facc0 100755 --- a/examples/build/build_example_xapp.sh +++ b/examples/build/build_example_xapp.sh @@ -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 diff --git a/examples/cmd/example-xapp.go b/examples/cmd/example-xapp.go index acb0b8d..f2ea456 100755 --- a/examples/cmd/example-xapp.go +++ b/examples/cmd/example-xapp.go @@ -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"), diff --git a/examples/go.mod b/examples/go.mod old mode 100644 new mode 100755 index 750f9a8..570e3ec --- a/examples/go.mod +++ b/examples/go.mod @@ -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 diff --git a/examples/go.sum b/examples/go.sum index f36f60f..7a9fc76 100644 --- a/examples/go.sum +++ b/examples/go.sum @@ -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=