Supporting xApp to xApp Routes handling 75/3075/1
authorrangajal <ranjit.angajala@nokia.com>
Tue, 31 Mar 2020 12:28:53 +0000 (12:28 +0000)
committerrangajal <ranjit.angajala@nokia.com>
Tue, 31 Mar 2020 12:29:09 +0000 (12:29 +0000)
Change-Id: I4f14e9ec8f4ca573e4ede04497592dc8c2ece8e9
Signed-off-by: rangajal <ranjit.angajala@nokia.com>
RELNOTES
container-tag.yaml
pkg/nbi/httprestful.go
pkg/rpe/rpe.go

index dc50594..958037e 100644 (file)
--- a/RELNOTES
+++ b/RELNOTES
@@ -1,3 +1,6 @@
+### v0.5.5
+* Supporting xApp to xApp Routes handling 
+
 ### v0.5.3
 * RMR updated to v3.6.0 with support for E2 Setup message types
 
index 7b6e635..d624928 100644 (file)
@@ -2,4 +2,4 @@
 # By default this file is in the docker build directory,
 # but the location can configured in the JJB template.
 ---
-tag: 0.5.4
+tag: 0.5.5
index e764467..7fa2fa7 100644 (file)
@@ -581,6 +581,7 @@ func PopulateE2TMap(e2tDataList *[]rtmgr.E2tIdentity, e2ts map[string]rtmgr.E2TI
 func retrieveStartupData(xmurl string, nbiif string, fileName string, configfile string, e2murl string, sdlEngine sdl.Engine) error {
        xapp.Logger.Info("Invoked retrieveStartupData ")
     var readErr error
+       var err  error
    var maxRetries = 10
        var xappData *[]rtmgr.XApp
        xappData = new([]rtmgr.XApp)
@@ -589,7 +590,7 @@ func retrieveStartupData(xmurl string, nbiif string, fileName string, configfile
        time.Sleep(2 * time.Second)
 
           readErr = nil
-       xappData, err := httpGetXApps(xmurl)
+       xappData, err = httpGetXApps(xmurl)
        if xappData != nil && err == nil {
                        break
        } else if err == nil {
index d26a704..8f86b4d 100644 (file)
@@ -182,6 +182,34 @@ func (r *Rpe) generateXappRoutes(xAppEp *rtmgr.Endpoint, subManEp *rtmgr.Endpoin
 
 }
 
+
+func (r *Rpe) generateXappToXappRoutes(RecvxAppEp *rtmgr.Endpoint, endPointList rtmgr.Endpoints, routeTable *rtmgr.RouteTable) {
+       xapp.Logger.Debug("rpe.generateXappToXappRoutes invoked")
+
+       for _, rxmsg := range RecvxAppEp.RxMessages {
+
+               var src_present bool
+               xapp.Logger.Debug("RecvxAppEp.RxMessages Endpoint: %v, xAppType: %v and rxmsg: %v ", RecvxAppEp.Name, RecvxAppEp.XAppType, rxmsg)
+               if (rxmsg != "RIC_SUB_RESP" && rxmsg != "RIC_SUB_FAILURE" && rxmsg != "RIC_SUB_DEL_RESP" && rxmsg != "RIC_SUB_DEL_FAILURE" && rxmsg != "RIC_INDICATION" && rxmsg != "RIC_CONTROL_ACK" && rxmsg != "RIC_CONTROL_FAILURE" && rxmsg != "A1_POLICY_REQ") {
+                       for _, SrcxAppEp := range endPointList {
+                               if SrcxAppEp.XAppType != sbi.PlatformType && (len(SrcxAppEp.TxMessages) > 0) && SrcxAppEp.Name != RecvxAppEp.Name {
+                                       for _, txmsg := range SrcxAppEp.TxMessages {
+                                                       if (rxmsg == txmsg) {
+                                                               r.addRoute(rxmsg, SrcxAppEp, RecvxAppEp, routeTable, -1, "")
+                                                               src_present = true
+                                                               break
+                                                       }
+                                       }
+                               }
+                       }
+                       if src_present == false {
+                               r.addRoute(rxmsg, nil, RecvxAppEp, routeTable, -1, "")
+                       }
+               }
+
+       }
+}
+
 func (r *Rpe) generateSubscriptionRoutes(selectedxAppEp *rtmgr.Endpoint, subManEp *rtmgr.Endpoint, routeTable *rtmgr.RouteTable) {
        xapp.Logger.Debug("rpe.addSubscriptionRoutes invoked")
        subscriptionList := &rtmgr.Subs
@@ -296,6 +324,8 @@ func (r *Rpe) generateRouteTable(endPointList rtmgr.Endpoints) *rtmgr.RouteTable
                if endPoint.XAppType != sbi.PlatformType && (len(endPoint.TxMessages) > 0 || len(endPoint.RxMessages) > 0) {
                        r.generateXappRoutes(endPoint, subManEp, routeTable)
                        r.generateSubscriptionRoutes(endPoint, subManEp, routeTable)
+                       r.generateXappToXappRoutes(endPoint, endPointList, routeTable)
+
                }
        }
        return routeTable