FROM nexus3.o-ran-sc.org:10004/bldr-ubuntu18-c-go:4-u18.04-nng as rtmgrbuild
# Install RMr shared library
-RUN wget --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr_3.5.0_amd64.deb/download.deb && dpkg -i rmr_3.5.0_amd64.deb && rm -rf rmr_3.5.0_amd64.deb
+ARG RMRVERSION=3.6.0
+RUN wget --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr_${RMRVERSION}_amd64.deb/download.deb && dpkg -i rmr_${RMRVERSION}_amd64.deb && rm -rf rmr_${RMRVERSION}_amd64.deb
# Install RMr development header files
-RUN wget --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr-dev_3.5.0_amd64.deb/download.deb && dpkg -i rmr-dev_3.5.0_amd64.deb && rm -rf rmr-dev_3.5.0_amd64.deb
+RUN wget --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr-dev_${RMRVERSION}_amd64.deb/download.deb && dpkg -i rmr-dev_${RMRVERSION}_amd64.deb && rm -rf rmr-dev_${RMRVERSION}_amd64.deb
ENV GOLANG_VERSION 1.12.1
RUN wget --quiet https://dl.google.com/go/go$GOLANG_VERSION.linux-amd64.tar.gz \
import "C"
import (
- "errors"
- "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
- "strconv"
+ "errors"
+ "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
"routing-manager/pkg/rpe"
"routing-manager/pkg/rtmgr"
- "routing-manager/pkg/sdl"
"routing-manager/pkg/sbi"
+ "routing-manager/pkg/sdl"
+ "strconv"
"sync"
)
-
func NewControl() Control {
- return Control{make(chan *xapp.RMRParams)}
+ return Control{make(chan *xapp.RMRParams)}
}
-
type Control struct {
- rcChan chan *xapp.RMRParams
+ rcChan chan *xapp.RMRParams
}
-
func (c *Control) Run(sbiEngine sbi.Engine, sdlEngine sdl.Engine, rpeEngine rpe.Engine, m *sync.Mutex) {
- go c.controlLoop(sbiEngine, sdlEngine, rpeEngine, m)
- xapp.Run(c)
+ go c.controlLoop(sbiEngine, sdlEngine, rpeEngine, m)
+ xapp.Run(c)
}
func (c *Control) Consume(rp *xapp.RMRParams) (err error) {
- c.rcChan <- rp
- return
+ c.rcChan <- rp
+ return
}
func (c *Control) controlLoop(sbiEngine sbi.Engine, sdlEngine sdl.Engine, rpeEngine rpe.Engine, m *sync.Mutex) {
for {
msg := <-c.rcChan
+ xapp_msg := sbi.RMRParams{msg}
switch msg.Mtype {
case xapp.RICMessageTypes["RMRRM_REQ_TABLE"]:
- if (rtmgr.Rtmgr_ready == false) {
- xapp.Logger.Info("Update Route Table Request(RMR to RM), message discarded as routing manager is not ready")
+ if rtmgr.Rtmgr_ready == false {
+ xapp.Logger.Info("Update Route Table Request(RMR to RM), message discarded as routing manager is not ready")
} else {
- xapp.Logger.Info("Update Route Table Request(RMR to RM)")
+ xapp.Logger.Info("Update Route Table Request(RMR to RM)")
go c.handleUpdateToRoutingManagerRequest(msg, sbiEngine, sdlEngine, rpeEngine, m)
}
case xapp.RICMessageTypes["RMRRM_TABLE_STATE"]:
- xapp.Logger.Info("state of table to route mgr %v", msg)
+ xapp.Logger.Info("state of table to route mgr %s,payload %s", xapp_msg.String(), msg.Payload)
default:
- err := errors.New("Message Type " + strconv.Itoa(msg.Mtype) + " is discarded")
- xapp.Logger.Error("Unknown message type: %v", err)
+ err := errors.New("Message Type " + strconv.Itoa(msg.Mtype) + " is discarded")
+ xapp.Logger.Error("Unknown message type: %v", err)
}
}
}
ep := sbiEngine.CreateEndpoint(string(params.Payload))
if ep == nil {
- xapp.Logger.Error("Update Routing Table Request can't handle due to end point %s is not avail in complete ep list: ",string(params.Payload))
+ xapp.Logger.Error("Update Routing Table Request can't handle due to end point %s is not avail in complete ep list: ", string(params.Payload))
return
}
if len(e2TermEp) > 0 {
r.addRoute_rx_list("RIC_SCTP_CLEAR_ALL", e2ManEp, e2TermEp, routeTable, -1, "")
r.addRoute_rx_list("E2_TERM_KEEP_ALIVE_REQ", e2ManEp, e2TermEp, routeTable, -1, "")
+ r.addRoute_rx_list("RIC_E2_SETUP_RESP", e2ManEp, e2TermEp, routeTable, -1, "")
+ r.addRoute_rx_list("RIC_E2_SETUP_FAILURE", e2ManEp, e2TermEp, routeTable, -1, "")
}
}