Added config and logger module from xapp-fwk. Added Routes related to A1Mediator...
[ric-plt/rtmgr.git] / pkg / rtmgr / types.go
index 0fa9dd1..5ad23e0 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 Endpoint struct {
-       Name     string
-       Type     string
-       IpSocket string
-}
-
 type XApps struct {
-       XApplist []XApp
+       XAppList []XApp
 }
 
 type RouteTable []RouteTableEntry
-
 type EndpointList []Endpoint
 
+type Endpoints map[string]*Endpoint
+
+type SubscriptionList []Subscription
+
+//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
+type Endpoint struct {
+       Uuid       string
+       Name       string
+       XAppType   string
+       Ip         string
+       Port       uint16
+       TxMessages []string
+       RxMessages []string
+       Policies   []int32
+       Socket     interface{}
+       IsReady    bool
+       Keepalive  bool
+}
+
 type RouteTableEntry struct {
        MessageType string
        TxList      EndpointList
        RxGroups    []EndpointList
+       SubID       int32
 }
 
 type XApp struct {
@@ -55,7 +73,29 @@ type XAppInstance struct {
        Name       string   `json:"name"`
        Status     string   `json:"status"`
        Ip         string   `json:"ip"`
-       Port       int      `json:"port"`
+       Port       uint16   `json:"port"`
        TxMessages []string `json:"txMessages"`
        RxMessages []string `json:"rxMessages"`
+       Policies   []int32  `json:"policies"`
+}
+
+type PlatformComponents []struct {
+       Name string `json:"name"`
+       Fqdn string `json:"fqdn"`
+       Port uint16 `json:"port"`
+}
+
+type ConfigRtmgr struct {
+       Pcs PlatformComponents `json:"PlatformComponents"`
+}
+
+type RicComponents struct {
+       XApps []XApp
+       Pcs   PlatformComponents
+}
+
+type Subscription struct {
+       SubID int32
+       Fqdn  string
+       Port  uint16
 }