X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=pkg%2Fsbi%2Fsbi.go;h=b65e7788a1a36d79ec3f0ffda804949335adf033;hb=HEAD;hp=21ff78eb1d0382083d8258a74de50db1496d7fe4;hpb=6a9ce4976c1fbbcb8d4a068f81e76515c99a9d3f;p=ric-plt%2Frtmgr.git diff --git a/pkg/sbi/sbi.go b/pkg/sbi/sbi.go index 21ff78e..b65e778 100644 --- a/pkg/sbi/sbi.go +++ b/pkg/sbi/sbi.go @@ -31,9 +31,9 @@ package sbi import ( "errors" - //"fmt" + "fmt" "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp" - //"net" + "net" "routing-manager/pkg/rtmgr" "strconv" "strings" @@ -103,7 +103,7 @@ func (s *Sbi) updateEndpoints(rcs *rtmgr.RicComponents, sbi Engine) { Keepalive: true, } if err := sbi.AddEndpoint(ep); err != nil { - xapp.Logger.Error("can't create socket for endpoint: " + ep.Name + " due to:" + err.Error()) + xapp.Logger.Error("Cannot create socket for endpoint: " + ep.Name + " due to:" + err.Error()) continue } rtmgr.Eps[uuid] = ep @@ -123,20 +123,20 @@ func (s *Sbi) updatePlatformEndpoints(pcs *rtmgr.PlatformComponents, sbi Engine) rtmgr.Eps[uuid].Keepalive = true } else { ep := &rtmgr.Endpoint{ - Uuid: uuid, - Name: pc.Name, - XAppType: PlatformType, - Ip: pc.Fqdn, - Port: pc.Port, + Uuid: uuid, + Name: pc.Name, + XAppType: PlatformType, + Ip: pc.Fqdn, + Port: pc.Port, //TxMessages: rtmgr.PLATFORMMESSAGETYPES[pc.Name]["tx"], //RxMessages: rtmgr.PLATFORMMESSAGETYPES[pc.Name]["rx"], - Socket: nil, - IsReady: false, - Keepalive: true, + Socket: nil, + IsReady: false, + Keepalive: true, } xapp.Logger.Debug("ep created: %v", ep) if err := sbi.AddEndpoint(ep); err != nil { - xapp.Logger.Error("can't create socket for endpoint: " + ep.Name + " due to:" + err.Error()) + xapp.Logger.Error("Cannot create socket for endpoint: " + ep.Name + " due to:" + err.Error()) continue } rtmgr.Eps[uuid] = ep @@ -155,20 +155,20 @@ func (s *Sbi) updateE2TEndpoints(E2Ts *map[string]rtmgr.E2TInstance, sbi Engine) rtmgr.Eps[uuid].Keepalive = true } else { ep := &rtmgr.Endpoint{ - Uuid: uuid, - Name: e2t.Name, - XAppType: PlatformType, - Ip: ipaddress, - Port: uint16(port), + Uuid: uuid, + Name: e2t.Name, + XAppType: PlatformType, + Ip: ipaddress, + Port: uint16(port), //TxMessages: rtmgr.PLATFORMMESSAGETYPES[e2t.Name]["tx"], //RxMessages: rtmgr.PLATFORMMESSAGETYPES[e2t.Name]["rx"], - Socket: nil, - IsReady: false, - Keepalive: true, + Socket: nil, + IsReady: false, + Keepalive: true, } xapp.Logger.Debug("ep created: %v", ep) if err := sbi.AddEndpoint(ep); err != nil { - xapp.Logger.Error("can't create socket for endpoint: " + ep.Name + " due to:" + err.Error()) + xapp.Logger.Error("Cannot create socket for endpoint: " + ep.Name + " due to:" + err.Error()) continue } rtmgr.Eps[uuid] = ep @@ -176,40 +176,47 @@ func (s *Sbi) updateE2TEndpoints(E2Ts *map[string]rtmgr.E2TInstance, sbi Engine) } } -func (s *Sbi) createEndpoint(payload string,rmrsrc string, sbi Engine) (*string,int) { - xapp.Logger.Debug("CreateEndPoint %v", payload) -// stringSlice := strings.Split(payload, " ") -// uuid := stringSlice[0] -// xapp.Logger.Debug(">>> uuid %v", stringSlice[0]) - -/* if _, ok := rtmgr.Eps[uuid]; ok { - ep := rtmgr.Eps[uuid] - return ep - }*/ +func (s *Sbi) checkEndpoint(payload string) *rtmgr.Endpoint { + /* Payload contains endpoint in the form of IP:Port. + Port is data port of sender endpoint. + Eps contains the UUID in the form of IP:Port. + Port is the Application Port(http) */ + + xapp.Logger.Debug("Invoked checkEndPoint %v", payload) + stringSlice := strings.Split(payload, " ") + uuid := stringSlice[0] + stringsubsplit := strings.Split(uuid, ":") + xapp.Logger.Debug(">>> uuid %v", stringSlice[0]) + for _, ep := range rtmgr.Eps { + if strings.Contains(ep.Uuid, stringsubsplit[0]) == true { + endpoint := rtmgr.Eps[ep.Uuid] + return endpoint + } + } /* incase the stored Endpoint list is in the form of IP:port*/ -/* stringsubsplit := strings.Split(uuid, ":") addr, err := net.LookupIP(stringsubsplit[0]) if err == nil { convertedUuid := fmt.Sprintf("%s:%s", addr[0], stringsubsplit[1]) xapp.Logger.Info(" IP:Port received is %s", convertedUuid) - if _, ok := rtmgr.Eps[convertedUuid]; ok { - ep := rtmgr.Eps[convertedUuid] - return ep + IP := fmt.Sprintf("%s", addr[0]) + for _, ep := range rtmgr.Eps { + res := strings.Contains(ep.Uuid, IP) + if res == true { + endpoint := rtmgr.Eps[ep.Uuid] + return endpoint + } } - }*/ + } + return nil +} +func (s *Sbi) createEndpoint(rmrsrc string) (*string, int) { /* Create a new mapping, this case is assumed for multiple process sending RMR request from a container */ - srcString := strings.Split(rmrsrc," ") - srcStringSlice := strings.Split(srcString[0],"=") + srcString := strings.Split(rmrsrc, " ") + srcStringSlice := strings.Split(srcString[0], "=") Whid := int(xapp.Rmr.Openwh(srcStringSlice[1])) - xapp.Logger.Info("Wormhole Id created is %d for EndPoint %s",Whid,srcStringSlice[1]) - if Whid > 0 { -// rtmgr.RmrEp[srcStringSlice[1]] = Whid - xapp.Logger.Info("received %s and mapped to Whid = %d",srcStringSlice[1],Whid) - return &srcStringSlice[1],Whid - } - - return nil,Whid - } + xapp.Logger.Info("Wormhole Id created is %d for EndPoint %s", Whid, srcStringSlice[1]) + return &srcStringSlice[1], Whid +}