X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=pkg%2Fnbi%2Fcontrol.go;h=5eff85263d892e26eeb4c11e70778707afb50397;hb=refs%2Fchanges%2F19%2F5019%2F1;hp=885230fb47a55a4227df55a9d5e189e945f27d56;hpb=82c726627010dca2467989ec36cac6626ae9943a;p=ric-plt%2Frtmgr.git diff --git a/pkg/nbi/control.go b/pkg/nbi/control.go index 885230f..5eff852 100644 --- a/pkg/nbi/control.go +++ b/pkg/nbi/control.go @@ -139,19 +139,32 @@ func (c *Control) handleUpdateToRoutingManagerRequest(params *xapp.RMRParams) { m.Lock() data, err := sdlEngine.ReadAll(xapp.Config.GetString("rtfile")) m.Unlock() - if err != nil || data == nil { - xapp.Logger.Error("Cannot get data from sdl interface due to: " + err.Error()) - return - } + if data == nil { + if err != nil { + xapp.Logger.Error("Cannot get data from sdl interface due to: " + err.Error()) + return + } else { + xapp.Logger.Debug("Cannot get data from sdl interface") + return + } + } - ep := sbiEngine.CreateEndpoint(string(params.Payload)) + ep := sbiEngine.CheckEndpoint(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)) return } + epstr,whid := sbiEngine.CreateEndpoint(msg.String()) + if epstr == nil || whid < 0 { + xapp.Logger.Error("Wormhole Id creation failed %d for %s",whid,msg.String() ) + return + } + /*This is to ensure the latest routes are sent. + Assumption is that in this time interval the routes are built for this endpoint */ + time.Sleep(100 * time.Millisecond) policies := rpeEngine.GeneratePolicies(rtmgr.Eps, data) - err = sbiEngine.DistributeToEp(policies, ep) + err = sbiEngine.DistributeToEp(policies, *epstr, whid) if err != nil { xapp.Logger.Error("Routing table cannot be published due to: " + err.Error()) return @@ -164,9 +177,15 @@ func sendRoutesToAll() (err error) { data, err := sdlEngine.ReadAll(xapp.Config.GetString("rtfile")) fmt.Printf("data = %v,%v,%v",data,sdlEngine,sbiEngine) m.Unlock() - if err != nil || data == nil { - return errors.New("Cannot get data from sdl interface due to: " + err.Error()) - } + if data == nil { + if err != nil { + return errors.New("Cannot get data from sdl interface due to: " + err.Error()) + } else { + xapp.Logger.Debug("Cannot get data from sdl interface, data is null") + return errors.New("Cannot get data from sdl interface") + } + } + if sbiEngine == nil { fmt.Printf("SBI is nil") }