X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=pkg%2Fcontrol%2Ftypes.go;h=22c8bc47756da68379fdba60dae587f258b6ef98;hb=ab54951e8bdfa6ec0923ad1f1b58142497c3a7f5;hp=4d318e0dace3d357ad4bfcd85b15c05c8c4e3121;hpb=83ada00338d2c9fa47d48c406b4a46b9d7888aff;p=ric-plt%2Fsubmgr.git diff --git a/pkg/control/types.go b/pkg/control/types.go index 4d318e0..22c8bc4 100644 --- a/pkg/control/types.go +++ b/pkg/control/types.go @@ -20,12 +20,10 @@ package control import ( - "bytes" - "fmt" + "time" + "gerrit.o-ran-sc.org/r/ric-plt/e2ap/pkg/e2ap" "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp" - "strconv" - "strings" ) //----------------------------------------------------------------------------- @@ -39,126 +37,45 @@ func (rid *RequestId) String() string { return "reqid(" + rid.RequestId.String() + ")" } -//----------------------------------------------------------------------------- -// -//----------------------------------------------------------------------------- -type RmrEndpoint struct { - Addr string // xapp addr - Port uint16 // xapp port -} - -func (endpoint RmrEndpoint) String() string { - return endpoint.Addr + ":" + strconv.FormatUint(uint64(endpoint.Port), 10) +type Sdlnterface interface { + Set(ns string, pairs ...interface{}) error + Get(ns string, keys []string) (map[string]interface{}, error) + GetAll(ns string) ([]string, error) + Remove(ns string, keys []string) error + RemoveAll(ns string) error } -func (endpoint *RmrEndpoint) Equal(ep *RmrEndpoint) bool { - if (endpoint.Addr == ep.Addr) && - (endpoint.Port == ep.Port) { - return true - } - return false -} +type E2SubscriptionDirectives struct { + // How many times E2 subscription request is retried + // Required: true + // Maximum: 10 + // Minimum: 0 + E2MaxTryCount int64 -func (endpoint *RmrEndpoint) GetAddr() string { - return endpoint.Addr -} + // How long time response is waited from E2 node + // Maximum: 10s + // Minimum: 1s + E2TimeoutTimerValue time.Duration -func (endpoint *RmrEndpoint) GetPort() uint16 { - return endpoint.Port -} - -func (endpoint *RmrEndpoint) Set(src string) bool { - elems := strings.Split(src, ":") - if len(elems) == 2 { - srcAddr := elems[0] - srcPort, err := strconv.ParseUint(elems[1], 10, 16) - if err == nil { - endpoint.Addr = srcAddr - endpoint.Port = uint16(srcPort) - return true - } - } - return false -} - -//----------------------------------------------------------------------------- -// -//----------------------------------------------------------------------------- -type RmrEndpointList struct { - Endpoints []RmrEndpoint + // Subscription needs RMR route from E2Term to xApp + CreateRMRRoute bool } -func (eplist *RmrEndpointList) String() string { - tmpList := eplist.Endpoints - valuesText := []string{} - for i := range tmpList { - valuesText = append(valuesText, tmpList[i].String()) - } - return strings.Join(valuesText, ",") +type ErrorInfo struct { + ErrorCause string + ErrorSource string + TimeoutType string } -func (eplist *RmrEndpointList) Size() int { - return len(eplist.Endpoints) -} - -func (eplist *RmrEndpointList) AddEndpoint(ep *RmrEndpoint) bool { - for i := range eplist.Endpoints { - if eplist.Endpoints[i].Equal(ep) { - return false - } - } - eplist.Endpoints = append(eplist.Endpoints, *ep) - return true -} - -func (eplist *RmrEndpointList) DelEndpoint(ep *RmrEndpoint) bool { - for i := range eplist.Endpoints { - if eplist.Endpoints[i].Equal(ep) { - eplist.Endpoints[i] = eplist.Endpoints[len(eplist.Endpoints)-1] - eplist.Endpoints[len(eplist.Endpoints)-1] = RmrEndpoint{"", 0} - eplist.Endpoints = eplist.Endpoints[:len(eplist.Endpoints)-1] - return true - } - } - return false -} - -func (eplist *RmrEndpointList) DelEndpoints(otheplist *RmrEndpointList) bool { - var retval bool = false - for i := range otheplist.Endpoints { - if eplist.DelEndpoint(&otheplist.Endpoints[i]) { - retval = true - } - } - return retval -} - -func (eplist *RmrEndpointList) HasEndpoint(ep *RmrEndpoint) bool { - for i := range eplist.Endpoints { - if eplist.Endpoints[i].Equal(ep) { - return true - } - } - return false -} - -func NewRmrEndpoint(src string) *RmrEndpoint { - ep := &RmrEndpoint{} - if ep.Set(src) == false { - return nil - } - return ep -} - -//----------------------------------------------------------------------------- -// To add own method for rmrparams -//----------------------------------------------------------------------------- -type RMRParams struct { - *xapp.RMRParams +func (e *ErrorInfo) SetInfo(errorCause string, errorSource string, timeoutType string) { + e.ErrorCause = errorCause + e.ErrorSource = errorSource + e.TimeoutType = timeoutType } -func (params *RMRParams) String() string { - var b bytes.Buffer - fmt.Fprintf(&b, "params(Src=%s Mtype=%s(%d) SubId=%v Xid=%s Meid=%s)", params.Src, xapp.RicMessageTypeToName[params.Mtype], params.Mtype, params.SubId, params.Xid, params.Meid.RanName) - return b.String() +type XappRnibInterface interface { + XappRnibSubscribe(cb func(string, ...string), channel string) error + XappRnibGetListGnbIds() ([]*xapp.RNIBNbIdentity, xapp.RNIBIRNibError) + XappRnibStoreAndPublish(channel string, event string, pairs ...interface{}) error + XappRnibGetNodeb(inventoryName string) (*xapp.RNIBNodebInfo, xapp.RNIBIRNibError) }