E2 restart handling added
[ric-plt/submgr.git] / pkg / control / types.go
index 22c44b3..22c8bc4 100644 (file)
 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"
 )
 
 //-----------------------------------------------------------------------------
 //
 //-----------------------------------------------------------------------------
-type RmrDatagram struct {
-       MessageType    int
-       SubscriptionId uint16
-       Payload        []byte
+type RequestId struct {
+       e2ap.RequestId
 }
 
-//-----------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------
-type SubRouteInfo struct {
-       Command Action
-       Address string
-       Port    uint16
-       SubID   uint16
+func (rid *RequestId) String() string {
+       return "reqid(" + rid.RequestId.String() + ")"
 }
 
-//-----------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------
-type RmrEndpoint struct {
-       Addr string // xapp addr
-       Port uint16 // xapp port
+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) String() string {
-       return endpoint.Addr + ":" + strconv.FormatUint(uint64(endpoint.Port), 10)
-}
+type E2SubscriptionDirectives struct {
+       // How many times E2 subscription request is retried
+       // Required: true
+       // Maximum: 10
+       // Minimum: 0
+       E2MaxTryCount int64
 
-//-----------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------
-type Action int
+       // How long time response is waited from E2 node
+       // Maximum: 10s
+       // Minimum: 1s
+       E2TimeoutTimerValue time.Duration
 
-func (act Action) String() string {
-       actions := [...]string{
-               "CREATE",
-               "MERGE",
-               "NONE",
-               "DELETE",
-       }
+       // Subscription needs RMR route from E2Term to xApp
+       CreateRMRRoute bool
+}
 
-       if act < CREATE || act > DELETE {
-               return "UNKNOWN"
-       }
-       return actions[act]
+type ErrorInfo struct {
+       ErrorCause  string
+       ErrorSource string
+       TimeoutType string
 }
 
-//-----------------------------------------------------------------------------
-// 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)
 }