package control
import (
+ "time"
+
"gerrit.o-ran-sc.org/r/ric-plt/e2ap/pkg/e2ap"
- "strconv"
- "strings"
+ "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
)
//-----------------------------------------------------------------------------
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
-}
-
-func (endpoint *RmrEndpoint) GetAddr() string {
- return endpoint.Addr
-}
+type E2SubscriptionDirectives struct {
+ // How many times E2 subscription request is retried
+ // Required: true
+ // Maximum: 10
+ // Minimum: 0
+ E2MaxTryCount int64
-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
-}
-
-func (eplist *RmrEndpointList) String() string {
- tmpList := eplist.Endpoints
- valuesText := []string{}
- for i := range tmpList {
- valuesText = append(valuesText, tmpList[i].String())
- }
- return strings.Join(valuesText, ",")
-}
-
-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
-}
+ // How long time response is waited from E2 node
+ // Maximum: 10s
+ // Minimum: 1s
+ E2TimeoutTimerValue time.Duration
-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
+ // Subscription needs RMR route from E2Term to xApp
+ CreateRMRRoute bool
}
-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
+type ErrorInfo struct {
+ ErrorCause string
+ ErrorSource string
+ TimeoutType string
}
-func (eplist *RmrEndpointList) HasEndpoint(ep *RmrEndpoint) bool {
- for i := range eplist.Endpoints {
- if eplist.Endpoints[i].Equal(ep) {
- return true
- }
- }
- return false
+func (e *ErrorInfo) SetInfo(errorCause string, errorSource string, timeoutType string) {
+ e.ErrorCause = errorCause
+ e.ErrorSource = errorSource
+ e.TimeoutType = timeoutType
}
-func NewRmrEndpoint(src string) *RmrEndpoint {
- ep := &RmrEndpoint{}
- if ep.Set(src) == false {
- return nil
- }
- return ep
+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)
}