Initial commit of KPIMON xAPP for Bronze Release Enhancement.
[scp/ric-app/kpimon.git] / control / types.go
diff --git a/control/types.go b/control/types.go
new file mode 100644 (file)
index 0000000..c6fef14
--- /dev/null
@@ -0,0 +1,374 @@
+package control
+
+const MAX_SUBSCRIPTION_ATTEMPTS = 100
+
+type DecodedIndicationMessage struct {
+       RequestID             int32
+       RequestSequenceNumber int32
+       FuncID                int32
+       ActionID              int32
+       IndSN                 int32
+       IndType               int32
+       IndHeader             []byte
+       IndHeaderLength       int32
+       IndMessage            []byte
+       IndMessageLength      int32
+       CallProcessID         []byte
+       CallProcessIDLength   int32
+}
+
+type CauseItemType struct {
+       CauseType int32
+       CauseID   int32
+}
+
+type ActionAdmittedListType struct {
+       ActionID [16]int32
+       Count    int
+}
+
+type ActionNotAdmittedListType struct {
+       ActionID [16]int32
+       Cause    [16]CauseItemType
+       Count    int
+}
+
+type DecodedSubscriptionResponseMessage struct {
+       RequestID             int32
+       RequestSequenceNumber int32
+       FuncID                int32
+       ActionAdmittedList    ActionAdmittedListType
+       ActionNotAdmittedList ActionNotAdmittedListType
+}
+
+type IntPair64 struct {
+       DL int64
+       UL int64
+}
+
+type OctetString struct {
+       Buf  []byte
+       Size int
+}
+
+type Integer OctetString
+
+type PrintableString OctetString
+
+type ActionDefinition OctetString
+
+type BitString struct {
+       Buf        []byte
+       Size       int
+       BitsUnused int
+}
+
+type SubsequentAction struct {
+       IsValid              int
+       SubsequentActionType int64
+       TimeToWait           int64
+}
+
+type GNBID BitString
+
+type GlobalgNBIDType struct {
+       PlmnID    OctetString
+       GnbIDType int
+       GnbID     interface{}
+}
+
+type GlobalKPMnodegNBIDType struct {
+       GlobalgNBID GlobalgNBIDType
+       GnbCUUPID   *Integer
+       GnbDUID     *Integer
+}
+
+type ENGNBID BitString
+
+type GlobalKPMnodeengNBIDType struct {
+       PlmnID    OctetString
+       GnbIDType int
+       GnbID     interface{}
+}
+
+type NGENBID_Macro BitString
+
+type NGENBID_ShortMacro BitString
+
+type NGENBID_LongMacro BitString
+
+type GlobalKPMnodengeNBIDType struct {
+       PlmnID    OctetString
+       EnbIDType int
+       EnbID     interface{}
+}
+
+type ENBID_Macro BitString
+
+type ENBID_Home BitString
+
+type ENBID_ShortMacro BitString
+
+type ENBID_LongMacro BitString
+
+type GlobalKPMnodeeNBIDType struct {
+       PlmnID    OctetString
+       EnbIDType int
+       EnbID     interface{}
+}
+
+type NRCGIType struct {
+       PlmnID   OctetString
+       NRCellID BitString
+}
+
+type SliceIDType struct {
+       SST OctetString
+       SD  *OctetString
+}
+
+type GNB_DU_Name PrintableString
+
+type GNB_CU_CP_Name PrintableString
+
+type GNB_CU_UP_Name PrintableString
+
+type IndicationHeaderFormat1 struct {
+       GlobalKPMnodeIDType int32
+       GlobalKPMnodeID     interface{}
+       NRCGI               *NRCGIType
+       PlmnID              *OctetString
+       SliceID             *SliceIDType
+       FiveQI              int64
+       Qci                 int64
+       UeMessageType       int32
+       GnbDUID             *Integer
+       GnbNameType         int32
+       GnbName             interface{}
+       GlobalgNBID         *GlobalgNBIDType
+}
+
+type IndicationHeader struct {
+       IndHdrType int32
+       IndHdr     interface{}
+}
+
+type FQIPERSlicesPerPlmnPerCellType struct {
+       FiveQI   int64
+       PrbUsage IntPair64
+}
+
+type SlicePerPlmnPerCellType struct {
+       SliceID                         SliceIDType
+       FQIPERSlicesPerPlmnPerCells     [64]FQIPERSlicesPerPlmnPerCellType
+       FQIPERSlicesPerPlmnPerCellCount int
+}
+
+type DUPM5GCContainerType struct {
+       SlicePerPlmnPerCells     [1024]SlicePerPlmnPerCellType
+       SlicePerPlmnPerCellCount int
+}
+
+type DUPMEPCPerQCIReportType struct {
+       QCI      int64
+       PrbUsage IntPair64
+}
+
+type DUPMEPCContainerType struct {
+       PerQCIReports     [256]DUPMEPCPerQCIReportType
+       PerQCIReportCount int
+}
+
+type ServedPlmnPerCellType struct {
+       PlmnID  OctetString
+       DUPM5GC *DUPM5GCContainerType
+       DUPMEPC *DUPMEPCContainerType
+}
+
+type CellResourceReportType struct {
+       NRCGI                  NRCGIType
+       TotalofAvailablePRBs   IntPair64
+       ServedPlmnPerCells     [12]ServedPlmnPerCellType
+       ServedPlmnPerCellCount int
+}
+
+type ODUPFContainerType struct {
+       CellResourceReports     [512]CellResourceReportType
+       CellResourceReportCount int
+}
+
+type CUCPResourceStatusType struct {
+       NumberOfActiveUEs int64
+}
+
+type OCUCPPFContainerType struct {
+       GNBCUCPName        *PrintableString
+       CUCPResourceStatus CUCPResourceStatusType
+}
+
+type FQIPERSlicesPerPlmnType struct {
+       FiveQI      int64
+       PDCPBytesDL *Integer
+       PDCPBytesUL *Integer
+}
+
+type SliceToReportType struct {
+       SliceID                  SliceIDType
+       FQIPERSlicesPerPlmns     [64]FQIPERSlicesPerPlmnType
+       FQIPERSlicesPerPlmnCount int
+}
+
+type CUUPPM5GCType struct {
+       SliceToReports     [1024]SliceToReportType
+       SliceToReportCount int
+}
+
+type CUUPPMEPCPerQCIReportType struct {
+       QCI         int64
+       PDCPBytesDL *Integer
+       PDCPBytesUL *Integer
+}
+
+type CUUPPMEPCType struct {
+       CUUPPMEPCPerQCIReports     [256]CUUPPMEPCPerQCIReportType
+       CUUPPMEPCPerQCIReportCount int
+}
+
+type CUUPPlmnType struct {
+       PlmnID    OctetString
+       CUUPPM5GC *CUUPPM5GCType
+       CUUPPMEPC *CUUPPMEPCType
+}
+
+type CUUPMeasurementContainerType struct {
+       CUUPPlmns     [12]CUUPPlmnType
+       CUUPPlmnCount int
+}
+
+type CUUPPFContainerItemType struct {
+       InterfaceType    int64
+       OCUUPPMContainer CUUPMeasurementContainerType
+}
+
+type OCUUPPFContainerType struct {
+       GNBCUUPName              *PrintableString
+       CUUPPFContainerItems     [3]CUUPPFContainerItemType
+       CUUPPFContainerItemCount int
+}
+
+type DUUsageReportUeResourceReportItemType struct {
+       CRNTI      Integer
+       PRBUsageDL int64
+       PRBUsageUL int64
+}
+
+type DUUsageReportCellResourceReportItemType struct {
+       NRCGI                     NRCGIType
+       UeResourceReportItems     [32]DUUsageReportUeResourceReportItemType
+       UeResourceReportItemCount int
+}
+
+type DUUsageReportType struct {
+       CellResourceReportItems     [512]DUUsageReportCellResourceReportItemType
+       CellResourceReportItemCount int
+}
+
+type CUCPUsageReportUeResourceReportItemType struct {
+       CRNTI          Integer
+       ServingCellRF  *OctetString
+       NeighborCellRF *OctetString
+}
+
+type CUCPUsageReportCellResourceReportItemType struct {
+       NRCGI                     NRCGIType
+       UeResourceReportItems     [32]CUCPUsageReportUeResourceReportItemType
+       UeResourceReportItemCount int
+}
+
+type CUCPUsageReportType struct {
+       CellResourceReportItems     [16384]CUCPUsageReportCellResourceReportItemType
+       CellResourceReportItemCount int
+}
+
+type CUUPUsageReportUeResourceReportItemType struct {
+       CRNTI       Integer
+       PDCPBytesDL *Integer
+       PDCPBytesUL *Integer
+}
+
+type CUUPUsageReportCellResourceReportItemType struct {
+       NRCGI                     NRCGIType
+       UeResourceReportItems     [32]CUUPUsageReportUeResourceReportItemType
+       UeResourceReportItemCount int
+}
+
+type CUUPUsageReportType struct {
+       CellResourceReportItems     [512]CUUPUsageReportCellResourceReportItemType
+       CellResourceReportItemCount int
+}
+
+type PFContainerType struct {
+       ContainerType int32
+       Container     interface{}
+}
+
+type RANContainerType struct {
+       Timestamp     OctetString
+       ContainerType int32
+       Container     interface{}
+}
+
+type PMContainerType struct {
+       PFContainer  *PFContainerType
+       RANContainer *RANContainerType
+}
+
+type IndicationMessageFormat1 struct {
+       PMContainers     [8]PMContainerType
+       PMContainerCount int
+}
+
+type IndicationMessage struct {
+       StyleType  int64
+       IndMsgType int32
+       IndMsg     interface{}
+}
+
+type Timestamp struct {
+       TVsec  int64 `json:"tv_sec"`
+       TVnsec int64 `json:"tv_nsec"`
+}
+
+type CellMetricsEntry struct {
+       MeasTimestampPDCPBytes Timestamp `json:"Meas-Timestamp-PDCP-Bytes"`
+       PDCPBytesDL            int64     `json:"PDCP-Bytes-DL"`
+       PDCPBytesUL            int64     `json:"PDCP-Bytes-UL"`
+       MeasTimestampPRB       Timestamp `json:"Meas-Timestamp-PRB"`
+       AvailPRBDL             int64     `json:"Avail-PRB-DL"`
+       AvailPRBUL             int64     `json:"Avail-PRB-UL"`
+}
+
+type CellRFType struct {
+       RSRP   int `json:"rsrp"`
+       RSRQ   int `json:"rsrq"`
+       RSSINR int `json:"rsSinr"`
+}
+
+type NeighborCellRFType struct {
+       CellID string     `json:"CID"`
+       CellRF CellRFType `json:"Cell-RF"`
+}
+
+type UeMetricsEntry struct {
+       UeID                   string               `json:"UE ID"`
+       ServingCellID          string               `json:"Serving Cell ID"`
+       MeasTimestampPDCPBytes Timestamp            `json:"Meas-Timestamp-PDCP-Bytes"`
+       PDCPBytesDL            int64                `json:"PDCP-Bytes-DL"`
+       PDCPBytesUL            int64                `json:"PDCP-Bytes-UL"`
+       MeasTimestampPRB       Timestamp            `json:"Meas-Timestamp-PRB"`
+       PRBUsageDL             int64                `json:"PRB-Usage-DL"`
+       PRBUsageUL             int64                `json:"PRB-Usage-UL"`
+       MeasTimeRF             Timestamp            `json:"Meas-Time-RF"`
+       ServingCellRF          CellRFType           `json:"Serving-Cell-RF"`
+       NeighborCellsRF        []NeighborCellRFType `json:"Neighbor-Cell-RF"`
+}