X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=pkg%2Fcontrol%2Ftypes.go;h=22c8bc47756da68379fdba60dae587f258b6ef98;hb=HEAD;hp=164e80167ba8216d3722131a8cf5c06d7a3f83c8;hpb=12d31af1cdfcbf5f634d9cf666e8e174c74ecb27;p=ric-plt%2Fsubmgr.git diff --git a/pkg/control/types.go b/pkg/control/types.go index 164e801..22c8bc4 100644 --- a/pkg/control/types.go +++ b/pkg/control/types.go @@ -20,158 +20,62 @@ 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 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) -} - -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 +type RequestId struct { + e2ap.RequestId } -func (eplist *RmrEndpointList) String() string { - valuesText := []string{} - for i := range eplist.Endpoints { - ep := eplist.Endpoints[i] - text := ep.String() - valuesText = append(valuesText, text) - } - return strings.Join(valuesText, ",") +func (rid *RequestId) String() string { + return "reqid(" + rid.RequestId.String() + ")" } -func (eplist *RmrEndpointList) Size() int { - return len(eplist.Endpoints) +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 (eplist *RmrEndpointList) AddEndpoint(ep *RmrEndpoint) bool { - for i := range eplist.Endpoints { - if (eplist.Endpoints[i].Addr == ep.Addr) && (eplist.Endpoints[i].Port == ep.Port) { - return false - } - } - eplist.Endpoints = append(eplist.Endpoints, *ep) - return true -} +type E2SubscriptionDirectives struct { + // How many times E2 subscription request is retried + // Required: true + // Maximum: 10 + // Minimum: 0 + E2MaxTryCount int64 -func (eplist *RmrEndpointList) DelEndpoint(ep *RmrEndpoint) bool { - for i := range eplist.Endpoints { - if (eplist.Endpoints[i].Addr == ep.Addr) && (eplist.Endpoints[i].Port == ep.Port) { - 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(&eplist.Endpoints[i]) { - retval = true - } - } - return retval -} + // How long time response is waited from E2 node + // Maximum: 10s + // Minimum: 1s + E2TimeoutTimerValue time.Duration -func (eplist *RmrEndpointList) HasEndpoint(ep *RmrEndpoint) bool { - for i := range eplist.Endpoints { - if (eplist.Endpoints[i].Addr == ep.Addr) && (eplist.Endpoints[i].Port == ep.Port) { - 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", - "UPDATE", - "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, "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) }