Compare commits

..

No commits in common. "libe2proto-ddos" and "ns-o-ran" have entirely different histories.

519 changed files with 78457 additions and 648 deletions

View File

@ -28,37 +28,25 @@ RUN cd xapp-frame && \
WORKDIR /go/src/gerrit.o-ran-sc.org/r/scp/ric-app/kpimon
COPY control/ control/
COPY cmd/ cmd/
COPY e2ap/ e2ap/
COPY e2sm/ e2sm/
# # "COMPILING E2AP Wrapper"
# RUN cd e2ap && \
# gcc -c -fPIC -Iheaders/ lib/*.c wrapper.c && \
# gcc *.o -shared -o libe2apwrapper.so && \
# cp libe2apwrapper.so /usr/local/lib/ && \
# mkdir /usr/local/include/e2ap && \
# cp wrapper.h headers/*.h /usr/local/include/e2ap && \
# ldconfig
# "COMPILING E2AP Wrapper"
RUN cd e2ap && \
gcc -c -fPIC -Iheaders/ lib/*.c wrapper.c && \
gcc *.o -shared -o libe2apwrapper.so && \
cp libe2apwrapper.so /usr/local/lib/ && \
mkdir /usr/local/include/e2ap && \
cp wrapper.h headers/*.h /usr/local/include/e2ap && \
ldconfig
# # "COMPILING E2SM Wrapper"
# RUN cd e2sm && \
# gcc -c -fPIC -Iheaders/ lib/*.c wrapper.c && \
# gcc *.o -shared -o libe2smwrapper.so && \
# cp libe2smwrapper.so /usr/local/lib/ && \
# mkdir /usr/local/include/e2sm && \
# cp wrapper.h headers/*.h /usr/local/include/e2sm && \
# ldconfig
RUN git clone -b ns-o-ran https://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@github.com/wineslab/libe2proto
WORKDIR /go/src/gerrit.o-ran-sc.org/r/scp/ric-app/kpimon/libe2proto
RUN cmake .
RUN make
RUN make install
RUN mkdir /usr/local/include/libe2proto && \
cp src/wrapper/wrapper.h /usr/local/include/libe2proto && \
cp src/e2ap/*.h /usr/local/include/libe2proto && \
cp src/e2sm/*.h /usr/local/include/libe2proto && \
# "COMPILING E2SM Wrapper"
RUN cd e2sm && \
gcc -c -fPIC -Iheaders/ lib/*.c wrapper.c && \
gcc *.o -shared -o libe2smwrapper.so && \
cp libe2smwrapper.so /usr/local/lib/ && \
mkdir /usr/local/include/e2sm && \
cp wrapper.h headers/*.h /usr/local/include/e2sm && \
ldconfig
WORKDIR /go/src/gerrit.o-ran-sc.org/r/scp/ric-app/kpimon
@ -78,7 +66,8 @@ ENV RMR_SEED_RT /opt/routes.txt
COPY routes.txt /opt/routes.txt
COPY --from=kpimonbuild /usr/local/lib /usr/local/lib
COPY --from=kpimonbuild /usr/local/include/libe2proto/*.h /usr/local/include/libe2proto/
COPY --from=kpimonbuild /usr/local/include/e2ap/*.h /usr/local/include/e2ap/
COPY --from=kpimonbuild /usr/local/include/e2sm/*.h /usr/local/include/e2sm/
RUN ldconfig
WORKDIR /go/src/gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/config/
COPY --from=kpimonbuild /go/src/gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/config/config-file.yaml .

View File

@ -24,12 +24,8 @@ func main() {
println(responseDeRegisterString)
time.Sleep(5 * time.Second)
response, err := registerXApp()
for true {
//registerXApp()
}
if err != nil {
print("Error: " + err.Error())
}

View File

@ -257,81 +257,75 @@ func (c *Control) handleIndication(params *xapp.RMRParams) (err error) {
}
if indHdrFormat1.CollectionStartTime != nil {
log.Printf("CollectionStartTime: %x", indHdrFormat1.CollectionStartTime.Buf)
if indHdrFormat1.NRCGI != nil {
log.Printf("nRCGI.PlmnID: %x", indHdrFormat1.NRCGI.PlmnID.Buf)
log.Printf("nRCGI.NRCellID ID: %x, Unused: %d", indHdrFormat1.NRCGI.NRCellID.Buf, indHdrFormat1.NRCGI.NRCellID.BitsUnused)
cellIDHdr, err = e2sm.ParseNRCGI(*indHdrFormat1.NRCGI)
if err != nil {
xapp.Logger.Error("Failed to parse NRCGI in RIC Indication Header: %v", err)
log.Printf("Failed to parse NRCGI in RIC Indication Header: %v", err)
return
}
} else {
log.Printf("No Collection Start Time")
cellIDHdr = ""
}
// if indHdrFormat1.NRCGI != nil {
if indHdrFormat1.PlmnID != nil {
log.Printf("PlmnID: %x", indHdrFormat1.PlmnID.Buf)
// log.Printf("nRCGI.PlmnID: %x", indHdrFormat1.NRCGI.PlmnID.Buf)
// log.Printf("nRCGI.NRCellID ID: %x, Unused: %d", indHdrFormat1.NRCGI.NRCellID.Buf, indHdrFormat1.NRCGI.NRCellID.BitsUnused)
plmnIDHdr, err = e2sm.ParsePLMNIdentity(indHdrFormat1.PlmnID.Buf, indHdrFormat1.PlmnID.Size)
if err != nil {
xapp.Logger.Error("Failed to parse PlmnID in RIC Indication Header: %v", err)
log.Printf("Failed to parse PlmnID in RIC Indication Header: %v", err)
return
}
} else {
plmnIDHdr = ""
}
// cellIDHdr, err = e2sm.ParseNRCGI(*indHdrFormat1.NRCGI)
// if err != nil {
// xapp.Logger.Error("Failed to parse NRCGI in RIC Indication Header: %v", err)
// log.Printf("Failed to parse NRCGI in RIC Indication Header: %v", err)
// return
// }
// } else {
// cellIDHdr = ""
// }
if indHdrFormat1.SliceID != nil {
log.Printf("SST: %x", indHdrFormat1.SliceID.SST.Buf)
// if indHdrFormat1.PlmnID != nil {
// log.Printf("PlmnID: %x", indHdrFormat1.PlmnID.Buf)
if indHdrFormat1.SliceID.SD != nil {
log.Printf("SD: %x", indHdrFormat1.SliceID.SD.Buf)
}
// plmnIDHdr, err = e2sm.ParsePLMNIdentity(indHdrFormat1.PlmnID.Buf, indHdrFormat1.PlmnID.Size)
// if err != nil {
// xapp.Logger.Error("Failed to parse PlmnID in RIC Indication Header: %v", err)
// log.Printf("Failed to parse PlmnID in RIC Indication Header: %v", err)
// return
// }
// } else {
// plmnIDHdr = ""
// }
sliceIDHdr, err = e2sm.ParseSliceID(*indHdrFormat1.SliceID)
if err != nil {
xapp.Logger.Error("Failed to parse SliceID in RIC Indication Header: %v", err)
log.Printf("Failed to parse SliceID in RIC Indication Header: %v", err)
return
}
} else {
sliceIDHdr = -1
}
// if indHdrFormat1.SliceID != nil {
// log.Printf("SST: %x", indHdrFormat1.SliceID.SST.Buf)
if indHdrFormat1.FiveQI != -1 {
log.Printf("5QI: %d", indHdrFormat1.FiveQI)
}
fiveQIHdr = indHdrFormat1.FiveQI
// if indHdrFormat1.SliceID.SD != nil {
// log.Printf("SD: %x", indHdrFormat1.SliceID.SD.Buf)
// }
if indHdrFormat1.Qci != -1 {
log.Printf("QCI: %d", indHdrFormat1.Qci)
}
// sliceIDHdr, err = e2sm.ParseSliceID(*indHdrFormat1.SliceID)
// if err != nil {
// xapp.Logger.Error("Failed to parse SliceID in RIC Indication Header: %v", err)
// log.Printf("Failed to parse SliceID in RIC Indication Header: %v", err)
// return
// }
// } else {
// sliceIDHdr = -1
// }
if indHdrFormat1.UeMessageType != -1 {
log.Printf("Ue Report type: %d", indHdrFormat1.UeMessageType)
}
// if indHdrFormat1.FiveQI != -1 {
// log.Printf("5QI: %d", indHdrFormat1.FiveQI)
// }
// fiveQIHdr = indHdrFormat1.FiveQI
if indHdrFormat1.GnbDUID != nil {
log.Printf("gNB-DU-ID: %x", indHdrFormat1.GnbDUID.Buf)
}
// if indHdrFormat1.Qci != -1 {
// log.Printf("QCI: %d", indHdrFormat1.Qci)
// }
// if indHdrFormat1.UeMessageType != -1 {
// log.Printf("Ue Report type: %d", indHdrFormat1.UeMessageType)
// }
// if indHdrFormat1.GnbDUID != nil {
// log.Printf("gNB-DU-ID: %x", indHdrFormat1.GnbDUID.Buf)
// }
// if indHdrFormat1.GnbNameType == 1 {
// log.Printf("gNB-DU-Name: %x", (indHdrFormat1.GnbName.(*GNB_DU_Name)).Buf)
// } else if indHdrFormat1.GnbNameType == 2 {
// log.Printf("gNB-CU-CP-Name: %x", (indHdrFormat1.GnbName.(*GNB_CU_CP_Name)).Buf)
// } else if indHdrFormat1.GnbNameType == 3 {
// log.Printf("gNB-CU-UP-Name: %x", (indHdrFormat1.GnbName.(*GNB_CU_UP_Name)).Buf)
// }
if indHdrFormat1.GnbNameType == 1 {
log.Printf("gNB-DU-Name: %x", (indHdrFormat1.GnbName.(*GNB_DU_Name)).Buf)
} else if indHdrFormat1.GnbNameType == 2 {
log.Printf("gNB-CU-CP-Name: %x", (indHdrFormat1.GnbName.(*GNB_CU_CP_Name)).Buf)
} else if indHdrFormat1.GnbNameType == 3 {
log.Printf("gNB-CU-UP-Name: %x", (indHdrFormat1.GnbName.(*GNB_CU_UP_Name)).Buf)
}
if indHdrFormat1.GlobalgNBID != nil {
log.Printf("PlmnID: %x", indHdrFormat1.GlobalgNBID.PlmnID.Buf)
@ -365,7 +359,7 @@ func (c *Control) handleIndication(params *xapp.RMRParams) (err error) {
var availPRBUL int64
log.Printf("-----------RIC Indication Message-----------")
// log.Printf("StyleType: %d", indMsg.StyleType)
log.Printf("StyleType: %d", indMsg.StyleType)
if indMsg.IndMsgType == 1 {
log.Printf("RIC Indication Message Format: %d", indMsg.IndMsgType)
@ -485,9 +479,9 @@ func (c *Control) handleIndication(params *xapp.RMRParams) (err error) {
oCUCP := pmContainer.PFContainer.Container.(*OCUCPPFContainerType)
// if oCUCP.GNBCUCPName != nil {
// log.Printf("gNB-CU-CP Name: %x", oCUCP.GNBCUCPName.Buf)
// }
if oCUCP.GNBCUCPName != nil {
log.Printf("gNB-CU-CP Name: %x", oCUCP.GNBCUCPName.Buf)
}
log.Printf("NumberOfActiveUEs: %d", oCUCP.CUCPResourceStatus.NumberOfActiveUEs)
} else if containerType == 3 {
@ -495,9 +489,9 @@ func (c *Control) handleIndication(params *xapp.RMRParams) (err error) {
oCUUP := pmContainer.PFContainer.Container.(*OCUUPPFContainerType)
// if oCUUP.GNBCUUPName != nil {
// log.Printf("gNB-CU-UP Name: %x", oCUUP.GNBCUUPName.Buf)
// }
if oCUUP.GNBCUUPName != nil {
log.Printf("gNB-CU-UP Name: %x", oCUUP.GNBCUUPName.Buf)
}
cuUPPFContainerItemCount := oCUUP.CUUPPFContainerItemCount
log.Printf("CU-UP PF Container Item Count: %d", cuUPPFContainerItemCount)
@ -620,320 +614,316 @@ func (c *Control) handleIndication(params *xapp.RMRParams) (err error) {
}
if pmContainer.RANContainer != nil {
// log.Printf("RANContainer: %x", pmContainer.RANContainer.Timestamp.Buf)
log.Printf("RANContainer: %x", pmContainer.RANContainer.Buf)
// TODO parse RANContainer octect string
log.Printf("RANContainer: %x", pmContainer.RANContainer.Timestamp.Buf)
// timestamp, _ := e2sm.ParseTimestamp(pmContainer.RANContainer.Timestamp.Buf, pmContainer.RANContainer.Timestamp.Size)
// log.Printf("Timestamp=[sec: %d, nsec: %d]", timestamp.TVsec, timestamp.TVnsec)
timestamp, _ := e2sm.ParseTimestamp(pmContainer.RANContainer.Timestamp.Buf, pmContainer.RANContainer.Timestamp.Size)
log.Printf("Timestamp=[sec: %d, nsec: %d]", timestamp.TVsec, timestamp.TVnsec)
// TODO given the result of ran container log
// containerType = pmContainer.RANContainer.ContainerType
// containerType = -1
// if containerType == 1 {
// log.Printf("DU Usage Report: ")
containerType = pmContainer.RANContainer.ContainerType
if containerType == 1 {
log.Printf("DU Usage Report: ")
// oDUUE := pmContainer.RANContainer.Container.(*DUUsageReportType)
oDUUE := pmContainer.RANContainer.Container.(*DUUsageReportType)
// for j := 0; j < oDUUE.CellResourceReportItemCount; j++ {
// cellResourceReportItem := oDUUE.CellResourceReportItems[j]
for j := 0; j < oDUUE.CellResourceReportItemCount; j++ {
cellResourceReportItem := oDUUE.CellResourceReportItems[j]
// log.Printf("nRCGI.PlmnID: %x", cellResourceReportItem.NRCGI.PlmnID.Buf)
// log.Printf("nRCGI.NRCellID: %x, Unused: %d", cellResourceReportItem.NRCGI.NRCellID.Buf, cellResourceReportItem.NRCGI.NRCellID.BitsUnused)
log.Printf("nRCGI.PlmnID: %x", cellResourceReportItem.NRCGI.PlmnID.Buf)
log.Printf("nRCGI.NRCellID: %x, Unused: %d", cellResourceReportItem.NRCGI.NRCellID.Buf, cellResourceReportItem.NRCGI.NRCellID.BitsUnused)
// servingCellID, err := e2sm.ParseNRCGI(cellResourceReportItem.NRCGI)
// if err != nil {
// xapp.Logger.Error("Failed to parse NRCGI in DU Usage Report: %v", err)
// log.Printf("Failed to parse NRCGI in DU Usage Report: %v", err)
// continue
// }
servingCellID, err := e2sm.ParseNRCGI(cellResourceReportItem.NRCGI)
if err != nil {
xapp.Logger.Error("Failed to parse NRCGI in DU Usage Report: %v", err)
log.Printf("Failed to parse NRCGI in DU Usage Report: %v", err)
continue
}
// for k := 0; k < cellResourceReportItem.UeResourceReportItemCount; k++ {
// ueResourceReportItem := cellResourceReportItem.UeResourceReportItems[k]
for k := 0; k < cellResourceReportItem.UeResourceReportItemCount; k++ {
ueResourceReportItem := cellResourceReportItem.UeResourceReportItems[k]
// log.Printf("C-RNTI: %x", ueResourceReportItem.CRNTI.Buf)
log.Printf("C-RNTI: %x", ueResourceReportItem.CRNTI.Buf)
// ueID, err := e2sm.ParseInteger(ueResourceReportItem.CRNTI.Buf, ueResourceReportItem.CRNTI.Size)
// if err != nil {
// xapp.Logger.Error("Failed to parse C-RNTI in DU Usage Report with Serving Cell ID [%s]: %v", servingCellID, err)
// log.Printf("Failed to parse C-RNTI in DU Usage Report with Serving Cell ID [%s]: %v", servingCellID, err)
// continue
// }
ueID, err := e2sm.ParseInteger(ueResourceReportItem.CRNTI.Buf, ueResourceReportItem.CRNTI.Size)
if err != nil {
xapp.Logger.Error("Failed to parse C-RNTI in DU Usage Report with Serving Cell ID [%s]: %v", servingCellID, err)
log.Printf("Failed to parse C-RNTI in DU Usage Report with Serving Cell ID [%s]: %v", servingCellID, err)
continue
}
// var ueMetrics UeMetricsEntry
var ueMetrics UeMetricsEntry
// retStr, err := c.sdl.Get([]string{"{TS-UE-metrics}," + strconv.FormatInt(ueID, 10)})
// if err != nil {
// panic(err)
// xapp.Logger.Error("Failed to get ueMetrics from Redis!")
// log.Printf("Failed to get ueMetrics from Redis!")
// } else {
// if retStr["{TS-UE-metrics},"+strconv.FormatInt(ueID, 10)] != nil {
// ueJsonStr := retStr["{TS-UE-metrics},"+strconv.FormatInt(ueID, 10)].(string)
// json.Unmarshal([]byte(ueJsonStr), &ueMetrics)
// }
// }
retStr, err := c.sdl.Get([]string{"{TS-UE-metrics}," + strconv.FormatInt(ueID, 10)})
if err != nil {
panic(err)
xapp.Logger.Error("Failed to get ueMetrics from Redis!")
log.Printf("Failed to get ueMetrics from Redis!")
} else {
if retStr["{TS-UE-metrics},"+strconv.FormatInt(ueID, 10)] != nil {
ueJsonStr := retStr["{TS-UE-metrics},"+strconv.FormatInt(ueID, 10)].(string)
json.Unmarshal([]byte(ueJsonStr), &ueMetrics)
}
}
// //if isUeExist, _ := c.client.Exists("{TS-UE-metrics}," + strconv.FormatInt(ueID, 10)).Result(); isUeExist == 1 {
// // ueJsonStr, _ := c.client.Get("{TS-UE-metrics}," + strconv.FormatInt(ueID, 10)).Result()
// // json.Unmarshal([]byte(ueJsonStr), &ueMetrics)
// //}
//if isUeExist, _ := c.client.Exists("{TS-UE-metrics}," + strconv.FormatInt(ueID, 10)).Result(); isUeExist == 1 {
// ueJsonStr, _ := c.client.Get("{TS-UE-metrics}," + strconv.FormatInt(ueID, 10)).Result()
// json.Unmarshal([]byte(ueJsonStr), &ueMetrics)
//}
// ueMetrics.UeID = ueID
// log.Printf("UeID: %d", ueMetrics.UeID)
// ueMetrics.ServingCellID = servingCellID
// log.Printf("ServingCellID: %s", ueMetrics.ServingCellID)
// ueMetrics.MeasPeriodRF = 20
ueMetrics.UeID = ueID
log.Printf("UeID: %d", ueMetrics.UeID)
ueMetrics.ServingCellID = servingCellID
log.Printf("ServingCellID: %s", ueMetrics.ServingCellID)
ueMetrics.MeasPeriodRF = 20
// if flag {
// timestampPRB = timestamp
// }
if flag {
timestampPRB = timestamp
}
// ueMetrics.MeasTimestampPRB.TVsec = timestamp.TVsec
// ueMetrics.MeasTimestampPRB.TVnsec = timestamp.TVnsec
ueMetrics.MeasTimestampPRB.TVsec = timestamp.TVsec
ueMetrics.MeasTimestampPRB.TVnsec = timestamp.TVnsec
// if ueResourceReportItem.PRBUsageDL != -1 {
// ueMetrics.PRBUsageDL = ueResourceReportItem.PRBUsageDL
// log.Printf("PRBUsageDL: %d", ueMetrics.PRBUsageDL)
// }
if ueResourceReportItem.PRBUsageDL != -1 {
ueMetrics.PRBUsageDL = ueResourceReportItem.PRBUsageDL
log.Printf("PRBUsageDL: %d", ueMetrics.PRBUsageDL)
}
// if ueResourceReportItem.PRBUsageUL != -1 {
// ueMetrics.PRBUsageUL = ueResourceReportItem.PRBUsageUL
// log.Printf("PRBUsageUL: %d", ueMetrics.PRBUsageUL)
// }
if ueResourceReportItem.PRBUsageUL != -1 {
ueMetrics.PRBUsageUL = ueResourceReportItem.PRBUsageUL
log.Printf("PRBUsageUL: %d", ueMetrics.PRBUsageUL)
}
// newUeJsonStr, err := json.Marshal(&ueMetrics)
// if err != nil {
// xapp.Logger.Error("Failed to marshal UeMetrics with UE ID [%d]: %v", ueID, err)
// log.Printf("Failed to marshal UeMetrics with UE ID [%d]: %v", ueID, err)
// continue
// }
newUeJsonStr, err := json.Marshal(&ueMetrics)
if err != nil {
xapp.Logger.Error("Failed to marshal UeMetrics with UE ID [%d]: %v", ueID, err)
log.Printf("Failed to marshal UeMetrics with UE ID [%d]: %v", ueID, err)
continue
}
// err = c.sdl.Set("{TS-UE-metrics},"+strconv.FormatInt(ueID, 10), newUeJsonStr)
// if err != nil {
// xapp.Logger.Error("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
// log.Printf("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
// continue
// }
err = c.sdl.Set("{TS-UE-metrics},"+strconv.FormatInt(ueID, 10), newUeJsonStr)
if err != nil {
xapp.Logger.Error("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
log.Printf("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
continue
}
// //err = c.client.Set("{TS-UE-metrics}," + strconv.FormatInt(ueID, 10), newUeJsonStr, 0).Err()
// //if err != nil {
// // xapp.Logger.Error("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
// // log.Printf("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
// // continue
// //}
// }
// }
// } else if containerType == 2 {
// log.Printf("CU-CP Usage Report: ")
//err = c.client.Set("{TS-UE-metrics}," + strconv.FormatInt(ueID, 10), newUeJsonStr, 0).Err()
//if err != nil {
// xapp.Logger.Error("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
// log.Printf("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
// continue
//}
}
}
} else if containerType == 2 {
log.Printf("CU-CP Usage Report: ")
// oCUCPUE := pmContainer.RANContainer.Container.(*CUCPUsageReportType)
oCUCPUE := pmContainer.RANContainer.Container.(*CUCPUsageReportType)
// for j := 0; j < oCUCPUE.CellResourceReportItemCount; j++ {
// cellResourceReportItem := oCUCPUE.CellResourceReportItems[j]
for j := 0; j < oCUCPUE.CellResourceReportItemCount; j++ {
cellResourceReportItem := oCUCPUE.CellResourceReportItems[j]
// log.Printf("nRCGI.PlmnID: %x", cellResourceReportItem.NRCGI.PlmnID.Buf)
// log.Printf("nRCGI.NRCellID: %x, Unused: %d", cellResourceReportItem.NRCGI.NRCellID.Buf, cellResourceReportItem.NRCGI.NRCellID.BitsUnused)
log.Printf("nRCGI.PlmnID: %x", cellResourceReportItem.NRCGI.PlmnID.Buf)
log.Printf("nRCGI.NRCellID: %x, Unused: %d", cellResourceReportItem.NRCGI.NRCellID.Buf, cellResourceReportItem.NRCGI.NRCellID.BitsUnused)
// servingCellID, err := e2sm.ParseNRCGI(cellResourceReportItem.NRCGI)
// if err != nil {
// xapp.Logger.Error("Failed to parse NRCGI in CU-CP Usage Report: %v", err)
// log.Printf("Failed to parse NRCGI in CU-CP Usage Report: %v", err)
// continue
// }
servingCellID, err := e2sm.ParseNRCGI(cellResourceReportItem.NRCGI)
if err != nil {
xapp.Logger.Error("Failed to parse NRCGI in CU-CP Usage Report: %v", err)
log.Printf("Failed to parse NRCGI in CU-CP Usage Report: %v", err)
continue
}
// for k := 0; k < cellResourceReportItem.UeResourceReportItemCount; k++ {
// ueResourceReportItem := cellResourceReportItem.UeResourceReportItems[k]
for k := 0; k < cellResourceReportItem.UeResourceReportItemCount; k++ {
ueResourceReportItem := cellResourceReportItem.UeResourceReportItems[k]
// log.Printf("C-RNTI: %x", ueResourceReportItem.CRNTI.Buf)
log.Printf("C-RNTI: %x", ueResourceReportItem.CRNTI.Buf)
// ueID, err := e2sm.ParseInteger(ueResourceReportItem.CRNTI.Buf, ueResourceReportItem.CRNTI.Size)
// if err != nil {
// xapp.Logger.Error("Failed to parse C-RNTI in CU-CP Usage Report with Serving Cell ID [%s]: %v", err)
// log.Printf("Failed to parse C-RNTI in CU-CP Usage Report with Serving Cell ID [%s]: %v", err)
// continue
// }
ueID, err := e2sm.ParseInteger(ueResourceReportItem.CRNTI.Buf, ueResourceReportItem.CRNTI.Size)
if err != nil {
xapp.Logger.Error("Failed to parse C-RNTI in CU-CP Usage Report with Serving Cell ID [%s]: %v", err)
log.Printf("Failed to parse C-RNTI in CU-CP Usage Report with Serving Cell ID [%s]: %v", err)
continue
}
// var ueMetrics UeMetricsEntry
var ueMetrics UeMetricsEntry
// retStr, err := c.sdl.Get([]string{"{TS-UE-metrics}," + strconv.FormatInt(ueID, 10)})
// if err != nil {
// panic(err)
// xapp.Logger.Error("Failed to get ueMetrics from Redis!")
// log.Printf("Failed to get ueMetrics from Redis!")
// } else {
// if retStr["{TS-UE-metrics},"+strconv.FormatInt(ueID, 10)] != nil {
// ueJsonStr := retStr["{TS-UE-metrics},"+strconv.FormatInt(ueID, 10)].(string)
// json.Unmarshal([]byte(ueJsonStr), &ueMetrics)
// }
// }
retStr, err := c.sdl.Get([]string{"{TS-UE-metrics}," + strconv.FormatInt(ueID, 10)})
if err != nil {
panic(err)
xapp.Logger.Error("Failed to get ueMetrics from Redis!")
log.Printf("Failed to get ueMetrics from Redis!")
} else {
if retStr["{TS-UE-metrics},"+strconv.FormatInt(ueID, 10)] != nil {
ueJsonStr := retStr["{TS-UE-metrics},"+strconv.FormatInt(ueID, 10)].(string)
json.Unmarshal([]byte(ueJsonStr), &ueMetrics)
}
}
// //if isUeExist, _ := c.client.Exists("{TS-UE-metrics}," + strconv.FormatInt(ueID, 10)).Result(); isUeExist == 1 {
// // ueJsonStr, _ := c.client.Get("{TS-UE-metrics}," + strconv.FormatInt(ueID, 10)).Result()
// // json.Unmarshal([]byte(ueJsonStr), &ueMetrics)
// //}
//if isUeExist, _ := c.client.Exists("{TS-UE-metrics}," + strconv.FormatInt(ueID, 10)).Result(); isUeExist == 1 {
// ueJsonStr, _ := c.client.Get("{TS-UE-metrics}," + strconv.FormatInt(ueID, 10)).Result()
// json.Unmarshal([]byte(ueJsonStr), &ueMetrics)
//}
// ueMetrics.UeID = ueID
// log.Printf("UeID: %d", ueMetrics.UeID)
// ueMetrics.ServingCellID = servingCellID
// log.Printf("ServingCellID: %s", ueMetrics.ServingCellID)
ueMetrics.UeID = ueID
log.Printf("UeID: %d", ueMetrics.UeID)
ueMetrics.ServingCellID = servingCellID
log.Printf("ServingCellID: %s", ueMetrics.ServingCellID)
// ueMetrics.MeasTimeRF.TVsec = timestamp.TVsec
// ueMetrics.MeasTimeRF.TVnsec = timestamp.TVnsec
ueMetrics.MeasTimeRF.TVsec = timestamp.TVsec
ueMetrics.MeasTimeRF.TVnsec = timestamp.TVnsec
// ueMetrics.MeasPeriodPDCP = 20
// ueMetrics.MeasPeriodPRB = 20
ueMetrics.MeasPeriodPDCP = 20
ueMetrics.MeasPeriodPRB = 20
// if ueResourceReportItem.ServingCellRF != nil {
// err = json.Unmarshal(ueResourceReportItem.ServingCellRF.Buf, &ueMetrics.ServingCellRF)
// log.Printf("ueMetrics.ServingCellRF: %+v", ueMetrics.ServingCellRF)
// if err != nil {
// xapp.Logger.Error("Failed to Unmarshal ServingCellRF in CU-CP Usage Report with UE ID [%d]: %v", ueID, err)
// log.Printf("Failed to Unmarshal ServingCellRF in CU-CP Usage Report with UE ID [%d]: %v", ueID, err)
// log.Printf("ServingCellRF raw data: %x", ueResourceReportItem.ServingCellRF.Buf)
// continue
// }
// }
if ueResourceReportItem.ServingCellRF != nil {
err = json.Unmarshal(ueResourceReportItem.ServingCellRF.Buf, &ueMetrics.ServingCellRF)
log.Printf("ueMetrics.ServingCellRF: %+v", ueMetrics.ServingCellRF)
if err != nil {
xapp.Logger.Error("Failed to Unmarshal ServingCellRF in CU-CP Usage Report with UE ID [%d]: %v", ueID, err)
log.Printf("Failed to Unmarshal ServingCellRF in CU-CP Usage Report with UE ID [%d]: %v", ueID, err)
log.Printf("ServingCellRF raw data: %x", ueResourceReportItem.ServingCellRF.Buf)
continue
}
}
// if ueResourceReportItem.NeighborCellRF != nil {
// err = json.Unmarshal(ueResourceReportItem.NeighborCellRF.Buf, &ueMetrics.NeighborCellsRF)
// log.Printf("ueMetrics.NeighborCellsRF: %+v", ueMetrics.NeighborCellsRF)
// if err != nil {
// xapp.Logger.Error("Failed to Unmarshal NeighborCellRF in CU-CP Usage Report with UE ID [%d]: %v", ueID, err)
// log.Printf("Failed to Unmarshal NeighborCellRF in CU-CP Usage Report with UE ID [%d]: %v", ueID, err)
// log.Printf("NeighborCellRF raw data: %x", ueResourceReportItem.NeighborCellRF.Buf)
// continue
// }
// }
if ueResourceReportItem.NeighborCellRF != nil {
err = json.Unmarshal(ueResourceReportItem.NeighborCellRF.Buf, &ueMetrics.NeighborCellsRF)
log.Printf("ueMetrics.NeighborCellsRF: %+v", ueMetrics.NeighborCellsRF)
if err != nil {
xapp.Logger.Error("Failed to Unmarshal NeighborCellRF in CU-CP Usage Report with UE ID [%d]: %v", ueID, err)
log.Printf("Failed to Unmarshal NeighborCellRF in CU-CP Usage Report with UE ID [%d]: %v", ueID, err)
log.Printf("NeighborCellRF raw data: %x", ueResourceReportItem.NeighborCellRF.Buf)
continue
}
}
// newUeJsonStr, err := json.Marshal(&ueMetrics)
// if err != nil {
// xapp.Logger.Error("Failed to marshal UeMetrics with UE ID [%d]: %v", ueID, err)
// log.Printf("Failed to marshal UeMetrics with UE ID [%d]: %v", ueID, err)
// continue
// }
newUeJsonStr, err := json.Marshal(&ueMetrics)
if err != nil {
xapp.Logger.Error("Failed to marshal UeMetrics with UE ID [%d]: %v", ueID, err)
log.Printf("Failed to marshal UeMetrics with UE ID [%d]: %v", ueID, err)
continue
}
// err = c.sdl.Set("{TS-UE-metrics},"+strconv.FormatInt(ueID, 10), newUeJsonStr)
// if err != nil {
// xapp.Logger.Error("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
// log.Printf("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
// continue
// }
err = c.sdl.Set("{TS-UE-metrics},"+strconv.FormatInt(ueID, 10), newUeJsonStr)
if err != nil {
xapp.Logger.Error("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
log.Printf("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
continue
}
// //err = c.client.Set("{TS-UE-metrics}," + strconv.FormatInt(ueID, 10), newUeJsonStr, 0).Err()
// //if err != nil {
// // xapp.Logger.Error("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
// // log.Printf("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
// // continue
// //}
// }
// }
// } else if containerType == 3 {
// log.Printf("CU-UP Usage Report: ")
//err = c.client.Set("{TS-UE-metrics}," + strconv.FormatInt(ueID, 10), newUeJsonStr, 0).Err()
//if err != nil {
// xapp.Logger.Error("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
// log.Printf("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
// continue
//}
}
}
} else if containerType == 3 {
log.Printf("CU-UP Usage Report: ")
// oCUUPUE := pmContainer.RANContainer.Container.(*CUUPUsageReportType)
oCUUPUE := pmContainer.RANContainer.Container.(*CUUPUsageReportType)
// for j := 0; j < oCUUPUE.CellResourceReportItemCount; j++ {
// cellResourceReportItem := oCUUPUE.CellResourceReportItems[j]
for j := 0; j < oCUUPUE.CellResourceReportItemCount; j++ {
cellResourceReportItem := oCUUPUE.CellResourceReportItems[j]
// log.Printf("nRCGI.PlmnID: %x", cellResourceReportItem.NRCGI.PlmnID.Buf)
// log.Printf("nRCGI.NRCellID: %x, Unused: %d", cellResourceReportItem.NRCGI.NRCellID.Buf, cellResourceReportItem.NRCGI.NRCellID.BitsUnused)
log.Printf("nRCGI.PlmnID: %x", cellResourceReportItem.NRCGI.PlmnID.Buf)
log.Printf("nRCGI.NRCellID: %x, Unused: %d", cellResourceReportItem.NRCGI.NRCellID.Buf, cellResourceReportItem.NRCGI.NRCellID.BitsUnused)
// servingCellID, err := e2sm.ParseNRCGI(cellResourceReportItem.NRCGI)
// if err != nil {
// xapp.Logger.Error("Failed to parse NRCGI in CU-UP Usage Report: %v", err)
// log.Printf("Failed to parse NRCGI in CU-UP Usage Report: %v", err)
// continue
// }
servingCellID, err := e2sm.ParseNRCGI(cellResourceReportItem.NRCGI)
if err != nil {
xapp.Logger.Error("Failed to parse NRCGI in CU-UP Usage Report: %v", err)
log.Printf("Failed to parse NRCGI in CU-UP Usage Report: %v", err)
continue
}
// for k := 0; k < cellResourceReportItem.UeResourceReportItemCount; k++ {
// ueResourceReportItem := cellResourceReportItem.UeResourceReportItems[k]
for k := 0; k < cellResourceReportItem.UeResourceReportItemCount; k++ {
ueResourceReportItem := cellResourceReportItem.UeResourceReportItems[k]
// log.Printf("C-RNTI: %x", ueResourceReportItem.CRNTI.Buf)
log.Printf("C-RNTI: %x", ueResourceReportItem.CRNTI.Buf)
// ueID, err := e2sm.ParseInteger(ueResourceReportItem.CRNTI.Buf, ueResourceReportItem.CRNTI.Size)
// if err != nil {
// xapp.Logger.Error("Failed to parse C-RNTI in CU-UP Usage Report Serving Cell ID [%s]: %v", servingCellID, err)
// log.Printf("Failed to parse C-RNTI in CU-UP Usage Report Serving Cell ID [%s]: %v", servingCellID, err)
// continue
// }
ueID, err := e2sm.ParseInteger(ueResourceReportItem.CRNTI.Buf, ueResourceReportItem.CRNTI.Size)
if err != nil {
xapp.Logger.Error("Failed to parse C-RNTI in CU-UP Usage Report Serving Cell ID [%s]: %v", servingCellID, err)
log.Printf("Failed to parse C-RNTI in CU-UP Usage Report Serving Cell ID [%s]: %v", servingCellID, err)
continue
}
// var ueMetrics UeMetricsEntry
var ueMetrics UeMetricsEntry
// retStr, err := c.sdl.Get([]string{"{TS-UE-metrics}," + strconv.FormatInt(ueID, 10)})
// if err != nil {
// panic(err)
// xapp.Logger.Error("Failed to get ueMetrics from Redis!")
// log.Printf("Failed to get ueMetrics from Redis!")
// } else {
// if retStr["{TS-UE-metrics},"+strconv.FormatInt(ueID, 10)] != nil {
// ueJsonStr := retStr["{TS-UE-metrics},"+strconv.FormatInt(ueID, 10)].(string)
// json.Unmarshal([]byte(ueJsonStr), &ueMetrics)
// }
// }
retStr, err := c.sdl.Get([]string{"{TS-UE-metrics}," + strconv.FormatInt(ueID, 10)})
if err != nil {
panic(err)
xapp.Logger.Error("Failed to get ueMetrics from Redis!")
log.Printf("Failed to get ueMetrics from Redis!")
} else {
if retStr["{TS-UE-metrics},"+strconv.FormatInt(ueID, 10)] != nil {
ueJsonStr := retStr["{TS-UE-metrics},"+strconv.FormatInt(ueID, 10)].(string)
json.Unmarshal([]byte(ueJsonStr), &ueMetrics)
}
}
// //if isUeExist, _ := c.client.Exists("{TS-UE-metrics}," + strconv.FormatInt(ueID, 10)).Result(); isUeExist == 1 {
// // ueJsonStr, _ := c.client.Get("{TS-UE-metrics}," + strconv.FormatInt(ueID, 10)).Result()
// // json.Unmarshal([]byte(ueJsonStr), &ueMetrics)
// //}
//if isUeExist, _ := c.client.Exists("{TS-UE-metrics}," + strconv.FormatInt(ueID, 10)).Result(); isUeExist == 1 {
// ueJsonStr, _ := c.client.Get("{TS-UE-metrics}," + strconv.FormatInt(ueID, 10)).Result()
// json.Unmarshal([]byte(ueJsonStr), &ueMetrics)
//}
// ueMetrics.UeID = ueID
// log.Printf("UeID: %d", ueMetrics.UeID)
// ueMetrics.ServingCellID = servingCellID
// log.Printf("ServingCellID: %s", ueMetrics.ServingCellID)
ueMetrics.UeID = ueID
log.Printf("UeID: %d", ueMetrics.UeID)
ueMetrics.ServingCellID = servingCellID
log.Printf("ServingCellID: %s", ueMetrics.ServingCellID)
// if flag {
// timestampPDCPBytes = timestamp
// }
if flag {
timestampPDCPBytes = timestamp
}
// ueMetrics.MeasTimestampPDCPBytes.TVsec = timestamp.TVsec
// ueMetrics.MeasTimestampPDCPBytes.TVnsec = timestamp.TVnsec
ueMetrics.MeasTimestampPDCPBytes.TVsec = timestamp.TVsec
ueMetrics.MeasTimestampPDCPBytes.TVnsec = timestamp.TVnsec
// if ueResourceReportItem.PDCPBytesDL != nil {
// ueMetrics.PDCPBytesDL, err = e2sm.ParseInteger(ueResourceReportItem.PDCPBytesDL.Buf, ueResourceReportItem.PDCPBytesDL.Size)
// if err != nil {
// xapp.Logger.Error("Failed to parse PDCPBytesDL in CU-UP Usage Report with UE ID [%d]: %v", ueID, err)
// log.Printf("Failed to parse PDCPBytesDL in CU-UP Usage Report with UE ID [%d]: %v", ueID, err)
// continue
// }
// }
if ueResourceReportItem.PDCPBytesDL != nil {
ueMetrics.PDCPBytesDL, err = e2sm.ParseInteger(ueResourceReportItem.PDCPBytesDL.Buf, ueResourceReportItem.PDCPBytesDL.Size)
if err != nil {
xapp.Logger.Error("Failed to parse PDCPBytesDL in CU-UP Usage Report with UE ID [%d]: %v", ueID, err)
log.Printf("Failed to parse PDCPBytesDL in CU-UP Usage Report with UE ID [%d]: %v", ueID, err)
continue
}
}
// if ueResourceReportItem.PDCPBytesUL != nil {
// ueMetrics.PDCPBytesUL, err = e2sm.ParseInteger(ueResourceReportItem.PDCPBytesUL.Buf, ueResourceReportItem.PDCPBytesUL.Size)
// if err != nil {
// xapp.Logger.Error("Failed to parse PDCPBytesUL in CU-UP Usage Report with UE ID [%d]: %v", ueID, err)
// log.Printf("Failed to parse PDCPBytesUL in CU-UP Usage Report with UE ID [%d]: %v", ueID, err)
// continue
// }
// }
if ueResourceReportItem.PDCPBytesUL != nil {
ueMetrics.PDCPBytesUL, err = e2sm.ParseInteger(ueResourceReportItem.PDCPBytesUL.Buf, ueResourceReportItem.PDCPBytesUL.Size)
if err != nil {
xapp.Logger.Error("Failed to parse PDCPBytesUL in CU-UP Usage Report with UE ID [%d]: %v", ueID, err)
log.Printf("Failed to parse PDCPBytesUL in CU-UP Usage Report with UE ID [%d]: %v", ueID, err)
continue
}
}
// newUeJsonStr, err := json.Marshal(&ueMetrics)
// if err != nil {
// xapp.Logger.Error("Failed to marshal UeMetrics with UE ID [%d]: %v", ueID, err)
// log.Printf("Failed to marshal UeMetrics with UE ID [%d]: %v", ueID, err)
// continue
// }
newUeJsonStr, err := json.Marshal(&ueMetrics)
if err != nil {
xapp.Logger.Error("Failed to marshal UeMetrics with UE ID [%d]: %v", ueID, err)
log.Printf("Failed to marshal UeMetrics with UE ID [%d]: %v", ueID, err)
continue
}
// err = c.sdl.Set("{TS-UE-metrics},"+strconv.FormatInt(ueID, 10), newUeJsonStr)
// if err != nil {
// xapp.Logger.Error("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
// log.Printf("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
// continue
// }
err = c.sdl.Set("{TS-UE-metrics},"+strconv.FormatInt(ueID, 10), newUeJsonStr)
if err != nil {
xapp.Logger.Error("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
log.Printf("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
continue
}
// //err = c.client.Set("{TS-UE-metrics}," + strconv.FormatInt(ueID, 10), newUeJsonStr, 0).Err()
// //if err != nil {
// // xapp.Logger.Error("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
// // log.Printf("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
// // continue
// //}
// }
// }
// } else {
// xapp.Logger.Error("Unknown PF Container Type: %d", containerType)
// log.Printf("Unknown PF Container Type: %d", containerType)
// continue
// }
//err = c.client.Set("{TS-UE-metrics}," + strconv.FormatInt(ueID, 10), newUeJsonStr, 0).Err()
//if err != nil {
// xapp.Logger.Error("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
// log.Printf("Failed to set UeMetrics into redis with UE ID [%d]: %v", ueID, err)
// continue
//}
}
}
} else {
xapp.Logger.Error("Unknown PF Container Type: %d", containerType)
log.Printf("Unknown PF Container Type: %d", containerType)
continue
}
}
if flag {

View File

@ -21,9 +21,9 @@ package control
/*
#include <stdlib.h>
#include <libe2proto/wrapper.h>
#cgo LDFLAGS: -le2proto -lm
#cgo CFLAGS: -I/usr/local/include/libe2proto
#include <e2ap/wrapper.h>
#cgo LDFLAGS: -le2apwrapper
#cgo CFLAGS: -I/usr/local/include/e2ap
*/
import "C"
@ -41,7 +41,7 @@ func (c *E2ap) GetSubscriptionRequestSequenceNumber(payload []byte) (subId uint1
cptr := unsafe.Pointer(&payload[0])
cret := C.e2ap_get_ric_subscription_request_sequence_number(cptr, C.size_t(len(payload)))
if cret < 0 {
return 0, errors.New("e2ap wrapper is unable to get Subscription Request Sequence Number due to wrong or invalid payload")
return 0, errors.New("e2ap wrapper is unable to get Subscirption Request Sequence Number due to wrong or invalid payload")
}
subId = uint16(cret)
return

View File

@ -20,9 +20,9 @@
package control
/*
#include <libe2proto/wrapper.h>
#cgo LDFLAGS: -le2proto -lm
#cgo CFLAGS: -I/usr/local/include/libe2proto
#include <e2sm/wrapper.h>
#cgo LDFLAGS: -le2smwrapper
#cgo CFLAGS: -I/usr/local/include/e2sm
*/
import "C"
@ -72,9 +72,8 @@ func (c *E2sm) GetIndicationHeader(buffer []byte) (indHdr *IndicationHeader, err
indHdrFormat1 := &IndicationHeaderFormat1{}
indHdrFormat1_C := *(**C.E2SM_KPM_IndicationHeader_Format1_t)(unsafe.Pointer(&decodedHdr.choice[0]))
// Decode and analysis of GlobalE2node_ID
if uintptr(unsafe.Pointer(&indHdrFormat1_C.id_GlobalE2node_ID)) != uintptr(0) {
globalKPMnodeID_C := (C.GlobalE2node_ID_t)(indHdrFormat1_C.id_GlobalE2node_ID)
if indHdrFormat1_C.id_GlobalKPMnode_ID != nil {
globalKPMnodeID_C := (*C.GlobalKPMnode_ID_t)(indHdrFormat1_C.id_GlobalKPMnode_ID)
indHdrFormat1.GlobalKPMnodeIDType = int32(globalKPMnodeID_C.present)
if indHdrFormat1.GlobalKPMnodeIDType == 1 {
@ -227,126 +226,118 @@ func (c *E2sm) GetIndicationHeader(buffer []byte) (indHdr *IndicationHeader, err
indHdrFormat1.GlobalKPMnodeIDType = 0
}
// Decode and analysis of CollectionStartTime
if uintptr(unsafe.Pointer(&indHdrFormat1_C.collectionStartTime)) != uintptr(0) {
indHdrFormat1.CollectionStartTime = &OctetString{}
if indHdrFormat1_C.nRCGI != nil {
indHdrFormat1.NRCGI = &NRCGIType{}
indHdrFormat1.CollectionStartTime.Buf = C.GoBytes(unsafe.Pointer(indHdrFormat1_C.collectionStartTime.buf), C.int(indHdrFormat1_C.collectionStartTime.size))
indHdrFormat1.CollectionStartTime.Size = int(indHdrFormat1_C.collectionStartTime.size)
plmnID := indHdrFormat1_C.nRCGI.pLMN_Identity
indHdrFormat1.NRCGI.PlmnID.Buf = C.GoBytes(unsafe.Pointer(plmnID.buf), C.int(plmnID.size))
indHdrFormat1.NRCGI.PlmnID.Size = int(plmnID.size)
nRCellID := indHdrFormat1_C.nRCGI.nRCellIdentity
indHdrFormat1.NRCGI.NRCellID.Buf = C.GoBytes(unsafe.Pointer(nRCellID.buf), C.int(nRCellID.size))
indHdrFormat1.NRCGI.NRCellID.Size = int(nRCellID.size)
indHdrFormat1.NRCGI.NRCellID.BitsUnused = int(nRCellID.bits_unused)
}
// if indHdrFormat1_C.nRCGI != nil {
// indHdrFormat1.NRCGI = &NRCGIType{}
if indHdrFormat1_C.pLMN_Identity != nil {
indHdrFormat1.PlmnID = &OctetString{}
// plmnID := indHdrFormat1_C.nRCGI.pLMN_Identity
// indHdrFormat1.NRCGI.PlmnID.Buf = C.GoBytes(unsafe.Pointer(plmnID.buf), C.int(plmnID.size))
// indHdrFormat1.NRCGI.PlmnID.Size = int(plmnID.size)
indHdrFormat1.PlmnID.Buf = C.GoBytes(unsafe.Pointer(indHdrFormat1_C.pLMN_Identity.buf), C.int(indHdrFormat1_C.pLMN_Identity.size))
indHdrFormat1.PlmnID.Size = int(indHdrFormat1_C.pLMN_Identity.size)
}
// nRCellID := indHdrFormat1_C.nRCGI.nRCellIdentity
// indHdrFormat1.NRCGI.NRCellID.Buf = C.GoBytes(unsafe.Pointer(nRCellID.buf), C.int(nRCellID.size))
// indHdrFormat1.NRCGI.NRCellID.Size = int(nRCellID.size)
// indHdrFormat1.NRCGI.NRCellID.BitsUnused = int(nRCellID.bits_unused)
// }
if indHdrFormat1_C.sliceID != nil {
indHdrFormat1.SliceID = &SliceIDType{}
// if indHdrFormat1_C.pLMN_Identity != nil {
// indHdrFormat1.PlmnID = &OctetString{}
sST := indHdrFormat1_C.sliceID.sST
indHdrFormat1.SliceID.SST.Buf = C.GoBytes(unsafe.Pointer(sST.buf), C.int(sST.size))
indHdrFormat1.SliceID.SST.Size = int(sST.size)
// indHdrFormat1.PlmnID.Buf = C.GoBytes(unsafe.Pointer(indHdrFormat1_C.pLMN_Identity.buf), C.int(indHdrFormat1_C.pLMN_Identity.size))
// indHdrFormat1.PlmnID.Size = int(indHdrFormat1_C.pLMN_Identity.size)
// }
if indHdrFormat1_C.sliceID.sD != nil {
indHdrFormat1.SliceID.SD = &OctetString{}
// if indHdrFormat1_C.sliceID != nil {
// indHdrFormat1.SliceID = &SliceIDType{}
sD := indHdrFormat1_C.sliceID.sD
indHdrFormat1.SliceID.SD.Buf = C.GoBytes(unsafe.Pointer(sD.buf), C.int(sD.size))
indHdrFormat1.SliceID.SD.Size = int(sD.size)
}
}
// sST := indHdrFormat1_C.sliceID.sST
// indHdrFormat1.SliceID.SST.Buf = C.GoBytes(unsafe.Pointer(sST.buf), C.int(sST.size))
// indHdrFormat1.SliceID.SST.Size = int(sST.size)
if indHdrFormat1_C.fiveQI != nil {
indHdrFormat1.FiveQI = int64(*indHdrFormat1_C.fiveQI)
} else {
indHdrFormat1.FiveQI = -1
}
// if indHdrFormat1_C.sliceID.sD != nil {
// indHdrFormat1.SliceID.SD = &OctetString{}
if indHdrFormat1_C.qci != nil {
indHdrFormat1.Qci = int64(*indHdrFormat1_C.qci)
} else {
indHdrFormat1.Qci = -1
}
// sD := indHdrFormat1_C.sliceID.sD
// indHdrFormat1.SliceID.SD.Buf = C.GoBytes(unsafe.Pointer(sD.buf), C.int(sD.size))
// indHdrFormat1.SliceID.SD.Size = int(sD.size)
// }
// }
if indHdrFormat1_C.message_Type != nil {
indHdrFormat1.UeMessageType = int32(*indHdrFormat1_C.message_Type)
} else {
indHdrFormat1.UeMessageType = -1
}
// if indHdrFormat1_C.fiveQI != nil {
// indHdrFormat1.FiveQI = int64(*indHdrFormat1_C.fiveQI)
// } else {
// indHdrFormat1.FiveQI = -1
// }
if indHdrFormat1_C.gNB_DU_ID != nil {
indHdrFormat1.GnbDUID = &Integer{}
// if indHdrFormat1_C.qci != nil {
// indHdrFormat1.Qci = int64(*indHdrFormat1_C.qci)
// } else {
// indHdrFormat1.Qci = -1
// }
indHdrFormat1.GnbDUID.Buf = C.GoBytes(unsafe.Pointer(indHdrFormat1_C.gNB_DU_ID.buf), C.int(indHdrFormat1_C.gNB_DU_ID.size))
indHdrFormat1.GnbDUID.Size = int(indHdrFormat1_C.gNB_DU_ID.size)
}
// if indHdrFormat1_C.message_Type != nil {
// indHdrFormat1.UeMessageType = int32(*indHdrFormat1_C.message_Type)
// } else {
// indHdrFormat1.UeMessageType = -1
// }
if indHdrFormat1_C.gNB_Name != nil {
indHdrFormat1.GnbNameType = int32(indHdrFormat1_C.gNB_Name.present)
if indHdrFormat1.GnbNameType == 1 {
gNBName := &GNB_DU_Name{}
gNBName_C := (*C.GNB_DU_Name_t)(unsafe.Pointer(&indHdrFormat1_C.gNB_Name.choice[0]))
// if indHdrFormat1_C.gNB_DU_ID != nil {
// indHdrFormat1.GnbDUID = &Integer{}
gNBName.Buf = C.GoBytes(unsafe.Pointer(gNBName_C.buf), C.int(gNBName_C.size))
gNBName.Size = int(gNBName_C.size)
// indHdrFormat1.GnbDUID.Buf = C.GoBytes(unsafe.Pointer(indHdrFormat1_C.gNB_DU_ID.buf), C.int(indHdrFormat1_C.gNB_DU_ID.size))
// indHdrFormat1.GnbDUID.Size = int(indHdrFormat1_C.gNB_DU_ID.size)
// }
indHdrFormat1.GnbName = gNBName
} else if indHdrFormat1.GnbNameType == 2 {
gNBName := &GNB_CU_CP_Name{}
gNBName_C := (*C.GNB_CU_CP_Name_t)(unsafe.Pointer(&indHdrFormat1_C.gNB_Name.choice[0]))
// if indHdrFormat1_C.gNB_Name != nil {
// indHdrFormat1.GnbNameType = int32(indHdrFormat1_C.gNB_Name.present)
// if indHdrFormat1.GnbNameType == 1 {
// gNBName := &GNB_DU_Name{}
// gNBName_C := (*C.GNB_DU_Name_t)(unsafe.Pointer(&indHdrFormat1_C.gNB_Name.choice[0]))
gNBName.Buf = C.GoBytes(unsafe.Pointer(gNBName_C.buf), C.int(gNBName_C.size))
gNBName.Size = int(gNBName_C.size)
// gNBName.Buf = C.GoBytes(unsafe.Pointer(gNBName_C.buf), C.int(gNBName_C.size))
// gNBName.Size = int(gNBName_C.size)
indHdrFormat1.GnbName = gNBName
} else if indHdrFormat1.GnbNameType == 3 {
gNBName := &GNB_CU_UP_Name{}
gNBName_C := (*C.GNB_CU_UP_Name_t)(unsafe.Pointer(&indHdrFormat1_C.gNB_Name.choice[0]))
// indHdrFormat1.GnbName = gNBName
// } else if indHdrFormat1.GnbNameType == 2 {
// gNBName := &GNB_CU_CP_Name{}
// gNBName_C := (*C.GNB_CU_CP_Name_t)(unsafe.Pointer(&indHdrFormat1_C.gNB_Name.choice[0]))
gNBName.Buf = C.GoBytes(unsafe.Pointer(gNBName_C.buf), C.int(gNBName_C.size))
gNBName.Size = int(gNBName_C.size)
// gNBName.Buf = C.GoBytes(unsafe.Pointer(gNBName_C.buf), C.int(gNBName_C.size))
// gNBName.Size = int(gNBName_C.size)
indHdrFormat1.GnbName = gNBName
}
} else {
indHdrFormat1.GnbNameType = -1
}
// indHdrFormat1.GnbName = gNBName
// } else if indHdrFormat1.GnbNameType == 3 {
// gNBName := &GNB_CU_UP_Name{}
// gNBName_C := (*C.GNB_CU_UP_Name_t)(unsafe.Pointer(&indHdrFormat1_C.gNB_Name.choice[0]))
if indHdrFormat1_C.global_GNB_ID != nil {
indHdrFormat1.GlobalgNBID = &GlobalgNBIDType{}
// gNBName.Buf = C.GoBytes(unsafe.Pointer(gNBName_C.buf), C.int(gNBName_C.size))
// gNBName.Size = int(gNBName_C.size)
plmnID_C := indHdrFormat1_C.global_GNB_ID.plmn_id
indHdrFormat1.GlobalgNBID.PlmnID.Buf = C.GoBytes(unsafe.Pointer(plmnID_C.buf), C.int(plmnID_C.size))
indHdrFormat1.GlobalgNBID.PlmnID.Size = int(plmnID_C.size)
// indHdrFormat1.GnbName = gNBName
// }
// } else {
// indHdrFormat1.GnbNameType = -1
// }
globalgNBID_gNBID_C := indHdrFormat1_C.global_GNB_ID.gnb_id
indHdrFormat1.GlobalgNBID.GnbIDType = int(globalgNBID_gNBID_C.present)
if indHdrFormat1.GlobalgNBID.GnbIDType == 1 {
gNBID := &GNBID{}
gNBID_C := (*C.BIT_STRING_t)(unsafe.Pointer(&globalgNBID_gNBID_C.choice[0]))
// if indHdrFormat1_C.global_GNB_ID != nil {
// indHdrFormat1.GlobalgNBID = &GlobalgNBIDType{}
gNBID.Buf = C.GoBytes(unsafe.Pointer(gNBID_C.buf), C.int(gNBID_C.size))
gNBID.Size = int(gNBID_C.size)
gNBID.BitsUnused = int(gNBID_C.bits_unused)
// plmnID_C := indHdrFormat1_C.global_GNB_ID.plmn_id
// indHdrFormat1.GlobalgNBID.PlmnID.Buf = C.GoBytes(unsafe.Pointer(plmnID_C.buf), C.int(plmnID_C.size))
// indHdrFormat1.GlobalgNBID.PlmnID.Size = int(plmnID_C.size)
// globalgNBID_gNBID_C := indHdrFormat1_C.global_GNB_ID.gnb_id
// indHdrFormat1.GlobalgNBID.GnbIDType = int(globalgNBID_gNBID_C.present)
// if indHdrFormat1.GlobalgNBID.GnbIDType == 1 {
// gNBID := &GNBID{}
// gNBID_C := (*C.BIT_STRING_t)(unsafe.Pointer(&globalgNBID_gNBID_C.choice[0]))
// gNBID.Buf = C.GoBytes(unsafe.Pointer(gNBID_C.buf), C.int(gNBID_C.size))
// gNBID.Size = int(gNBID_C.size)
// gNBID.BitsUnused = int(gNBID_C.bits_unused)
// indHdrFormat1.GlobalgNBID.GnbID = gNBID
// }
// }
indHdrFormat1.GlobalgNBID.GnbID = gNBID
}
}
indHdr.IndHdr = indHdrFormat1
} else {
@ -359,19 +350,19 @@ func (c *E2sm) GetIndicationHeader(buffer []byte) (indHdr *IndicationHeader, err
func (c *E2sm) GetIndicationMessage(buffer []byte) (indMsg *IndicationMessage, err error) {
cptr := unsafe.Pointer(&buffer[0])
indMsg = &IndicationMessage{}
decodedIndicationMsg := C.e2sm_decode_ric_indication_message(cptr, C.size_t(len(buffer)))
if decodedIndicationMsg == nil {
decodedMsg := C.e2sm_decode_ric_indication_message(cptr, C.size_t(len(buffer)))
if decodedMsg == nil {
return indMsg, errors.New("e2sm wrapper is unable to get IndicationMessage due to wrong or invalid input")
}
defer C.e2sm_free_ric_indication_message(decodedIndicationMsg)
defer C.e2sm_free_ric_indication_message(decodedMsg)
// indMsg.StyleType = int64(decodedIndicationMsg.ric_Style_Type)
indMsg.StyleType = int64(decodedMsg.ric_Style_Type)
indMsg.IndMsgType = int32(decodedIndicationMsg.present)
indMsg.IndMsgType = int32(decodedMsg.indicationMessage.present)
if indMsg.IndMsgType == 1 {
indMsgFormat1 := &IndicationMessageFormat1{}
indMsgFormat1_C := *(**C.E2SM_KPM_IndicationMessage_Format1_t)(unsafe.Pointer(&decodedIndicationMsg.choice[0]))
indMsgFormat1_C := *(**C.E2SM_KPM_IndicationMessage_Format1_t)(unsafe.Pointer(&decodedMsg.indicationMessage.choice[0]))
indMsgFormat1.PMContainerCount = int(indMsgFormat1_C.pm_Containers.list.count)
for i := 0; i < indMsgFormat1.PMContainerCount; i++ {
@ -470,11 +461,11 @@ func (c *E2sm) GetIndicationMessage(buffer []byte) (indMsg *IndicationMessage, e
duPMEPC := &DUPMEPCContainerType{}
duPMEPC_C := (*C.EPC_DU_PM_Container_t)(servedPlmnPerCell_C.du_PM_EPC)
duPMEPC.PerQCIReportCount = int(duPMEPC_C.perQCIReportList_du.list.count)
duPMEPC.PerQCIReportCount = int(duPMEPC_C.perQCIReportList.list.count)
for l := 0; l < duPMEPC.PerQCIReportCount; l++ {
perQCIReport := &duPMEPC.PerQCIReports[l]
var sizeof_PerQCIReportListItem_t *C.PerQCIReportListItem_t
perQCIReport_C := *(**C.PerQCIReportListItem_t)(unsafe.Pointer((uintptr)(unsafe.Pointer(duPMEPC_C.perQCIReportList_du.list.array)) + (uintptr)(l)*unsafe.Sizeof(sizeof_PerQCIReportListItem_t)))
perQCIReport_C := *(**C.PerQCIReportListItem_t)(unsafe.Pointer((uintptr)(unsafe.Pointer(duPMEPC_C.perQCIReportList.list.array)) + (uintptr)(l)*unsafe.Sizeof(sizeof_PerQCIReportListItem_t)))
perQCIReport.QCI = int64(perQCIReport_C.qci)
@ -501,11 +492,11 @@ func (c *E2sm) GetIndicationMessage(buffer []byte) (indMsg *IndicationMessage, e
oCU_CP_PF := &OCUCPPFContainerType{}
oCU_CP_PF_C := *(**C.OCUCP_PF_Container_t)(unsafe.Pointer(&pmContainer_C.performanceContainer.choice[0]))
// if oCU_CP_PF_C.gNB_CU_CP_Name != nil {
// oCU_CP_PF.GNBCUCPName = &PrintableString{}
// oCU_CP_PF.GNBCUCPName.Buf = C.GoBytes(unsafe.Pointer(oCU_CP_PF_C.gNB_CU_CP_Name.buf), C.int(oCU_CP_PF_C.gNB_CU_CP_Name.size))
// oCU_CP_PF.GNBCUCPName.Size = int(oCU_CP_PF_C.gNB_CU_CP_Name.size)
// }
if oCU_CP_PF_C.gNB_CU_CP_Name != nil {
oCU_CP_PF.GNBCUCPName = &PrintableString{}
oCU_CP_PF.GNBCUCPName.Buf = C.GoBytes(unsafe.Pointer(oCU_CP_PF_C.gNB_CU_CP_Name.buf), C.int(oCU_CP_PF_C.gNB_CU_CP_Name.size))
oCU_CP_PF.GNBCUCPName.Size = int(oCU_CP_PF_C.gNB_CU_CP_Name.size)
}
if oCU_CP_PF_C.cu_CP_Resource_Status.numberOfActive_UEs != nil {
oCU_CP_PF.CUCPResourceStatus.NumberOfActiveUEs = int64(*oCU_CP_PF_C.cu_CP_Resource_Status.numberOfActive_UEs)
@ -516,11 +507,11 @@ func (c *E2sm) GetIndicationMessage(buffer []byte) (indMsg *IndicationMessage, e
oCU_UP_PF := &OCUUPPFContainerType{}
oCU_UP_PF_C := *(**C.OCUUP_PF_Container_t)(unsafe.Pointer(&pmContainer_C.performanceContainer.choice[0]))
// if oCU_UP_PF_C.gNB_CU_UP_Name != nil {
// oCU_UP_PF.GNBCUUPName = &PrintableString{}
// oCU_UP_PF.GNBCUUPName.Buf = C.GoBytes(unsafe.Pointer(oCU_UP_PF_C.gNB_CU_UP_Name.buf), C.int(oCU_UP_PF_C.gNB_CU_UP_Name.size))
// oCU_UP_PF.GNBCUUPName.Size = int(oCU_UP_PF_C.gNB_CU_UP_Name.size)
// }
if oCU_UP_PF_C.gNB_CU_UP_Name != nil {
oCU_UP_PF.GNBCUUPName = &PrintableString{}
oCU_UP_PF.GNBCUUPName.Buf = C.GoBytes(unsafe.Pointer(oCU_UP_PF_C.gNB_CU_UP_Name.buf), C.int(oCU_UP_PF_C.gNB_CU_UP_Name.size))
oCU_UP_PF.GNBCUUPName.Size = int(oCU_UP_PF_C.gNB_CU_UP_Name.size)
}
oCU_UP_PF.CUUPPFContainerItemCount = int(oCU_UP_PF_C.pf_ContainerList.list.count)
for j := 0; j < oCU_UP_PF.CUUPPFContainerItemCount; j++ {
@ -587,13 +578,13 @@ func (c *E2sm) GetIndicationMessage(buffer []byte) (indMsg *IndicationMessage, e
cuUPPMEPC := &CUUPPMEPCType{}
cuUPPMEPC_C := (*C.EPC_CUUP_PM_Format_t)(cuUPPlmn_C.cu_UP_PM_EPC)
cuUPPMEPC.CUUPPMEPCPerQCIReportCount = int(cuUPPMEPC_C.perQCIReportList_cuup.list.count)
cuUPPMEPC.CUUPPMEPCPerQCIReportCount = int(cuUPPMEPC_C.perQCIReportList.list.count)
for l := 0; l < cuUPPMEPC.CUUPPMEPCPerQCIReportCount; l++ {
perQCIReport := &cuUPPMEPC.CUUPPMEPCPerQCIReports[l]
var sizeof_PerQCIReportListItemFormat_t *C.PerQCIReportListItemFormat_t
perQCIReport_C := *(**C.PerQCIReportListItemFormat_t)(unsafe.Pointer((uintptr)(unsafe.Pointer(cuUPPMEPC_C.perQCIReportList_cuup.list.array)) + (uintptr)(l)*unsafe.Sizeof(sizeof_PerQCIReportListItemFormat_t)))
perQCIReport_C := *(**C.PerQCIReportListItemFormat_t)(unsafe.Pointer((uintptr)(unsafe.Pointer(cuUPPMEPC_C.perQCIReportList.list.array)) + (uintptr)(l)*unsafe.Sizeof(sizeof_PerQCIReportListItemFormat_t)))
perQCIReport.QCI = int64(perQCIReport_C.drbqci)
perQCIReport.QCI = int64(perQCIReport_C.qci)
if perQCIReport_C.pDCPBytesDL != nil {
perQCIReport.PDCPBytesDL = &Integer{}
@ -624,138 +615,137 @@ func (c *E2sm) GetIndicationMessage(buffer []byte) (indMsg *IndicationMessage, e
if pmContainer_C.theRANContainer != nil {
ranContainer := &RANContainerType{}
// TODO: parse correctly Octect String
// ranContainer.Buf = C.GoBytes(unsafe.Pointer(pmContainer_C.theRANContainer), C.int(pmContainer_C.theRANContainer.size))
// ranContainer.Size = int(pmContainer_C.theRANContainer.size)
ranContainer.Timestamp.Buf = C.GoBytes(unsafe.Pointer(pmContainer_C.theRANContainer.timestamp.buf), C.int(pmContainer_C.theRANContainer.timestamp.size))
ranContainer.Timestamp.Size = int(pmContainer_C.theRANContainer.timestamp.size)
// ranContainer.ContainerType = int32(pmContainer_C.theRANContainer.reportContainer.present)
ranContainer.ContainerType = int32(pmContainer_C.theRANContainer.reportContainer.present)
// if ranContainer.ContainerType == 1 {
// oDU_UE := &DUUsageReportType{}
// oDU_UE_C := *(**C.DU_Usage_Report_Per_UE_t)(unsafe.Pointer(&pmContainer_C.theRANContainer.reportContainer.choice[0]))
if ranContainer.ContainerType == 1 {
oDU_UE := &DUUsageReportType{}
oDU_UE_C := *(**C.DU_Usage_Report_Per_UE_t)(unsafe.Pointer(&pmContainer_C.theRANContainer.reportContainer.choice[0]))
// oDU_UE.CellResourceReportItemCount = int(oDU_UE_C.cellResourceReportList.list.count)
// for j := 0; j < oDU_UE.CellResourceReportItemCount; j++ {
// cellResourceReport := &oDU_UE.CellResourceReportItems[j]
// var sizeof_DU_Usage_Report_CellResourceReportItem_t *C.DU_Usage_Report_CellResourceReportItem_t
// cellResourceReport_C := *(**C.DU_Usage_Report_CellResourceReportItem_t)(unsafe.Pointer((uintptr)(unsafe.Pointer(oDU_UE_C.cellResourceReportList.list.array)) + (uintptr)(j)*unsafe.Sizeof(sizeof_DU_Usage_Report_CellResourceReportItem_t)))
oDU_UE.CellResourceReportItemCount = int(oDU_UE_C.cellResourceReportList.list.count)
for j := 0; j < oDU_UE.CellResourceReportItemCount; j++ {
cellResourceReport := &oDU_UE.CellResourceReportItems[j]
var sizeof_DU_Usage_Report_CellResourceReportItem_t *C.DU_Usage_Report_CellResourceReportItem_t
cellResourceReport_C := *(**C.DU_Usage_Report_CellResourceReportItem_t)(unsafe.Pointer((uintptr)(unsafe.Pointer(oDU_UE_C.cellResourceReportList.list.array)) + (uintptr)(j)*unsafe.Sizeof(sizeof_DU_Usage_Report_CellResourceReportItem_t)))
// cellResourceReport.NRCGI.PlmnID.Buf = C.GoBytes(unsafe.Pointer(cellResourceReport_C.nRCGI.pLMN_Identity.buf), C.int(cellResourceReport_C.nRCGI.pLMN_Identity.size))
// cellResourceReport.NRCGI.PlmnID.Size = int(cellResourceReport_C.nRCGI.pLMN_Identity.size)
cellResourceReport.NRCGI.PlmnID.Buf = C.GoBytes(unsafe.Pointer(cellResourceReport_C.nRCGI.pLMN_Identity.buf), C.int(cellResourceReport_C.nRCGI.pLMN_Identity.size))
cellResourceReport.NRCGI.PlmnID.Size = int(cellResourceReport_C.nRCGI.pLMN_Identity.size)
// cellResourceReport.NRCGI.NRCellID.Buf = C.GoBytes(unsafe.Pointer(cellResourceReport_C.nRCGI.nRCellIdentity.buf), C.int(cellResourceReport_C.nRCGI.nRCellIdentity.size))
// cellResourceReport.NRCGI.NRCellID.Size = int(cellResourceReport_C.nRCGI.nRCellIdentity.size)
// cellResourceReport.NRCGI.NRCellID.BitsUnused = int(cellResourceReport_C.nRCGI.nRCellIdentity.bits_unused)
cellResourceReport.NRCGI.NRCellID.Buf = C.GoBytes(unsafe.Pointer(cellResourceReport_C.nRCGI.nRCellIdentity.buf), C.int(cellResourceReport_C.nRCGI.nRCellIdentity.size))
cellResourceReport.NRCGI.NRCellID.Size = int(cellResourceReport_C.nRCGI.nRCellIdentity.size)
cellResourceReport.NRCGI.NRCellID.BitsUnused = int(cellResourceReport_C.nRCGI.nRCellIdentity.bits_unused)
// cellResourceReport.UeResourceReportItemCount = int(cellResourceReport_C.ueResourceReportList.list.count)
// for k := 0; k < cellResourceReport.UeResourceReportItemCount; k++ {
// ueResourceReport := &cellResourceReport.UeResourceReportItems[k]
// var sizeof_DU_Usage_Report_UeResourceReportItem_t *C.DU_Usage_Report_UeResourceReportItem_t
// ueResourceReport_C := *(**C.DU_Usage_Report_UeResourceReportItem_t)(unsafe.Pointer((uintptr)(unsafe.Pointer(cellResourceReport_C.ueResourceReportList.list.array)) + (uintptr)(k)*unsafe.Sizeof(sizeof_DU_Usage_Report_UeResourceReportItem_t)))
cellResourceReport.UeResourceReportItemCount = int(cellResourceReport_C.ueResourceReportList.list.count)
for k := 0; k < cellResourceReport.UeResourceReportItemCount; k++ {
ueResourceReport := &cellResourceReport.UeResourceReportItems[k]
var sizeof_DU_Usage_Report_UeResourceReportItem_t *C.DU_Usage_Report_UeResourceReportItem_t
ueResourceReport_C := *(**C.DU_Usage_Report_UeResourceReportItem_t)(unsafe.Pointer((uintptr)(unsafe.Pointer(cellResourceReport_C.ueResourceReportList.list.array)) + (uintptr)(k)*unsafe.Sizeof(sizeof_DU_Usage_Report_UeResourceReportItem_t)))
// ueResourceReport.CRNTI.Buf = C.GoBytes(unsafe.Pointer(ueResourceReport_C.c_RNTI.buf), C.int(ueResourceReport_C.c_RNTI.size))
// ueResourceReport.CRNTI.Size = int(ueResourceReport_C.c_RNTI.size)
ueResourceReport.CRNTI.Buf = C.GoBytes(unsafe.Pointer(ueResourceReport_C.c_RNTI.buf), C.int(ueResourceReport_C.c_RNTI.size))
ueResourceReport.CRNTI.Size = int(ueResourceReport_C.c_RNTI.size)
// if ueResourceReport_C.dl_PRBUsage != nil {
// ueResourceReport.PRBUsageDL = int64(*ueResourceReport_C.dl_PRBUsage)
// } else {
// ueResourceReport.PRBUsageDL = -1
// }
if ueResourceReport_C.dl_PRBUsage != nil {
ueResourceReport.PRBUsageDL = int64(*ueResourceReport_C.dl_PRBUsage)
} else {
ueResourceReport.PRBUsageDL = -1
}
// if ueResourceReport_C.ul_PRBUsage != nil {
// ueResourceReport.PRBUsageUL = int64(*ueResourceReport_C.ul_PRBUsage)
// } else {
// ueResourceReport.PRBUsageUL = -1
// }
// }
// }
if ueResourceReport_C.ul_PRBUsage != nil {
ueResourceReport.PRBUsageUL = int64(*ueResourceReport_C.ul_PRBUsage)
} else {
ueResourceReport.PRBUsageUL = -1
}
}
}
// ranContainer.Container = oDU_UE
// } else if ranContainer.ContainerType == 2 {
// oCU_CP_UE := &CUCPUsageReportType{}
// oCU_CP_UE_C := *(**C.CU_CP_Usage_Report_Per_UE_t)(unsafe.Pointer(&pmContainer_C.theRANContainer.reportContainer.choice[0]))
ranContainer.Container = oDU_UE
} else if ranContainer.ContainerType == 2 {
oCU_CP_UE := &CUCPUsageReportType{}
oCU_CP_UE_C := *(**C.CU_CP_Usage_Report_Per_UE_t)(unsafe.Pointer(&pmContainer_C.theRANContainer.reportContainer.choice[0]))
// oCU_CP_UE.CellResourceReportItemCount = int(oCU_CP_UE_C.cellResourceReportList.list.count)
// for j := 0; j < oCU_CP_UE.CellResourceReportItemCount; j++ {
// cellResourceReport := &oCU_CP_UE.CellResourceReportItems[j]
// var sizeof_CU_CP_Usage_Report_CellResourceReportItem_t *C.CU_CP_Usage_Report_CellResourceReportItem_t
// cellResourceReport_C := *(**C.CU_CP_Usage_Report_CellResourceReportItem_t)(unsafe.Pointer((uintptr)(unsafe.Pointer(oCU_CP_UE_C.cellResourceReportList.list.array)) + (uintptr)(j)*unsafe.Sizeof(sizeof_CU_CP_Usage_Report_CellResourceReportItem_t)))
oCU_CP_UE.CellResourceReportItemCount = int(oCU_CP_UE_C.cellResourceReportList.list.count)
for j := 0; j < oCU_CP_UE.CellResourceReportItemCount; j++ {
cellResourceReport := &oCU_CP_UE.CellResourceReportItems[j]
var sizeof_CU_CP_Usage_Report_CellResourceReportItem_t *C.CU_CP_Usage_Report_CellResourceReportItem_t
cellResourceReport_C := *(**C.CU_CP_Usage_Report_CellResourceReportItem_t)(unsafe.Pointer((uintptr)(unsafe.Pointer(oCU_CP_UE_C.cellResourceReportList.list.array)) + (uintptr)(j)*unsafe.Sizeof(sizeof_CU_CP_Usage_Report_CellResourceReportItem_t)))
// cellResourceReport.NRCGI.PlmnID.Buf = C.GoBytes(unsafe.Pointer(cellResourceReport_C.nRCGI.pLMN_Identity.buf), C.int(cellResourceReport_C.nRCGI.pLMN_Identity.size))
// cellResourceReport.NRCGI.PlmnID.Size = int(cellResourceReport_C.nRCGI.pLMN_Identity.size)
cellResourceReport.NRCGI.PlmnID.Buf = C.GoBytes(unsafe.Pointer(cellResourceReport_C.nRCGI.pLMN_Identity.buf), C.int(cellResourceReport_C.nRCGI.pLMN_Identity.size))
cellResourceReport.NRCGI.PlmnID.Size = int(cellResourceReport_C.nRCGI.pLMN_Identity.size)
// cellResourceReport.NRCGI.NRCellID.Buf = C.GoBytes(unsafe.Pointer(cellResourceReport_C.nRCGI.nRCellIdentity.buf), C.int(cellResourceReport_C.nRCGI.nRCellIdentity.size))
// cellResourceReport.NRCGI.NRCellID.Size = int(cellResourceReport_C.nRCGI.nRCellIdentity.size)
// cellResourceReport.NRCGI.NRCellID.BitsUnused = int(cellResourceReport_C.nRCGI.nRCellIdentity.bits_unused)
cellResourceReport.NRCGI.NRCellID.Buf = C.GoBytes(unsafe.Pointer(cellResourceReport_C.nRCGI.nRCellIdentity.buf), C.int(cellResourceReport_C.nRCGI.nRCellIdentity.size))
cellResourceReport.NRCGI.NRCellID.Size = int(cellResourceReport_C.nRCGI.nRCellIdentity.size)
cellResourceReport.NRCGI.NRCellID.BitsUnused = int(cellResourceReport_C.nRCGI.nRCellIdentity.bits_unused)
// cellResourceReport.UeResourceReportItemCount = int(cellResourceReport_C.ueResourceReportList.list.count)
// for k := 0; k < cellResourceReport.UeResourceReportItemCount; k++ {
// ueResourceReport := &cellResourceReport.UeResourceReportItems[k]
// var sizeof_CU_CP_Usage_Report_UeResourceReportItem_t *C.CU_CP_Usage_Report_UeResourceReportItem_t
// ueResourceReport_C := *(**C.CU_CP_Usage_Report_UeResourceReportItem_t)(unsafe.Pointer((uintptr)(unsafe.Pointer(cellResourceReport_C.ueResourceReportList.list.array)) + (uintptr)(k)*unsafe.Sizeof(sizeof_CU_CP_Usage_Report_UeResourceReportItem_t)))
cellResourceReport.UeResourceReportItemCount = int(cellResourceReport_C.ueResourceReportList.list.count)
for k := 0; k < cellResourceReport.UeResourceReportItemCount; k++ {
ueResourceReport := &cellResourceReport.UeResourceReportItems[k]
var sizeof_CU_CP_Usage_Report_UeResourceReportItem_t *C.CU_CP_Usage_Report_UeResourceReportItem_t
ueResourceReport_C := *(**C.CU_CP_Usage_Report_UeResourceReportItem_t)(unsafe.Pointer((uintptr)(unsafe.Pointer(cellResourceReport_C.ueResourceReportList.list.array)) + (uintptr)(k)*unsafe.Sizeof(sizeof_CU_CP_Usage_Report_UeResourceReportItem_t)))
// ueResourceReport.CRNTI.Buf = C.GoBytes(unsafe.Pointer(ueResourceReport_C.c_RNTI.buf), C.int(ueResourceReport_C.c_RNTI.size))
// ueResourceReport.CRNTI.Size = int(ueResourceReport_C.c_RNTI.size)
ueResourceReport.CRNTI.Buf = C.GoBytes(unsafe.Pointer(ueResourceReport_C.c_RNTI.buf), C.int(ueResourceReport_C.c_RNTI.size))
ueResourceReport.CRNTI.Size = int(ueResourceReport_C.c_RNTI.size)
// if ueResourceReport_C.serving_Cell_RF_Type != nil {
// ueResourceReport.ServingCellRF = &OctetString{}
// ueResourceReport.ServingCellRF.Buf = C.GoBytes(unsafe.Pointer(ueResourceReport_C.serving_Cell_RF_Type.buf), C.int(ueResourceReport_C.serving_Cell_RF_Type.size))
// ueResourceReport.ServingCellRF.Size = int(ueResourceReport_C.serving_Cell_RF_Type.size)
// }
if ueResourceReport_C.serving_Cell_RF_Type != nil {
ueResourceReport.ServingCellRF = &OctetString{}
ueResourceReport.ServingCellRF.Buf = C.GoBytes(unsafe.Pointer(ueResourceReport_C.serving_Cell_RF_Type.buf), C.int(ueResourceReport_C.serving_Cell_RF_Type.size))
ueResourceReport.ServingCellRF.Size = int(ueResourceReport_C.serving_Cell_RF_Type.size)
}
// if ueResourceReport_C.neighbor_Cell_RF != nil {
// ueResourceReport.NeighborCellRF = &OctetString{}
// ueResourceReport.NeighborCellRF.Buf = C.GoBytes(unsafe.Pointer(ueResourceReport_C.neighbor_Cell_RF.buf), C.int(ueResourceReport_C.neighbor_Cell_RF.size))
// ueResourceReport.NeighborCellRF.Size = int(ueResourceReport_C.neighbor_Cell_RF.size)
// }
// }
// }
if ueResourceReport_C.neighbor_Cell_RF != nil {
ueResourceReport.NeighborCellRF = &OctetString{}
ueResourceReport.NeighborCellRF.Buf = C.GoBytes(unsafe.Pointer(ueResourceReport_C.neighbor_Cell_RF.buf), C.int(ueResourceReport_C.neighbor_Cell_RF.size))
ueResourceReport.NeighborCellRF.Size = int(ueResourceReport_C.neighbor_Cell_RF.size)
}
}
}
// ranContainer.Container = oCU_CP_UE
// } else if ranContainer.ContainerType == 3 {
// oCU_UP_UE := &CUUPUsageReportType{}
// oCU_UP_UE_C := *(**C.CU_UP_Usage_Report_Per_UE_t)(unsafe.Pointer(&pmContainer_C.theRANContainer.reportContainer.choice[0]))
ranContainer.Container = oCU_CP_UE
} else if ranContainer.ContainerType == 3 {
oCU_UP_UE := &CUUPUsageReportType{}
oCU_UP_UE_C := *(**C.CU_UP_Usage_Report_Per_UE_t)(unsafe.Pointer(&pmContainer_C.theRANContainer.reportContainer.choice[0]))
// oCU_UP_UE.CellResourceReportItemCount = int(oCU_UP_UE_C.cellResourceReportList.list.count)
// for j := 0; j < oCU_UP_UE.CellResourceReportItemCount; j++ {
// cellResourceReport := &oCU_UP_UE.CellResourceReportItems[j]
// var sizeof_CU_UP_Usage_Report_CellResourceReportItem_t *C.CU_UP_Usage_Report_CellResourceReportItem_t
// cellResourceReport_C := *(**C.CU_UP_Usage_Report_CellResourceReportItem_t)(unsafe.Pointer((uintptr)(unsafe.Pointer(oCU_UP_UE_C.cellResourceReportList.list.array)) + (uintptr)(j)*unsafe.Sizeof(sizeof_CU_UP_Usage_Report_CellResourceReportItem_t)))
oCU_UP_UE.CellResourceReportItemCount = int(oCU_UP_UE_C.cellResourceReportList.list.count)
for j := 0; j < oCU_UP_UE.CellResourceReportItemCount; j++ {
cellResourceReport := &oCU_UP_UE.CellResourceReportItems[j]
var sizeof_CU_UP_Usage_Report_CellResourceReportItem_t *C.CU_UP_Usage_Report_CellResourceReportItem_t
cellResourceReport_C := *(**C.CU_UP_Usage_Report_CellResourceReportItem_t)(unsafe.Pointer((uintptr)(unsafe.Pointer(oCU_UP_UE_C.cellResourceReportList.list.array)) + (uintptr)(j)*unsafe.Sizeof(sizeof_CU_UP_Usage_Report_CellResourceReportItem_t)))
// cellResourceReport.NRCGI.PlmnID.Buf = C.GoBytes(unsafe.Pointer(cellResourceReport_C.nRCGI.pLMN_Identity.buf), C.int(cellResourceReport_C.nRCGI.pLMN_Identity.size))
// cellResourceReport.NRCGI.PlmnID.Size = int(cellResourceReport_C.nRCGI.pLMN_Identity.size)
cellResourceReport.NRCGI.PlmnID.Buf = C.GoBytes(unsafe.Pointer(cellResourceReport_C.nRCGI.pLMN_Identity.buf), C.int(cellResourceReport_C.nRCGI.pLMN_Identity.size))
cellResourceReport.NRCGI.PlmnID.Size = int(cellResourceReport_C.nRCGI.pLMN_Identity.size)
// cellResourceReport.NRCGI.NRCellID.Buf = C.GoBytes(unsafe.Pointer(cellResourceReport_C.nRCGI.nRCellIdentity.buf), C.int(cellResourceReport_C.nRCGI.nRCellIdentity.size))
// cellResourceReport.NRCGI.NRCellID.Size = int(cellResourceReport_C.nRCGI.nRCellIdentity.size)
// cellResourceReport.NRCGI.NRCellID.BitsUnused = int(cellResourceReport_C.nRCGI.nRCellIdentity.bits_unused)
cellResourceReport.NRCGI.NRCellID.Buf = C.GoBytes(unsafe.Pointer(cellResourceReport_C.nRCGI.nRCellIdentity.buf), C.int(cellResourceReport_C.nRCGI.nRCellIdentity.size))
cellResourceReport.NRCGI.NRCellID.Size = int(cellResourceReport_C.nRCGI.nRCellIdentity.size)
cellResourceReport.NRCGI.NRCellID.BitsUnused = int(cellResourceReport_C.nRCGI.nRCellIdentity.bits_unused)
// cellResourceReport.UeResourceReportItemCount = int(cellResourceReport_C.ueResourceReportList.list.count)
// for k := 0; k < cellResourceReport.UeResourceReportItemCount; k++ {
// ueResourceReport := &cellResourceReport.UeResourceReportItems[k]
// var sizeof_CU_UP_Usage_Report_UeResourceReportItem_t *C.CU_UP_Usage_Report_UeResourceReportItem_t
// ueResourceReport_C := *(**C.CU_UP_Usage_Report_UeResourceReportItem_t)(unsafe.Pointer((uintptr)(unsafe.Pointer(cellResourceReport_C.ueResourceReportList.list.array)) + (uintptr)(k)*unsafe.Sizeof(sizeof_CU_UP_Usage_Report_UeResourceReportItem_t)))
cellResourceReport.UeResourceReportItemCount = int(cellResourceReport_C.ueResourceReportList.list.count)
for k := 0; k < cellResourceReport.UeResourceReportItemCount; k++ {
ueResourceReport := &cellResourceReport.UeResourceReportItems[k]
var sizeof_CU_UP_Usage_Report_UeResourceReportItem_t *C.CU_UP_Usage_Report_UeResourceReportItem_t
ueResourceReport_C := *(**C.CU_UP_Usage_Report_UeResourceReportItem_t)(unsafe.Pointer((uintptr)(unsafe.Pointer(cellResourceReport_C.ueResourceReportList.list.array)) + (uintptr)(k)*unsafe.Sizeof(sizeof_CU_UP_Usage_Report_UeResourceReportItem_t)))
// ueResourceReport.CRNTI.Buf = C.GoBytes(unsafe.Pointer(ueResourceReport_C.c_RNTI.buf), C.int(ueResourceReport_C.c_RNTI.size))
// ueResourceReport.CRNTI.Size = int(ueResourceReport_C.c_RNTI.size)
ueResourceReport.CRNTI.Buf = C.GoBytes(unsafe.Pointer(ueResourceReport_C.c_RNTI.buf), C.int(ueResourceReport_C.c_RNTI.size))
ueResourceReport.CRNTI.Size = int(ueResourceReport_C.c_RNTI.size)
// if ueResourceReport_C.pDCPBytesDL != nil {
// ueResourceReport.PDCPBytesDL = &Integer{}
// ueResourceReport.PDCPBytesDL.Buf = C.GoBytes(unsafe.Pointer(ueResourceReport_C.pDCPBytesDL.buf), C.int(ueResourceReport_C.pDCPBytesDL.size))
// ueResourceReport.PDCPBytesDL.Size = int(ueResourceReport_C.pDCPBytesDL.size)
// }
if ueResourceReport_C.pDCPBytesDL != nil {
ueResourceReport.PDCPBytesDL = &Integer{}
ueResourceReport.PDCPBytesDL.Buf = C.GoBytes(unsafe.Pointer(ueResourceReport_C.pDCPBytesDL.buf), C.int(ueResourceReport_C.pDCPBytesDL.size))
ueResourceReport.PDCPBytesDL.Size = int(ueResourceReport_C.pDCPBytesDL.size)
}
// if ueResourceReport_C.pDCPBytesUL != nil {
// ueResourceReport.PDCPBytesUL = &Integer{}
// ueResourceReport.PDCPBytesUL.Buf = C.GoBytes(unsafe.Pointer(ueResourceReport_C.pDCPBytesUL.buf), C.int(ueResourceReport_C.pDCPBytesUL.size))
// ueResourceReport.PDCPBytesUL.Size = int(ueResourceReport_C.pDCPBytesUL.size)
// }
// }
// }
if ueResourceReport_C.pDCPBytesUL != nil {
ueResourceReport.PDCPBytesUL = &Integer{}
ueResourceReport.PDCPBytesUL.Buf = C.GoBytes(unsafe.Pointer(ueResourceReport_C.pDCPBytesUL.buf), C.int(ueResourceReport_C.pDCPBytesUL.size))
ueResourceReport.PDCPBytesUL.Size = int(ueResourceReport_C.pDCPBytesUL.size)
}
}
}
// ranContainer.Container = oCU_UP_UE
// } else {
// return indMsg, errors.New("Unknown RAN Container type")
// }
ranContainer.Container = oCU_UP_UE
} else {
return indMsg, errors.New("Unknown RAN Container type")
}
pmContainer.RANContainer = ranContainer
}

View File

@ -134,19 +134,18 @@ type GNB_CU_CP_Name PrintableString
type GNB_CU_UP_Name PrintableString
type IndicationHeaderFormat1 struct {
CollectionStartTime *OctetString
GlobalKPMnodeIDType int32
GlobalKPMnodeID interface{}
// NRCGI *NRCGIType
// PlmnID *OctetString
// SliceID *SliceIDType
// FiveQI int64
// Qci int64
// UeMessageType int32
// GnbDUID *Integer
// GnbNameType int32
// GnbName interface{}
GlobalgNBID *GlobalgNBIDType
NRCGI *NRCGIType
PlmnID *OctetString
SliceID *SliceIDType
FiveQI int64
Qci int64
UeMessageType int32
GnbDUID *Integer
GnbNameType int32
GnbName interface{}
GlobalgNBID *GlobalgNBIDType
}
type IndicationHeader struct {
@ -203,7 +202,7 @@ type CUCPResourceStatusType struct {
}
type OCUCPPFContainerType struct {
// GNBCUCPName *PrintableString
GNBCUCPName *PrintableString
CUCPResourceStatus CUCPResourceStatusType
}
@ -252,7 +251,7 @@ type CUUPPFContainerItemType struct {
}
type OCUUPPFContainerType struct {
// GNBCUUPName *PrintableString
GNBCUUPName *PrintableString
CUUPPFContainerItems [3]CUUPPFContainerItemType
CUUPPFContainerItemCount int
}
@ -313,13 +312,11 @@ type PFContainerType struct {
Container interface{}
}
// type RANContainerType struct {
// Timestamp OctetString
// ContainerType int32
// Container interface{}
// }
type RANContainerType OctetString
type RANContainerType struct {
Timestamp OctetString
ContainerType int32
Container interface{}
}
type PMContainerType struct {
PFContainer *PFContainerType
@ -332,7 +329,7 @@ type IndicationMessageFormat1 struct {
}
type IndicationMessage struct {
// StyleType int64
StyleType int64
IndMsgType int32
IndMsg interface{}
}
@ -344,19 +341,19 @@ type Timestamp struct {
type CellMetricsEntry struct {
MeasTimestampPDCPBytes Timestamp `json:"MeasTimestampPDCPBytes"`
CellID string `json:"CellID"`
CellID string `json:"CellID"`
PDCPBytesDL int64 `json:"PDCPBytesDL"`
PDCPBytesUL int64 `json:"PDCPBytesUL"`
MeasTimestampPRB Timestamp `json:"MeasTimestampAvailPRB"`
AvailPRBDL int64 `json:"AvailPRBDL"`
AvailPRBUL int64 `json:"AvailPRBUL"`
MeasPeriodPDCP int64 `json:"MeasPeriodPDCPBytes"`
MeasPeriodPRB int64 `json:"MeasPeriodAvailPRB"`
MeasPeriodPDCP int64 `json:"MeasPeriodPDCPBytes"`
MeasPeriodPRB int64 `json:"MeasPeriodAvailPRB"`
}
type CellRFType struct {
RSRP int `json:"rsrp"`
RSRQ int `json:"rsrq"`
RSRP int `json:"rsrp"`
RSRQ int `json:"rsrq"`
RSSINR int `json:"rssinr"`
}
@ -366,18 +363,18 @@ type NeighborCellRFType struct {
}
type UeMetricsEntry struct {
UeID int64 `json:"UEID"`
ServingCellID string `json:"ServingCellID"`
MeasTimestampPDCPBytes Timestamp `json:"MeasTimestampUEPDCPBytes"`
PDCPBytesDL int64 `json:"UEPDCPBytesDL"`
PDCPBytesUL int64 `json:"UEPDCPBytesUL"`
MeasTimestampPRB Timestamp `json:"MeasTimestampUEPRBUsage"`
PRBUsageDL int64 `json:"UEPRBUsageDL"`
PRBUsageUL int64 `json:"UEPRBUsageUL"`
MeasTimeRF Timestamp `json:"MeasTimestampRF"`
MeasPeriodRF int64 `json:"MeasPeriodRF"`
MeasPeriodPDCP int64 `json:"MeasPeriodUEPDCPBytes"`
MeasPeriodPRB int64 `json:"MeasPeriodUEPRBUsage"`
ServingCellRF CellRFType `json:"ServingCellRF"`
NeighborCellsRF []NeighborCellRFType `json:"NeighborCellRF"`
UeID int64 `json:"UEID"`
ServingCellID string `json:"ServingCellID"`
MeasTimestampPDCPBytes Timestamp `json:"MeasTimestampUEPDCPBytes"`
PDCPBytesDL int64 `json:"UEPDCPBytesDL"`
PDCPBytesUL int64 `json:"UEPDCPBytesUL"`
MeasTimestampPRB Timestamp `json:"MeasTimestampUEPRBUsage"`
PRBUsageDL int64 `json:"UEPRBUsageDL"`
PRBUsageUL int64 `json:"UEPRBUsageUL"`
MeasTimeRF Timestamp `json:"MeasTimestampRF"`
MeasPeriodRF int64 `json:"MeasPeriodRF"`
MeasPeriodPDCP int64 `json:"MeasPeriodUEPDCPBytes"`
MeasPeriodPRB int64 `json:"MeasPeriodUEPRBUsage"`
ServingCellRF CellRFType `json:"ServingCellRF"`
NeighborCellsRF []NeighborCellRFType `json:"NeighborCellRF"`
}

65
e2ap/headers/ANY.h Normal file
View File

@ -0,0 +1,65 @@
/*-
* Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#ifndef ASN_TYPE_ANY_H
#define ASN_TYPE_ANY_H
#include <OCTET_STRING.h> /* Implemented via OCTET STRING type */
#ifdef __cplusplus
extern "C" {
#endif
typedef struct ANY {
uint8_t *buf; /* BER-encoded ANY contents */
int size; /* Size of the above buffer */
asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */
} ANY_t;
extern asn_TYPE_descriptor_t asn_DEF_ANY;
extern asn_TYPE_operation_t asn_OP_ANY;
extern asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs;
asn_struct_free_f ANY_free;
asn_struct_print_f ANY_print;
ber_type_decoder_f ANY_decode_ber;
der_type_encoder_f ANY_encode_der;
xer_type_encoder_f ANY_encode_xer;
per_type_decoder_f ANY_decode_uper;
per_type_encoder_f ANY_encode_uper;
per_type_decoder_f ANY_decode_aper;
per_type_encoder_f ANY_encode_aper;
#define ANY_free OCTET_STRING_free
#define ANY_print OCTET_STRING_print
#define ANY_compare OCTET_STRING_compare
#define ANY_constraint asn_generic_no_constraint
#define ANY_decode_ber OCTET_STRING_decode_ber
#define ANY_encode_der OCTET_STRING_encode_der
#define ANY_decode_xer OCTET_STRING_decode_xer_hex
/******************************
* Handy conversion routines. *
******************************/
/* Convert another ASN.1 type into the ANY. This implies DER encoding. */
int ANY_fromType(ANY_t *, asn_TYPE_descriptor_t *td, void *struct_ptr);
int ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr);
ANY_t *ANY_new_fromType(asn_TYPE_descriptor_t *td, void *struct_ptr);
ANY_t *ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr);
/* Convert the contents of the ANY type into the specified type. */
int ANY_to_type(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr);
int ANY_to_type_aper(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr);
#define ANY_fromBuf(s, buf, size) OCTET_STRING_fromBuf((s), (buf), (size))
#define ANY_new_fromBuf(buf, size) OCTET_STRING_new_fromBuf( \
&asn_DEF_ANY, (buf), (size))
#ifdef __cplusplus
}
#endif
#endif /* ASN_TYPE_ANY_H */

48
e2ap/headers/BIT_STRING.h Normal file
View File

@ -0,0 +1,48 @@
/*-
* Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#ifndef _BIT_STRING_H_
#define _BIT_STRING_H_
#include <OCTET_STRING.h> /* Some help from OCTET STRING */
#ifdef __cplusplus
extern "C" {
#endif
typedef struct BIT_STRING_s {
uint8_t *buf; /* BIT STRING body */
size_t size; /* Size of the above buffer */
int bits_unused;/* Unused trailing bits in the last octet (0..7) */
asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */
} BIT_STRING_t;
extern asn_TYPE_descriptor_t asn_DEF_BIT_STRING;
extern asn_TYPE_operation_t asn_OP_BIT_STRING;
extern asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs;
asn_struct_print_f BIT_STRING_print; /* Human-readable output */
asn_struct_compare_f BIT_STRING_compare;
asn_constr_check_f BIT_STRING_constraint;
xer_type_encoder_f BIT_STRING_encode_xer;
oer_type_decoder_f BIT_STRING_decode_oer;
oer_type_encoder_f BIT_STRING_encode_oer;
per_type_decoder_f BIT_STRING_decode_uper;
per_type_encoder_f BIT_STRING_encode_uper;
asn_random_fill_f BIT_STRING_random_fill;
#define BIT_STRING_free OCTET_STRING_free
#define BIT_STRING_decode_ber OCTET_STRING_decode_ber
#define BIT_STRING_encode_der OCTET_STRING_encode_der
#define BIT_STRING_decode_xer OCTET_STRING_decode_xer_binary
#define BIT_STRING_decode_aper OCTET_STRING_decode_aper
#define BIT_STRING_encode_aper OCTET_STRING_encode_aper
#ifdef __cplusplus
}
#endif
#endif /* _BIT_STRING_H_ */

68
e2ap/headers/Cause.h Normal file
View File

@ -0,0 +1,68 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _Cause_H_
#define _Cause_H_
#include <asn_application.h>
/* Including external dependencies */
#include "CauseRIC.h"
#include "CauseRICservice.h"
#include "CauseTransport.h"
#include "CauseProtocol.h"
#include "CauseMisc.h"
#include <constr_CHOICE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum Cause_PR {
Cause_PR_NOTHING, /* No components present */
Cause_PR_ricRequest,
Cause_PR_ricService,
Cause_PR_transport,
Cause_PR_protocol,
Cause_PR_misc
/* Extensions may appear below */
} Cause_PR;
/* Cause */
typedef struct Cause {
Cause_PR present;
union Cause_u {
CauseRIC_t ricRequest;
CauseRICservice_t ricService;
CauseTransport_t transport;
CauseProtocol_t protocol;
CauseMisc_t misc;
/*
* This type is extensible,
* possible extensions are below.
*/
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} Cause_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_Cause;
extern asn_CHOICE_specifics_t asn_SPC_Cause_specs_1;
extern asn_TYPE_member_t asn_MBR_Cause_1[5];
extern asn_per_constraints_t asn_PER_type_Cause_constr_1;
#ifdef __cplusplus
}
#endif
#endif /* _Cause_H_ */
#include <asn_internal.h>

58
e2ap/headers/CauseMisc.h Normal file
View File

@ -0,0 +1,58 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _CauseMisc_H_
#define _CauseMisc_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum CauseMisc {
CauseMisc_control_processing_overload = 0,
CauseMisc_hardware_failure = 1,
CauseMisc_om_intervention = 2,
CauseMisc_unspecified = 3
/*
* Enumeration is extensible
*/
} e_CauseMisc;
/* CauseMisc */
typedef long CauseMisc_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_CauseMisc_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_CauseMisc;
extern const asn_INTEGER_specifics_t asn_SPC_CauseMisc_specs_1;
asn_struct_free_f CauseMisc_free;
asn_struct_print_f CauseMisc_print;
asn_constr_check_f CauseMisc_constraint;
ber_type_decoder_f CauseMisc_decode_ber;
der_type_encoder_f CauseMisc_encode_der;
xer_type_decoder_f CauseMisc_decode_xer;
xer_type_encoder_f CauseMisc_encode_xer;
oer_type_decoder_f CauseMisc_decode_oer;
oer_type_encoder_f CauseMisc_encode_oer;
per_type_decoder_f CauseMisc_decode_uper;
per_type_encoder_f CauseMisc_encode_uper;
per_type_decoder_f CauseMisc_decode_aper;
per_type_encoder_f CauseMisc_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _CauseMisc_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,61 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _CauseProtocol_H_
#define _CauseProtocol_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum CauseProtocol {
CauseProtocol_transfer_syntax_error = 0,
CauseProtocol_abstract_syntax_error_reject = 1,
CauseProtocol_abstract_syntax_error_ignore_and_notify = 2,
CauseProtocol_message_not_compatible_with_receiver_state = 3,
CauseProtocol_semantic_error = 4,
CauseProtocol_abstract_syntax_error_falsely_constructed_message = 5,
CauseProtocol_unspecified = 6
/*
* Enumeration is extensible
*/
} e_CauseProtocol;
/* CauseProtocol */
typedef long CauseProtocol_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_CauseProtocol_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_CauseProtocol;
extern const asn_INTEGER_specifics_t asn_SPC_CauseProtocol_specs_1;
asn_struct_free_f CauseProtocol_free;
asn_struct_print_f CauseProtocol_print;
asn_constr_check_f CauseProtocol_constraint;
ber_type_decoder_f CauseProtocol_decode_ber;
der_type_encoder_f CauseProtocol_encode_der;
xer_type_decoder_f CauseProtocol_decode_xer;
xer_type_encoder_f CauseProtocol_encode_xer;
oer_type_decoder_f CauseProtocol_decode_oer;
oer_type_encoder_f CauseProtocol_encode_oer;
per_type_decoder_f CauseProtocol_decode_uper;
per_type_encoder_f CauseProtocol_encode_uper;
per_type_decoder_f CauseProtocol_decode_aper;
per_type_encoder_f CauseProtocol_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _CauseProtocol_H_ */
#include <asn_internal.h>

65
e2ap/headers/CauseRIC.h Normal file
View File

@ -0,0 +1,65 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _CauseRIC_H_
#define _CauseRIC_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum CauseRIC {
CauseRIC_ran_function_id_Invalid = 0,
CauseRIC_action_not_supported = 1,
CauseRIC_excessive_actions = 2,
CauseRIC_duplicate_action = 3,
CauseRIC_duplicate_event = 4,
CauseRIC_function_resource_limit = 5,
CauseRIC_request_id_unknown = 6,
CauseRIC_inconsistent_action_subsequent_action_sequence = 7,
CauseRIC_control_message_invalid = 8,
CauseRIC_call_process_id_invalid = 9,
CauseRIC_unspecified = 10
/*
* Enumeration is extensible
*/
} e_CauseRIC;
/* CauseRIC */
typedef long CauseRIC_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_CauseRIC_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_CauseRIC;
extern const asn_INTEGER_specifics_t asn_SPC_CauseRIC_specs_1;
asn_struct_free_f CauseRIC_free;
asn_struct_print_f CauseRIC_print;
asn_constr_check_f CauseRIC_constraint;
ber_type_decoder_f CauseRIC_decode_ber;
der_type_encoder_f CauseRIC_encode_der;
xer_type_decoder_f CauseRIC_decode_xer;
xer_type_encoder_f CauseRIC_encode_xer;
oer_type_decoder_f CauseRIC_decode_oer;
oer_type_encoder_f CauseRIC_encode_oer;
per_type_decoder_f CauseRIC_decode_uper;
per_type_encoder_f CauseRIC_encode_uper;
per_type_decoder_f CauseRIC_decode_aper;
per_type_encoder_f CauseRIC_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _CauseRIC_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,57 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _CauseRICservice_H_
#define _CauseRICservice_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum CauseRICservice {
CauseRICservice_function_not_required = 0,
CauseRICservice_excessive_functions = 1,
CauseRICservice_ric_resource_limit = 2
/*
* Enumeration is extensible
*/
} e_CauseRICservice;
/* CauseRICservice */
typedef long CauseRICservice_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_CauseRICservice_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_CauseRICservice;
extern const asn_INTEGER_specifics_t asn_SPC_CauseRICservice_specs_1;
asn_struct_free_f CauseRICservice_free;
asn_struct_print_f CauseRICservice_print;
asn_constr_check_f CauseRICservice_constraint;
ber_type_decoder_f CauseRICservice_decode_ber;
der_type_encoder_f CauseRICservice_encode_der;
xer_type_decoder_f CauseRICservice_decode_xer;
xer_type_encoder_f CauseRICservice_encode_xer;
oer_type_decoder_f CauseRICservice_decode_oer;
oer_type_encoder_f CauseRICservice_encode_oer;
per_type_decoder_f CauseRICservice_decode_uper;
per_type_encoder_f CauseRICservice_encode_uper;
per_type_decoder_f CauseRICservice_decode_aper;
per_type_encoder_f CauseRICservice_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _CauseRICservice_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,56 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _CauseTransport_H_
#define _CauseTransport_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum CauseTransport {
CauseTransport_unspecified = 0,
CauseTransport_transport_resource_unavailable = 1
/*
* Enumeration is extensible
*/
} e_CauseTransport;
/* CauseTransport */
typedef long CauseTransport_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_CauseTransport_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_CauseTransport;
extern const asn_INTEGER_specifics_t asn_SPC_CauseTransport_specs_1;
asn_struct_free_f CauseTransport_free;
asn_struct_print_f CauseTransport_print;
asn_constr_check_f CauseTransport_constraint;
ber_type_decoder_f CauseTransport_decode_ber;
der_type_encoder_f CauseTransport_encode_der;
xer_type_decoder_f CauseTransport_decode_xer;
xer_type_encoder_f CauseTransport_encode_xer;
oer_type_decoder_f CauseTransport_decode_oer;
oer_type_encoder_f CauseTransport_encode_oer;
per_type_decoder_f CauseTransport_decode_uper;
per_type_encoder_f CauseTransport_encode_uper;
per_type_decoder_f CauseTransport_decode_aper;
per_type_encoder_f CauseTransport_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _CauseTransport_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,54 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-CommonDataTypes"
* found in "E2AP-CommonDataTypes-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _Criticality_H_
#define _Criticality_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum Criticality {
Criticality_reject = 0,
Criticality_ignore = 1,
Criticality_notify = 2
} e_Criticality;
/* Criticality */
typedef long Criticality_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_Criticality_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_Criticality;
extern const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1;
asn_struct_free_f Criticality_free;
asn_struct_print_f Criticality_print;
asn_constr_check_f Criticality_constraint;
ber_type_decoder_f Criticality_decode_ber;
der_type_encoder_f Criticality_encode_der;
xer_type_decoder_f Criticality_decode_xer;
xer_type_encoder_f Criticality_encode_xer;
oer_type_decoder_f Criticality_decode_oer;
oer_type_encoder_f Criticality_encode_oer;
per_type_decoder_f Criticality_decode_uper;
per_type_encoder_f Criticality_encode_uper;
per_type_decoder_f Criticality_decode_aper;
per_type_encoder_f Criticality_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _Criticality_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,48 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _CriticalityDiagnostics_IE_Item_H_
#define _CriticalityDiagnostics_IE_Item_H_
#include <asn_application.h>
/* Including external dependencies */
#include "Criticality.h"
#include "ProtocolIE-ID.h"
#include "TypeOfError.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* CriticalityDiagnostics-IE-Item */
typedef struct CriticalityDiagnostics_IE_Item {
Criticality_t iECriticality;
ProtocolIE_ID_t iE_ID;
TypeOfError_t typeOfError;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} CriticalityDiagnostics_IE_Item_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_Item;
extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_Item_specs_1;
extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_Item_1[3];
#ifdef __cplusplus
}
#endif
#endif /* _CriticalityDiagnostics_IE_Item_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,44 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _CriticalityDiagnostics_IE_List_H_
#define _CriticalityDiagnostics_IE_List_H_
#include <asn_application.h>
/* Including external dependencies */
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct CriticalityDiagnostics_IE_Item;
/* CriticalityDiagnostics-IE-List */
typedef struct CriticalityDiagnostics_IE_List {
A_SEQUENCE_OF(struct CriticalityDiagnostics_IE_Item) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} CriticalityDiagnostics_IE_List_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List;
extern asn_SET_OF_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_specs_1;
extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_1[1];
extern asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1;
#ifdef __cplusplus
}
#endif
#endif /* _CriticalityDiagnostics_IE_List_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,54 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _CriticalityDiagnostics_H_
#define _CriticalityDiagnostics_H_
#include <asn_application.h>
/* Including external dependencies */
#include "ProcedureCode.h"
#include "TriggeringMessage.h"
#include "Criticality.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct RICrequestID;
struct CriticalityDiagnostics_IE_List;
/* CriticalityDiagnostics */
typedef struct CriticalityDiagnostics {
ProcedureCode_t *procedureCode; /* OPTIONAL */
TriggeringMessage_t *triggeringMessage; /* OPTIONAL */
Criticality_t *procedureCriticality; /* OPTIONAL */
struct RICrequestID *ricRequestorID; /* OPTIONAL */
struct CriticalityDiagnostics_IE_List *iEsCriticalityDiagnostics; /* OPTIONAL */
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} CriticalityDiagnostics_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics;
extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_specs_1;
extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_1[5];
#ifdef __cplusplus
}
#endif
#endif /* _CriticalityDiagnostics_H_ */
#include <asn_internal.h>

61
e2ap/headers/E2AP-PDU.h Normal file
View File

@ -0,0 +1,61 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Descriptions"
* found in "E2AP-PDU-Descriptions-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _E2AP_PDU_H_
#define _E2AP_PDU_H_
#include <asn_application.h>
/* Including external dependencies */
#include <constr_CHOICE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum E2AP_PDU_PR {
E2AP_PDU_PR_NOTHING, /* No components present */
E2AP_PDU_PR_initiatingMessage,
E2AP_PDU_PR_successfulOutcome,
E2AP_PDU_PR_unsuccessfulOutcome
/* Extensions may appear below */
} E2AP_PDU_PR;
/* Forward declarations */
struct InitiatingMessage;
struct SuccessfulOutcome;
struct UnsuccessfulOutcome;
/* E2AP-PDU */
typedef struct E2AP_PDU {
E2AP_PDU_PR present;
union E2AP_PDU_u {
struct InitiatingMessage *initiatingMessage;
struct SuccessfulOutcome *successfulOutcome;
struct UnsuccessfulOutcome *unsuccessfulOutcome;
/*
* This type is extensible,
* possible extensions are below.
*/
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} E2AP_PDU_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_E2AP_PDU;
#ifdef __cplusplus
}
#endif
#endif /* _E2AP_PDU_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,42 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _E2setupFailure_H_
#define _E2setupFailure_H_
#include <asn_application.h>
/* Including external dependencies */
#include "ProtocolIE-Container.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* E2setupFailure */
typedef struct E2setupFailure {
ProtocolIE_Container_87P13_t protocolIEs;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} E2setupFailure_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_E2setupFailure;
#ifdef __cplusplus
}
#endif
#endif /* _E2setupFailure_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,42 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _E2setupRequest_H_
#define _E2setupRequest_H_
#include <asn_application.h>
/* Including external dependencies */
#include "ProtocolIE-Container.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* E2setupRequest */
typedef struct E2setupRequest {
ProtocolIE_Container_87P11_t protocolIEs;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} E2setupRequest_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_E2setupRequest;
#ifdef __cplusplus
}
#endif
#endif /* _E2setupRequest_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,42 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _E2setupResponse_H_
#define _E2setupResponse_H_
#include <asn_application.h>
/* Including external dependencies */
#include "ProtocolIE-Container.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* E2setupResponse */
typedef struct E2setupResponse {
ProtocolIE_Container_87P12_t protocolIEs;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} E2setupResponse_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_E2setupResponse;
#ifdef __cplusplus
}
#endif
#endif /* _E2setupResponse_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,60 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _ENB_ID_Choice_H_
#define _ENB_ID_Choice_H_
#include <asn_application.h>
/* Including external dependencies */
#include <BIT_STRING.h>
#include <constr_CHOICE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum ENB_ID_Choice_PR {
ENB_ID_Choice_PR_NOTHING, /* No components present */
ENB_ID_Choice_PR_enb_ID_macro,
ENB_ID_Choice_PR_enb_ID_shortmacro,
ENB_ID_Choice_PR_enb_ID_longmacro
/* Extensions may appear below */
} ENB_ID_Choice_PR;
/* ENB-ID-Choice */
typedef struct ENB_ID_Choice {
ENB_ID_Choice_PR present;
union ENB_ID_Choice_u {
BIT_STRING_t enb_ID_macro;
BIT_STRING_t enb_ID_shortmacro;
BIT_STRING_t enb_ID_longmacro;
/*
* This type is extensible,
* possible extensions are below.
*/
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ENB_ID_Choice_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ENB_ID_Choice;
extern asn_CHOICE_specifics_t asn_SPC_ENB_ID_Choice_specs_1;
extern asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[3];
extern asn_per_constraints_t asn_PER_type_ENB_ID_Choice_constr_1;
#ifdef __cplusplus
}
#endif
#endif /* _ENB_ID_Choice_H_ */
#include <asn_internal.h>

61
e2ap/headers/ENB-ID.h Normal file
View File

@ -0,0 +1,61 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _ENB_ID_H_
#define _ENB_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include <BIT_STRING.h>
#include <constr_CHOICE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum ENB_ID_PR {
ENB_ID_PR_NOTHING, /* No components present */
ENB_ID_PR_macro_eNB_ID,
ENB_ID_PR_home_eNB_ID,
/* Extensions may appear below */
ENB_ID_PR_short_Macro_eNB_ID,
ENB_ID_PR_long_Macro_eNB_ID
} ENB_ID_PR;
/* ENB-ID */
typedef struct ENB_ID {
ENB_ID_PR present;
union ENB_ID_u {
BIT_STRING_t macro_eNB_ID;
BIT_STRING_t home_eNB_ID;
/*
* This type is extensible,
* possible extensions are below.
*/
BIT_STRING_t short_Macro_eNB_ID;
BIT_STRING_t long_Macro_eNB_ID;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ENB_ID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ENB_ID;
extern asn_CHOICE_specifics_t asn_SPC_ENB_ID_specs_1;
extern asn_TYPE_member_t asn_MBR_ENB_ID_1[4];
extern asn_per_constraints_t asn_PER_type_ENB_ID_constr_1;
#ifdef __cplusplus
}
#endif
#endif /* _ENB_ID_H_ */
#include <asn_internal.h>

56
e2ap/headers/ENGNB-ID.h Normal file
View File

@ -0,0 +1,56 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _ENGNB_ID_H_
#define _ENGNB_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include <BIT_STRING.h>
#include <constr_CHOICE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum ENGNB_ID_PR {
ENGNB_ID_PR_NOTHING, /* No components present */
ENGNB_ID_PR_gNB_ID
/* Extensions may appear below */
} ENGNB_ID_PR;
/* ENGNB-ID */
typedef struct ENGNB_ID {
ENGNB_ID_PR present;
union ENGNB_ID_u {
BIT_STRING_t gNB_ID;
/*
* This type is extensible,
* possible extensions are below.
*/
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ENGNB_ID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ENGNB_ID;
extern asn_CHOICE_specifics_t asn_SPC_ENGNB_ID_specs_1;
extern asn_TYPE_member_t asn_MBR_ENGNB_ID_1[1];
extern asn_per_constraints_t asn_PER_type_ENGNB_ID_constr_1;
#ifdef __cplusplus
}
#endif
#endif /* _ENGNB_ID_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,42 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _ErrorIndication_H_
#define _ErrorIndication_H_
#include <asn_application.h>
/* Including external dependencies */
#include "ProtocolIE-Container.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* ErrorIndication */
typedef struct ErrorIndication {
ProtocolIE_Container_87P10_t protocolIEs;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ErrorIndication_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication;
#ifdef __cplusplus
}
#endif
#endif /* _ErrorIndication_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,46 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _GNB_CU_UP_ID_H_
#define _GNB_CU_UP_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include <INTEGER.h>
#ifdef __cplusplus
extern "C" {
#endif
/* GNB-CU-UP-ID */
typedef INTEGER_t GNB_CU_UP_ID_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_GNB_CU_UP_ID_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_ID;
asn_struct_free_f GNB_CU_UP_ID_free;
asn_struct_print_f GNB_CU_UP_ID_print;
asn_constr_check_f GNB_CU_UP_ID_constraint;
ber_type_decoder_f GNB_CU_UP_ID_decode_ber;
der_type_encoder_f GNB_CU_UP_ID_encode_der;
xer_type_decoder_f GNB_CU_UP_ID_decode_xer;
xer_type_encoder_f GNB_CU_UP_ID_encode_xer;
oer_type_decoder_f GNB_CU_UP_ID_decode_oer;
oer_type_encoder_f GNB_CU_UP_ID_encode_oer;
per_type_decoder_f GNB_CU_UP_ID_decode_uper;
per_type_encoder_f GNB_CU_UP_ID_encode_uper;
per_type_decoder_f GNB_CU_UP_ID_decode_aper;
per_type_encoder_f GNB_CU_UP_ID_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _GNB_CU_UP_ID_H_ */
#include <asn_internal.h>

46
e2ap/headers/GNB-DU-ID.h Normal file
View File

@ -0,0 +1,46 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _GNB_DU_ID_H_
#define _GNB_DU_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include <INTEGER.h>
#ifdef __cplusplus
extern "C" {
#endif
/* GNB-DU-ID */
typedef INTEGER_t GNB_DU_ID_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_GNB_DU_ID_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_GNB_DU_ID;
asn_struct_free_f GNB_DU_ID_free;
asn_struct_print_f GNB_DU_ID_print;
asn_constr_check_f GNB_DU_ID_constraint;
ber_type_decoder_f GNB_DU_ID_decode_ber;
der_type_encoder_f GNB_DU_ID_encode_der;
xer_type_decoder_f GNB_DU_ID_decode_xer;
xer_type_encoder_f GNB_DU_ID_encode_xer;
oer_type_decoder_f GNB_DU_ID_decode_oer;
oer_type_encoder_f GNB_DU_ID_encode_oer;
per_type_decoder_f GNB_DU_ID_decode_uper;
per_type_encoder_f GNB_DU_ID_encode_uper;
per_type_decoder_f GNB_DU_ID_decode_aper;
per_type_encoder_f GNB_DU_ID_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _GNB_DU_ID_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,56 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _GNB_ID_Choice_H_
#define _GNB_ID_Choice_H_
#include <asn_application.h>
/* Including external dependencies */
#include <BIT_STRING.h>
#include <constr_CHOICE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum GNB_ID_Choice_PR {
GNB_ID_Choice_PR_NOTHING, /* No components present */
GNB_ID_Choice_PR_gnb_ID
/* Extensions may appear below */
} GNB_ID_Choice_PR;
/* GNB-ID-Choice */
typedef struct GNB_ID_Choice {
GNB_ID_Choice_PR present;
union GNB_ID_Choice_u {
BIT_STRING_t gnb_ID;
/*
* This type is extensible,
* possible extensions are below.
*/
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} GNB_ID_Choice_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_GNB_ID_Choice;
extern asn_CHOICE_specifics_t asn_SPC_GNB_ID_Choice_specs_1;
extern asn_TYPE_member_t asn_MBR_GNB_ID_Choice_1[1];
extern asn_per_constraints_t asn_PER_type_GNB_ID_Choice_constr_1;
#ifdef __cplusplus
}
#endif
#endif /* _GNB_ID_Choice_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,67 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _GlobalE2node_ID_H_
#define _GlobalE2node_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include <constr_CHOICE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum GlobalE2node_ID_PR {
GlobalE2node_ID_PR_NOTHING, /* No components present */
GlobalE2node_ID_PR_gNB,
GlobalE2node_ID_PR_en_gNB,
GlobalE2node_ID_PR_ng_eNB,
GlobalE2node_ID_PR_eNB
/* Extensions may appear below */
} GlobalE2node_ID_PR;
/* Forward declarations */
struct GlobalE2node_gNB_ID;
struct GlobalE2node_en_gNB_ID;
struct GlobalE2node_ng_eNB_ID;
struct GlobalE2node_eNB_ID;
/* GlobalE2node-ID */
typedef struct GlobalE2node_ID {
GlobalE2node_ID_PR present;
union GlobalE2node_ID_u {
struct GlobalE2node_gNB_ID *gNB;
struct GlobalE2node_en_gNB_ID *en_gNB;
struct GlobalE2node_ng_eNB_ID *ng_eNB;
struct GlobalE2node_eNB_ID *eNB;
/*
* This type is extensible,
* possible extensions are below.
*/
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} GlobalE2node_ID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ID;
extern asn_CHOICE_specifics_t asn_SPC_GlobalE2node_ID_specs_1;
extern asn_TYPE_member_t asn_MBR_GlobalE2node_ID_1[4];
extern asn_per_constraints_t asn_PER_type_GlobalE2node_ID_constr_1;
#ifdef __cplusplus
}
#endif
#endif /* _GlobalE2node_ID_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,44 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _GlobalE2node_eNB_ID_H_
#define _GlobalE2node_eNB_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include "GlobalENB-ID.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* GlobalE2node-eNB-ID */
typedef struct GlobalE2node_eNB_ID {
GlobalENB_ID_t global_eNB_ID;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} GlobalE2node_eNB_ID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_eNB_ID;
extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_eNB_ID_specs_1;
extern asn_TYPE_member_t asn_MBR_GlobalE2node_eNB_ID_1[1];
#ifdef __cplusplus
}
#endif
#endif /* _GlobalE2node_eNB_ID_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,44 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _GlobalE2node_en_gNB_ID_H_
#define _GlobalE2node_en_gNB_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include "GlobalenGNB-ID.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* GlobalE2node-en-gNB-ID */
typedef struct GlobalE2node_en_gNB_ID {
GlobalenGNB_ID_t global_gNB_ID;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} GlobalE2node_en_gNB_ID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_en_gNB_ID;
extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_en_gNB_ID_specs_1;
extern asn_TYPE_member_t asn_MBR_GlobalE2node_en_gNB_ID_1[1];
#ifdef __cplusplus
}
#endif
#endif /* _GlobalE2node_en_gNB_ID_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,48 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _GlobalE2node_gNB_ID_H_
#define _GlobalE2node_gNB_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include "GlobalgNB-ID.h"
#include "GNB-CU-UP-ID.h"
#include "GNB-DU-ID.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* GlobalE2node-gNB-ID */
typedef struct GlobalE2node_gNB_ID {
GlobalgNB_ID_t global_gNB_ID;
GNB_CU_UP_ID_t *gNB_CU_UP_ID; /* OPTIONAL */
GNB_DU_ID_t *gNB_DU_ID; /* OPTIONAL */
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} GlobalE2node_gNB_ID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID;
extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_gNB_ID_specs_1;
extern asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[3];
#ifdef __cplusplus
}
#endif
#endif /* _GlobalE2node_gNB_ID_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,44 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _GlobalE2node_ng_eNB_ID_H_
#define _GlobalE2node_ng_eNB_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include "GlobalngeNB-ID.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* GlobalE2node-ng-eNB-ID */
typedef struct GlobalE2node_ng_eNB_ID {
GlobalngeNB_ID_t global_ng_eNB_ID;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} GlobalE2node_ng_eNB_ID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ng_eNB_ID;
extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_ng_eNB_ID_specs_1;
extern asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[1];
#ifdef __cplusplus
}
#endif
#endif /* _GlobalE2node_ng_eNB_ID_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,46 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _GlobalENB_ID_H_
#define _GlobalENB_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include "PLMN-Identity.h"
#include "ENB-ID.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* GlobalENB-ID */
typedef struct GlobalENB_ID {
PLMN_Identity_t pLMN_Identity;
ENB_ID_t eNB_ID;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} GlobalENB_ID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_GlobalENB_ID;
extern asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_specs_1;
extern asn_TYPE_member_t asn_MBR_GlobalENB_ID_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _GlobalENB_ID_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,46 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _GlobalRIC_ID_H_
#define _GlobalRIC_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include "PLMN-Identity.h"
#include <BIT_STRING.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* GlobalRIC-ID */
typedef struct GlobalRIC_ID {
PLMN_Identity_t pLMN_Identity;
BIT_STRING_t ric_ID;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} GlobalRIC_ID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_GlobalRIC_ID;
extern asn_SEQUENCE_specifics_t asn_SPC_GlobalRIC_ID_specs_1;
extern asn_TYPE_member_t asn_MBR_GlobalRIC_ID_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _GlobalRIC_ID_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,46 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _GlobalenGNB_ID_H_
#define _GlobalenGNB_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include "PLMN-Identity.h"
#include "ENGNB-ID.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* GlobalenGNB-ID */
typedef struct GlobalenGNB_ID {
PLMN_Identity_t pLMN_Identity;
ENGNB_ID_t gNB_ID;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} GlobalenGNB_ID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_GlobalenGNB_ID;
extern asn_SEQUENCE_specifics_t asn_SPC_GlobalenGNB_ID_specs_1;
extern asn_TYPE_member_t asn_MBR_GlobalenGNB_ID_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _GlobalenGNB_ID_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,46 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _GlobalgNB_ID_H_
#define _GlobalgNB_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include "PLMN-Identity.h"
#include "GNB-ID-Choice.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* GlobalgNB-ID */
typedef struct GlobalgNB_ID {
PLMN_Identity_t plmn_id;
GNB_ID_Choice_t gnb_id;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} GlobalgNB_ID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_GlobalgNB_ID;
extern asn_SEQUENCE_specifics_t asn_SPC_GlobalgNB_ID_specs_1;
extern asn_TYPE_member_t asn_MBR_GlobalgNB_ID_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _GlobalgNB_ID_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,46 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _GlobalngeNB_ID_H_
#define _GlobalngeNB_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include "PLMN-Identity.h"
#include "ENB-ID-Choice.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* GlobalngeNB-ID */
typedef struct GlobalngeNB_ID {
PLMN_Identity_t plmn_id;
ENB_ID_Choice_t enb_id;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} GlobalngeNB_ID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_GlobalngeNB_ID;
extern asn_SEQUENCE_specifics_t asn_SPC_GlobalngeNB_ID_specs_1;
extern asn_TYPE_member_t asn_MBR_GlobalngeNB_ID_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _GlobalngeNB_ID_H_ */
#include <asn_internal.h>

108
e2ap/headers/INTEGER.h Normal file
View File

@ -0,0 +1,108 @@
/*-
* Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#ifndef _INTEGER_H_
#define _INTEGER_H_
#include <asn_application.h>
#include <asn_codecs_prim.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef ASN__PRIMITIVE_TYPE_t INTEGER_t;
extern asn_TYPE_descriptor_t asn_DEF_INTEGER;
extern asn_TYPE_operation_t asn_OP_INTEGER;
/* Map with <tag> to integer value association */
typedef struct asn_INTEGER_enum_map_s {
long nat_value; /* associated native integer value */
size_t enum_len; /* strlen("tag") */
const char *enum_name; /* "tag" */
} asn_INTEGER_enum_map_t;
/* This type describes an enumeration for INTEGER and ENUMERATED types */
typedef struct asn_INTEGER_specifics_s {
const asn_INTEGER_enum_map_t *value2enum; /* N -> "tag"; sorted by N */
const unsigned int *enum2value; /* "tag" => N; sorted by tag */
int map_count; /* Elements in either map */
int extension; /* This map is extensible */
int strict_enumeration; /* Enumeration set is fixed */
int field_width; /* Size of native integer */
int field_unsigned; /* Signed=0, unsigned=1 */
} asn_INTEGER_specifics_t;
#define INTEGER_free ASN__PRIMITIVE_TYPE_free
#define INTEGER_decode_ber ber_decode_primitive
#define INTEGER_constraint asn_generic_no_constraint
asn_struct_print_f INTEGER_print;
asn_struct_compare_f INTEGER_compare;
der_type_encoder_f INTEGER_encode_der;
xer_type_decoder_f INTEGER_decode_xer;
xer_type_encoder_f INTEGER_encode_xer;
oer_type_decoder_f INTEGER_decode_oer;
oer_type_encoder_f INTEGER_encode_oer;
per_type_decoder_f INTEGER_decode_uper;
per_type_encoder_f INTEGER_encode_uper;
per_type_decoder_f INTEGER_decode_aper;
per_type_encoder_f INTEGER_encode_aper;
asn_random_fill_f INTEGER_random_fill;
/***********************************
* Some handy conversion routines. *
***********************************/
/*
* Natiwe size-independent conversion of native integers to/from INTEGER.
* (l_size) is in bytes.
* Returns 0 if it was possible to convert, -1 otherwise.
* -1/EINVAL: Mandatory argument missing
* -1/ERANGE: Value encoded is out of range for long representation
* -1/ENOMEM: Memory allocation failed (in asn_*2INTEGER()).
*/
int asn_INTEGER2imax(const INTEGER_t *i, intmax_t *l);
int asn_INTEGER2umax(const INTEGER_t *i, uintmax_t *l);
int asn_imax2INTEGER(INTEGER_t *i, intmax_t l);
int asn_umax2INTEGER(INTEGER_t *i, uintmax_t l);
/*
* Size-specific conversion helpers.
*/
int asn_INTEGER2long(const INTEGER_t *i, long *l);
int asn_INTEGER2ulong(const INTEGER_t *i, unsigned long *l);
int asn_long2INTEGER(INTEGER_t *i, long l);
int asn_ulong2INTEGER(INTEGER_t *i, unsigned long l);
int asn_int642INTEGER(INTEGER_t *i, int64_t l);
int asn_uint642INTEGER(INTEGER_t *i, uint64_t l);
/* A version of strtol/strtoimax(3) with nicer error reporting. */
enum asn_strtox_result_e {
ASN_STRTOX_ERROR_RANGE = -3, /* Input outside of supported numeric range */
ASN_STRTOX_ERROR_INVAL = -2, /* Invalid data encountered (e.g., "+-") */
ASN_STRTOX_EXPECT_MORE = -1, /* More data expected (e.g. "+") */
ASN_STRTOX_OK = 0, /* Conversion succeded, number ends at (*end) */
ASN_STRTOX_EXTRA_DATA = 1 /* Conversion succeded, but the string has extra stuff */
};
enum asn_strtox_result_e asn_strtol_lim(const char *str, const char **end,
long *l);
enum asn_strtox_result_e asn_strtoul_lim(const char *str, const char **end,
unsigned long *l);
enum asn_strtox_result_e asn_strtoimax_lim(const char *str, const char **end,
intmax_t *l);
enum asn_strtox_result_e asn_strtoumax_lim(const char *str, const char **end,
uintmax_t *l);
/*
* Convert the integer value into the corresponding enumeration map entry.
*/
const asn_INTEGER_enum_map_t *INTEGER_map_value2enum(
const asn_INTEGER_specifics_t *specs, long value);
#ifdef __cplusplus
}
#endif
#endif /* _INTEGER_H_ */

View File

@ -0,0 +1,97 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Descriptions"
* found in "E2AP-PDU-Descriptions-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _InitiatingMessage_H_
#define _InitiatingMessage_H_
#include <asn_application.h>
/* Including external dependencies */
#include "ProcedureCode.h"
#include "Criticality.h"
#include <ANY.h>
#include <asn_ioc.h>
#include "RICsubscriptionRequest.h"
#include "RICsubscriptionResponse.h"
#include "RICsubscriptionFailure.h"
#include "RICsubscriptionDeleteRequest.h"
#include "RICsubscriptionDeleteResponse.h"
#include "RICsubscriptionDeleteFailure.h"
#include "RICserviceUpdate.h"
#include "RICserviceUpdateAcknowledge.h"
#include "RICserviceUpdateFailure.h"
#include "RICcontrolRequest.h"
#include "RICcontrolAcknowledge.h"
#include "RICcontrolFailure.h"
#include "E2setupRequest.h"
#include "E2setupResponse.h"
#include "E2setupFailure.h"
#include "ResetRequest.h"
#include "ResetResponse.h"
#include "RICindication.h"
#include "RICserviceQuery.h"
#include "ErrorIndication.h"
#include <OPEN_TYPE.h>
#include <constr_CHOICE.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum InitiatingMessage__value_PR {
InitiatingMessage__value_PR_NOTHING, /* No components present */
InitiatingMessage__value_PR_RICsubscriptionRequest,
InitiatingMessage__value_PR_RICsubscriptionDeleteRequest,
InitiatingMessage__value_PR_RICserviceUpdate,
InitiatingMessage__value_PR_RICcontrolRequest,
InitiatingMessage__value_PR_E2setupRequest,
InitiatingMessage__value_PR_ResetRequest,
InitiatingMessage__value_PR_RICindication,
InitiatingMessage__value_PR_RICserviceQuery,
InitiatingMessage__value_PR_ErrorIndication
} InitiatingMessage__value_PR;
/* InitiatingMessage */
typedef struct InitiatingMessage {
ProcedureCode_t procedureCode;
Criticality_t criticality;
struct InitiatingMessage__value {
InitiatingMessage__value_PR present;
union InitiatingMessage__value_u {
RICsubscriptionRequest_t RICsubscriptionRequest;
RICsubscriptionDeleteRequest_t RICsubscriptionDeleteRequest;
RICserviceUpdate_t RICserviceUpdate;
RICcontrolRequest_t RICcontrolRequest;
E2setupRequest_t E2setupRequest;
ResetRequest_t ResetRequest;
RICindication_t RICindication;
RICserviceQuery_t RICserviceQuery;
ErrorIndication_t ErrorIndication;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} InitiatingMessage_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_InitiatingMessage;
extern asn_SEQUENCE_specifics_t asn_SPC_InitiatingMessage_specs_1;
extern asn_TYPE_member_t asn_MBR_InitiatingMessage_1[3];
#ifdef __cplusplus
}
#endif
#endif /* _InitiatingMessage_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,45 @@
/*
* Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
/*
* This type differs from the standard ENUMERATED in that it is modelled using
* the fixed machine type (long, int, short), so it can hold only values of
* limited length. There is no type (i.e., NativeEnumerated_t, any integer type
* will do).
* This type may be used when integer range is limited by subtype constraints.
*/
#ifndef _NativeEnumerated_H_
#define _NativeEnumerated_H_
#include <NativeInteger.h>
#ifdef __cplusplus
extern "C" {
#endif
extern asn_TYPE_descriptor_t asn_DEF_NativeEnumerated;
extern asn_TYPE_operation_t asn_OP_NativeEnumerated;
xer_type_encoder_f NativeEnumerated_encode_xer;
oer_type_decoder_f NativeEnumerated_decode_oer;
oer_type_encoder_f NativeEnumerated_encode_oer;
per_type_decoder_f NativeEnumerated_decode_uper;
per_type_encoder_f NativeEnumerated_encode_uper;
per_type_decoder_f NativeEnumerated_decode_aper;
per_type_encoder_f NativeEnumerated_encode_aper;
#define NativeEnumerated_free NativeInteger_free
#define NativeEnumerated_print NativeInteger_print
#define NativeEnumerated_compare NativeInteger_compare
#define NativeEnumerated_random_fill NativeInteger_random_fill
#define NativeEnumerated_constraint asn_generic_no_constraint
#define NativeEnumerated_decode_ber NativeInteger_decode_ber
#define NativeEnumerated_encode_der NativeInteger_encode_der
#define NativeEnumerated_decode_xer NativeInteger_decode_xer
#ifdef __cplusplus
}
#endif
#endif /* _NativeEnumerated_H_ */

View File

@ -0,0 +1,46 @@
/*-
* Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
/*
* This type differs from the standard INTEGER in that it is modelled using
* the fixed machine type (long, int, short), so it can hold only values of
* limited length. There is no type (i.e., NativeInteger_t, any integer type
* will do).
* This type may be used when integer range is limited by subtype constraints.
*/
#ifndef _NativeInteger_H_
#define _NativeInteger_H_
#include <asn_application.h>
#include <INTEGER.h>
#ifdef __cplusplus
extern "C" {
#endif
extern asn_TYPE_descriptor_t asn_DEF_NativeInteger;
extern asn_TYPE_operation_t asn_OP_NativeInteger;
asn_struct_free_f NativeInteger_free;
asn_struct_print_f NativeInteger_print;
asn_struct_compare_f NativeInteger_compare;
ber_type_decoder_f NativeInteger_decode_ber;
der_type_encoder_f NativeInteger_encode_der;
xer_type_decoder_f NativeInteger_decode_xer;
xer_type_encoder_f NativeInteger_encode_xer;
oer_type_decoder_f NativeInteger_decode_oer;
oer_type_encoder_f NativeInteger_encode_oer;
per_type_decoder_f NativeInteger_decode_uper;
per_type_encoder_f NativeInteger_encode_uper;
per_type_decoder_f NativeInteger_decode_aper;
per_type_encoder_f NativeInteger_encode_aper;
asn_random_fill_f NativeInteger_random_fill;
#define NativeInteger_constraint asn_generic_no_constraint
#ifdef __cplusplus
}
#endif
#endif /* _NativeInteger_H_ */

102
e2ap/headers/OCTET_STRING.h Normal file
View File

@ -0,0 +1,102 @@
/*-
* Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#ifndef _OCTET_STRING_H_
#define _OCTET_STRING_H_
#include <asn_application.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct OCTET_STRING {
uint8_t *buf; /* Buffer with consecutive OCTET_STRING bits */
size_t size; /* Size of the buffer */
asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */
} OCTET_STRING_t;
extern asn_TYPE_descriptor_t asn_DEF_OCTET_STRING;
extern asn_TYPE_operation_t asn_OP_OCTET_STRING;
asn_struct_free_f OCTET_STRING_free;
asn_struct_print_f OCTET_STRING_print;
asn_struct_print_f OCTET_STRING_print_utf8;
asn_struct_compare_f OCTET_STRING_compare;
ber_type_decoder_f OCTET_STRING_decode_ber;
der_type_encoder_f OCTET_STRING_encode_der;
xer_type_decoder_f OCTET_STRING_decode_xer_hex; /* Hexadecimal */
xer_type_decoder_f OCTET_STRING_decode_xer_binary; /* 01010111010 */
xer_type_decoder_f OCTET_STRING_decode_xer_utf8; /* ASCII/UTF-8 */
xer_type_encoder_f OCTET_STRING_encode_xer;
xer_type_encoder_f OCTET_STRING_encode_xer_utf8;
oer_type_decoder_f OCTET_STRING_decode_oer;
oer_type_encoder_f OCTET_STRING_encode_oer;
per_type_decoder_f OCTET_STRING_decode_uper;
per_type_encoder_f OCTET_STRING_encode_uper;
per_type_decoder_f OCTET_STRING_decode_aper;
per_type_encoder_f OCTET_STRING_encode_aper;
asn_random_fill_f OCTET_STRING_random_fill;
#define OCTET_STRING_constraint asn_generic_no_constraint
#define OCTET_STRING_decode_xer OCTET_STRING_decode_xer_hex
/******************************
* Handy conversion routines. *
******************************/
/*
* This function clears the previous value of the OCTET STRING (if any)
* and then allocates a new memory with the specified content (str/size).
* If size = -1, the size of the original string will be determined
* using strlen(str).
* If str equals to NULL, the function will silently clear the
* current contents of the OCTET STRING.
* Returns 0 if it was possible to perform operation, -1 otherwise.
*/
int OCTET_STRING_fromBuf(OCTET_STRING_t *s, const char *str, int size);
/* Handy conversion from the C string into the OCTET STRING. */
#define OCTET_STRING_fromString(s, str) OCTET_STRING_fromBuf(s, str, -1)
/*
* Allocate and fill the new OCTET STRING and return a pointer to the newly
* allocated object. NULL is permitted in str: the function will just allocate
* empty OCTET STRING.
*/
OCTET_STRING_t *OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td,
const char *str, int size);
/****************************
* Internally useful stuff. *
****************************/
typedef struct asn_OCTET_STRING_specifics_s {
/*
* Target structure description.
*/
unsigned struct_size; /* Size of the structure */
unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */
enum asn_OS_Subvariant {
ASN_OSUBV_ANY, /* The open type (ANY) */
ASN_OSUBV_BIT, /* BIT STRING */
ASN_OSUBV_STR, /* String types, not {BMP,Universal}String */
ASN_OSUBV_U16, /* 16-bit character (BMPString) */
ASN_OSUBV_U32 /* 32-bit character (UniversalString) */
} subvariant;
} asn_OCTET_STRING_specifics_t;
extern asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs;
size_t OCTET_STRING_random_length_constrained(
const asn_TYPE_descriptor_t *, const asn_encoding_constraints_t *,
size_t max_length);
#ifdef __cplusplus
}
#endif
#endif /* _OCTET_STRING_H_ */

77
e2ap/headers/OPEN_TYPE.h Normal file
View File

@ -0,0 +1,77 @@
/*-
* Copyright (c) 2017-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#ifndef ASN_OPEN_TYPE_H
#define ASN_OPEN_TYPE_H
#include <asn_application.h>
#ifdef __cplusplus
extern "C" {
#endif
#define OPEN_TYPE_free CHOICE_free
#define OPEN_TYPE_print CHOICE_print
#define OPEN_TYPE_compare CHOICE_compare
#define OPEN_TYPE_constraint CHOICE_constraint
#define OPEN_TYPE_decode_ber NULL
#define OPEN_TYPE_encode_der CHOICE_encode_der
#define OPEN_TYPE_decode_xer NULL
#define OPEN_TYPE_encode_xer CHOICE_encode_xer
#define OPEN_TYPE_decode_oer NULL
#define OPEN_TYPE_encode_oer CHOICE_encode_oer
#define OPEN_TYPE_decode_uper NULL
#define OPEN_TYPE_decode_aper NULL
extern asn_TYPE_operation_t asn_OP_OPEN_TYPE;
/*
* Decode an Open Type which is potentially constraiend
* by the other members of the parent structure.
*/
asn_dec_rval_t OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx,
const asn_TYPE_descriptor_t *parent_type,
void *parent_structure,
const asn_TYPE_member_t *element,
const void *ptr, size_t size);
asn_dec_rval_t OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx,
const asn_TYPE_descriptor_t *parent_type,
void *parent_structure,
const asn_TYPE_member_t *element,
const void *ptr, size_t size);
asn_dec_rval_t OPEN_TYPE_oer_get(const asn_codec_ctx_t *opt_codec_ctx,
const asn_TYPE_descriptor_t *parent_type,
void *parent_structure,
asn_TYPE_member_t *element, const void *ptr,
size_t size);
asn_dec_rval_t OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx,
const asn_TYPE_descriptor_t *parent_type,
void *parent_structure,
const asn_TYPE_member_t *element,
asn_per_data_t *pd);
asn_dec_rval_t OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx,
const asn_TYPE_descriptor_t *parent_type,
void *parent_structure,
const asn_TYPE_member_t *element,
asn_per_data_t *pd);
asn_enc_rval_t OPEN_TYPE_encode_uper(
const asn_TYPE_descriptor_t *type_descriptor,
const asn_per_constraints_t *constraints, const void *struct_ptr,
asn_per_outp_t *per_output);
asn_enc_rval_t OPEN_TYPE_encode_aper(
const asn_TYPE_descriptor_t *type_descriptor,
const asn_per_constraints_t *constraints, const void *struct_ptr,
asn_per_outp_t *per_output);
#ifdef __cplusplus
}
#endif
#endif /* ASN_OPEN_TYPE_H */

View File

@ -0,0 +1,46 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _PLMN_Identity_H_
#define _PLMN_Identity_H_
#include <asn_application.h>
/* Including external dependencies */
#include <OCTET_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* PLMN-Identity */
typedef OCTET_STRING_t PLMN_Identity_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_PLMN_Identity_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_PLMN_Identity;
asn_struct_free_f PLMN_Identity_free;
asn_struct_print_f PLMN_Identity_print;
asn_constr_check_f PLMN_Identity_constraint;
ber_type_decoder_f PLMN_Identity_decode_ber;
der_type_encoder_f PLMN_Identity_encode_der;
xer_type_decoder_f PLMN_Identity_decode_xer;
xer_type_encoder_f PLMN_Identity_encode_xer;
oer_type_decoder_f PLMN_Identity_decode_oer;
oer_type_encoder_f PLMN_Identity_encode_oer;
per_type_decoder_f PLMN_Identity_decode_uper;
per_type_encoder_f PLMN_Identity_encode_uper;
per_type_decoder_f PLMN_Identity_decode_aper;
per_type_encoder_f PLMN_Identity_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _PLMN_Identity_H_ */
#include <asn_internal.h>

54
e2ap/headers/Presence.h Normal file
View File

@ -0,0 +1,54 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-CommonDataTypes"
* found in "E2AP-CommonDataTypes-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _Presence_H_
#define _Presence_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum Presence {
Presence_optional = 0,
Presence_conditional = 1,
Presence_mandatory = 2
} e_Presence;
/* Presence */
typedef long Presence_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_Presence_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_Presence;
extern const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1;
asn_struct_free_f Presence_free;
asn_struct_print_f Presence_print;
asn_constr_check_f Presence_constraint;
ber_type_decoder_f Presence_decode_ber;
der_type_encoder_f Presence_encode_der;
xer_type_decoder_f Presence_decode_xer;
xer_type_encoder_f Presence_encode_xer;
oer_type_decoder_f Presence_decode_oer;
oer_type_encoder_f Presence_encode_oer;
per_type_decoder_f Presence_decode_uper;
per_type_encoder_f Presence_encode_uper;
per_type_decoder_f Presence_decode_aper;
per_type_encoder_f Presence_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _Presence_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,55 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-CommonDataTypes"
* found in "E2AP-CommonDataTypes-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _ProcedureCode_H_
#define _ProcedureCode_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeInteger.h>
#ifdef __cplusplus
extern "C" {
#endif
/* ProcedureCode */
typedef long ProcedureCode_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_ProcedureCode;
asn_struct_free_f ProcedureCode_free;
asn_struct_print_f ProcedureCode_print;
asn_constr_check_f ProcedureCode_constraint;
ber_type_decoder_f ProcedureCode_decode_ber;
der_type_encoder_f ProcedureCode_encode_der;
xer_type_decoder_f ProcedureCode_decode_xer;
xer_type_encoder_f ProcedureCode_encode_xer;
oer_type_decoder_f ProcedureCode_decode_oer;
oer_type_encoder_f ProcedureCode_encode_oer;
per_type_decoder_f ProcedureCode_decode_uper;
per_type_encoder_f ProcedureCode_encode_uper;
per_type_decoder_f ProcedureCode_decode_aper;
per_type_encoder_f ProcedureCode_encode_aper;
#define ProcedureCode_id_E2setup ((ProcedureCode_t)1)
#define ProcedureCode_id_ErrorIndication ((ProcedureCode_t)2)
#define ProcedureCode_id_Reset ((ProcedureCode_t)3)
#define ProcedureCode_id_RICcontrol ((ProcedureCode_t)4)
#define ProcedureCode_id_RICindication ((ProcedureCode_t)5)
#define ProcedureCode_id_RICserviceQuery ((ProcedureCode_t)6)
#define ProcedureCode_id_RICserviceUpdate ((ProcedureCode_t)7)
#define ProcedureCode_id_RICsubscription ((ProcedureCode_t)8)
#define ProcedureCode_id_RICsubscriptionDelete ((ProcedureCode_t)9)
#ifdef __cplusplus
}
#endif
#endif /* _ProcedureCode_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,253 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-Containers"
* found in "E2AP-Containers-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _ProtocolIE_Container_H_
#define _ProtocolIE_Container_H_
#include <asn_application.h>
/* Including external dependencies */
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct RICsubscriptionRequest_IEs;
struct RICsubscriptionResponse_IEs;
struct RICsubscriptionFailure_IEs;
struct RICsubscriptionDeleteRequest_IEs;
struct RICsubscriptionDeleteResponse_IEs;
struct RICsubscriptionDeleteFailure_IEs;
struct RICindication_IEs;
struct RICcontrolRequest_IEs;
struct RICcontrolAcknowledge_IEs;
struct RICcontrolFailure_IEs;
struct ErrorIndication_IEs;
struct E2setupRequestIEs;
struct E2setupResponseIEs;
struct E2setupFailureIEs;
struct ResetRequestIEs;
struct ResetResponseIEs;
struct RICserviceUpdate_IEs;
struct RICserviceUpdateAcknowledge_IEs;
struct RICserviceUpdateFailure_IEs;
struct RICserviceQuery_IEs;
/* ProtocolIE-Container */
typedef struct ProtocolIE_Container_87P0 {
A_SEQUENCE_OF(struct RICsubscriptionRequest_IEs) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ProtocolIE_Container_87P0_t;
typedef struct ProtocolIE_Container_87P1 {
A_SEQUENCE_OF(struct RICsubscriptionResponse_IEs) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ProtocolIE_Container_87P1_t;
typedef struct ProtocolIE_Container_87P2 {
A_SEQUENCE_OF(struct RICsubscriptionFailure_IEs) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ProtocolIE_Container_87P2_t;
typedef struct ProtocolIE_Container_87P3 {
A_SEQUENCE_OF(struct RICsubscriptionDeleteRequest_IEs) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ProtocolIE_Container_87P3_t;
typedef struct ProtocolIE_Container_87P4 {
A_SEQUENCE_OF(struct RICsubscriptionDeleteResponse_IEs) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ProtocolIE_Container_87P4_t;
typedef struct ProtocolIE_Container_87P5 {
A_SEQUENCE_OF(struct RICsubscriptionDeleteFailure_IEs) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ProtocolIE_Container_87P5_t;
typedef struct ProtocolIE_Container_87P6 {
A_SEQUENCE_OF(struct RICindication_IEs) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ProtocolIE_Container_87P6_t;
typedef struct ProtocolIE_Container_87P7 {
A_SEQUENCE_OF(struct RICcontrolRequest_IEs) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ProtocolIE_Container_87P7_t;
typedef struct ProtocolIE_Container_87P8 {
A_SEQUENCE_OF(struct RICcontrolAcknowledge_IEs) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ProtocolIE_Container_87P8_t;
typedef struct ProtocolIE_Container_87P9 {
A_SEQUENCE_OF(struct RICcontrolFailure_IEs) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ProtocolIE_Container_87P9_t;
typedef struct ProtocolIE_Container_87P10 {
A_SEQUENCE_OF(struct ErrorIndication_IEs) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ProtocolIE_Container_87P10_t;
typedef struct ProtocolIE_Container_87P11 {
A_SEQUENCE_OF(struct E2setupRequestIEs) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ProtocolIE_Container_87P11_t;
typedef struct ProtocolIE_Container_87P12 {
A_SEQUENCE_OF(struct E2setupResponseIEs) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ProtocolIE_Container_87P12_t;
typedef struct ProtocolIE_Container_87P13 {
A_SEQUENCE_OF(struct E2setupFailureIEs) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ProtocolIE_Container_87P13_t;
typedef struct ProtocolIE_Container_87P14 {
A_SEQUENCE_OF(struct ResetRequestIEs) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ProtocolIE_Container_87P14_t;
typedef struct ProtocolIE_Container_87P15 {
A_SEQUENCE_OF(struct ResetResponseIEs) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ProtocolIE_Container_87P15_t;
typedef struct ProtocolIE_Container_87P16 {
A_SEQUENCE_OF(struct RICserviceUpdate_IEs) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ProtocolIE_Container_87P16_t;
typedef struct ProtocolIE_Container_87P17 {
A_SEQUENCE_OF(struct RICserviceUpdateAcknowledge_IEs) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ProtocolIE_Container_87P17_t;
typedef struct ProtocolIE_Container_87P18 {
A_SEQUENCE_OF(struct RICserviceUpdateFailure_IEs) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ProtocolIE_Container_87P18_t;
typedef struct ProtocolIE_Container_87P19 {
A_SEQUENCE_OF(struct RICserviceQuery_IEs) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ProtocolIE_Container_87P19_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P0;
extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P0_specs_1;
extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P0_1[1];
extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P0_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P1;
extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P1_specs_3;
extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P1_3[1];
extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P1_constr_3;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P2;
extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P2_specs_5;
extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P2_5[1];
extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P2_constr_5;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P3;
extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P3_specs_7;
extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P3_7[1];
extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P3_constr_7;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P4;
extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P4_specs_9;
extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P4_9[1];
extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P4_constr_9;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P5;
extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P5_specs_11;
extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P5_11[1];
extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P5_constr_11;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P6;
extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P6_specs_13;
extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P6_13[1];
extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P6_constr_13;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P7;
extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P7_specs_15;
extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P7_15[1];
extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P7_constr_15;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P8;
extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P8_specs_17;
extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P8_17[1];
extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P8_constr_17;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P9;
extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P9_specs_19;
extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P9_19[1];
extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P9_constr_19;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P10;
extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P10_specs_21;
extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P10_21[1];
extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P10_constr_21;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P11;
extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P11_specs_23;
extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P11_23[1];
extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P11_constr_23;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P12;
extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P12_specs_25;
extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P12_25[1];
extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P12_constr_25;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P13;
extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P13_specs_27;
extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P13_27[1];
extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P13_constr_27;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P14;
extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P14_specs_29;
extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P14_29[1];
extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P14_constr_29;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P15;
extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P15_specs_31;
extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P15_31[1];
extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P15_constr_31;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P16;
extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P16_specs_33;
extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P16_33[1];
extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P16_constr_33;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P17;
extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P17_specs_35;
extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P17_35[1];
extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P17_constr_35;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P18;
extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P18_specs_37;
extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P18_37[1];
extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P18_constr_37;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P19;
extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P19_specs_39;
extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P19_39[1];
extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P19_constr_39;
#ifdef __cplusplus
}
#endif
#endif /* _ProtocolIE_Container_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,23 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-Containers"
* found in "E2AP-Containers-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _ProtocolIE_ContainerList_H_
#define _ProtocolIE_ContainerList_H_
#include <asn_application.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
#endif /* _ProtocolIE_ContainerList_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,23 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-Containers"
* found in "E2AP-Containers-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _ProtocolIE_ContainerPair_H_
#define _ProtocolIE_ContainerPair_H_
#include <asn_application.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
#endif /* _ProtocolIE_ContainerPair_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,23 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-Containers"
* found in "E2AP-Containers-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _ProtocolIE_ContainerPairList_H_
#define _ProtocolIE_ContainerPairList_H_
#include <asn_application.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
#endif /* _ProtocolIE_ContainerPairList_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,757 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-Containers"
* found in "E2AP-Containers-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _ProtocolIE_Field_H_
#define _ProtocolIE_Field_H_
#include <asn_application.h>
/* Including external dependencies */
#include "ProtocolIE-ID.h"
#include "Criticality.h"
#include <ANY.h>
#include <asn_ioc.h>
#include "RICaction-ToBeSetup-Item.h"
#include "Presence.h"
#include <OPEN_TYPE.h>
#include <constr_CHOICE.h>
#include <constr_SEQUENCE.h>
#include "RICaction-Admitted-Item.h"
#include "RICaction-NotAdmitted-Item.h"
#include "RANfunction-Item.h"
#include "RANfunctionID-Item.h"
#include "RANfunctionIDcause-Item.h"
#include "RICrequestID.h"
#include "RANfunctionID.h"
#include "RICsubscriptionDetails.h"
#include "RICaction-Admitted-List.h"
#include "RICaction-NotAdmitted-List.h"
#include "CriticalityDiagnostics.h"
#include "Cause.h"
#include "RICactionID.h"
#include "RICindicationSN.h"
#include "RICindicationType.h"
#include "RICindicationHeader.h"
#include "RICindicationMessage.h"
#include "RICcallProcessID.h"
#include "RICcontrolHeader.h"
#include "RICcontrolMessage.h"
#include "RICcontrolAckRequest.h"
#include "RICcontrolStatus.h"
#include "RICcontrolOutcome.h"
#include "GlobalE2node-ID.h"
#include "RANfunctions-List.h"
#include "GlobalRIC-ID.h"
#include "RANfunctionsID-List.h"
#include "RANfunctionsIDcause-List.h"
#include "TimeToWait.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum RICaction_ToBeSetup_ItemIEs__value_PR {
RICaction_ToBeSetup_ItemIEs__value_PR_NOTHING, /* No components present */
RICaction_ToBeSetup_ItemIEs__value_PR_RICaction_ToBeSetup_Item
} RICaction_ToBeSetup_ItemIEs__value_PR;
typedef enum RICaction_Admitted_ItemIEs__value_PR {
RICaction_Admitted_ItemIEs__value_PR_NOTHING, /* No components present */
RICaction_Admitted_ItemIEs__value_PR_RICaction_Admitted_Item
} RICaction_Admitted_ItemIEs__value_PR;
typedef enum RICaction_NotAdmitted_ItemIEs__value_PR {
RICaction_NotAdmitted_ItemIEs__value_PR_NOTHING, /* No components present */
RICaction_NotAdmitted_ItemIEs__value_PR_RICaction_NotAdmitted_Item
} RICaction_NotAdmitted_ItemIEs__value_PR;
typedef enum RANfunction_ItemIEs__value_PR {
RANfunction_ItemIEs__value_PR_NOTHING, /* No components present */
RANfunction_ItemIEs__value_PR_RANfunction_Item
} RANfunction_ItemIEs__value_PR;
typedef enum RANfunctionID_ItemIEs__value_PR {
RANfunctionID_ItemIEs__value_PR_NOTHING, /* No components present */
RANfunctionID_ItemIEs__value_PR_RANfunctionID_Item
} RANfunctionID_ItemIEs__value_PR;
typedef enum RANfunctionIDcause_ItemIEs__value_PR {
RANfunctionIDcause_ItemIEs__value_PR_NOTHING, /* No components present */
RANfunctionIDcause_ItemIEs__value_PR_RANfunctionIDcause_Item
} RANfunctionIDcause_ItemIEs__value_PR;
typedef enum RICsubscriptionRequest_IEs__value_PR {
RICsubscriptionRequest_IEs__value_PR_NOTHING, /* No components present */
RICsubscriptionRequest_IEs__value_PR_RICrequestID,
RICsubscriptionRequest_IEs__value_PR_RANfunctionID,
RICsubscriptionRequest_IEs__value_PR_RICsubscriptionDetails
} RICsubscriptionRequest_IEs__value_PR;
typedef enum RICsubscriptionResponse_IEs__value_PR {
RICsubscriptionResponse_IEs__value_PR_NOTHING, /* No components present */
RICsubscriptionResponse_IEs__value_PR_RICrequestID,
RICsubscriptionResponse_IEs__value_PR_RANfunctionID,
RICsubscriptionResponse_IEs__value_PR_RICaction_Admitted_List,
RICsubscriptionResponse_IEs__value_PR_RICaction_NotAdmitted_List
} RICsubscriptionResponse_IEs__value_PR;
typedef enum RICsubscriptionFailure_IEs__value_PR {
RICsubscriptionFailure_IEs__value_PR_NOTHING, /* No components present */
RICsubscriptionFailure_IEs__value_PR_RICrequestID,
RICsubscriptionFailure_IEs__value_PR_RANfunctionID,
RICsubscriptionFailure_IEs__value_PR_RICaction_NotAdmitted_List,
RICsubscriptionFailure_IEs__value_PR_CriticalityDiagnostics
} RICsubscriptionFailure_IEs__value_PR;
typedef enum RICsubscriptionDeleteRequest_IEs__value_PR {
RICsubscriptionDeleteRequest_IEs__value_PR_NOTHING, /* No components present */
RICsubscriptionDeleteRequest_IEs__value_PR_RICrequestID,
RICsubscriptionDeleteRequest_IEs__value_PR_RANfunctionID
} RICsubscriptionDeleteRequest_IEs__value_PR;
typedef enum RICsubscriptionDeleteResponse_IEs__value_PR {
RICsubscriptionDeleteResponse_IEs__value_PR_NOTHING, /* No components present */
RICsubscriptionDeleteResponse_IEs__value_PR_RICrequestID,
RICsubscriptionDeleteResponse_IEs__value_PR_RANfunctionID
} RICsubscriptionDeleteResponse_IEs__value_PR;
typedef enum RICsubscriptionDeleteFailure_IEs__value_PR {
RICsubscriptionDeleteFailure_IEs__value_PR_NOTHING, /* No components present */
RICsubscriptionDeleteFailure_IEs__value_PR_RICrequestID,
RICsubscriptionDeleteFailure_IEs__value_PR_RANfunctionID,
RICsubscriptionDeleteFailure_IEs__value_PR_Cause,
RICsubscriptionDeleteFailure_IEs__value_PR_CriticalityDiagnostics
} RICsubscriptionDeleteFailure_IEs__value_PR;
typedef enum RICindication_IEs__value_PR {
RICindication_IEs__value_PR_NOTHING, /* No components present */
RICindication_IEs__value_PR_RICrequestID,
RICindication_IEs__value_PR_RANfunctionID,
RICindication_IEs__value_PR_RICactionID,
RICindication_IEs__value_PR_RICindicationSN,
RICindication_IEs__value_PR_RICindicationType,
RICindication_IEs__value_PR_RICindicationHeader,
RICindication_IEs__value_PR_RICindicationMessage,
RICindication_IEs__value_PR_RICcallProcessID
} RICindication_IEs__value_PR;
typedef enum RICcontrolRequest_IEs__value_PR {
RICcontrolRequest_IEs__value_PR_NOTHING, /* No components present */
RICcontrolRequest_IEs__value_PR_RICrequestID,
RICcontrolRequest_IEs__value_PR_RANfunctionID,
RICcontrolRequest_IEs__value_PR_RICcallProcessID,
RICcontrolRequest_IEs__value_PR_RICcontrolHeader,
RICcontrolRequest_IEs__value_PR_RICcontrolMessage,
RICcontrolRequest_IEs__value_PR_RICcontrolAckRequest
} RICcontrolRequest_IEs__value_PR;
typedef enum RICcontrolAcknowledge_IEs__value_PR {
RICcontrolAcknowledge_IEs__value_PR_NOTHING, /* No components present */
RICcontrolAcknowledge_IEs__value_PR_RICrequestID,
RICcontrolAcknowledge_IEs__value_PR_RANfunctionID,
RICcontrolAcknowledge_IEs__value_PR_RICcallProcessID,
RICcontrolAcknowledge_IEs__value_PR_RICcontrolStatus,
RICcontrolAcknowledge_IEs__value_PR_RICcontrolOutcome
} RICcontrolAcknowledge_IEs__value_PR;
typedef enum RICcontrolFailure_IEs__value_PR {
RICcontrolFailure_IEs__value_PR_NOTHING, /* No components present */
RICcontrolFailure_IEs__value_PR_RICrequestID,
RICcontrolFailure_IEs__value_PR_RANfunctionID,
RICcontrolFailure_IEs__value_PR_RICcallProcessID,
RICcontrolFailure_IEs__value_PR_Cause,
RICcontrolFailure_IEs__value_PR_RICcontrolOutcome
} RICcontrolFailure_IEs__value_PR;
typedef enum ErrorIndication_IEs__value_PR {
ErrorIndication_IEs__value_PR_NOTHING, /* No components present */
ErrorIndication_IEs__value_PR_RICrequestID,
ErrorIndication_IEs__value_PR_RANfunctionID,
ErrorIndication_IEs__value_PR_Cause,
ErrorIndication_IEs__value_PR_CriticalityDiagnostics
} ErrorIndication_IEs__value_PR;
typedef enum E2setupRequestIEs__value_PR {
E2setupRequestIEs__value_PR_NOTHING, /* No components present */
E2setupRequestIEs__value_PR_GlobalE2node_ID,
E2setupRequestIEs__value_PR_RANfunctions_List
} E2setupRequestIEs__value_PR;
typedef enum E2setupResponseIEs__value_PR {
E2setupResponseIEs__value_PR_NOTHING, /* No components present */
E2setupResponseIEs__value_PR_GlobalRIC_ID,
E2setupResponseIEs__value_PR_RANfunctionsID_List,
E2setupResponseIEs__value_PR_RANfunctionsIDcause_List
} E2setupResponseIEs__value_PR;
typedef enum E2setupFailureIEs__value_PR {
E2setupFailureIEs__value_PR_NOTHING, /* No components present */
E2setupFailureIEs__value_PR_Cause,
E2setupFailureIEs__value_PR_TimeToWait,
E2setupFailureIEs__value_PR_CriticalityDiagnostics
} E2setupFailureIEs__value_PR;
typedef enum ResetRequestIEs__value_PR {
ResetRequestIEs__value_PR_NOTHING, /* No components present */
ResetRequestIEs__value_PR_Cause
} ResetRequestIEs__value_PR;
typedef enum ResetResponseIEs__value_PR {
ResetResponseIEs__value_PR_NOTHING, /* No components present */
ResetResponseIEs__value_PR_CriticalityDiagnostics
} ResetResponseIEs__value_PR;
typedef enum RICserviceUpdate_IEs__value_PR {
RICserviceUpdate_IEs__value_PR_NOTHING, /* No components present */
RICserviceUpdate_IEs__value_PR_RANfunctions_List,
RICserviceUpdate_IEs__value_PR_RANfunctionsID_List
} RICserviceUpdate_IEs__value_PR;
typedef enum RICserviceUpdateAcknowledge_IEs__value_PR {
RICserviceUpdateAcknowledge_IEs__value_PR_NOTHING, /* No components present */
RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsID_List,
RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsIDcause_List
} RICserviceUpdateAcknowledge_IEs__value_PR;
typedef enum RICserviceUpdateFailure_IEs__value_PR {
RICserviceUpdateFailure_IEs__value_PR_NOTHING, /* No components present */
RICserviceUpdateFailure_IEs__value_PR_RANfunctionsIDcause_List,
RICserviceUpdateFailure_IEs__value_PR_TimeToWait,
RICserviceUpdateFailure_IEs__value_PR_CriticalityDiagnostics
} RICserviceUpdateFailure_IEs__value_PR;
typedef enum RICserviceQuery_IEs__value_PR {
RICserviceQuery_IEs__value_PR_NOTHING, /* No components present */
RICserviceQuery_IEs__value_PR_RANfunctionsID_List
} RICserviceQuery_IEs__value_PR;
/* ProtocolIE-Field */
typedef struct RICaction_ToBeSetup_ItemIEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct RICaction_ToBeSetup_ItemIEs__value {
RICaction_ToBeSetup_ItemIEs__value_PR present;
union RICaction_ToBeSetup_ItemIEs__value_u {
RICaction_ToBeSetup_Item_t RICaction_ToBeSetup_Item;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICaction_ToBeSetup_ItemIEs_t;
typedef struct RICaction_Admitted_ItemIEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct RICaction_Admitted_ItemIEs__value {
RICaction_Admitted_ItemIEs__value_PR present;
union RICaction_Admitted_ItemIEs__value_u {
RICaction_Admitted_Item_t RICaction_Admitted_Item;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICaction_Admitted_ItemIEs_t;
typedef struct RICaction_NotAdmitted_ItemIEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct RICaction_NotAdmitted_ItemIEs__value {
RICaction_NotAdmitted_ItemIEs__value_PR present;
union RICaction_NotAdmitted_ItemIEs__value_u {
RICaction_NotAdmitted_Item_t RICaction_NotAdmitted_Item;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICaction_NotAdmitted_ItemIEs_t;
typedef struct RANfunction_ItemIEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct RANfunction_ItemIEs__value {
RANfunction_ItemIEs__value_PR present;
union RANfunction_ItemIEs__value_u {
RANfunction_Item_t RANfunction_Item;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RANfunction_ItemIEs_t;
typedef struct RANfunctionID_ItemIEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct RANfunctionID_ItemIEs__value {
RANfunctionID_ItemIEs__value_PR present;
union RANfunctionID_ItemIEs__value_u {
RANfunctionID_Item_t RANfunctionID_Item;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RANfunctionID_ItemIEs_t;
typedef struct RANfunctionIDcause_ItemIEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct RANfunctionIDcause_ItemIEs__value {
RANfunctionIDcause_ItemIEs__value_PR present;
union RANfunctionIDcause_ItemIEs__value_u {
RANfunctionIDcause_Item_t RANfunctionIDcause_Item;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RANfunctionIDcause_ItemIEs_t;
typedef struct RICsubscriptionRequest_IEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct RICsubscriptionRequest_IEs__value {
RICsubscriptionRequest_IEs__value_PR present;
union RICsubscriptionRequest_IEs__value_u {
RICrequestID_t RICrequestID;
RANfunctionID_t RANfunctionID;
RICsubscriptionDetails_t RICsubscriptionDetails;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICsubscriptionRequest_IEs_t;
typedef struct RICsubscriptionResponse_IEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct RICsubscriptionResponse_IEs__value {
RICsubscriptionResponse_IEs__value_PR present;
union RICsubscriptionResponse_IEs__value_u {
RICrequestID_t RICrequestID;
RANfunctionID_t RANfunctionID;
RICaction_Admitted_List_t RICaction_Admitted_List;
RICaction_NotAdmitted_List_t RICaction_NotAdmitted_List;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICsubscriptionResponse_IEs_t;
typedef struct RICsubscriptionFailure_IEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct RICsubscriptionFailure_IEs__value {
RICsubscriptionFailure_IEs__value_PR present;
union RICsubscriptionFailure_IEs__value_u {
RICrequestID_t RICrequestID;
RANfunctionID_t RANfunctionID;
RICaction_NotAdmitted_List_t RICaction_NotAdmitted_List;
CriticalityDiagnostics_t CriticalityDiagnostics;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICsubscriptionFailure_IEs_t;
typedef struct RICsubscriptionDeleteRequest_IEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct RICsubscriptionDeleteRequest_IEs__value {
RICsubscriptionDeleteRequest_IEs__value_PR present;
union RICsubscriptionDeleteRequest_IEs__value_u {
RICrequestID_t RICrequestID;
RANfunctionID_t RANfunctionID;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICsubscriptionDeleteRequest_IEs_t;
typedef struct RICsubscriptionDeleteResponse_IEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct RICsubscriptionDeleteResponse_IEs__value {
RICsubscriptionDeleteResponse_IEs__value_PR present;
union RICsubscriptionDeleteResponse_IEs__value_u {
RICrequestID_t RICrequestID;
RANfunctionID_t RANfunctionID;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICsubscriptionDeleteResponse_IEs_t;
typedef struct RICsubscriptionDeleteFailure_IEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct RICsubscriptionDeleteFailure_IEs__value {
RICsubscriptionDeleteFailure_IEs__value_PR present;
union RICsubscriptionDeleteFailure_IEs__value_u {
RICrequestID_t RICrequestID;
RANfunctionID_t RANfunctionID;
Cause_t Cause;
CriticalityDiagnostics_t CriticalityDiagnostics;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICsubscriptionDeleteFailure_IEs_t;
typedef struct RICindication_IEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct RICindication_IEs__value {
RICindication_IEs__value_PR present;
union RICindication_IEs__value_u {
RICrequestID_t RICrequestID;
RANfunctionID_t RANfunctionID;
RICactionID_t RICactionID;
RICindicationSN_t RICindicationSN;
RICindicationType_t RICindicationType;
RICindicationHeader_t RICindicationHeader;
RICindicationMessage_t RICindicationMessage;
RICcallProcessID_t RICcallProcessID;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICindication_IEs_t;
typedef struct RICcontrolRequest_IEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct RICcontrolRequest_IEs__value {
RICcontrolRequest_IEs__value_PR present;
union RICcontrolRequest_IEs__value_u {
RICrequestID_t RICrequestID;
RANfunctionID_t RANfunctionID;
RICcallProcessID_t RICcallProcessID;
RICcontrolHeader_t RICcontrolHeader;
RICcontrolMessage_t RICcontrolMessage;
RICcontrolAckRequest_t RICcontrolAckRequest;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICcontrolRequest_IEs_t;
typedef struct RICcontrolAcknowledge_IEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct RICcontrolAcknowledge_IEs__value {
RICcontrolAcknowledge_IEs__value_PR present;
union RICcontrolAcknowledge_IEs__value_u {
RICrequestID_t RICrequestID;
RANfunctionID_t RANfunctionID;
RICcallProcessID_t RICcallProcessID;
RICcontrolStatus_t RICcontrolStatus;
RICcontrolOutcome_t RICcontrolOutcome;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICcontrolAcknowledge_IEs_t;
typedef struct RICcontrolFailure_IEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct RICcontrolFailure_IEs__value {
RICcontrolFailure_IEs__value_PR present;
union RICcontrolFailure_IEs__value_u {
RICrequestID_t RICrequestID;
RANfunctionID_t RANfunctionID;
RICcallProcessID_t RICcallProcessID;
Cause_t Cause;
RICcontrolOutcome_t RICcontrolOutcome;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICcontrolFailure_IEs_t;
typedef struct ErrorIndication_IEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct ErrorIndication_IEs__value {
ErrorIndication_IEs__value_PR present;
union ErrorIndication_IEs__value_u {
RICrequestID_t RICrequestID;
RANfunctionID_t RANfunctionID;
Cause_t Cause;
CriticalityDiagnostics_t CriticalityDiagnostics;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ErrorIndication_IEs_t;
typedef struct E2setupRequestIEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct E2setupRequestIEs__value {
E2setupRequestIEs__value_PR present;
union E2setupRequestIEs__value_u {
GlobalE2node_ID_t GlobalE2node_ID;
RANfunctions_List_t RANfunctions_List;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} E2setupRequestIEs_t;
typedef struct E2setupResponseIEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct E2setupResponseIEs__value {
E2setupResponseIEs__value_PR present;
union E2setupResponseIEs__value_u {
GlobalRIC_ID_t GlobalRIC_ID;
RANfunctionsID_List_t RANfunctionsID_List;
RANfunctionsIDcause_List_t RANfunctionsIDcause_List;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} E2setupResponseIEs_t;
typedef struct E2setupFailureIEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct E2setupFailureIEs__value {
E2setupFailureIEs__value_PR present;
union E2setupFailureIEs__value_u {
Cause_t Cause;
TimeToWait_t TimeToWait;
CriticalityDiagnostics_t CriticalityDiagnostics;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} E2setupFailureIEs_t;
typedef struct ResetRequestIEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct ResetRequestIEs__value {
ResetRequestIEs__value_PR present;
union ResetRequestIEs__value_u {
Cause_t Cause;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ResetRequestIEs_t;
typedef struct ResetResponseIEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct ResetResponseIEs__value {
ResetResponseIEs__value_PR present;
union ResetResponseIEs__value_u {
CriticalityDiagnostics_t CriticalityDiagnostics;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ResetResponseIEs_t;
typedef struct RICserviceUpdate_IEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct RICserviceUpdate_IEs__value {
RICserviceUpdate_IEs__value_PR present;
union RICserviceUpdate_IEs__value_u {
RANfunctions_List_t RANfunctions_List;
RANfunctionsID_List_t RANfunctionsID_List;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICserviceUpdate_IEs_t;
typedef struct RICserviceUpdateAcknowledge_IEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct RICserviceUpdateAcknowledge_IEs__value {
RICserviceUpdateAcknowledge_IEs__value_PR present;
union RICserviceUpdateAcknowledge_IEs__value_u {
RANfunctionsID_List_t RANfunctionsID_List;
RANfunctionsIDcause_List_t RANfunctionsIDcause_List;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICserviceUpdateAcknowledge_IEs_t;
typedef struct RICserviceUpdateFailure_IEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct RICserviceUpdateFailure_IEs__value {
RICserviceUpdateFailure_IEs__value_PR present;
union RICserviceUpdateFailure_IEs__value_u {
RANfunctionsIDcause_List_t RANfunctionsIDcause_List;
TimeToWait_t TimeToWait;
CriticalityDiagnostics_t CriticalityDiagnostics;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICserviceUpdateFailure_IEs_t;
typedef struct RICserviceQuery_IEs {
ProtocolIE_ID_t id;
Criticality_t criticality;
struct RICserviceQuery_IEs__value {
RICserviceQuery_IEs__value_PR present;
union RICserviceQuery_IEs__value_u {
RANfunctionsID_List_t RANfunctionsID_List;
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} value;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICserviceQuery_IEs_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1;
extern asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[3];
extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5;
extern asn_TYPE_member_t asn_MBR_RICaction_Admitted_ItemIEs_5[3];
extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9;
extern asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[3];
extern asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_13;
extern asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_13[3];
extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_17;
extern asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_17[3];
extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_21;
extern asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_21[3];
extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_25;
extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_25[3];
extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_29;
extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_29[3];
extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_33;
extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_33[3];
extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_37;
extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_37[3];
extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_41;
extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_41[3];
extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_45;
extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_45[3];
extern asn_TYPE_descriptor_t asn_DEF_RICindication_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_49;
extern asn_TYPE_member_t asn_MBR_RICindication_IEs_49[3];
extern asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_53;
extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_53[3];
extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_57;
extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_57[3];
extern asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_61;
extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_61[3];
extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_65;
extern asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_65[3];
extern asn_TYPE_descriptor_t asn_DEF_E2setupRequestIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_69;
extern asn_TYPE_member_t asn_MBR_E2setupRequestIEs_69[3];
extern asn_TYPE_descriptor_t asn_DEF_E2setupResponseIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_73;
extern asn_TYPE_member_t asn_MBR_E2setupResponseIEs_73[3];
extern asn_TYPE_descriptor_t asn_DEF_E2setupFailureIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_77;
extern asn_TYPE_member_t asn_MBR_E2setupFailureIEs_77[3];
extern asn_TYPE_descriptor_t asn_DEF_ResetRequestIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_81;
extern asn_TYPE_member_t asn_MBR_ResetRequestIEs_81[3];
extern asn_TYPE_descriptor_t asn_DEF_ResetResponseIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_85;
extern asn_TYPE_member_t asn_MBR_ResetResponseIEs_85[3];
extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_89;
extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_89[3];
extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_93;
extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_93[3];
extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_97;
extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_97[3];
extern asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_101;
extern asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_101[3];
#ifdef __cplusplus
}
#endif
#endif /* _ProtocolIE_Field_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,23 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-Containers"
* found in "E2AP-Containers-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _ProtocolIE_FieldPair_H_
#define _ProtocolIE_FieldPair_H_
#include <asn_application.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
#endif /* _ProtocolIE_FieldPair_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,78 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-CommonDataTypes"
* found in "E2AP-CommonDataTypes-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _ProtocolIE_ID_H_
#define _ProtocolIE_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeInteger.h>
#ifdef __cplusplus
extern "C" {
#endif
/* ProtocolIE-ID */
typedef long ProtocolIE_ID_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID;
asn_struct_free_f ProtocolIE_ID_free;
asn_struct_print_f ProtocolIE_ID_print;
asn_constr_check_f ProtocolIE_ID_constraint;
ber_type_decoder_f ProtocolIE_ID_decode_ber;
der_type_encoder_f ProtocolIE_ID_encode_der;
xer_type_decoder_f ProtocolIE_ID_decode_xer;
xer_type_encoder_f ProtocolIE_ID_encode_xer;
oer_type_decoder_f ProtocolIE_ID_decode_oer;
oer_type_encoder_f ProtocolIE_ID_encode_oer;
per_type_decoder_f ProtocolIE_ID_decode_uper;
per_type_encoder_f ProtocolIE_ID_encode_uper;
per_type_decoder_f ProtocolIE_ID_decode_aper;
per_type_encoder_f ProtocolIE_ID_encode_aper;
#define ProtocolIE_ID_id_Cause ((ProtocolIE_ID_t)1)
#define ProtocolIE_ID_id_CriticalityDiagnostics ((ProtocolIE_ID_t)2)
#define ProtocolIE_ID_id_GlobalE2node_ID ((ProtocolIE_ID_t)3)
#define ProtocolIE_ID_id_GlobalRIC_ID ((ProtocolIE_ID_t)4)
#define ProtocolIE_ID_id_RANfunctionID ((ProtocolIE_ID_t)5)
#define ProtocolIE_ID_id_RANfunctionID_Item ((ProtocolIE_ID_t)6)
#define ProtocolIE_ID_id_RANfunctionIEcause_Item ((ProtocolIE_ID_t)7)
#define ProtocolIE_ID_id_RANfunction_Item ((ProtocolIE_ID_t)8)
#define ProtocolIE_ID_id_RANfunctionsAccepted ((ProtocolIE_ID_t)9)
#define ProtocolIE_ID_id_RANfunctionsAdded ((ProtocolIE_ID_t)10)
#define ProtocolIE_ID_id_RANfunctionsDeleted ((ProtocolIE_ID_t)11)
#define ProtocolIE_ID_id_RANfunctionsModified ((ProtocolIE_ID_t)12)
#define ProtocolIE_ID_id_RANfunctionsRejected ((ProtocolIE_ID_t)13)
#define ProtocolIE_ID_id_RICaction_Admitted_Item ((ProtocolIE_ID_t)14)
#define ProtocolIE_ID_id_RICactionID ((ProtocolIE_ID_t)15)
#define ProtocolIE_ID_id_RICaction_NotAdmitted_Item ((ProtocolIE_ID_t)16)
#define ProtocolIE_ID_id_RICactions_Admitted ((ProtocolIE_ID_t)17)
#define ProtocolIE_ID_id_RICactions_NotAdmitted ((ProtocolIE_ID_t)18)
#define ProtocolIE_ID_id_RICaction_ToBeSetup_Item ((ProtocolIE_ID_t)19)
#define ProtocolIE_ID_id_RICcallProcessID ((ProtocolIE_ID_t)20)
#define ProtocolIE_ID_id_RICcontrolAckRequest ((ProtocolIE_ID_t)21)
#define ProtocolIE_ID_id_RICcontrolHeader ((ProtocolIE_ID_t)22)
#define ProtocolIE_ID_id_RICcontrolMessage ((ProtocolIE_ID_t)23)
#define ProtocolIE_ID_id_RICcontrolStatus ((ProtocolIE_ID_t)24)
#define ProtocolIE_ID_id_RICindicationHeader ((ProtocolIE_ID_t)25)
#define ProtocolIE_ID_id_RICindicationMessage ((ProtocolIE_ID_t)26)
#define ProtocolIE_ID_id_RICindicationSN ((ProtocolIE_ID_t)27)
#define ProtocolIE_ID_id_RICindicationType ((ProtocolIE_ID_t)28)
#define ProtocolIE_ID_id_RICrequestID ((ProtocolIE_ID_t)29)
#define ProtocolIE_ID_id_RICsubscriptionDetails ((ProtocolIE_ID_t)30)
#define ProtocolIE_ID_id_TimeToWait ((ProtocolIE_ID_t)31)
#define ProtocolIE_ID_id_RICcontrolOutcome ((ProtocolIE_ID_t)32)
#ifdef __cplusplus
}
#endif
#endif /* _ProtocolIE_ID_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,120 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-Containers"
* found in "E2AP-Containers-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _ProtocolIE_SingleContainer_H_
#define _ProtocolIE_SingleContainer_H_
#include <asn_application.h>
/* Including external dependencies */
#include "ProtocolIE-Field.h"
#ifdef __cplusplus
extern "C" {
#endif
/* ProtocolIE-SingleContainer */
typedef RICaction_ToBeSetup_ItemIEs_t ProtocolIE_SingleContainer_90P0_t;
typedef RICaction_Admitted_ItemIEs_t ProtocolIE_SingleContainer_90P1_t;
typedef RICaction_NotAdmitted_ItemIEs_t ProtocolIE_SingleContainer_90P2_t;
typedef RANfunction_ItemIEs_t ProtocolIE_SingleContainer_90P3_t;
typedef RANfunctionID_ItemIEs_t ProtocolIE_SingleContainer_90P4_t;
typedef RANfunctionIDcause_ItemIEs_t ProtocolIE_SingleContainer_90P5_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P0;
asn_struct_free_f ProtocolIE_SingleContainer_90P0_free;
asn_struct_print_f ProtocolIE_SingleContainer_90P0_print;
asn_constr_check_f ProtocolIE_SingleContainer_90P0_constraint;
ber_type_decoder_f ProtocolIE_SingleContainer_90P0_decode_ber;
der_type_encoder_f ProtocolIE_SingleContainer_90P0_encode_der;
xer_type_decoder_f ProtocolIE_SingleContainer_90P0_decode_xer;
xer_type_encoder_f ProtocolIE_SingleContainer_90P0_encode_xer;
oer_type_decoder_f ProtocolIE_SingleContainer_90P0_decode_oer;
oer_type_encoder_f ProtocolIE_SingleContainer_90P0_encode_oer;
per_type_decoder_f ProtocolIE_SingleContainer_90P0_decode_uper;
per_type_encoder_f ProtocolIE_SingleContainer_90P0_encode_uper;
per_type_decoder_f ProtocolIE_SingleContainer_90P0_decode_aper;
per_type_encoder_f ProtocolIE_SingleContainer_90P0_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P1;
asn_struct_free_f ProtocolIE_SingleContainer_90P1_free;
asn_struct_print_f ProtocolIE_SingleContainer_90P1_print;
asn_constr_check_f ProtocolIE_SingleContainer_90P1_constraint;
ber_type_decoder_f ProtocolIE_SingleContainer_90P1_decode_ber;
der_type_encoder_f ProtocolIE_SingleContainer_90P1_encode_der;
xer_type_decoder_f ProtocolIE_SingleContainer_90P1_decode_xer;
xer_type_encoder_f ProtocolIE_SingleContainer_90P1_encode_xer;
oer_type_decoder_f ProtocolIE_SingleContainer_90P1_decode_oer;
oer_type_encoder_f ProtocolIE_SingleContainer_90P1_encode_oer;
per_type_decoder_f ProtocolIE_SingleContainer_90P1_decode_uper;
per_type_encoder_f ProtocolIE_SingleContainer_90P1_encode_uper;
per_type_decoder_f ProtocolIE_SingleContainer_90P1_decode_aper;
per_type_encoder_f ProtocolIE_SingleContainer_90P1_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P2;
asn_struct_free_f ProtocolIE_SingleContainer_90P2_free;
asn_struct_print_f ProtocolIE_SingleContainer_90P2_print;
asn_constr_check_f ProtocolIE_SingleContainer_90P2_constraint;
ber_type_decoder_f ProtocolIE_SingleContainer_90P2_decode_ber;
der_type_encoder_f ProtocolIE_SingleContainer_90P2_encode_der;
xer_type_decoder_f ProtocolIE_SingleContainer_90P2_decode_xer;
xer_type_encoder_f ProtocolIE_SingleContainer_90P2_encode_xer;
oer_type_decoder_f ProtocolIE_SingleContainer_90P2_decode_oer;
oer_type_encoder_f ProtocolIE_SingleContainer_90P2_encode_oer;
per_type_decoder_f ProtocolIE_SingleContainer_90P2_decode_uper;
per_type_encoder_f ProtocolIE_SingleContainer_90P2_encode_uper;
per_type_decoder_f ProtocolIE_SingleContainer_90P2_decode_aper;
per_type_encoder_f ProtocolIE_SingleContainer_90P2_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P3;
asn_struct_free_f ProtocolIE_SingleContainer_90P3_free;
asn_struct_print_f ProtocolIE_SingleContainer_90P3_print;
asn_constr_check_f ProtocolIE_SingleContainer_90P3_constraint;
ber_type_decoder_f ProtocolIE_SingleContainer_90P3_decode_ber;
der_type_encoder_f ProtocolIE_SingleContainer_90P3_encode_der;
xer_type_decoder_f ProtocolIE_SingleContainer_90P3_decode_xer;
xer_type_encoder_f ProtocolIE_SingleContainer_90P3_encode_xer;
oer_type_decoder_f ProtocolIE_SingleContainer_90P3_decode_oer;
oer_type_encoder_f ProtocolIE_SingleContainer_90P3_encode_oer;
per_type_decoder_f ProtocolIE_SingleContainer_90P3_decode_uper;
per_type_encoder_f ProtocolIE_SingleContainer_90P3_encode_uper;
per_type_decoder_f ProtocolIE_SingleContainer_90P3_decode_aper;
per_type_encoder_f ProtocolIE_SingleContainer_90P3_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P4;
asn_struct_free_f ProtocolIE_SingleContainer_90P4_free;
asn_struct_print_f ProtocolIE_SingleContainer_90P4_print;
asn_constr_check_f ProtocolIE_SingleContainer_90P4_constraint;
ber_type_decoder_f ProtocolIE_SingleContainer_90P4_decode_ber;
der_type_encoder_f ProtocolIE_SingleContainer_90P4_encode_der;
xer_type_decoder_f ProtocolIE_SingleContainer_90P4_decode_xer;
xer_type_encoder_f ProtocolIE_SingleContainer_90P4_encode_xer;
oer_type_decoder_f ProtocolIE_SingleContainer_90P4_decode_oer;
oer_type_encoder_f ProtocolIE_SingleContainer_90P4_encode_oer;
per_type_decoder_f ProtocolIE_SingleContainer_90P4_decode_uper;
per_type_encoder_f ProtocolIE_SingleContainer_90P4_encode_uper;
per_type_decoder_f ProtocolIE_SingleContainer_90P4_decode_aper;
per_type_encoder_f ProtocolIE_SingleContainer_90P4_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P5;
asn_struct_free_f ProtocolIE_SingleContainer_90P5_free;
asn_struct_print_f ProtocolIE_SingleContainer_90P5_print;
asn_constr_check_f ProtocolIE_SingleContainer_90P5_constraint;
ber_type_decoder_f ProtocolIE_SingleContainer_90P5_decode_ber;
der_type_encoder_f ProtocolIE_SingleContainer_90P5_encode_der;
xer_type_decoder_f ProtocolIE_SingleContainer_90P5_decode_xer;
xer_type_encoder_f ProtocolIE_SingleContainer_90P5_encode_xer;
oer_type_decoder_f ProtocolIE_SingleContainer_90P5_decode_oer;
oer_type_encoder_f ProtocolIE_SingleContainer_90P5_encode_oer;
per_type_decoder_f ProtocolIE_SingleContainer_90P5_decode_uper;
per_type_encoder_f ProtocolIE_SingleContainer_90P5_encode_uper;
per_type_decoder_f ProtocolIE_SingleContainer_90P5_decode_aper;
per_type_encoder_f ProtocolIE_SingleContainer_90P5_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _ProtocolIE_SingleContainer_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,48 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RANfunction_Item_H_
#define _RANfunction_Item_H_
#include <asn_application.h>
/* Including external dependencies */
#include "RANfunctionID.h"
#include "RANfunctionDefinition.h"
#include "RANfunctionRevision.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RANfunction-Item */
typedef struct RANfunction_Item {
RANfunctionID_t ranFunctionID;
RANfunctionDefinition_t ranFunctionDefinition;
RANfunctionRevision_t ranFunctionRevision;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RANfunction_Item_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANfunction_Item;
extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Item_specs_1;
extern asn_TYPE_member_t asn_MBR_RANfunction_Item_1[3];
#ifdef __cplusplus
}
#endif
#endif /* _RANfunction_Item_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,45 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RANfunctionDefinition_H_
#define _RANfunctionDefinition_H_
#include <asn_application.h>
/* Including external dependencies */
#include <OCTET_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RANfunctionDefinition */
typedef OCTET_STRING_t RANfunctionDefinition_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANfunctionDefinition;
asn_struct_free_f RANfunctionDefinition_free;
asn_struct_print_f RANfunctionDefinition_print;
asn_constr_check_f RANfunctionDefinition_constraint;
ber_type_decoder_f RANfunctionDefinition_decode_ber;
der_type_encoder_f RANfunctionDefinition_encode_der;
xer_type_decoder_f RANfunctionDefinition_decode_xer;
xer_type_encoder_f RANfunctionDefinition_encode_xer;
oer_type_decoder_f RANfunctionDefinition_decode_oer;
oer_type_encoder_f RANfunctionDefinition_encode_oer;
per_type_decoder_f RANfunctionDefinition_decode_uper;
per_type_encoder_f RANfunctionDefinition_encode_uper;
per_type_decoder_f RANfunctionDefinition_decode_aper;
per_type_encoder_f RANfunctionDefinition_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _RANfunctionDefinition_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,46 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RANfunctionID_Item_H_
#define _RANfunctionID_Item_H_
#include <asn_application.h>
/* Including external dependencies */
#include "RANfunctionID.h"
#include "RANfunctionRevision.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RANfunctionID-Item */
typedef struct RANfunctionID_Item {
RANfunctionID_t ranFunctionID;
RANfunctionRevision_t ranFunctionRevision;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RANfunctionID_Item_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_Item;
extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_Item_specs_1;
extern asn_TYPE_member_t asn_MBR_RANfunctionID_Item_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _RANfunctionID_Item_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,46 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RANfunctionID_H_
#define _RANfunctionID_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeInteger.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RANfunctionID */
typedef long RANfunctionID_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_RANfunctionID_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID;
asn_struct_free_f RANfunctionID_free;
asn_struct_print_f RANfunctionID_print;
asn_constr_check_f RANfunctionID_constraint;
ber_type_decoder_f RANfunctionID_decode_ber;
der_type_encoder_f RANfunctionID_encode_der;
xer_type_decoder_f RANfunctionID_decode_xer;
xer_type_encoder_f RANfunctionID_encode_xer;
oer_type_decoder_f RANfunctionID_decode_oer;
oer_type_encoder_f RANfunctionID_encode_oer;
per_type_decoder_f RANfunctionID_decode_uper;
per_type_encoder_f RANfunctionID_encode_uper;
per_type_decoder_f RANfunctionID_decode_aper;
per_type_encoder_f RANfunctionID_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _RANfunctionID_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,46 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RANfunctionIDcause_Item_H_
#define _RANfunctionIDcause_Item_H_
#include <asn_application.h>
/* Including external dependencies */
#include "RANfunctionID.h"
#include "Cause.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RANfunctionIDcause-Item */
typedef struct RANfunctionIDcause_Item {
RANfunctionID_t ranFunctionID;
Cause_t cause;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RANfunctionIDcause_Item_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_Item;
extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_Item_specs_1;
extern asn_TYPE_member_t asn_MBR_RANfunctionIDcause_Item_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _RANfunctionIDcause_Item_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,46 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RANfunctionRevision_H_
#define _RANfunctionRevision_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeInteger.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RANfunctionRevision */
typedef long RANfunctionRevision_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_RANfunctionRevision_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_RANfunctionRevision;
asn_struct_free_f RANfunctionRevision_free;
asn_struct_print_f RANfunctionRevision_print;
asn_constr_check_f RANfunctionRevision_constraint;
ber_type_decoder_f RANfunctionRevision_decode_ber;
der_type_encoder_f RANfunctionRevision_encode_der;
xer_type_decoder_f RANfunctionRevision_decode_xer;
xer_type_encoder_f RANfunctionRevision_encode_xer;
oer_type_decoder_f RANfunctionRevision_decode_oer;
oer_type_encoder_f RANfunctionRevision_encode_oer;
per_type_decoder_f RANfunctionRevision_decode_uper;
per_type_encoder_f RANfunctionRevision_encode_uper;
per_type_decoder_f RANfunctionRevision_decode_aper;
per_type_encoder_f RANfunctionRevision_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _RANfunctionRevision_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,44 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RANfunctions_List_H_
#define _RANfunctions_List_H_
#include <asn_application.h>
/* Including external dependencies */
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct ProtocolIE_SingleContainer;
/* RANfunctions-List */
typedef struct RANfunctions_List {
A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RANfunctions_List_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANfunctions_List;
extern asn_SET_OF_specifics_t asn_SPC_RANfunctions_List_specs_1;
extern asn_TYPE_member_t asn_MBR_RANfunctions_List_1[1];
extern asn_per_constraints_t asn_PER_type_RANfunctions_List_constr_1;
#ifdef __cplusplus
}
#endif
#endif /* _RANfunctions_List_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,44 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RANfunctionsID_List_H_
#define _RANfunctionsID_List_H_
#include <asn_application.h>
/* Including external dependencies */
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct ProtocolIE_SingleContainer;
/* RANfunctionsID-List */
typedef struct RANfunctionsID_List {
A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RANfunctionsID_List_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List;
extern asn_SET_OF_specifics_t asn_SPC_RANfunctionsID_List_specs_1;
extern asn_TYPE_member_t asn_MBR_RANfunctionsID_List_1[1];
extern asn_per_constraints_t asn_PER_type_RANfunctionsID_List_constr_1;
#ifdef __cplusplus
}
#endif
#endif /* _RANfunctionsID_List_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,44 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RANfunctionsIDcause_List_H_
#define _RANfunctionsIDcause_List_H_
#include <asn_application.h>
/* Including external dependencies */
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct ProtocolIE_SingleContainer;
/* RANfunctionsIDcause-List */
typedef struct RANfunctionsIDcause_List {
A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RANfunctionsIDcause_List_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List;
extern asn_SET_OF_specifics_t asn_SPC_RANfunctionsIDcause_List_specs_1;
extern asn_TYPE_member_t asn_MBR_RANfunctionsIDcause_List_1[1];
extern asn_per_constraints_t asn_PER_type_RANfunctionsIDcause_List_constr_1;
#ifdef __cplusplus
}
#endif
#endif /* _RANfunctionsIDcause_List_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,44 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICaction_Admitted_Item_H_
#define _RICaction_Admitted_Item_H_
#include <asn_application.h>
/* Including external dependencies */
#include "RICactionID.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICaction-Admitted-Item */
typedef struct RICaction_Admitted_Item {
RICactionID_t ricActionID;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICaction_Admitted_Item_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_Item;
extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_Item_specs_1;
extern asn_TYPE_member_t asn_MBR_RICaction_Admitted_Item_1[1];
#ifdef __cplusplus
}
#endif
#endif /* _RICaction_Admitted_Item_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,44 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICaction_Admitted_List_H_
#define _RICaction_Admitted_List_H_
#include <asn_application.h>
/* Including external dependencies */
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct ProtocolIE_SingleContainer;
/* RICaction-Admitted-List */
typedef struct RICaction_Admitted_List {
A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICaction_Admitted_List_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List;
extern asn_SET_OF_specifics_t asn_SPC_RICaction_Admitted_List_specs_1;
extern asn_TYPE_member_t asn_MBR_RICaction_Admitted_List_1[1];
extern asn_per_constraints_t asn_PER_type_RICaction_Admitted_List_constr_1;
#ifdef __cplusplus
}
#endif
#endif /* _RICaction_Admitted_List_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,46 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICaction_NotAdmitted_Item_H_
#define _RICaction_NotAdmitted_Item_H_
#include <asn_application.h>
/* Including external dependencies */
#include "RICactionID.h"
#include "Cause.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICaction-NotAdmitted-Item */
typedef struct RICaction_NotAdmitted_Item {
RICactionID_t ricActionID;
Cause_t cause;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICaction_NotAdmitted_Item_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_Item;
extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_Item_specs_1;
extern asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_Item_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _RICaction_NotAdmitted_Item_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,44 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICaction_NotAdmitted_List_H_
#define _RICaction_NotAdmitted_List_H_
#include <asn_application.h>
/* Including external dependencies */
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct ProtocolIE_SingleContainer;
/* RICaction-NotAdmitted-List */
typedef struct RICaction_NotAdmitted_List {
A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICaction_NotAdmitted_List_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List;
extern asn_SET_OF_specifics_t asn_SPC_RICaction_NotAdmitted_List_specs_1;
extern asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_List_1[1];
extern asn_per_constraints_t asn_PER_type_RICaction_NotAdmitted_List_constr_1;
#ifdef __cplusplus
}
#endif
#endif /* _RICaction_NotAdmitted_List_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,52 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICaction_ToBeSetup_Item_H_
#define _RICaction_ToBeSetup_Item_H_
#include <asn_application.h>
/* Including external dependencies */
#include "RICactionID.h"
#include "RICactionType.h"
#include "RICactionDefinition.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct RICsubsequentAction;
/* RICaction-ToBeSetup-Item */
typedef struct RICaction_ToBeSetup_Item {
RICactionID_t ricActionID;
RICactionType_t ricActionType;
RICactionDefinition_t *ricActionDefinition; /* OPTIONAL */
struct RICsubsequentAction *ricSubsequentAction; /* OPTIONAL */
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICaction_ToBeSetup_Item_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_Item;
extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_Item_specs_1;
extern asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_Item_1[4];
#ifdef __cplusplus
}
#endif
#endif /* _RICaction_ToBeSetup_Item_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,45 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICactionDefinition_H_
#define _RICactionDefinition_H_
#include <asn_application.h>
/* Including external dependencies */
#include <OCTET_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICactionDefinition */
typedef OCTET_STRING_t RICactionDefinition_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICactionDefinition;
asn_struct_free_f RICactionDefinition_free;
asn_struct_print_f RICactionDefinition_print;
asn_constr_check_f RICactionDefinition_constraint;
ber_type_decoder_f RICactionDefinition_decode_ber;
der_type_encoder_f RICactionDefinition_encode_der;
xer_type_decoder_f RICactionDefinition_decode_xer;
xer_type_encoder_f RICactionDefinition_encode_xer;
oer_type_decoder_f RICactionDefinition_decode_oer;
oer_type_encoder_f RICactionDefinition_encode_oer;
per_type_decoder_f RICactionDefinition_decode_uper;
per_type_encoder_f RICactionDefinition_encode_uper;
per_type_decoder_f RICactionDefinition_decode_aper;
per_type_encoder_f RICactionDefinition_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _RICactionDefinition_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,46 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICactionID_H_
#define _RICactionID_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeInteger.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICactionID */
typedef long RICactionID_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_RICactionID_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_RICactionID;
asn_struct_free_f RICactionID_free;
asn_struct_print_f RICactionID_print;
asn_constr_check_f RICactionID_constraint;
ber_type_decoder_f RICactionID_decode_ber;
der_type_encoder_f RICactionID_encode_der;
xer_type_decoder_f RICactionID_decode_xer;
xer_type_encoder_f RICactionID_encode_xer;
oer_type_decoder_f RICactionID_decode_oer;
oer_type_encoder_f RICactionID_encode_oer;
per_type_decoder_f RICactionID_decode_uper;
per_type_encoder_f RICactionID_encode_uper;
per_type_decoder_f RICactionID_decode_aper;
per_type_encoder_f RICactionID_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _RICactionID_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,57 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICactionType_H_
#define _RICactionType_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum RICactionType {
RICactionType_report = 0,
RICactionType_insert = 1,
RICactionType_policy = 2
/*
* Enumeration is extensible
*/
} e_RICactionType;
/* RICactionType */
typedef long RICactionType_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_RICactionType_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_RICactionType;
extern const asn_INTEGER_specifics_t asn_SPC_RICactionType_specs_1;
asn_struct_free_f RICactionType_free;
asn_struct_print_f RICactionType_print;
asn_constr_check_f RICactionType_constraint;
ber_type_decoder_f RICactionType_decode_ber;
der_type_encoder_f RICactionType_encode_der;
xer_type_decoder_f RICactionType_decode_xer;
xer_type_encoder_f RICactionType_encode_xer;
oer_type_decoder_f RICactionType_decode_oer;
oer_type_encoder_f RICactionType_encode_oer;
per_type_decoder_f RICactionType_decode_uper;
per_type_encoder_f RICactionType_encode_uper;
per_type_decoder_f RICactionType_decode_aper;
per_type_encoder_f RICactionType_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _RICactionType_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,44 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICactions_ToBeSetup_List_H_
#define _RICactions_ToBeSetup_List_H_
#include <asn_application.h>
/* Including external dependencies */
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct ProtocolIE_SingleContainer;
/* RICactions-ToBeSetup-List */
typedef struct RICactions_ToBeSetup_List {
A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICactions_ToBeSetup_List_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeSetup_List;
extern asn_SET_OF_specifics_t asn_SPC_RICactions_ToBeSetup_List_specs_1;
extern asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[1];
extern asn_per_constraints_t asn_PER_type_RICactions_ToBeSetup_List_constr_1;
#ifdef __cplusplus
}
#endif
#endif /* _RICactions_ToBeSetup_List_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,45 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICcallProcessID_H_
#define _RICcallProcessID_H_
#include <asn_application.h>
/* Including external dependencies */
#include <OCTET_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICcallProcessID */
typedef OCTET_STRING_t RICcallProcessID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICcallProcessID;
asn_struct_free_f RICcallProcessID_free;
asn_struct_print_f RICcallProcessID_print;
asn_constr_check_f RICcallProcessID_constraint;
ber_type_decoder_f RICcallProcessID_decode_ber;
der_type_encoder_f RICcallProcessID_encode_der;
xer_type_decoder_f RICcallProcessID_decode_xer;
xer_type_encoder_f RICcallProcessID_encode_xer;
oer_type_decoder_f RICcallProcessID_decode_oer;
oer_type_encoder_f RICcallProcessID_encode_oer;
per_type_decoder_f RICcallProcessID_decode_uper;
per_type_encoder_f RICcallProcessID_encode_uper;
per_type_decoder_f RICcallProcessID_decode_aper;
per_type_encoder_f RICcallProcessID_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _RICcallProcessID_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,57 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICcontrolAckRequest_H_
#define _RICcontrolAckRequest_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum RICcontrolAckRequest {
RICcontrolAckRequest_noAck = 0,
RICcontrolAckRequest_ack = 1,
RICcontrolAckRequest_nAck = 2
/*
* Enumeration is extensible
*/
} e_RICcontrolAckRequest;
/* RICcontrolAckRequest */
typedef long RICcontrolAckRequest_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_RICcontrolAckRequest_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest;
extern const asn_INTEGER_specifics_t asn_SPC_RICcontrolAckRequest_specs_1;
asn_struct_free_f RICcontrolAckRequest_free;
asn_struct_print_f RICcontrolAckRequest_print;
asn_constr_check_f RICcontrolAckRequest_constraint;
ber_type_decoder_f RICcontrolAckRequest_decode_ber;
der_type_encoder_f RICcontrolAckRequest_encode_der;
xer_type_decoder_f RICcontrolAckRequest_decode_xer;
xer_type_encoder_f RICcontrolAckRequest_encode_xer;
oer_type_decoder_f RICcontrolAckRequest_decode_oer;
oer_type_encoder_f RICcontrolAckRequest_encode_oer;
per_type_decoder_f RICcontrolAckRequest_decode_uper;
per_type_encoder_f RICcontrolAckRequest_encode_uper;
per_type_decoder_f RICcontrolAckRequest_decode_aper;
per_type_encoder_f RICcontrolAckRequest_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _RICcontrolAckRequest_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,42 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICcontrolAcknowledge_H_
#define _RICcontrolAcknowledge_H_
#include <asn_application.h>
/* Including external dependencies */
#include "ProtocolIE-Container.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICcontrolAcknowledge */
typedef struct RICcontrolAcknowledge {
ProtocolIE_Container_87P8_t protocolIEs;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICcontrolAcknowledge_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge;
#ifdef __cplusplus
}
#endif
#endif /* _RICcontrolAcknowledge_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,42 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICcontrolFailure_H_
#define _RICcontrolFailure_H_
#include <asn_application.h>
/* Including external dependencies */
#include "ProtocolIE-Container.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICcontrolFailure */
typedef struct RICcontrolFailure {
ProtocolIE_Container_87P9_t protocolIEs;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICcontrolFailure_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure;
#ifdef __cplusplus
}
#endif
#endif /* _RICcontrolFailure_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,45 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICcontrolHeader_H_
#define _RICcontrolHeader_H_
#include <asn_application.h>
/* Including external dependencies */
#include <OCTET_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICcontrolHeader */
typedef OCTET_STRING_t RICcontrolHeader_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICcontrolHeader;
asn_struct_free_f RICcontrolHeader_free;
asn_struct_print_f RICcontrolHeader_print;
asn_constr_check_f RICcontrolHeader_constraint;
ber_type_decoder_f RICcontrolHeader_decode_ber;
der_type_encoder_f RICcontrolHeader_encode_der;
xer_type_decoder_f RICcontrolHeader_decode_xer;
xer_type_encoder_f RICcontrolHeader_encode_xer;
oer_type_decoder_f RICcontrolHeader_decode_oer;
oer_type_encoder_f RICcontrolHeader_encode_oer;
per_type_decoder_f RICcontrolHeader_decode_uper;
per_type_encoder_f RICcontrolHeader_encode_uper;
per_type_decoder_f RICcontrolHeader_decode_aper;
per_type_encoder_f RICcontrolHeader_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _RICcontrolHeader_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,45 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICcontrolMessage_H_
#define _RICcontrolMessage_H_
#include <asn_application.h>
/* Including external dependencies */
#include <OCTET_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICcontrolMessage */
typedef OCTET_STRING_t RICcontrolMessage_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICcontrolMessage;
asn_struct_free_f RICcontrolMessage_free;
asn_struct_print_f RICcontrolMessage_print;
asn_constr_check_f RICcontrolMessage_constraint;
ber_type_decoder_f RICcontrolMessage_decode_ber;
der_type_encoder_f RICcontrolMessage_encode_der;
xer_type_decoder_f RICcontrolMessage_decode_xer;
xer_type_encoder_f RICcontrolMessage_encode_xer;
oer_type_decoder_f RICcontrolMessage_decode_oer;
oer_type_encoder_f RICcontrolMessage_encode_oer;
per_type_decoder_f RICcontrolMessage_decode_uper;
per_type_encoder_f RICcontrolMessage_encode_uper;
per_type_decoder_f RICcontrolMessage_decode_aper;
per_type_encoder_f RICcontrolMessage_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _RICcontrolMessage_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,45 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICcontrolOutcome_H_
#define _RICcontrolOutcome_H_
#include <asn_application.h>
/* Including external dependencies */
#include <OCTET_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICcontrolOutcome */
typedef OCTET_STRING_t RICcontrolOutcome_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICcontrolOutcome;
asn_struct_free_f RICcontrolOutcome_free;
asn_struct_print_f RICcontrolOutcome_print;
asn_constr_check_f RICcontrolOutcome_constraint;
ber_type_decoder_f RICcontrolOutcome_decode_ber;
der_type_encoder_f RICcontrolOutcome_encode_der;
xer_type_decoder_f RICcontrolOutcome_decode_xer;
xer_type_encoder_f RICcontrolOutcome_encode_xer;
oer_type_decoder_f RICcontrolOutcome_decode_oer;
oer_type_encoder_f RICcontrolOutcome_encode_oer;
per_type_decoder_f RICcontrolOutcome_decode_uper;
per_type_encoder_f RICcontrolOutcome_encode_uper;
per_type_decoder_f RICcontrolOutcome_decode_aper;
per_type_encoder_f RICcontrolOutcome_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _RICcontrolOutcome_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,42 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICcontrolRequest_H_
#define _RICcontrolRequest_H_
#include <asn_application.h>
/* Including external dependencies */
#include "ProtocolIE-Container.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICcontrolRequest */
typedef struct RICcontrolRequest {
ProtocolIE_Container_87P7_t protocolIEs;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICcontrolRequest_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest;
#ifdef __cplusplus
}
#endif
#endif /* _RICcontrolRequest_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,57 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICcontrolStatus_H_
#define _RICcontrolStatus_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum RICcontrolStatus {
RICcontrolStatus_success = 0,
RICcontrolStatus_rejected = 1,
RICcontrolStatus_failed = 2
/*
* Enumeration is extensible
*/
} e_RICcontrolStatus;
/* RICcontrolStatus */
typedef long RICcontrolStatus_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_RICcontrolStatus_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_RICcontrolStatus;
extern const asn_INTEGER_specifics_t asn_SPC_RICcontrolStatus_specs_1;
asn_struct_free_f RICcontrolStatus_free;
asn_struct_print_f RICcontrolStatus_print;
asn_constr_check_f RICcontrolStatus_constraint;
ber_type_decoder_f RICcontrolStatus_decode_ber;
der_type_encoder_f RICcontrolStatus_encode_der;
xer_type_decoder_f RICcontrolStatus_decode_xer;
xer_type_encoder_f RICcontrolStatus_encode_xer;
oer_type_decoder_f RICcontrolStatus_decode_oer;
oer_type_encoder_f RICcontrolStatus_encode_oer;
per_type_decoder_f RICcontrolStatus_decode_uper;
per_type_encoder_f RICcontrolStatus_encode_uper;
per_type_decoder_f RICcontrolStatus_decode_aper;
per_type_encoder_f RICcontrolStatus_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _RICcontrolStatus_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,45 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICeventTriggerDefinition_H_
#define _RICeventTriggerDefinition_H_
#include <asn_application.h>
/* Including external dependencies */
#include <OCTET_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICeventTriggerDefinition */
typedef OCTET_STRING_t RICeventTriggerDefinition_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICeventTriggerDefinition;
asn_struct_free_f RICeventTriggerDefinition_free;
asn_struct_print_f RICeventTriggerDefinition_print;
asn_constr_check_f RICeventTriggerDefinition_constraint;
ber_type_decoder_f RICeventTriggerDefinition_decode_ber;
der_type_encoder_f RICeventTriggerDefinition_encode_der;
xer_type_decoder_f RICeventTriggerDefinition_decode_xer;
xer_type_encoder_f RICeventTriggerDefinition_encode_xer;
oer_type_decoder_f RICeventTriggerDefinition_decode_oer;
oer_type_encoder_f RICeventTriggerDefinition_encode_oer;
per_type_decoder_f RICeventTriggerDefinition_decode_uper;
per_type_encoder_f RICeventTriggerDefinition_encode_uper;
per_type_decoder_f RICeventTriggerDefinition_decode_aper;
per_type_encoder_f RICeventTriggerDefinition_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _RICeventTriggerDefinition_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,42 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICindication_H_
#define _RICindication_H_
#include <asn_application.h>
/* Including external dependencies */
#include "ProtocolIE-Container.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICindication */
typedef struct RICindication {
ProtocolIE_Container_87P6_t protocolIEs;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICindication_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICindication;
#ifdef __cplusplus
}
#endif
#endif /* _RICindication_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,45 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICindicationHeader_H_
#define _RICindicationHeader_H_
#include <asn_application.h>
/* Including external dependencies */
#include <OCTET_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICindicationHeader */
typedef OCTET_STRING_t RICindicationHeader_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICindicationHeader;
asn_struct_free_f RICindicationHeader_free;
asn_struct_print_f RICindicationHeader_print;
asn_constr_check_f RICindicationHeader_constraint;
ber_type_decoder_f RICindicationHeader_decode_ber;
der_type_encoder_f RICindicationHeader_encode_der;
xer_type_decoder_f RICindicationHeader_decode_xer;
xer_type_encoder_f RICindicationHeader_encode_xer;
oer_type_decoder_f RICindicationHeader_decode_oer;
oer_type_encoder_f RICindicationHeader_encode_oer;
per_type_decoder_f RICindicationHeader_decode_uper;
per_type_encoder_f RICindicationHeader_encode_uper;
per_type_decoder_f RICindicationHeader_decode_aper;
per_type_encoder_f RICindicationHeader_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _RICindicationHeader_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,45 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICindicationMessage_H_
#define _RICindicationMessage_H_
#include <asn_application.h>
/* Including external dependencies */
#include <OCTET_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICindicationMessage */
typedef OCTET_STRING_t RICindicationMessage_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICindicationMessage;
asn_struct_free_f RICindicationMessage_free;
asn_struct_print_f RICindicationMessage_print;
asn_constr_check_f RICindicationMessage_constraint;
ber_type_decoder_f RICindicationMessage_decode_ber;
der_type_encoder_f RICindicationMessage_encode_der;
xer_type_decoder_f RICindicationMessage_decode_xer;
xer_type_encoder_f RICindicationMessage_encode_xer;
oer_type_decoder_f RICindicationMessage_decode_oer;
oer_type_encoder_f RICindicationMessage_encode_oer;
per_type_decoder_f RICindicationMessage_decode_uper;
per_type_encoder_f RICindicationMessage_encode_uper;
per_type_decoder_f RICindicationMessage_decode_aper;
per_type_encoder_f RICindicationMessage_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _RICindicationMessage_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,46 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICindicationSN_H_
#define _RICindicationSN_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeInteger.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICindicationSN */
typedef long RICindicationSN_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_RICindicationSN_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_RICindicationSN;
asn_struct_free_f RICindicationSN_free;
asn_struct_print_f RICindicationSN_print;
asn_constr_check_f RICindicationSN_constraint;
ber_type_decoder_f RICindicationSN_decode_ber;
der_type_encoder_f RICindicationSN_encode_der;
xer_type_decoder_f RICindicationSN_decode_xer;
xer_type_encoder_f RICindicationSN_encode_xer;
oer_type_decoder_f RICindicationSN_decode_oer;
oer_type_encoder_f RICindicationSN_encode_oer;
per_type_decoder_f RICindicationSN_decode_uper;
per_type_encoder_f RICindicationSN_encode_uper;
per_type_decoder_f RICindicationSN_decode_aper;
per_type_encoder_f RICindicationSN_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _RICindicationSN_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,56 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICindicationType_H_
#define _RICindicationType_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum RICindicationType {
RICindicationType_report = 0,
RICindicationType_insert = 1
/*
* Enumeration is extensible
*/
} e_RICindicationType;
/* RICindicationType */
typedef long RICindicationType_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_RICindicationType_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_RICindicationType;
extern const asn_INTEGER_specifics_t asn_SPC_RICindicationType_specs_1;
asn_struct_free_f RICindicationType_free;
asn_struct_print_f RICindicationType_print;
asn_constr_check_f RICindicationType_constraint;
ber_type_decoder_f RICindicationType_decode_ber;
der_type_encoder_f RICindicationType_encode_der;
xer_type_decoder_f RICindicationType_decode_xer;
xer_type_encoder_f RICindicationType_encode_xer;
oer_type_decoder_f RICindicationType_decode_oer;
oer_type_encoder_f RICindicationType_encode_oer;
per_type_decoder_f RICindicationType_decode_uper;
per_type_encoder_f RICindicationType_encode_uper;
per_type_decoder_f RICindicationType_decode_aper;
per_type_encoder_f RICindicationType_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _RICindicationType_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,45 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-IEs"
* found in "E2AP-IEs-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICrequestID_H_
#define _RICrequestID_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeInteger.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICrequestID */
typedef struct RICrequestID {
long ricRequestorID;
long ricInstanceID;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICrequestID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICrequestID;
extern asn_SEQUENCE_specifics_t asn_SPC_RICrequestID_specs_1;
extern asn_TYPE_member_t asn_MBR_RICrequestID_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _RICrequestID_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,42 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICserviceQuery_H_
#define _RICserviceQuery_H_
#include <asn_application.h>
/* Including external dependencies */
#include "ProtocolIE-Container.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICserviceQuery */
typedef struct RICserviceQuery {
ProtocolIE_Container_87P19_t protocolIEs;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICserviceQuery_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICserviceQuery;
#ifdef __cplusplus
}
#endif
#endif /* _RICserviceQuery_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,42 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICserviceUpdate_H_
#define _RICserviceUpdate_H_
#include <asn_application.h>
/* Including external dependencies */
#include "ProtocolIE-Container.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICserviceUpdate */
typedef struct RICserviceUpdate {
ProtocolIE_Container_87P16_t protocolIEs;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICserviceUpdate_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate;
#ifdef __cplusplus
}
#endif
#endif /* _RICserviceUpdate_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,42 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICserviceUpdateAcknowledge_H_
#define _RICserviceUpdateAcknowledge_H_
#include <asn_application.h>
/* Including external dependencies */
#include "ProtocolIE-Container.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICserviceUpdateAcknowledge */
typedef struct RICserviceUpdateAcknowledge {
ProtocolIE_Container_87P17_t protocolIEs;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICserviceUpdateAcknowledge_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge;
#ifdef __cplusplus
}
#endif
#endif /* _RICserviceUpdateAcknowledge_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,42 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICserviceUpdateFailure_H_
#define _RICserviceUpdateFailure_H_
#include <asn_application.h>
/* Including external dependencies */
#include "ProtocolIE-Container.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICserviceUpdateFailure */
typedef struct RICserviceUpdateFailure {
ProtocolIE_Container_87P18_t protocolIEs;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICserviceUpdateFailure_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure;
#ifdef __cplusplus
}
#endif
#endif /* _RICserviceUpdateFailure_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,42 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICsubscriptionDeleteFailure_H_
#define _RICsubscriptionDeleteFailure_H_
#include <asn_application.h>
/* Including external dependencies */
#include "ProtocolIE-Container.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICsubscriptionDeleteFailure */
typedef struct RICsubscriptionDeleteFailure {
ProtocolIE_Container_87P5_t protocolIEs;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICsubscriptionDeleteFailure_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure;
#ifdef __cplusplus
}
#endif
#endif /* _RICsubscriptionDeleteFailure_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,42 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICsubscriptionDeleteRequest_H_
#define _RICsubscriptionDeleteRequest_H_
#include <asn_application.h>
/* Including external dependencies */
#include "ProtocolIE-Container.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICsubscriptionDeleteRequest */
typedef struct RICsubscriptionDeleteRequest {
ProtocolIE_Container_87P3_t protocolIEs;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICsubscriptionDeleteRequest_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest;
#ifdef __cplusplus
}
#endif
#endif /* _RICsubscriptionDeleteRequest_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,42 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICsubscriptionDeleteResponse_H_
#define _RICsubscriptionDeleteResponse_H_
#include <asn_application.h>
/* Including external dependencies */
#include "ProtocolIE-Container.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICsubscriptionDeleteResponse */
typedef struct RICsubscriptionDeleteResponse {
ProtocolIE_Container_87P4_t protocolIEs;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICsubscriptionDeleteResponse_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse;
#ifdef __cplusplus
}
#endif
#endif /* _RICsubscriptionDeleteResponse_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,46 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICsubscriptionDetails_H_
#define _RICsubscriptionDetails_H_
#include <asn_application.h>
/* Including external dependencies */
#include "RICeventTriggerDefinition.h"
#include "RICactions-ToBeSetup-List.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICsubscriptionDetails */
typedef struct RICsubscriptionDetails {
RICeventTriggerDefinition_t ricEventTriggerDefinition;
RICactions_ToBeSetup_List_t ricAction_ToBeSetup_List;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICsubscriptionDetails_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDetails;
extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDetails_specs_1;
extern asn_TYPE_member_t asn_MBR_RICsubscriptionDetails_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _RICsubscriptionDetails_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,42 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICsubscriptionFailure_H_
#define _RICsubscriptionFailure_H_
#include <asn_application.h>
/* Including external dependencies */
#include "ProtocolIE-Container.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICsubscriptionFailure */
typedef struct RICsubscriptionFailure {
ProtocolIE_Container_87P2_t protocolIEs;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICsubscriptionFailure_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure;
#ifdef __cplusplus
}
#endif
#endif /* _RICsubscriptionFailure_H_ */
#include <asn_internal.h>

View File

@ -0,0 +1,42 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2AP-PDU-Contents"
* found in "E2AP-PDU-Contents-v01.00.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RICsubscriptionRequest_H_
#define _RICsubscriptionRequest_H_
#include <asn_application.h>
/* Including external dependencies */
#include "ProtocolIE-Container.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RICsubscriptionRequest */
typedef struct RICsubscriptionRequest {
ProtocolIE_Container_87P0_t protocolIEs;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RICsubscriptionRequest_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest;
#ifdef __cplusplus
}
#endif
#endif /* _RICsubscriptionRequest_H_ */
#include <asn_internal.h>

Some files were not shown because too many files have changed in this diff Show More