Subscription REST interface update
[ric-plt/submgr.git] / pkg / control / types.go
index 00674c7..0123357 100644 (file)
 package control
 
 import (
-       "bytes"
-       "fmt"
-       "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
-       "strconv"
-       "strings"
-)
-
-//-----------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------
-type RmrDatagram struct {
-       MessageType    int
-       SubscriptionId uint16
-       Payload        []byte
-}
+       "time"
 
-//-----------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------
-type SubRouteInfo struct {
-       Command Action
-       Address string
-       Port    uint16
-       SubID   uint16
-}
+       "gerrit.o-ran-sc.org/r/ric-plt/e2ap/pkg/e2ap"
+)
 
 //-----------------------------------------------------------------------------
 //
 //-----------------------------------------------------------------------------
-type RmrEndpoint struct {
-       Addr string // xapp addr
-       Port uint16 // xapp port
-}
-
-func (endpoint RmrEndpoint) String() string {
-       return endpoint.Get()
-}
-
-func (endpoint *RmrEndpoint) GetAddr() string {
-       return endpoint.Addr
-}
-
-func (endpoint *RmrEndpoint) GetPort() uint16 {
-       return endpoint.Port
-}
-
-func (endpoint *RmrEndpoint) Get() string {
-       return endpoint.Addr + ":" + strconv.FormatUint(uint64(endpoint.Port), 10)
+type RequestId struct {
+       e2ap.RequestId
 }
 
-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
+func (rid *RequestId) String() string {
+       return "reqid(" + rid.RequestId.String() + ")"
 }
 
-func NewRmrEndpoint(src string) *RmrEndpoint {
-       ep := &RmrEndpoint{}
-       if ep.Set(src) == false {
-               return nil
-       }
-       return ep
+type Sdlnterface interface {
+       Set(pairs ...interface{}) error
+       Get(keys []string) (map[string]interface{}, error)
+       GetAll() ([]string, error)
+       Remove(keys []string) error
+       RemoveAll() error
 }
 
-//-----------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------
-type Action int
+type E2SubscriptionDirectives struct {
+       // How many times E2 subscription request is retried
+       // Required: true
+       // Maximum: 10
+       // Minimum: 0
+       E2MaxTryCount int64
 
-func (act Action) String() string {
-       actions := [...]string{
-               "CREATE",
-               "MERGE",
-               "NONE",
-               "DELETE",
-       }
+       // How long time response is waited from E2 node
+       // Maximum: 10s
+       // Minimum: 1s
+       E2TimeoutTimerValue time.Duration
 
-       if act < CREATE || act > DELETE {
-               return "UNKNOWN"
-       }
-       return actions[act]
+       // Subscription needs RMR route from E2Term to xApp
+       CreateRMRRoute bool
 }
 
-//-----------------------------------------------------------------------------
-// To add own method for rmrparams
-//-----------------------------------------------------------------------------
-type RMRParams struct {
-       *xapp.RMRParams
+type ErrorInfo struct {
+       ErrorCause  string
+       ErrorSource string
+       TimeoutType string
 }
 
-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()
+func (e *ErrorInfo) SetInfo(errorCause string, errorSource string, timeoutType string) {
+       e.ErrorCause = errorCause
+       e.ErrorSource = errorSource
+       e.TimeoutType = timeoutType
 }