+}
+
+func getConfigData() (*rtmgr.RicComponents, error) {
+ var data *rtmgr.RicComponents
+ m.Lock()
+ data, err := sdlEngine.ReadAll(xapp.Config.GetString("rtfile"))
+
+ m.Unlock()
+ if data == nil {
+ if err != nil {
+ return nil, errors.New("Cannot get data from sdl interface due to: " + err.Error())
+ } else {
+ xapp.Logger.Debug("Cannot get data from sdl interface due to data is null")
+ return nil, errors.New("Cannot get data from sdl interface")
+ }
+ }
+
+ return data, nil
+}
+
+func updateEp() (err error) {
+ data, err := getConfigData()
+ if err != nil {
+ return errors.New("Routing table cannot be published due to: " + err.Error())
+ }
+ EndpointLock.Lock()
+ sbiEngine.UpdateEndpoints(data)
+ EndpointLock.Unlock()
+
+ return nil
+}
+
+func sendPartialRoutesToAll(xappSubData *models.XappSubscriptionData, updatetype rtmgr.RMRUpdateType) (err error) {
+ policies := rpeEngine.GeneratePartialPolicies(rtmgr.Eps, xappSubData, updatetype)
+ err = sbiEngine.DistributeAll(policies)
+ if err != nil {
+ return errors.New("Routing table cannot be published due to: " + err.Error())
+ }
+
+ return nil
+}
+
+func sendRoutesToAll() (err error) {
+
+ data, err := getConfigData()
+ if err != nil {
+ return errors.New("Routing table cannot be published due to: " + err.Error())
+ }