RIC:1060: Change in PTL
[ric-plt/rtmgr.git] / pkg / rtmgr / types.go
index ba396c8..f9a356c 100644 (file)
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
+
+   This source code is part of the near-RT RIC (RAN Intelligent Controller)
+   platform project (RICP).
+
 ==================================================================================
 */
 /*
   Mnemonic:    rtmgr/types.go
-  Abstract:    Containes RTMGR (Routing Manager) specific types
+  Abstract:    Contains RTMGR (Routing Manager) specific types
   Date:                12 March 2019
 */
 
 package rtmgr
 
+type RMRUpdateType int
+
+const (
+       XappType = iota
+       SubsType
+       E2Type
+)
+
 type XApps struct {
-       XApplist []XApp
+       XAppList []XApp
 }
 
 type RouteTable []RouteTableEntry
@@ -35,6 +47,9 @@ type Endpoints map[string]*Endpoint
 
 type SubscriptionList []Subscription
 
+type MessageTypeList map[string]string
+
+type ProcessMultipleRMR map[string]int
 
 //TODO: uuid is not a real UUID but a string of "ip:port"
 // this should be changed to real UUID later on which should come from xApp Manager // petszila
@@ -46,16 +61,19 @@ type Endpoint struct {
        Port       uint16
        TxMessages []string
        RxMessages []string
+       Policies   []int32
        Socket     interface{}
        IsReady    bool
        Keepalive  bool
+       Whid       int
 }
 
 type RouteTableEntry struct {
        MessageType string
        TxList      EndpointList
        RxGroups    []EndpointList
-       SubID       int16
+       SubID       int32
+       RouteType   string
 }
 
 type XApp struct {
@@ -72,6 +90,7 @@ type XAppInstance struct {
        Port       uint16   `json:"port"`
        TxMessages []string `json:"txMessages"`
        RxMessages []string `json:"rxMessages"`
+       Policies   []int32  `json:"policies"`
 }
 
 type PlatformComponents []struct {
@@ -80,18 +99,63 @@ type PlatformComponents []struct {
        Port uint16 `json:"port"`
 }
 
-type RtmgrConfig struct {
+type E2TInstance struct {
+       Name    string   `json:"name"`
+       Fqdn    string   `json:"fqdn"`
+       Ranlist []string `json:"ranlist"`
+}
+
+type E2tIdentity struct {
+       E2taddress string   `json:"e2tAddress"`
+       Rannames   []string `json:"ranNames"`
+}
+
+type ConfigRtmgr struct {
        Pcs PlatformComponents `json:"PlatformComponents"`
 }
 
+type MessageTypeIdentifier struct {
+       Mit []string `json:"messagetypes"`
+}
+
 type RicComponents struct {
-       Xapps []XApp
-       Pcs   PlatformComponents
+       XApps   []XApp
+       E2Ts    map[string]E2TInstance
+       MeidMap []string
+       Pcs     PlatformComponents
 }
 
 type Subscription struct {
-       SubID    int16
-       Fqdn     string
-       Port     uint16
+       SubID int32
+       Fqdn  string
+       Port  uint16
+}
+
+type PlatformRoutes []struct {
+       MessageType    string `json:"messagetype"`
+       SenderEndPoint string `json:"senderendpoint"`
+       SubscriptionId int32  `json:"subscriptionid"`
+       EndPoint       string `json:"endpoint"`
+       Meid           string `json:"meid"`
+}
+
+type RtmgrRoutes struct {
+       Prs PlatformRoutes `json:"PlatformRoutes"`
 }
 
+type FqDn struct {
+       Address *string
+       Port    *uint16
+}
+
+type XappList struct {
+       SubscriptionID uint16
+       FqdnList       []FqDn
+}
+
+var (
+       Rtmgr_ready bool
+)
+
+//To encapsulate routing-manager's keys under their own namespace in a DB
+const RTMGR_SDL_NS string = "rtmgr"