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"
)
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
-type RmrDatagram struct {
- MessageType int
- SubscriptionId uint16
- Payload []byte
-}
-
-//-----------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------
-type SubRouteInfo struct {
- Command Action
- Address string
- Port uint16
- SubID uint16
-}
-
-//-----------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------
-type RmrEndpoint struct {
- Addr string // xapp addr
- Port uint16 // xapp port
+type RequestId struct {
+ e2ap.RequestId
}
-func (endpoint RmrEndpoint) String() string {
- return endpoint.Get()
+func (rid *RequestId) String() string {
+ return "reqid(" + rid.RequestId.String() + ")"
}
-func (endpoint *RmrEndpoint) GetAddr() string {
- return endpoint.Addr
+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) GetPort() uint16 {
- return endpoint.Port
-}
+type E2SubscriptionDirectives struct {
+ // How many times E2 subscription request is retried
+ // Required: true
+ // Maximum: 10
+ // Minimum: 0
+ E2MaxTryCount int64
-func (endpoint *RmrEndpoint) Get() string {
- return endpoint.Addr + ":" + strconv.FormatUint(uint64(endpoint.Port), 10)
-}
+ // How long time response is waited from E2 node
+ // Maximum: 10s
+ // Minimum: 1s
+ E2TimeoutTimerValue time.Duration
-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
+ // Subscription needs RMR route from E2Term to xApp
+ CreateRMRRoute bool
}
-func NewRmrEndpoint(src string) *RmrEndpoint {
- ep := &RmrEndpoint{}
- if ep.Set(src) == false {
- return nil
- }
- return ep
+type ErrorInfo struct {
+ ErrorCause string
+ ErrorSource string
+ TimeoutType string
}
-//-----------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------
-type Action int
-
-func (act Action) String() string {
- actions := [...]string{
- "CREATE",
- "MERGE",
- "NONE",
- "DELETE",
- }
-
- if act < CREATE || act > DELETE {
- return "UNKNOWN"
- }
- return actions[act]
-}
-
-//-----------------------------------------------------------------------------
-// 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, "Src=%s Mtype=%s(%d) SubId=%v Xid=%s Meid=%v", params.Src, xapp.RicMessageTypeToName[params.Mtype], params.Mtype, params.SubId, params.Xid, params.Meid)
- 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)
}