Initial commit of KPIMON xAPP for Bronze Release Enhancement.

Signed-off-by: jinweifan <jinwei.fan@samsung.com>
Change-Id: I72f3c13b42ef302e4ac66a6c89a8e043367eea8c
This commit is contained in:
jinweifan
2020-07-27 14:02:49 +08:00
parent 6d8c1c849a
commit 4a8b4de538
518 changed files with 80629 additions and 0 deletions

48
e2sm/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_ */

46
e2sm/headers/C-RNTI.h Normal file
View File

@@ -0,0 +1,46 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _C_RNTI_H_
#define _C_RNTI_H_
#include <asn_application.h>
/* Including external dependencies */
#include <OCTET_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* C-RNTI */
typedef OCTET_STRING_t C_RNTI_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_C_RNTI_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_C_RNTI;
asn_struct_free_f C_RNTI_free;
asn_struct_print_f C_RNTI_print;
asn_constr_check_f C_RNTI_constraint;
ber_type_decoder_f C_RNTI_decode_ber;
der_type_encoder_f C_RNTI_encode_der;
xer_type_decoder_f C_RNTI_decode_xer;
xer_type_encoder_f C_RNTI_encode_xer;
oer_type_decoder_f C_RNTI_decode_oer;
oer_type_encoder_f C_RNTI_encode_oer;
per_type_decoder_f C_RNTI_decode_uper;
per_type_encoder_f C_RNTI_encode_uper;
per_type_decoder_f C_RNTI_decode_aper;
per_type_encoder_f C_RNTI_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _C_RNTI_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _CU_CP_Usage_Report_CellResourceReportItem_H_
#define _CU_CP_Usage_Report_CellResourceReportItem_H_
#include <asn_application.h>
/* Including external dependencies */
#include "NRCGI.h"
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct CU_CP_Usage_Report_UeResourceReportItem;
/* CU-CP-Usage-Report-CellResourceReportItem */
typedef struct CU_CP_Usage_Report_CellResourceReportItem {
NRCGI_t nRCGI;
struct CU_CP_Usage_Report_CellResourceReportItem__ueResourceReportList {
A_SEQUENCE_OF(struct CU_CP_Usage_Report_UeResourceReportItem) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ueResourceReportList;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} CU_CP_Usage_Report_CellResourceReportItem_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_CellResourceReportItem;
extern asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_CellResourceReportItem_specs_1;
extern asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_CellResourceReportItem_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _CU_CP_Usage_Report_CellResourceReportItem_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,53 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _CU_CP_Usage_Report_Per_UE_H_
#define _CU_CP_Usage_Report_Per_UE_H_
#include <asn_application.h>
/* Including external dependencies */
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct CU_CP_Usage_Report_CellResourceReportItem;
/* CU-CP-Usage-Report-Per-UE */
typedef struct CU_CP_Usage_Report_Per_UE {
struct CU_CP_Usage_Report_Per_UE__cellResourceReportList {
A_SEQUENCE_OF(struct CU_CP_Usage_Report_CellResourceReportItem) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} cellResourceReportList;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} CU_CP_Usage_Report_Per_UE_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_Per_UE;
extern asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_Per_UE_specs_1;
extern asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_Per_UE_1[1];
#ifdef __cplusplus
}
#endif
#endif /* _CU_CP_Usage_Report_Per_UE_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,47 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _CU_CP_Usage_Report_UeResourceReportItem_H_
#define _CU_CP_Usage_Report_UeResourceReportItem_H_
#include <asn_application.h>
/* Including external dependencies */
#include "C-RNTI.h"
#include <OCTET_STRING.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* CU-CP-Usage-Report-UeResourceReportItem */
typedef struct CU_CP_Usage_Report_UeResourceReportItem {
C_RNTI_t c_RNTI;
OCTET_STRING_t *serving_Cell_RF_Type; /* OPTIONAL */
OCTET_STRING_t *neighbor_Cell_RF; /* OPTIONAL */
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} CU_CP_Usage_Report_UeResourceReportItem_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CU_CP_Usage_Report_UeResourceReportItem;
extern asn_SEQUENCE_specifics_t asn_SPC_CU_CP_Usage_Report_UeResourceReportItem_specs_1;
extern asn_TYPE_member_t asn_MBR_CU_CP_Usage_Report_UeResourceReportItem_1[3];
#ifdef __cplusplus
}
#endif
#endif /* _CU_CP_Usage_Report_UeResourceReportItem_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _CU_UP_Usage_Report_CellResourceReportItem_H_
#define _CU_UP_Usage_Report_CellResourceReportItem_H_
#include <asn_application.h>
/* Including external dependencies */
#include "NRCGI.h"
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct CU_UP_Usage_Report_UeResourceReportItem;
/* CU-UP-Usage-Report-CellResourceReportItem */
typedef struct CU_UP_Usage_Report_CellResourceReportItem {
NRCGI_t nRCGI;
struct CU_UP_Usage_Report_CellResourceReportItem__ueResourceReportList {
A_SEQUENCE_OF(struct CU_UP_Usage_Report_UeResourceReportItem) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ueResourceReportList;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} CU_UP_Usage_Report_CellResourceReportItem_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_CellResourceReportItem;
extern asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_CellResourceReportItem_specs_1;
extern asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_CellResourceReportItem_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _CU_UP_Usage_Report_CellResourceReportItem_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,53 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _CU_UP_Usage_Report_Per_UE_H_
#define _CU_UP_Usage_Report_Per_UE_H_
#include <asn_application.h>
/* Including external dependencies */
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct CU_UP_Usage_Report_CellResourceReportItem;
/* CU-UP-Usage-Report-Per-UE */
typedef struct CU_UP_Usage_Report_Per_UE {
struct CU_UP_Usage_Report_Per_UE__cellResourceReportList {
A_SEQUENCE_OF(struct CU_UP_Usage_Report_CellResourceReportItem) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} cellResourceReportList;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} CU_UP_Usage_Report_Per_UE_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_Per_UE;
extern asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_Per_UE_specs_1;
extern asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_Per_UE_1[1];
#ifdef __cplusplus
}
#endif
#endif /* _CU_UP_Usage_Report_Per_UE_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,47 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _CU_UP_Usage_Report_UeResourceReportItem_H_
#define _CU_UP_Usage_Report_UeResourceReportItem_H_
#include <asn_application.h>
/* Including external dependencies */
#include "C-RNTI.h"
#include <INTEGER.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* CU-UP-Usage-Report-UeResourceReportItem */
typedef struct CU_UP_Usage_Report_UeResourceReportItem {
C_RNTI_t c_RNTI;
INTEGER_t *pDCPBytesDL; /* OPTIONAL */
INTEGER_t *pDCPBytesUL; /* OPTIONAL */
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} CU_UP_Usage_Report_UeResourceReportItem_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CU_UP_Usage_Report_UeResourceReportItem;
extern asn_SEQUENCE_specifics_t asn_SPC_CU_UP_Usage_Report_UeResourceReportItem_specs_1;
extern asn_TYPE_member_t asn_MBR_CU_UP_Usage_Report_UeResourceReportItem_1[3];
#ifdef __cplusplus
}
#endif
#endif /* _CU_UP_Usage_Report_UeResourceReportItem_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,53 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _CUUPMeasurement_Container_H_
#define _CUUPMeasurement_Container_H_
#include <asn_application.h>
/* Including external dependencies */
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct PlmnID_List;
/* CUUPMeasurement-Container */
typedef struct CUUPMeasurement_Container {
struct CUUPMeasurement_Container__plmnList {
A_SEQUENCE_OF(struct PlmnID_List) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} plmnList;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} CUUPMeasurement_Container_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CUUPMeasurement_Container;
extern asn_SEQUENCE_specifics_t asn_SPC_CUUPMeasurement_Container_specs_1;
extern asn_TYPE_member_t asn_MBR_CUUPMeasurement_Container_1[1];
#ifdef __cplusplus
}
#endif
#endif /* _CUUPMeasurement_Container_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,58 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _CellResourceReportListItem_H_
#define _CellResourceReportListItem_H_
#include <asn_application.h>
/* Including external dependencies */
#include "NRCGI.h"
#include <NativeInteger.h>
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct ServedPlmnPerCellListItem;
/* CellResourceReportListItem */
typedef struct CellResourceReportListItem {
NRCGI_t nRCGI;
long *dl_TotalofAvailablePRBs; /* OPTIONAL */
long *ul_TotalofAvailablePRBs; /* OPTIONAL */
struct CellResourceReportListItem__servedPlmnPerCellList {
A_SEQUENCE_OF(struct ServedPlmnPerCellListItem) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} servedPlmnPerCellList;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} CellResourceReportListItem_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_CellResourceReportListItem;
extern asn_SEQUENCE_specifics_t asn_SPC_CellResourceReportListItem_specs_1;
extern asn_TYPE_member_t asn_MBR_CellResourceReportListItem_1[4];
#ifdef __cplusplus
}
#endif
#endif /* _CellResourceReportListItem_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _DU_Usage_Report_CellResourceReportItem_H_
#define _DU_Usage_Report_CellResourceReportItem_H_
#include <asn_application.h>
/* Including external dependencies */
#include "NRCGI.h"
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct DU_Usage_Report_UeResourceReportItem;
/* DU-Usage-Report-CellResourceReportItem */
typedef struct DU_Usage_Report_CellResourceReportItem {
NRCGI_t nRCGI;
struct DU_Usage_Report_CellResourceReportItem__ueResourceReportList {
A_SEQUENCE_OF(struct DU_Usage_Report_UeResourceReportItem) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ueResourceReportList;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} DU_Usage_Report_CellResourceReportItem_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_CellResourceReportItem;
extern asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_CellResourceReportItem_specs_1;
extern asn_TYPE_member_t asn_MBR_DU_Usage_Report_CellResourceReportItem_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _DU_Usage_Report_CellResourceReportItem_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,53 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _DU_Usage_Report_Per_UE_H_
#define _DU_Usage_Report_Per_UE_H_
#include <asn_application.h>
/* Including external dependencies */
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct DU_Usage_Report_CellResourceReportItem;
/* DU-Usage-Report-Per-UE */
typedef struct DU_Usage_Report_Per_UE {
struct DU_Usage_Report_Per_UE__cellResourceReportList {
A_SEQUENCE_OF(struct DU_Usage_Report_CellResourceReportItem) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} cellResourceReportList;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} DU_Usage_Report_Per_UE_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_Per_UE;
extern asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_Per_UE_specs_1;
extern asn_TYPE_member_t asn_MBR_DU_Usage_Report_Per_UE_1[1];
#ifdef __cplusplus
}
#endif
#endif /* _DU_Usage_Report_Per_UE_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,47 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _DU_Usage_Report_UeResourceReportItem_H_
#define _DU_Usage_Report_UeResourceReportItem_H_
#include <asn_application.h>
/* Including external dependencies */
#include "C-RNTI.h"
#include <NativeInteger.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* DU-Usage-Report-UeResourceReportItem */
typedef struct DU_Usage_Report_UeResourceReportItem {
C_RNTI_t c_RNTI;
long *dl_PRBUsage; /* OPTIONAL */
long *ul_PRBUsage; /* OPTIONAL */
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} DU_Usage_Report_UeResourceReportItem_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_DU_Usage_Report_UeResourceReportItem;
extern asn_SEQUENCE_specifics_t asn_SPC_DU_Usage_Report_UeResourceReportItem_specs_1;
extern asn_TYPE_member_t asn_MBR_DU_Usage_Report_UeResourceReportItem_1[3];
#ifdef __cplusplus
}
#endif
#endif /* _DU_Usage_Report_UeResourceReportItem_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _E2SM_KPM_ActionDefinition_H_
#define _E2SM_KPM_ActionDefinition_H_
#include <asn_application.h>
/* Including external dependencies */
#include "RIC-Style-Type.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* E2SM-KPM-ActionDefinition */
typedef struct E2SM_KPM_ActionDefinition {
RIC_Style_Type_t ric_Style_Type;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} E2SM_KPM_ActionDefinition_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_ActionDefinition;
#ifdef __cplusplus
}
#endif
#endif /* _E2SM_KPM_ActionDefinition_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,53 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _E2SM_KPM_EventTriggerDefinition_Format1_H_
#define _E2SM_KPM_EventTriggerDefinition_Format1_H_
#include <asn_application.h>
/* Including external dependencies */
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct Trigger_ConditionIE_Item;
/* E2SM-KPM-EventTriggerDefinition-Format1 */
typedef struct E2SM_KPM_EventTriggerDefinition_Format1 {
struct E2SM_KPM_EventTriggerDefinition_Format1__policyTest_List {
A_SEQUENCE_OF(struct Trigger_ConditionIE_Item) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} *policyTest_List;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} E2SM_KPM_EventTriggerDefinition_Format1_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1;
extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_EventTriggerDefinition_Format1_specs_1;
extern asn_TYPE_member_t asn_MBR_E2SM_KPM_EventTriggerDefinition_Format1_1[1];
#ifdef __cplusplus
}
#endif
#endif /* _E2SM_KPM_EventTriggerDefinition_Format1_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _E2SM_KPM_EventTriggerDefinition_H_
#define _E2SM_KPM_EventTriggerDefinition_H_
#include <asn_application.h>
/* Including external dependencies */
#include <constr_CHOICE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum E2SM_KPM_EventTriggerDefinition_PR {
E2SM_KPM_EventTriggerDefinition_PR_NOTHING, /* No components present */
E2SM_KPM_EventTriggerDefinition_PR_eventDefinition_Format1
/* Extensions may appear below */
} E2SM_KPM_EventTriggerDefinition_PR;
/* Forward declarations */
struct E2SM_KPM_EventTriggerDefinition_Format1;
/* E2SM-KPM-EventTriggerDefinition */
typedef struct E2SM_KPM_EventTriggerDefinition {
E2SM_KPM_EventTriggerDefinition_PR present;
union E2SM_KPM_EventTriggerDefinition_u {
struct E2SM_KPM_EventTriggerDefinition_Format1 *eventDefinition_Format1;
/*
* This type is extensible,
* possible extensions are below.
*/
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} E2SM_KPM_EventTriggerDefinition_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition;
#ifdef __cplusplus
}
#endif
#endif /* _E2SM_KPM_EventTriggerDefinition_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,63 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _E2SM_KPM_IndicationHeader_Format1_H_
#define _E2SM_KPM_IndicationHeader_Format1_H_
#include <asn_application.h>
/* Including external dependencies */
#include "PLMN-Identity.h"
#include <NativeInteger.h>
#include "UE-Report-Type.h"
#include "GNB-DU-ID.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct GlobalKPMnode_ID;
struct NRCGI;
struct SNSSAI;
struct GNB_Name;
struct GlobalgNB_ID;
/* E2SM-KPM-IndicationHeader-Format1 */
typedef struct E2SM_KPM_IndicationHeader_Format1 {
struct GlobalKPMnode_ID *id_GlobalKPMnode_ID; /* OPTIONAL */
struct NRCGI *nRCGI; /* OPTIONAL */
PLMN_Identity_t *pLMN_Identity; /* OPTIONAL */
struct SNSSAI *sliceID; /* OPTIONAL */
long *fiveQI; /* OPTIONAL */
long *qci; /* OPTIONAL */
UE_Report_Type_t *message_Type; /* OPTIONAL */
GNB_DU_ID_t *gNB_DU_ID; /* OPTIONAL */
struct GNB_Name *gNB_Name; /* OPTIONAL */
struct GlobalgNB_ID *global_GNB_ID; /* OPTIONAL */
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} E2SM_KPM_IndicationHeader_Format1_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader_Format1;
extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1;
extern asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_Format1_1[10];
#ifdef __cplusplus
}
#endif
#endif /* _E2SM_KPM_IndicationHeader_Format1_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _E2SM_KPM_IndicationHeader_H_
#define _E2SM_KPM_IndicationHeader_H_
#include <asn_application.h>
/* Including external dependencies */
#include <constr_CHOICE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum E2SM_KPM_IndicationHeader_PR {
E2SM_KPM_IndicationHeader_PR_NOTHING, /* No components present */
E2SM_KPM_IndicationHeader_PR_indicationHeader_Format1
/* Extensions may appear below */
} E2SM_KPM_IndicationHeader_PR;
/* Forward declarations */
struct E2SM_KPM_IndicationHeader_Format1;
/* E2SM-KPM-IndicationHeader */
typedef struct E2SM_KPM_IndicationHeader {
E2SM_KPM_IndicationHeader_PR present;
union E2SM_KPM_IndicationHeader_u {
struct E2SM_KPM_IndicationHeader_Format1 *indicationHeader_Format1;
/*
* This type is extensible,
* possible extensions are below.
*/
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} E2SM_KPM_IndicationHeader_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader;
#ifdef __cplusplus
}
#endif
#endif /* _E2SM_KPM_IndicationHeader_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,53 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _E2SM_KPM_IndicationMessage_Format1_H_
#define _E2SM_KPM_IndicationMessage_Format1_H_
#include <asn_application.h>
/* Including external dependencies */
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct PM_Containers_List;
/* E2SM-KPM-IndicationMessage-Format1 */
typedef struct E2SM_KPM_IndicationMessage_Format1 {
struct E2SM_KPM_IndicationMessage_Format1__pm_Containers {
A_SEQUENCE_OF(struct PM_Containers_List) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} pm_Containers;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} E2SM_KPM_IndicationMessage_Format1_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage_Format1;
extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1;
extern asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_Format1_1[1];
#ifdef __cplusplus
}
#endif
#endif /* _E2SM_KPM_IndicationMessage_Format1_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _E2SM_KPM_IndicationMessage_H_
#define _E2SM_KPM_IndicationMessage_H_
#include <asn_application.h>
/* Including external dependencies */
#include "RIC-Style-Type.h"
#include <constr_CHOICE.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum E2SM_KPM_IndicationMessage__indicationMessage_PR {
E2SM_KPM_IndicationMessage__indicationMessage_PR_NOTHING, /* No components present */
E2SM_KPM_IndicationMessage__indicationMessage_PR_indicationMessage_Format1
/* Extensions may appear below */
} E2SM_KPM_IndicationMessage__indicationMessage_PR;
/* Forward declarations */
struct E2SM_KPM_IndicationMessage_Format1;
/* E2SM-KPM-IndicationMessage */
typedef struct E2SM_KPM_IndicationMessage {
RIC_Style_Type_t ric_Style_Type;
struct E2SM_KPM_IndicationMessage__indicationMessage {
E2SM_KPM_IndicationMessage__indicationMessage_PR present;
union E2SM_KPM_IndicationMessage__indicationMessage_u {
struct E2SM_KPM_IndicationMessage_Format1 *indicationMessage_Format1;
/*
* This type is extensible,
* possible extensions are below.
*/
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} indicationMessage;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} E2SM_KPM_IndicationMessage_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage;
#ifdef __cplusplus
}
#endif
#endif /* _E2SM_KPM_IndicationMessage_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,69 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _E2SM_KPM_RANfunction_Description_H_
#define _E2SM_KPM_RANfunction_Description_H_
#include <asn_application.h>
/* Including external dependencies */
#include "RANfunction-Name.h"
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct RIC_EventTriggerStyle_List;
struct RIC_ReportStyle_List;
/* E2SM-KPM-RANfunction-Description */
typedef struct E2SM_KPM_RANfunction_Description {
RANfunction_Name_t ranFunction_Name;
struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item {
struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_EventTriggerStyle_List {
A_SEQUENCE_OF(struct RIC_EventTriggerStyle_List) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} *ric_EventTriggerStyle_List;
struct E2SM_KPM_RANfunction_Description__e2SM_KPM_RANfunction_Item__ric_ReportStyle_List {
A_SEQUENCE_OF(struct RIC_ReportStyle_List) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} *ric_ReportStyle_List;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} e2SM_KPM_RANfunction_Item;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} E2SM_KPM_RANfunction_Description_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_RANfunction_Description;
#ifdef __cplusplus
}
#endif
#endif /* _E2SM_KPM_RANfunction_Description_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.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
e2sm/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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.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
e2sm/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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.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,53 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _EPC_CUUP_PM_Format_H_
#define _EPC_CUUP_PM_Format_H_
#include <asn_application.h>
/* Including external dependencies */
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct PerQCIReportListItemFormat;
/* EPC-CUUP-PM-Format */
typedef struct EPC_CUUP_PM_Format {
struct EPC_CUUP_PM_Format__perQCIReportList {
A_SEQUENCE_OF(struct PerQCIReportListItemFormat) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} perQCIReportList;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} EPC_CUUP_PM_Format_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_EPC_CUUP_PM_Format;
extern asn_SEQUENCE_specifics_t asn_SPC_EPC_CUUP_PM_Format_specs_1;
extern asn_TYPE_member_t asn_MBR_EPC_CUUP_PM_Format_1[1];
#ifdef __cplusplus
}
#endif
#endif /* _EPC_CUUP_PM_Format_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,53 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _EPC_DU_PM_Container_H_
#define _EPC_DU_PM_Container_H_
#include <asn_application.h>
/* Including external dependencies */
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct PerQCIReportListItem;
/* EPC-DU-PM-Container */
typedef struct EPC_DU_PM_Container {
struct EPC_DU_PM_Container__perQCIReportList {
A_SEQUENCE_OF(struct PerQCIReportListItem) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} perQCIReportList;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} EPC_DU_PM_Container_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_EPC_DU_PM_Container;
extern asn_SEQUENCE_specifics_t asn_SPC_EPC_DU_PM_Container_specs_1;
extern asn_TYPE_member_t asn_MBR_EPC_DU_PM_Container_1[1];
#ifdef __cplusplus
}
#endif
#endif /* _EPC_DU_PM_Container_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,53 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _FGC_CUUP_PM_Format_H_
#define _FGC_CUUP_PM_Format_H_
#include <asn_application.h>
/* Including external dependencies */
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct SliceToReportListItem;
/* FGC-CUUP-PM-Format */
typedef struct FGC_CUUP_PM_Format {
struct FGC_CUUP_PM_Format__sliceToReportList {
A_SEQUENCE_OF(struct SliceToReportListItem) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} sliceToReportList;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} FGC_CUUP_PM_Format_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_FGC_CUUP_PM_Format;
extern asn_SEQUENCE_specifics_t asn_SPC_FGC_CUUP_PM_Format_specs_1;
extern asn_TYPE_member_t asn_MBR_FGC_CUUP_PM_Format_1[1];
#ifdef __cplusplus
}
#endif
#endif /* _FGC_CUUP_PM_Format_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,53 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _FGC_DU_PM_Container_H_
#define _FGC_DU_PM_Container_H_
#include <asn_application.h>
/* Including external dependencies */
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct SlicePerPlmnPerCellListItem;
/* FGC-DU-PM-Container */
typedef struct FGC_DU_PM_Container {
struct FGC_DU_PM_Container__slicePerPlmnPerCellList {
A_SEQUENCE_OF(struct SlicePerPlmnPerCellListItem) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} slicePerPlmnPerCellList;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} FGC_DU_PM_Container_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_FGC_DU_PM_Container;
extern asn_SEQUENCE_specifics_t asn_SPC_FGC_DU_PM_Container_specs_1;
extern asn_TYPE_member_t asn_MBR_FGC_DU_PM_Container_1[1];
#ifdef __cplusplus
}
#endif
#endif /* _FGC_DU_PM_Container_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,47 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _FQIPERSlicesPerPlmnListItem_H_
#define _FQIPERSlicesPerPlmnListItem_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeInteger.h>
#include <INTEGER.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* FQIPERSlicesPerPlmnListItem */
typedef struct FQIPERSlicesPerPlmnListItem {
long fiveQI;
INTEGER_t *pDCPBytesDL; /* OPTIONAL */
INTEGER_t *pDCPBytesUL; /* OPTIONAL */
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} FQIPERSlicesPerPlmnListItem_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnListItem;
extern asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnListItem_specs_1;
extern asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnListItem_1[3];
#ifdef __cplusplus
}
#endif
#endif /* _FQIPERSlicesPerPlmnListItem_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _FQIPERSlicesPerPlmnPerCellListItem_H_
#define _FQIPERSlicesPerPlmnPerCellListItem_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeInteger.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* FQIPERSlicesPerPlmnPerCellListItem */
typedef struct FQIPERSlicesPerPlmnPerCellListItem {
long fiveQI;
long *dl_PRBUsage; /* OPTIONAL */
long *ul_PRBUsage; /* OPTIONAL */
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} FQIPERSlicesPerPlmnPerCellListItem_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnPerCellListItem;
extern asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnPerCellListItem_specs_1;
extern asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnPerCellListItem_1[3];
#ifdef __cplusplus
}
#endif
#endif /* _FQIPERSlicesPerPlmnPerCellListItem_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _GNB_CU_CP_Name_H_
#define _GNB_CU_CP_Name_H_
#include <asn_application.h>
/* Including external dependencies */
#include <PrintableString.h>
#ifdef __cplusplus
extern "C" {
#endif
/* GNB-CU-CP-Name */
typedef PrintableString_t GNB_CU_CP_Name_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_GNB_CU_CP_Name_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_CP_Name;
asn_struct_free_f GNB_CU_CP_Name_free;
asn_struct_print_f GNB_CU_CP_Name_print;
asn_constr_check_f GNB_CU_CP_Name_constraint;
ber_type_decoder_f GNB_CU_CP_Name_decode_ber;
der_type_encoder_f GNB_CU_CP_Name_encode_der;
xer_type_decoder_f GNB_CU_CP_Name_decode_xer;
xer_type_encoder_f GNB_CU_CP_Name_encode_xer;
oer_type_decoder_f GNB_CU_CP_Name_decode_oer;
oer_type_encoder_f GNB_CU_CP_Name_encode_oer;
per_type_decoder_f GNB_CU_CP_Name_decode_uper;
per_type_encoder_f GNB_CU_CP_Name_encode_uper;
per_type_decoder_f GNB_CU_CP_Name_decode_aper;
per_type_encoder_f GNB_CU_CP_Name_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _GNB_CU_CP_Name_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.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>

View File

@@ -0,0 +1,46 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _GNB_CU_UP_Name_H_
#define _GNB_CU_UP_Name_H_
#include <asn_application.h>
/* Including external dependencies */
#include <PrintableString.h>
#ifdef __cplusplus
extern "C" {
#endif
/* GNB-CU-UP-Name */
typedef PrintableString_t GNB_CU_UP_Name_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_GNB_CU_UP_Name_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_Name;
asn_struct_free_f GNB_CU_UP_Name_free;
asn_struct_print_f GNB_CU_UP_Name_print;
asn_constr_check_f GNB_CU_UP_Name_constraint;
ber_type_decoder_f GNB_CU_UP_Name_decode_ber;
der_type_encoder_f GNB_CU_UP_Name_encode_der;
xer_type_decoder_f GNB_CU_UP_Name_decode_xer;
xer_type_encoder_f GNB_CU_UP_Name_encode_xer;
oer_type_decoder_f GNB_CU_UP_Name_decode_oer;
oer_type_encoder_f GNB_CU_UP_Name_encode_oer;
per_type_decoder_f GNB_CU_UP_Name_decode_uper;
per_type_encoder_f GNB_CU_UP_Name_encode_uper;
per_type_decoder_f GNB_CU_UP_Name_decode_aper;
per_type_encoder_f GNB_CU_UP_Name_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _GNB_CU_UP_Name_H_ */
#include <asn_internal.h>

46
e2sm/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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.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,46 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _GNB_DU_Name_H_
#define _GNB_DU_Name_H_
#include <asn_application.h>
/* Including external dependencies */
#include <PrintableString.h>
#ifdef __cplusplus
extern "C" {
#endif
/* GNB-DU-Name */
typedef PrintableString_t GNB_DU_Name_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_GNB_DU_Name_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_GNB_DU_Name;
asn_struct_free_f GNB_DU_Name_free;
asn_struct_print_f GNB_DU_Name_print;
asn_constr_check_f GNB_DU_Name_constraint;
ber_type_decoder_f GNB_DU_Name_decode_ber;
der_type_encoder_f GNB_DU_Name_encode_der;
xer_type_decoder_f GNB_DU_Name_decode_xer;
xer_type_encoder_f GNB_DU_Name_encode_xer;
oer_type_decoder_f GNB_DU_Name_decode_oer;
oer_type_encoder_f GNB_DU_Name_encode_oer;
per_type_decoder_f GNB_DU_Name_decode_uper;
per_type_encoder_f GNB_DU_Name_encode_uper;
per_type_decoder_f GNB_DU_Name_decode_aper;
per_type_encoder_f GNB_DU_Name_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _GNB_DU_Name_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.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>

62
e2sm/headers/GNB-Name.h Normal file
View File

@@ -0,0 +1,62 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _GNB_Name_H_
#define _GNB_Name_H_
#include <asn_application.h>
/* Including external dependencies */
#include "GNB-DU-Name.h"
#include "GNB-CU-CP-Name.h"
#include "GNB-CU-UP-Name.h"
#include <constr_CHOICE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum GNB_Name_PR {
GNB_Name_PR_NOTHING, /* No components present */
GNB_Name_PR_gNB_DU_Name,
GNB_Name_PR_gNB_CU_CP_Name,
GNB_Name_PR_gNB_CU_UP_Name
/* Extensions may appear below */
} GNB_Name_PR;
/* GNB-Name */
typedef struct GNB_Name {
GNB_Name_PR present;
union GNB_Name_u {
GNB_DU_Name_t gNB_DU_Name;
GNB_CU_CP_Name_t gNB_CU_CP_Name;
GNB_CU_UP_Name_t gNB_CU_UP_Name;
/*
* This type is extensible,
* possible extensions are below.
*/
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} GNB_Name_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_GNB_Name;
extern asn_CHOICE_specifics_t asn_SPC_GNB_Name_specs_1;
extern asn_TYPE_member_t asn_MBR_GNB_Name_1[3];
extern asn_per_constraints_t asn_PER_type_GNB_Name_constr_1;
#ifdef __cplusplus
}
#endif
#endif /* _GNB_Name_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.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,67 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _GlobalKPMnode_ID_H_
#define _GlobalKPMnode_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include <constr_CHOICE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum GlobalKPMnode_ID_PR {
GlobalKPMnode_ID_PR_NOTHING, /* No components present */
GlobalKPMnode_ID_PR_gNB,
GlobalKPMnode_ID_PR_en_gNB,
GlobalKPMnode_ID_PR_ng_eNB,
GlobalKPMnode_ID_PR_eNB
/* Extensions may appear below */
} GlobalKPMnode_ID_PR;
/* Forward declarations */
struct GlobalKPMnode_gNB_ID;
struct GlobalKPMnode_en_gNB_ID;
struct GlobalKPMnode_ng_eNB_ID;
struct GlobalKPMnode_eNB_ID;
/* GlobalKPMnode-ID */
typedef struct GlobalKPMnode_ID {
GlobalKPMnode_ID_PR present;
union GlobalKPMnode_ID_u {
struct GlobalKPMnode_gNB_ID *gNB;
struct GlobalKPMnode_en_gNB_ID *en_gNB;
struct GlobalKPMnode_ng_eNB_ID *ng_eNB;
struct GlobalKPMnode_eNB_ID *eNB;
/*
* This type is extensible,
* possible extensions are below.
*/
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} GlobalKPMnode_ID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ID;
extern asn_CHOICE_specifics_t asn_SPC_GlobalKPMnode_ID_specs_1;
extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_ID_1[4];
extern asn_per_constraints_t asn_PER_type_GlobalKPMnode_ID_constr_1;
#ifdef __cplusplus
}
#endif
#endif /* _GlobalKPMnode_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _GlobalKPMnode_eNB_ID_H_
#define _GlobalKPMnode_eNB_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include "GlobalENB-ID.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* GlobalKPMnode-eNB-ID */
typedef struct GlobalKPMnode_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;
} GlobalKPMnode_eNB_ID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_eNB_ID;
extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_eNB_ID_specs_1;
extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_eNB_ID_1[1];
#ifdef __cplusplus
}
#endif
#endif /* _GlobalKPMnode_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _GlobalKPMnode_en_gNB_ID_H_
#define _GlobalKPMnode_en_gNB_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include "GlobalenGNB-ID.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* GlobalKPMnode-en-gNB-ID */
typedef struct GlobalKPMnode_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;
} GlobalKPMnode_en_gNB_ID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_en_gNB_ID;
extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_en_gNB_ID_specs_1;
extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_en_gNB_ID_1[1];
#ifdef __cplusplus
}
#endif
#endif /* _GlobalKPMnode_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _GlobalKPMnode_gNB_ID_H_
#define _GlobalKPMnode_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
/* GlobalKPMnode-gNB-ID */
typedef struct GlobalKPMnode_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;
} GlobalKPMnode_gNB_ID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_gNB_ID;
extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_gNB_ID_specs_1;
extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_gNB_ID_1[3];
#ifdef __cplusplus
}
#endif
#endif /* _GlobalKPMnode_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _GlobalKPMnode_ng_eNB_ID_H_
#define _GlobalKPMnode_ng_eNB_ID_H_
#include <asn_application.h>
/* Including external dependencies */
#include "GlobalngeNB-ID.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* GlobalKPMnode-ng-eNB-ID */
typedef struct GlobalKPMnode_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;
} GlobalKPMnode_ng_eNB_ID_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ng_eNB_ID;
extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_ng_eNB_ID_specs_1;
extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_ng_eNB_ID_1[1];
#ifdef __cplusplus
}
#endif
#endif /* _GlobalKPMnode_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.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
e2sm/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_ */

57
e2sm/headers/NI-Type.h Normal file
View File

@@ -0,0 +1,57 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _NI_Type_H_
#define _NI_Type_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum NI_Type {
NI_Type_x2_u = 0,
NI_Type_xn_u = 1,
NI_Type_f1_u = 2
/*
* Enumeration is extensible
*/
} e_NI_Type;
/* NI-Type */
typedef long NI_Type_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_NI_Type_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_NI_Type;
extern const asn_INTEGER_specifics_t asn_SPC_NI_Type_specs_1;
asn_struct_free_f NI_Type_free;
asn_struct_print_f NI_Type_print;
asn_constr_check_f NI_Type_constraint;
ber_type_decoder_f NI_Type_decode_ber;
der_type_encoder_f NI_Type_encode_der;
xer_type_decoder_f NI_Type_decode_xer;
xer_type_encoder_f NI_Type_encode_xer;
oer_type_decoder_f NI_Type_decode_oer;
oer_type_encoder_f NI_Type_encode_oer;
per_type_decoder_f NI_Type_decode_uper;
per_type_encoder_f NI_Type_encode_uper;
per_type_decoder_f NI_Type_decode_aper;
per_type_encoder_f NI_Type_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _NI_Type_H_ */
#include <asn_internal.h>

42
e2sm/headers/NRCGI.h Normal file
View File

@@ -0,0 +1,42 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _NRCGI_H_
#define _NRCGI_H_
#include <asn_application.h>
/* Including external dependencies */
#include "PLMN-Identity.h"
#include "NRCellIdentity.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* NRCGI */
typedef struct NRCGI {
PLMN_Identity_t pLMN_Identity;
NRCellIdentity_t nRCellIdentity;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} NRCGI_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_NRCGI;
extern asn_SEQUENCE_specifics_t asn_SPC_NRCGI_specs_1;
extern asn_TYPE_member_t asn_MBR_NRCGI_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _NRCGI_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _NRCellIdentity_H_
#define _NRCellIdentity_H_
#include <asn_application.h>
/* Including external dependencies */
#include <BIT_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* NRCellIdentity */
typedef BIT_STRING_t NRCellIdentity_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_NRCellIdentity_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_NRCellIdentity;
asn_struct_free_f NRCellIdentity_free;
asn_struct_print_f NRCellIdentity_print;
asn_constr_check_f NRCellIdentity_constraint;
ber_type_decoder_f NRCellIdentity_decode_ber;
der_type_encoder_f NRCellIdentity_encode_der;
xer_type_decoder_f NRCellIdentity_decode_xer;
xer_type_encoder_f NRCellIdentity_encode_xer;
oer_type_decoder_f NRCellIdentity_decode_oer;
oer_type_encoder_f NRCellIdentity_encode_oer;
per_type_decoder_f NRCellIdentity_decode_uper;
per_type_encoder_f NRCellIdentity_encode_uper;
per_type_decoder_f NRCellIdentity_decode_aper;
per_type_encoder_f NRCellIdentity_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _NRCellIdentity_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
e2sm/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_ */

View File

@@ -0,0 +1,47 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _OCUCP_PF_Container_H_
#define _OCUCP_PF_Container_H_
#include <asn_application.h>
/* Including external dependencies */
#include "GNB-CU-CP-Name.h"
#include <NativeInteger.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* OCUCP-PF-Container */
typedef struct OCUCP_PF_Container {
GNB_CU_CP_Name_t *gNB_CU_CP_Name; /* OPTIONAL */
struct OCUCP_PF_Container__cu_CP_Resource_Status {
long *numberOfActive_UEs; /* OPTIONAL */
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} cu_CP_Resource_Status;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} OCUCP_PF_Container_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_OCUCP_PF_Container;
extern asn_SEQUENCE_specifics_t asn_SPC_OCUCP_PF_Container_specs_1;
extern asn_TYPE_member_t asn_MBR_OCUCP_PF_Container_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _OCUCP_PF_Container_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _OCUUP_PF_Container_H_
#define _OCUUP_PF_Container_H_
#include <asn_application.h>
/* Including external dependencies */
#include "GNB-CU-UP-Name.h"
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct PF_ContainerListItem;
/* OCUUP-PF-Container */
typedef struct OCUUP_PF_Container {
GNB_CU_UP_Name_t *gNB_CU_UP_Name; /* OPTIONAL */
struct OCUUP_PF_Container__pf_ContainerList {
A_SEQUENCE_OF(struct PF_ContainerListItem) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} pf_ContainerList;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} OCUUP_PF_Container_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_OCUUP_PF_Container;
extern asn_SEQUENCE_specifics_t asn_SPC_OCUUP_PF_Container_specs_1;
extern asn_TYPE_member_t asn_MBR_OCUUP_PF_Container_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _OCUUP_PF_Container_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,53 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _ODU_PF_Container_H_
#define _ODU_PF_Container_H_
#include <asn_application.h>
/* Including external dependencies */
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct CellResourceReportListItem;
/* ODU-PF-Container */
typedef struct ODU_PF_Container {
struct ODU_PF_Container__cellResourceReportList {
A_SEQUENCE_OF(struct CellResourceReportListItem) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} cellResourceReportList;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ODU_PF_Container_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ODU_PF_Container;
extern asn_SEQUENCE_specifics_t asn_SPC_ODU_PF_Container_specs_1;
extern asn_TYPE_member_t asn_MBR_ODU_PF_Container_1[1];
#ifdef __cplusplus
}
#endif
#endif /* _ODU_PF_Container_H_ */
#include <asn_internal.h>

77
e2sm/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,64 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _PF_Container_H_
#define _PF_Container_H_
#include <asn_application.h>
/* Including external dependencies */
#include <constr_CHOICE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum PF_Container_PR {
PF_Container_PR_NOTHING, /* No components present */
PF_Container_PR_oDU,
PF_Container_PR_oCU_CP,
PF_Container_PR_oCU_UP
/* Extensions may appear below */
} PF_Container_PR;
/* Forward declarations */
struct ODU_PF_Container;
struct OCUCP_PF_Container;
struct OCUUP_PF_Container;
/* PF-Container */
typedef struct PF_Container {
PF_Container_PR present;
union PF_Container_u {
struct ODU_PF_Container *oDU;
struct OCUCP_PF_Container *oCU_CP;
struct OCUUP_PF_Container *oCU_UP;
/*
* This type is extensible,
* possible extensions are below.
*/
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} PF_Container_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_PF_Container;
extern asn_CHOICE_specifics_t asn_SPC_PF_Container_specs_1;
extern asn_TYPE_member_t asn_MBR_PF_Container_1[3];
extern asn_per_constraints_t asn_PER_type_PF_Container_constr_1;
#ifdef __cplusplus
}
#endif
#endif /* _PF_Container_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _PF_ContainerListItem_H_
#define _PF_ContainerListItem_H_
#include <asn_application.h>
/* Including external dependencies */
#include "NI-Type.h"
#include "CUUPMeasurement-Container.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* PF-ContainerListItem */
typedef struct PF_ContainerListItem {
NI_Type_t interface_type;
CUUPMeasurement_Container_t o_CU_UP_PM_Container;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} PF_ContainerListItem_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_PF_ContainerListItem;
extern asn_SEQUENCE_specifics_t asn_SPC_PF_ContainerListItem_specs_1;
extern asn_TYPE_member_t asn_MBR_PF_ContainerListItem_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _PF_ContainerListItem_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.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>

View File

@@ -0,0 +1,48 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _PM_Containers_List_H_
#define _PM_Containers_List_H_
#include <asn_application.h>
/* Including external dependencies */
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct PF_Container;
struct RAN_Container;
/* PM-Containers-List */
typedef struct PM_Containers_List {
struct PF_Container *performanceContainer; /* OPTIONAL */
struct RAN_Container *theRANContainer; /* OPTIONAL */
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} PM_Containers_List_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_PM_Containers_List;
extern asn_SEQUENCE_specifics_t asn_SPC_PM_Containers_List_specs_1;
extern asn_TYPE_member_t asn_MBR_PM_Containers_List_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _PM_Containers_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _PerQCIReportListItem_H_
#define _PerQCIReportListItem_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeInteger.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* PerQCIReportListItem */
typedef struct PerQCIReportListItem {
long qci;
long *dl_PRBUsage; /* OPTIONAL */
long *ul_PRBUsage; /* OPTIONAL */
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} PerQCIReportListItem_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItem;
extern asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItem_specs_1;
extern asn_TYPE_member_t asn_MBR_PerQCIReportListItem_1[3];
#ifdef __cplusplus
}
#endif
#endif /* _PerQCIReportListItem_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,47 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _PerQCIReportListItemFormat_H_
#define _PerQCIReportListItemFormat_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeInteger.h>
#include <INTEGER.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* PerQCIReportListItemFormat */
typedef struct PerQCIReportListItemFormat {
long qci;
INTEGER_t *pDCPBytesDL; /* OPTIONAL */
INTEGER_t *pDCPBytesUL; /* OPTIONAL */
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} PerQCIReportListItemFormat_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItemFormat;
extern asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItemFormat_specs_1;
extern asn_TYPE_member_t asn_MBR_PerQCIReportListItemFormat_1[3];
#ifdef __cplusplus
}
#endif
#endif /* _PerQCIReportListItemFormat_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,50 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _PlmnID_List_H_
#define _PlmnID_List_H_
#include <asn_application.h>
/* Including external dependencies */
#include "PLMN-Identity.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct FGC_CUUP_PM_Format;
struct EPC_CUUP_PM_Format;
/* PlmnID-List */
typedef struct PlmnID_List {
PLMN_Identity_t pLMN_Identity;
struct FGC_CUUP_PM_Format *cu_UP_PM_5GC; /* OPTIONAL */
struct EPC_CUUP_PM_Format *cu_UP_PM_EPC; /* OPTIONAL */
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} PlmnID_List_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_PlmnID_List;
extern asn_SEQUENCE_specifics_t asn_SPC_PlmnID_List_specs_1;
extern asn_TYPE_member_t asn_MBR_PlmnID_List_1[3];
#ifdef __cplusplus
}
#endif
#endif /* _PlmnID_List_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,37 @@
/*-
* Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#ifndef _PrintableString_H_
#define _PrintableString_H_
#include <OCTET_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef OCTET_STRING_t PrintableString_t; /* Implemented via OCTET STRING */
extern asn_TYPE_descriptor_t asn_DEF_PrintableString;
extern asn_TYPE_operation_t asn_OP_PrintableString;
asn_constr_check_f PrintableString_constraint;
#define PrintableString_free OCTET_STRING_free
#define PrintableString_print OCTET_STRING_print_utf8
#define PrintableString_compare OCTET_STRING_compare
#define PrintableString_decode_ber OCTET_STRING_decode_ber
#define PrintableString_encode_der OCTET_STRING_encode_der
#define PrintableString_decode_xer OCTET_STRING_decode_xer_utf8
#define PrintableString_encode_xer OCTET_STRING_encode_xer_utf8
#define PrintableString_decode_uper OCTET_STRING_decode_uper
#define PrintableString_encode_uper OCTET_STRING_encode_uper
#define PrintableString_decode_aper OCTET_STRING_decode_aper
#define PrintableString_encode_aper OCTET_STRING_encode_aper
#ifdef __cplusplus
}
#endif
#endif /* _PrintableString_H_ */

View File

@@ -0,0 +1,75 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RAN_Container_H_
#define _RAN_Container_H_
#include <asn_application.h>
/* Including external dependencies */
#include "Timestamp.h"
#include <constr_CHOICE.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum RAN_Container__reportContainer_PR {
RAN_Container__reportContainer_PR_NOTHING, /* No components present */
RAN_Container__reportContainer_PR_oDU_UE,
RAN_Container__reportContainer_PR_oCU_CP_UE,
RAN_Container__reportContainer_PR_oCU_UP_UE
/* Extensions may appear below */
} RAN_Container__reportContainer_PR;
/* Forward declarations */
struct DU_Usage_Report_Per_UE;
struct CU_CP_Usage_Report_Per_UE;
struct CU_UP_Usage_Report_Per_UE;
/* RAN-Container */
typedef struct RAN_Container {
Timestamp_t timestamp;
struct RAN_Container__reportContainer {
RAN_Container__reportContainer_PR present;
union RAN_Container__reportContainer_u {
struct DU_Usage_Report_Per_UE *oDU_UE;
struct CU_CP_Usage_Report_Per_UE *oCU_CP_UE;
struct CU_UP_Usage_Report_Per_UE *oCU_UP_UE;
/*
* This type is extensible,
* possible extensions are below.
*/
} choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} reportContainer;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RAN_Container_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RAN_Container;
extern asn_SEQUENCE_specifics_t asn_SPC_RAN_Container_specs_1;
extern asn_TYPE_member_t asn_MBR_RAN_Container_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _RAN_Container_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RANcallProcess_ID_string_H_
#define _RANcallProcess_ID_string_H_
#include <asn_application.h>
/* Including external dependencies */
#include <PrintableString.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RANcallProcess-ID-string */
typedef PrintableString_t RANcallProcess_ID_string_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANcallProcess_ID_string;
asn_struct_free_f RANcallProcess_ID_string_free;
asn_struct_print_f RANcallProcess_ID_string_print;
asn_constr_check_f RANcallProcess_ID_string_constraint;
ber_type_decoder_f RANcallProcess_ID_string_decode_ber;
der_type_encoder_f RANcallProcess_ID_string_encode_der;
xer_type_decoder_f RANcallProcess_ID_string_decode_xer;
xer_type_encoder_f RANcallProcess_ID_string_encode_xer;
oer_type_decoder_f RANcallProcess_ID_string_decode_oer;
oer_type_encoder_f RANcallProcess_ID_string_encode_oer;
per_type_decoder_f RANcallProcess_ID_string_decode_uper;
per_type_encoder_f RANcallProcess_ID_string_encode_uper;
per_type_decoder_f RANcallProcess_ID_string_decode_aper;
per_type_encoder_f RANcallProcess_ID_string_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _RANcallProcess_ID_string_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RANfunction_Name_H_
#define _RANfunction_Name_H_
#include <asn_application.h>
/* Including external dependencies */
#include <PrintableString.h>
#include <NativeInteger.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RANfunction-Name */
typedef struct RANfunction_Name {
PrintableString_t ranFunction_ShortName;
PrintableString_t ranFunction_E2SM_OID;
PrintableString_t ranFunction_Description;
long *ranFunction_Instance; /* OPTIONAL */
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RANfunction_Name_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANfunction_Name;
extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Name_specs_1;
extern asn_TYPE_member_t asn_MBR_RANfunction_Name_1[4];
#ifdef __cplusplus
}
#endif
#endif /* _RANfunction_Name_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RIC_EventTriggerStyle_List_H_
#define _RIC_EventTriggerStyle_List_H_
#include <asn_application.h>
/* Including external dependencies */
#include "RIC-Style-Type.h"
#include "RIC-Style-Name.h"
#include "RIC-Format-Type.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RIC-EventTriggerStyle-List */
typedef struct RIC_EventTriggerStyle_List {
RIC_Style_Type_t ric_EventTriggerStyle_Type;
RIC_Style_Name_t ric_EventTriggerStyle_Name;
RIC_Format_Type_t ric_EventTriggerFormat_Type;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RIC_EventTriggerStyle_List_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RIC_EventTriggerStyle_List;
extern asn_SEQUENCE_specifics_t asn_SPC_RIC_EventTriggerStyle_List_specs_1;
extern asn_TYPE_member_t asn_MBR_RIC_EventTriggerStyle_List_1[3];
#ifdef __cplusplus
}
#endif
#endif /* _RIC_EventTriggerStyle_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RIC_Format_Type_H_
#define _RIC_Format_Type_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeInteger.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RIC-Format-Type */
typedef long RIC_Format_Type_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RIC_Format_Type;
asn_struct_free_f RIC_Format_Type_free;
asn_struct_print_f RIC_Format_Type_print;
asn_constr_check_f RIC_Format_Type_constraint;
ber_type_decoder_f RIC_Format_Type_decode_ber;
der_type_encoder_f RIC_Format_Type_encode_der;
xer_type_decoder_f RIC_Format_Type_decode_xer;
xer_type_encoder_f RIC_Format_Type_encode_xer;
oer_type_decoder_f RIC_Format_Type_decode_oer;
oer_type_encoder_f RIC_Format_Type_encode_oer;
per_type_decoder_f RIC_Format_Type_decode_uper;
per_type_encoder_f RIC_Format_Type_encode_uper;
per_type_decoder_f RIC_Format_Type_decode_aper;
per_type_encoder_f RIC_Format_Type_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _RIC_Format_Type_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,49 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RIC_ReportStyle_List_H_
#define _RIC_ReportStyle_List_H_
#include <asn_application.h>
/* Including external dependencies */
#include "RIC-Style-Type.h"
#include "RIC-Style-Name.h"
#include "RIC-Format-Type.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RIC-ReportStyle-List */
typedef struct RIC_ReportStyle_List {
RIC_Style_Type_t ric_ReportStyle_Type;
RIC_Style_Name_t ric_ReportStyle_Name;
RIC_Format_Type_t ric_IndicationHeaderFormat_Type;
RIC_Format_Type_t ric_IndicationMessageFormat_Type;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} RIC_ReportStyle_List_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RIC_ReportStyle_List;
extern asn_SEQUENCE_specifics_t asn_SPC_RIC_ReportStyle_List_specs_1;
extern asn_TYPE_member_t asn_MBR_RIC_ReportStyle_List_1[4];
#ifdef __cplusplus
}
#endif
#endif /* _RIC_ReportStyle_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RIC_Style_Name_H_
#define _RIC_Style_Name_H_
#include <asn_application.h>
/* Including external dependencies */
#include <PrintableString.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RIC-Style-Name */
typedef PrintableString_t RIC_Style_Name_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_RIC_Style_Name_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_RIC_Style_Name;
asn_struct_free_f RIC_Style_Name_free;
asn_struct_print_f RIC_Style_Name_print;
asn_constr_check_f RIC_Style_Name_constraint;
ber_type_decoder_f RIC_Style_Name_decode_ber;
der_type_encoder_f RIC_Style_Name_encode_der;
xer_type_decoder_f RIC_Style_Name_decode_xer;
xer_type_encoder_f RIC_Style_Name_encode_xer;
oer_type_decoder_f RIC_Style_Name_decode_oer;
oer_type_encoder_f RIC_Style_Name_encode_oer;
per_type_decoder_f RIC_Style_Name_decode_uper;
per_type_encoder_f RIC_Style_Name_encode_uper;
per_type_decoder_f RIC_Style_Name_decode_aper;
per_type_encoder_f RIC_Style_Name_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _RIC_Style_Name_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RIC_Style_Type_H_
#define _RIC_Style_Type_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeInteger.h>
#ifdef __cplusplus
extern "C" {
#endif
/* RIC-Style-Type */
typedef long RIC_Style_Type_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RIC_Style_Type;
asn_struct_free_f RIC_Style_Type_free;
asn_struct_print_f RIC_Style_Type_print;
asn_constr_check_f RIC_Style_Type_constraint;
ber_type_decoder_f RIC_Style_Type_decode_ber;
der_type_encoder_f RIC_Style_Type_encode_der;
xer_type_decoder_f RIC_Style_Type_decode_xer;
xer_type_encoder_f RIC_Style_Type_encode_xer;
oer_type_decoder_f RIC_Style_Type_decode_oer;
oer_type_encoder_f RIC_Style_Type_encode_oer;
per_type_decoder_f RIC_Style_Type_decode_uper;
per_type_encoder_f RIC_Style_Type_encode_uper;
per_type_decoder_f RIC_Style_Type_decode_aper;
per_type_encoder_f RIC_Style_Type_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _RIC_Style_Type_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,74 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _RT_Period_IE_H_
#define _RT_Period_IE_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum RT_Period_IE {
RT_Period_IE_ms10 = 0,
RT_Period_IE_ms20 = 1,
RT_Period_IE_ms32 = 2,
RT_Period_IE_ms40 = 3,
RT_Period_IE_ms60 = 4,
RT_Period_IE_ms64 = 5,
RT_Period_IE_ms70 = 6,
RT_Period_IE_ms80 = 7,
RT_Period_IE_ms128 = 8,
RT_Period_IE_ms160 = 9,
RT_Period_IE_ms256 = 10,
RT_Period_IE_ms320 = 11,
RT_Period_IE_ms512 = 12,
RT_Period_IE_ms640 = 13,
RT_Period_IE_ms1024 = 14,
RT_Period_IE_ms1280 = 15,
RT_Period_IE_ms2048 = 16,
RT_Period_IE_ms2560 = 17,
RT_Period_IE_ms5120 = 18,
RT_Period_IE_ms10240 = 19
/*
* Enumeration is extensible
*/
} e_RT_Period_IE;
/* RT-Period-IE */
typedef long RT_Period_IE_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_RT_Period_IE_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_RT_Period_IE;
extern const asn_INTEGER_specifics_t asn_SPC_RT_Period_IE_specs_1;
asn_struct_free_f RT_Period_IE_free;
asn_struct_print_f RT_Period_IE_print;
asn_constr_check_f RT_Period_IE_constraint;
ber_type_decoder_f RT_Period_IE_decode_ber;
der_type_encoder_f RT_Period_IE_encode_der;
xer_type_decoder_f RT_Period_IE_decode_xer;
xer_type_encoder_f RT_Period_IE_encode_xer;
oer_type_decoder_f RT_Period_IE_decode_oer;
oer_type_encoder_f RT_Period_IE_encode_oer;
per_type_decoder_f RT_Period_IE_decode_uper;
per_type_encoder_f RT_Period_IE_encode_uper;
per_type_decoder_f RT_Period_IE_decode_aper;
per_type_encoder_f RT_Period_IE_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _RT_Period_IE_H_ */
#include <asn_internal.h>

41
e2sm/headers/SNSSAI.h Normal file
View File

@@ -0,0 +1,41 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _SNSSAI_H_
#define _SNSSAI_H_
#include <asn_application.h>
/* Including external dependencies */
#include <OCTET_STRING.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* SNSSAI */
typedef struct SNSSAI {
OCTET_STRING_t sST;
OCTET_STRING_t *sD; /* OPTIONAL */
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} SNSSAI_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_SNSSAI;
extern asn_SEQUENCE_specifics_t asn_SPC_SNSSAI_specs_1;
extern asn_TYPE_member_t asn_MBR_SNSSAI_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _SNSSAI_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,50 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _ServedPlmnPerCellListItem_H_
#define _ServedPlmnPerCellListItem_H_
#include <asn_application.h>
/* Including external dependencies */
#include "PLMN-Identity.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct FGC_DU_PM_Container;
struct EPC_DU_PM_Container;
/* ServedPlmnPerCellListItem */
typedef struct ServedPlmnPerCellListItem {
PLMN_Identity_t pLMN_Identity;
struct FGC_DU_PM_Container *du_PM_5GC; /* OPTIONAL */
struct EPC_DU_PM_Container *du_PM_EPC; /* OPTIONAL */
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} ServedPlmnPerCellListItem_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ServedPlmnPerCellListItem;
extern asn_SEQUENCE_specifics_t asn_SPC_ServedPlmnPerCellListItem_specs_1;
extern asn_TYPE_member_t asn_MBR_ServedPlmnPerCellListItem_1[3];
#ifdef __cplusplus
}
#endif
#endif /* _ServedPlmnPerCellListItem_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _SlicePerPlmnPerCellListItem_H_
#define _SlicePerPlmnPerCellListItem_H_
#include <asn_application.h>
/* Including external dependencies */
#include "SNSSAI.h"
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct FQIPERSlicesPerPlmnPerCellListItem;
/* SlicePerPlmnPerCellListItem */
typedef struct SlicePerPlmnPerCellListItem {
SNSSAI_t sliceID;
struct SlicePerPlmnPerCellListItem__fQIPERSlicesPerPlmnPerCellList {
A_SEQUENCE_OF(struct FQIPERSlicesPerPlmnPerCellListItem) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} fQIPERSlicesPerPlmnPerCellList;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} SlicePerPlmnPerCellListItem_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_SlicePerPlmnPerCellListItem;
extern asn_SEQUENCE_specifics_t asn_SPC_SlicePerPlmnPerCellListItem_specs_1;
extern asn_TYPE_member_t asn_MBR_SlicePerPlmnPerCellListItem_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _SlicePerPlmnPerCellListItem_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _SliceToReportListItem_H_
#define _SliceToReportListItem_H_
#include <asn_application.h>
/* Including external dependencies */
#include "SNSSAI.h"
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
struct FQIPERSlicesPerPlmnListItem;
/* SliceToReportListItem */
typedef struct SliceToReportListItem {
SNSSAI_t sliceID;
struct SliceToReportListItem__fQIPERSlicesPerPlmnList {
A_SEQUENCE_OF(struct FQIPERSlicesPerPlmnListItem) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} fQIPERSlicesPerPlmnList;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} SliceToReportListItem_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_SliceToReportListItem;
extern asn_SEQUENCE_specifics_t asn_SPC_SliceToReportListItem_specs_1;
extern asn_TYPE_member_t asn_MBR_SliceToReportListItem_1[2];
#ifdef __cplusplus
}
#endif
#endif /* _SliceToReportListItem_H_ */
#include <asn_internal.h>

45
e2sm/headers/Timestamp.h Normal file
View File

@@ -0,0 +1,45 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _Timestamp_H_
#define _Timestamp_H_
#include <asn_application.h>
/* Including external dependencies */
#include <OCTET_STRING.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Timestamp */
typedef OCTET_STRING_t Timestamp_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_Timestamp;
asn_struct_free_f Timestamp_free;
asn_struct_print_f Timestamp_print;
asn_constr_check_f Timestamp_constraint;
ber_type_decoder_f Timestamp_decode_ber;
der_type_encoder_f Timestamp_encode_der;
xer_type_decoder_f Timestamp_decode_xer;
xer_type_encoder_f Timestamp_encode_xer;
oer_type_decoder_f Timestamp_decode_oer;
oer_type_encoder_f Timestamp_encode_oer;
per_type_decoder_f Timestamp_decode_uper;
per_type_encoder_f Timestamp_encode_uper;
per_type_decoder_f Timestamp_decode_aper;
per_type_encoder_f Timestamp_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _Timestamp_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _Trigger_ConditionIE_Item_H_
#define _Trigger_ConditionIE_Item_H_
#include <asn_application.h>
/* Including external dependencies */
#include "RT-Period-IE.h"
#include <constr_SEQUENCE.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Trigger-ConditionIE-Item */
typedef struct Trigger_ConditionIE_Item {
RT_Period_IE_t report_Period_IE;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} Trigger_ConditionIE_Item_t;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_Trigger_ConditionIE_Item;
extern asn_SEQUENCE_specifics_t asn_SPC_Trigger_ConditionIE_Item_specs_1;
extern asn_TYPE_member_t asn_MBR_Trigger_ConditionIE_Item_1[1];
#ifdef __cplusplus
}
#endif
#endif /* _Trigger_ConditionIE_Item_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 "E2SM-KPM-IEs"
* found in "e2sm-kpm-v01.02.asn"
* `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
*/
#ifndef _UE_Report_Type_H_
#define _UE_Report_Type_H_
#include <asn_application.h>
/* Including external dependencies */
#include <NativeEnumerated.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Dependencies */
typedef enum UE_Report_Type {
UE_Report_Type_oDU_Report_Per_UE = 0,
UE_Report_Type_oCU_CP_Report_Per_UE = 1,
UE_Report_Type_oCU_UP_Report_Per_UE = 2
/*
* Enumeration is extensible
*/
} e_UE_Report_Type;
/* UE-Report-Type */
typedef long UE_Report_Type_t;
/* Implementation */
extern asn_per_constraints_t asn_PER_type_UE_Report_Type_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_UE_Report_Type;
extern const asn_INTEGER_specifics_t asn_SPC_UE_Report_Type_specs_1;
asn_struct_free_f UE_Report_Type_free;
asn_struct_print_f UE_Report_Type_print;
asn_constr_check_f UE_Report_Type_constraint;
ber_type_decoder_f UE_Report_Type_decode_ber;
der_type_encoder_f UE_Report_Type_encode_der;
xer_type_decoder_f UE_Report_Type_decode_xer;
xer_type_encoder_f UE_Report_Type_encode_xer;
oer_type_decoder_f UE_Report_Type_decode_oer;
oer_type_encoder_f UE_Report_Type_encode_oer;
per_type_decoder_f UE_Report_Type_decode_uper;
per_type_encoder_f UE_Report_Type_encode_uper;
per_type_decoder_f UE_Report_Type_decode_aper;
per_type_encoder_f UE_Report_Type_encode_aper;
#ifdef __cplusplus
}
#endif
#endif /* _UE_Report_Type_H_ */
#include <asn_internal.h>

View File

@@ -0,0 +1,52 @@
/*-
* Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#ifndef ASN_SEQUENCE_OF_H
#define ASN_SEQUENCE_OF_H
#include <asn_SET_OF.h>
#ifdef __cplusplus
extern "C" {
#endif
/*
* SEQUENCE OF is the same as SET OF with a tiny difference:
* the delete operation preserves the initial order of elements
* and thus MAY operate in non-constant time.
*/
#define A_SEQUENCE_OF(type) A_SET_OF(type)
#define ASN_SEQUENCE_ADD(headptr, ptr) \
asn_sequence_add((headptr), (ptr))
/***********************************************
* Implementation of the SEQUENCE OF structure.
*/
#define asn_sequence_add asn_set_add
#define asn_sequence_empty asn_set_empty
/*
* Delete the element from the set by its number (base 0).
* This is NOT a constant-time operation.
* The order of elements is preserved.
* If _do_free is given AND the (*free) is initialized, the element
* will be freed using the custom (*free) function as well.
*/
void asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free);
/*
* Cope with different conversions requirements to/from void in C and C++.
* This is mostly useful for support library.
*/
typedef A_SEQUENCE_OF(void) asn_anonymous_sequence_;
#define _A_SEQUENCE_FROM_VOID(ptr) ((asn_anonymous_sequence_ *)(ptr))
#define _A_CSEQUENCE_FROM_VOID(ptr) ((const asn_anonymous_sequence_ *)(ptr))
#ifdef __cplusplus
}
#endif
#endif /* ASN_SEQUENCE_OF_H */

72
e2sm/headers/asn_SET_OF.h Normal file
View File

@@ -0,0 +1,72 @@
/*-
* Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#ifndef ASN_SET_OF_H
#define ASN_SET_OF_H
#ifdef __cplusplus
#define A_SET_OF(type) \
struct { \
type **array; \
int count; /* Meaningful size */ \
int size; /* Allocated size */ \
void (*free)(decltype(*array)); \
}
#else /* C */
#define A_SET_OF(type) \
struct { \
type **array; \
int count; /* Meaningful size */ \
int size; /* Allocated size */ \
void (*free)(type *); \
}
#endif
#ifdef __cplusplus
extern "C" {
#endif
#define ASN_SET_ADD(headptr, ptr) \
asn_set_add((headptr), (ptr))
/*******************************************
* Implementation of the SET OF structure.
*/
/*
* Add another structure into the set by its pointer.
* RETURN VALUES:
* 0 for success and -1/errno for failure.
*/
int asn_set_add(void *asn_set_of_x, void *ptr);
/*
* Delete the element from the set by its number (base 0).
* This is a constant-time operation. The order of elements before the
* deleted ones is guaranteed, the order of elements after the deleted
* one is NOT guaranteed.
* If _do_free is given AND the (*free) is initialized, the element
* will be freed using the custom (*free) function as well.
*/
void asn_set_del(void *asn_set_of_x, int number, int _do_free);
/*
* Empty the contents of the set. Will free the elements, if (*free) is given.
* Will NOT free the set itself.
*/
void asn_set_empty(void *asn_set_of_x);
/*
* Cope with different conversions requirements to/from void in C and C++.
* This is mostly useful for support library.
*/
typedef A_SET_OF(void) asn_anonymous_set_;
#define _A_SET_FROM_VOID(ptr) ((asn_anonymous_set_ *)(ptr))
#define _A_CSET_FROM_VOID(ptr) ((const asn_anonymous_set_ *)(ptr))
#ifdef __cplusplus
}
#endif
#endif /* ASN_SET_OF_H */

View File

@@ -0,0 +1,171 @@
/*-
* Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
/*
* Application-level ASN.1 callbacks.
*/
#ifndef ASN_APPLICATION_H
#define ASN_APPLICATION_H
#include "asn_system.h" /* for platform-dependent types */
#include "asn_codecs.h" /* for ASN.1 codecs specifics */
#ifdef __cplusplus
extern "C" {
#endif
/*
* A selection of ASN.1 Transfer Syntaxes to use with generalized
* encoders and decoders declared further in this .h file.
*/
enum asn_transfer_syntax {
/* Avoid appearance of a default transfer syntax. */
ATS_INVALID = 0,
/* Plaintext output (not conforming to any standard), for debugging. */
ATS_NONSTANDARD_PLAINTEXT,
/* Returns a randomly generated structure. */
ATS_RANDOM,
/*
* X.690:
* BER: Basic Encoding Rules.
* DER: Distinguished Encoding Rules.
* CER: Canonical Encoding Rules.
* DER and CER are more strict variants of BER.
*/
ATS_BER,
ATS_DER,
ATS_CER, /* Only decoding is supported */
/*
* X.696:
* OER: Octet Encoding Rules.
* CANONICAL-OER is a more strict variant of BASIC-OER.
*/
ATS_BASIC_OER,
ATS_CANONICAL_OER,
/*
* X.691:
* PER: Packed Encoding Rules.
* CANONICAL-PER is a more strict variant of BASIC-PER.
* NOTE: Produces or consumes a complete encoding (X.691 (08/2015) #11.1).
*/
ATS_UNALIGNED_BASIC_PER,
ATS_UNALIGNED_CANONICAL_PER,
ATS_ALIGNED_BASIC_PER,
ATS_ALIGNED_CANONICAL_PER,
/*
* X.693:
* XER: XML Encoding Rules.
* CANONICAL-XER is a more strict variant of BASIC-XER.
*/
ATS_BASIC_XER,
ATS_CANONICAL_XER
};
/*
* A generic encoder for any supported transfer syntax.
* RETURN VALUES:
* The (.encoded) field of the return value is REDEFINED to mean the following:
* >=0: The computed size of the encoded data. Can exceed the (buffer_size).
* -1: Error encoding the structure. See the error code in (errno):
* EINVAL: Incorrect parameters to the function, such as NULLs.
* ENOENT: Encoding transfer syntax is not defined (for this type).
* EBADF: The structure has invalid form or content constraint failed.
* The (.failed_type) and (.structure_ptr) MIGHT be set to the appropriate
* values at the place of failure, if at all possible.
* WARNING: The (.encoded) field of the return value can exceed the buffer_size.
* This is similar to snprintf(3) contract which might return values
* greater than the buffer size.
*/
asn_enc_rval_t asn_encode_to_buffer(
const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */
enum asn_transfer_syntax,
const struct asn_TYPE_descriptor_s *type_to_encode,
const void *structure_to_encode, void *buffer, size_t buffer_size);
/*
* A variant of asn_encode_to_buffer() with automatically allocated buffer.
* RETURN VALUES:
* On success, returns a newly allocated (.buffer) containing the whole message.
* The message size is returned in (.result.encoded).
* On failure:
* (.buffer) is NULL,
* (.result.encoded) as in asn_encode_to_buffer(),
* The errno codes as in asn_encode_to_buffer(), plus the following:
* ENOMEM: Memory allocation failed due to system or internal limits.
* The user is responsible for freeing the (.buffer).
*/
typedef struct asn_encode_to_new_buffer_result_s {
void *buffer; /* NULL if failed to encode. */
asn_enc_rval_t result;
} asn_encode_to_new_buffer_result_t;
asn_encode_to_new_buffer_result_t asn_encode_to_new_buffer(
const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */
enum asn_transfer_syntax,
const struct asn_TYPE_descriptor_s *type_to_encode,
const void *structure_to_encode);
/*
* Generic type of an application-defined callback to return various
* types of data to the application.
* EXPECTED RETURN VALUES:
* -1: Failed to consume bytes. Abort the mission.
* Non-negative return values indicate success, and ignored.
*/
typedef int(asn_app_consume_bytes_f)(const void *buffer, size_t size,
void *application_specific_key);
/*
* A generic encoder for any supported transfer syntax.
* Returns the comprehensive encoding result descriptor (see asn_codecs.h).
* RETURN VALUES:
* The negative (.encoded) field of the return values is accompanied with the
* following error codes (errno):
* EINVAL: Incorrect parameters to the function, such as NULLs.
* ENOENT: Encoding transfer syntax is not defined (for this type).
* EBADF: The structure has invalid form or content constraint failed.
* EIO: The (callback) has returned negative value during encoding.
*/
asn_enc_rval_t asn_encode(
const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */
enum asn_transfer_syntax,
const struct asn_TYPE_descriptor_s *type_to_encode,
const void *structure_to_encode,
asn_app_consume_bytes_f *callback, void *callback_key);
/*
* A generic decoder for any supported transfer syntax.
*/
asn_dec_rval_t asn_decode(
const asn_codec_ctx_t *opt_codec_parameters, enum asn_transfer_syntax,
const struct asn_TYPE_descriptor_s *type_to_decode,
void **structure_ptr, /* Pointer to a target structure's pointer */
const void *buffer, /* Data to be decoded */
size_t size /* Size of that buffer */
);
/*
* A callback of this type is called whenever constraint validation fails
* on some ASN.1 type. See "constraints.h" for more details on constraint
* validation.
* This callback specifies a descriptor of the ASN.1 type which failed
* the constraint check, as well as human readable message on what
* particular constraint has failed.
*/
typedef void (asn_app_constraint_failed_f)(void *application_specific_key,
const struct asn_TYPE_descriptor_s *type_descriptor_which_failed,
const void *structure_which_failed_ptr,
const char *error_message_format, ...) CC_PRINTFLIKE(4, 5);
#ifdef __cplusplus
}
#endif
#include "constr_TYPE.h" /* for asn_TYPE_descriptor_t */
#endif /* ASN_APPLICATION_H */

View File

@@ -0,0 +1,83 @@
/*
* Copyright (c) 2005-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#ifndef ASN_BIT_DATA
#define ASN_BIT_DATA
#include <asn_system.h> /* Platform-specific types */
#ifdef __cplusplus
extern "C" {
#endif
/*
* This structure describes a position inside an incoming PER bit stream.
*/
typedef struct asn_bit_data_s {
const uint8_t *buffer; /* Pointer to the octet stream */
size_t nboff; /* Bit offset to the meaningful bit */
size_t nbits; /* Number of bits in the stream */
size_t moved; /* Number of bits moved through this bit stream */
int (*refill)(struct asn_bit_data_s *);
void *refill_key;
} asn_bit_data_t;
/*
* Create a contiguous non-refillable bit data structure.
* Can be freed by FREEMEM().
*/
asn_bit_data_t *asn_bit_data_new_contiguous(const void *data, size_t size_bits);
/*
* Extract a small number of bits (<= 31) from the specified PER data pointer.
* This function returns -1 if the specified number of bits could not be
* extracted due to EOD or other conditions.
*/
int32_t asn_get_few_bits(asn_bit_data_t *, int get_nbits);
/* Undo the immediately preceeding "get_few_bits" operation */
void asn_get_undo(asn_bit_data_t *, int get_nbits);
/*
* Extract a large number of bits from the specified PER data pointer.
* This function returns -1 if the specified number of bits could not be
* extracted due to EOD or other conditions.
*/
int asn_get_many_bits(asn_bit_data_t *, uint8_t *dst, int right_align,
int get_nbits);
/* Non-thread-safe debugging function, don't use it */
char *asn_bit_data_string(asn_bit_data_t *);
/*
* This structure supports forming bit output.
*/
typedef struct asn_bit_outp_s {
uint8_t *buffer; /* Pointer into the (tmpspace) */
size_t nboff; /* Bit offset to the meaningful bit */
size_t nbits; /* Number of bits left in (tmpspace) */
uint8_t tmpspace[32]; /* Preliminary storage to hold data */
int (*output)(const void *data, size_t size, void *op_key);
void *op_key; /* Key for (output) data callback */
size_t flushed_bytes; /* Bytes already flushed through (output) */
} asn_bit_outp_t;
/* Output a small number of bits (<= 31) */
int asn_put_few_bits(asn_bit_outp_t *, uint32_t bits, int obits);
/* Output a large number of bits */
int asn_put_many_bits(asn_bit_outp_t *, const uint8_t *src, int put_nbits);
/*
* Flush whole bytes (0 or more) through (outper) member.
* The least significant bits which are not used are guaranteed to be set to 0.
* Returns -1 if callback returns -1. Otherwise, 0.
*/
int asn_put_aligned_flush(asn_bit_outp_t *);
#ifdef __cplusplus
}
#endif
#endif /* ASN_BIT_DATA */

108
e2sm/headers/asn_codecs.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 ASN_CODECS_H
#define ASN_CODECS_H
#ifdef __cplusplus
extern "C" {
#endif
struct asn_TYPE_descriptor_s; /* Forward declaration */
/*
* This structure defines a set of parameters that may be passed
* to every ASN.1 encoder or decoder function.
* WARNING: if max_stack_size member is set, and you are calling the
* function pointers of the asn_TYPE_descriptor_t directly,
* this structure must be ALLOCATED ON THE STACK!
* If you can't always satisfy this requirement, use ber_decode(),
* xer_decode() and uper_decode() functions instead.
*/
typedef struct asn_codec_ctx_s {
/*
* Limit the decoder routines to use no (much) more stack than a given
* number of bytes. Most of decoders are stack-based, and this
* would protect against stack overflows if the number of nested
* encodings is high.
* The OCTET STRING, BIT STRING and ANY BER decoders are heap-based,
* and are safe from this kind of overflow.
* A value from getrlimit(RLIMIT_STACK) may be used to initialize
* this variable. Be careful in multithreaded environments, as the
* stack size is rather limited.
*/
size_t max_stack_size; /* 0 disables stack bounds checking */
} asn_codec_ctx_t;
/*
* Type of the return value of the encoding functions (der_encode, xer_encode).
*/
typedef struct asn_enc_rval_s {
/*
* Number of bytes encoded.
* -1 indicates failure to encode the structure.
* In this case, the members below this one are meaningful.
*/
ssize_t encoded;
/*
* Members meaningful when (encoded == -1), for post mortem analysis.
*/
/* Type which cannot be encoded */
const struct asn_TYPE_descriptor_s *failed_type;
/* Pointer to the structure of that type */
const void *structure_ptr;
} asn_enc_rval_t;
#define ASN__ENCODE_FAILED do { \
asn_enc_rval_t tmp_error; \
tmp_error.encoded = -1; \
tmp_error.failed_type = td; \
tmp_error.structure_ptr = sptr; \
ASN_DEBUG("Failed to encode element %s", td ? td->name : ""); \
return tmp_error; \
} while(0)
#define ASN__ENCODED_OK(rval) do { \
rval.structure_ptr = 0; \
rval.failed_type = 0; \
return rval; \
} while(0)
/*
* Type of the return value of the decoding functions (ber_decode, xer_decode)
*
* Please note that the number of consumed bytes is ALWAYS meaningful,
* even if code==RC_FAIL. This is to indicate the number of successfully
* decoded bytes, hence providing a possibility to fail with more diagnostics
* (i.e., print the offending remainder of the buffer).
*/
enum asn_dec_rval_code_e {
RC_OK, /* Decoded successfully */
RC_WMORE, /* More data expected, call again */
RC_FAIL /* Failure to decode data */
};
typedef struct asn_dec_rval_s {
enum asn_dec_rval_code_e code; /* Result code */
size_t consumed; /* Number of bytes consumed */
} asn_dec_rval_t;
#define ASN__DECODE_FAILED do { \
asn_dec_rval_t tmp_error; \
tmp_error.code = RC_FAIL; \
tmp_error.consumed = 0; \
ASN_DEBUG("Failed to decode element %s", td ? td->name : ""); \
return tmp_error; \
} while(0)
#define ASN__DECODE_STARVED do { \
asn_dec_rval_t tmp_error; \
tmp_error.code = RC_WMORE; \
tmp_error.consumed = 0; \
return tmp_error; \
} while(0)
#ifdef __cplusplus
}
#endif
#endif /* ASN_CODECS_H */

View File

@@ -0,0 +1,51 @@
/*-
* Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#ifndef ASN_CODECS_PRIM_H
#define ASN_CODECS_PRIM_H
#include <asn_application.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct ASN__PRIMITIVE_TYPE_s {
uint8_t *buf; /* Buffer with consecutive primitive encoding bytes */
size_t size; /* Size of the buffer */
} ASN__PRIMITIVE_TYPE_t; /* Do not use this type directly! */
asn_struct_free_f ASN__PRIMITIVE_TYPE_free;
ber_type_decoder_f ber_decode_primitive;
der_type_encoder_f der_encode_primitive;
/*
* A callback specification for the xer_decode_primitive() function below.
*/
enum xer_pbd_rval {
XPBD_SYSTEM_FAILURE, /* System failure (memory shortage, etc) */
XPBD_DECODER_LIMIT, /* Hit some decoder limitation or deficiency */
XPBD_BROKEN_ENCODING, /* Encoding of a primitive body is broken */
XPBD_NOT_BODY_IGNORE, /* Not a body format, but safe to ignore */
XPBD_BODY_CONSUMED /* Body is recognized and consumed */
};
typedef enum xer_pbd_rval(xer_primitive_body_decoder_f)(
const asn_TYPE_descriptor_t *td, void *struct_ptr, const void *chunk_buf,
size_t chunk_size);
/*
* Specific function to decode simple primitive types.
* Also see xer_decode_general() in xer_decoder.h
*/
asn_dec_rval_t xer_decode_primitive(
const asn_codec_ctx_t *opt_codec_ctx,
const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr,
size_t struct_size, const char *opt_mname, const void *buf_ptr, size_t size,
xer_primitive_body_decoder_f *prim_body_decoder);
#ifdef __cplusplus
}
#endif
#endif /* ASN_CODECS_PRIM_H */

View File

@@ -0,0 +1,30 @@
/*
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
*/
#ifndef _ASN_CONSTANT_H
#define _ASN_CONSTANT_H
#ifdef __cplusplus
extern "C" {
#endif
#define maxofMessageProtocolTests (15)
#define maxofRICstyles (63)
#define maxnoofQCI (256)
#define maxnoofQoSFlows (64)
#define maxnoofSliceItems (1024)
#define maxnoofContainerListItems (3)
#define maxCellingNBDU (512)
#define maxofContainers (8)
#define maxPLMN (12)
#define maxofRANparamters (65536)
#define maxUeReport (32)
#define maxCellingNB (16384)
#ifdef __cplusplus
}
#endif
#endif /* _ASN_CONSTANT_H */

159
e2sm/headers/asn_internal.h Normal file
View File

@@ -0,0 +1,159 @@
/*
* Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
/*
* Declarations internally useful for the ASN.1 support code.
*/
#ifndef ASN_INTERNAL_H
#define ASN_INTERNAL_H
#define __EXTENSIONS__ /* for Sun */
#include "asn_application.h" /* Application-visible API */
#ifndef __NO_ASSERT_H__ /* Include assert.h only for internal use. */
#include <assert.h> /* for assert() macro */
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* Environment version might be used to avoid running with the old library */
#define ASN1C_ENVIRONMENT_VERSION 923 /* Compile-time version */
int get_asn1c_environment_version(void); /* Run-time version */
#define CALLOC(nmemb, size) calloc(nmemb, size)
#define MALLOC(size) malloc(size)
#define REALLOC(oldptr, size) realloc(oldptr, size)
#define FREEMEM(ptr) free(ptr)
#define asn_debug_indent 0
#define ASN_DEBUG_INDENT_ADD(i) do{}while(0)
#ifdef EMIT_ASN_DEBUG
#warning "Use ASN_EMIT_DEBUG instead of EMIT_ASN_DEBUG"
#define ASN_EMIT_DEBUG EMIT_ASN_DEBUG
#endif
/*
* A macro for debugging the ASN.1 internals.
* You may enable or override it.
*/
#ifndef ASN_DEBUG /* If debugging code is not defined elsewhere... */
#if ASN_EMIT_DEBUG == 1 /* And it was asked to emit this code... */
#if !defined(BELL_LABS) /* Bell Labs */
//#if __STDC_VERSION__ >= 199901L
#ifdef ASN_THREAD_SAFE
/* Thread safety requires sacrifice in output indentation:
* Retain empty definition of ASN_DEBUG_INDENT_ADD. */
#else /* !ASN_THREAD_SAFE */
#undef ASN_DEBUG_INDENT_ADD
#undef asn_debug_indent
int asn_debug_indent;
#define ASN_DEBUG_INDENT_ADD(i) do { asn_debug_indent += i; } while(0)
#endif /* ASN_THREAD_SAFE */
#if defined(BELL_LABS) /* Bell Labs version */
extern int logAsn1c(const char *filename, int linenumber, const char *format, ...);
#define ASN_DEBUG(fmt, args...) do { \
(void) logAsn1c(__FILE__, __LINE__, fmt, ##args); \
} while(0)
#else
#define ASN_DEBUG(fmt, args...) do { \
int adi = asn_debug_indent; \
while(adi--) fprintf(stderr, " "); \
fprintf(stderr, fmt, ##args); \
fprintf(stderr, " (%s:%d)\n", \
__FILE__, __LINE__); \
} while(0)
#endif /* BELL_LABS */
#else /* !C99 */
void CC_PRINTFLIKE(1, 2) ASN_DEBUG_f(const char *fmt, ...);
#define ASN_DEBUG ASN_DEBUG_f
#endif /* C99 */
#else /* ASN_EMIT_DEBUG != 1 */
#if __STDC_VERSION__ >= 199901L
#define ASN_DEBUG(...) do{}while(0)
#else /* not C99 */
static void CC_PRINTFLIKE(1, 2) ASN_DEBUG(const char *fmt, ...) { (void)fmt; }
#endif /* C99 or better */
#endif /* ASN_EMIT_DEBUG */
#endif /* ASN_DEBUG */
/*
* Print to a callback.
* The callback is expected to return negative values on error.
* 0 and positive values are treated as success.
* RETURN VALUES:
* -1: Failed to format or invoke the callback.
* >0: Size of the data that got delivered to the callback.
*/
ssize_t CC_PRINTFLIKE(3, 4)
asn__format_to_callback(
int (*callback)(const void *, size_t, void *key), void *key,
const char *fmt, ...);
/*
* Invoke the application-supplied callback and fail, if something is wrong.
*/
#define ASN__E_cbc(buf, size) (cb((buf), (size), app_key) < 0)
#define ASN__E_CALLBACK(size, foo) \
do { \
if(foo) goto cb_failed; \
er.encoded += (size); \
} while(0)
#define ASN__CALLBACK(buf, size) ASN__E_CALLBACK(size, ASN__E_cbc(buf, size))
#define ASN__CALLBACK2(buf1, size1, buf2, size2) \
ASN__E_CALLBACK((size1) + (size2), \
ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2))
#define ASN__CALLBACK3(buf1, size1, buf2, size2, buf3, size3) \
ASN__E_CALLBACK((size1) + (size2) + (size3), \
ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2) \
|| ASN__E_cbc(buf3, size3))
#define ASN__TEXT_INDENT(nl, level) \
do { \
int tmp_level = (level); \
int tmp_nl = ((nl) != 0); \
int tmp_i; \
if(tmp_nl) ASN__CALLBACK("\n", 1); \
if(tmp_level < 0) tmp_level = 0; \
for(tmp_i = 0; tmp_i < tmp_level; tmp_i++) ASN__CALLBACK(" ", 4); \
} while(0)
#define _i_INDENT(nl) do { \
int tmp_i; \
if((nl) && cb("\n", 1, app_key) < 0) \
return -1; \
for(tmp_i = 0; tmp_i < ilevel; tmp_i++) \
if(cb(" ", 4, app_key) < 0) \
return -1; \
} while(0)
/*
* Check stack against overflow, if limit is set.
*/
#define ASN__DEFAULT_STACK_MAX (30000)
static int CC_NOTUSED
ASN__STACK_OVERFLOW_CHECK(const asn_codec_ctx_t *ctx) {
if(ctx && ctx->max_stack_size) {
/* ctx MUST be allocated on the stack */
ptrdiff_t usedstack = ((const char *)ctx - (const char *)&ctx);
if(usedstack > 0) usedstack = -usedstack; /* grows up! */
/* double negative required to avoid int wrap-around */
if(usedstack < -(ptrdiff_t)ctx->max_stack_size) {
ASN_DEBUG("Stack limit %ld reached",
(long)ctx->max_stack_size);
return -1;
}
}
return 0;
}
#ifdef __cplusplus
}
#endif
#endif /* ASN_INTERNAL_H */

51
e2sm/headers/asn_ioc.h Normal file
View File

@@ -0,0 +1,51 @@
/*
* Run-time support for Information Object Classes.
* Copyright (c) 2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#ifndef ASN_IOC_H
#define ASN_IOC_H
#include <asn_system.h> /* Platform-specific types */
#ifdef __cplusplus
extern "C" {
#endif
struct asn_TYPE_descriptor_s;
struct asn_ioc_cell_s;
/*
* X.681, #13
*/
typedef struct asn_ioc_set_s {
size_t rows_count;
size_t columns_count;
const struct asn_ioc_cell_s *rows;
} asn_ioc_set_t;
typedef struct asn_ioc_cell_s {
const char *field_name; /* Is equal to corresponding column_name */
enum {
aioc__undefined = 0,
aioc__value,
aioc__type,
aioc__open_type,
} cell_kind;
struct asn_TYPE_descriptor_s *type_descriptor;
const void *value_sptr;
struct {
size_t types_count;
struct {
unsigned choice_position;
} *types;
} open_type;
} asn_ioc_cell_t;
#ifdef __cplusplus
}
#endif
#endif /* ASN_IOC_H */

View File

@@ -0,0 +1,51 @@
/*
* Copyright (c) 2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#ifndef ASN_RANDOM_FILL
#define ASN_RANDOM_FILL
/* Forward declarations */
struct asn_TYPE_descriptor_s;
struct asn_encoding_constraints_s;
/*
* Initialize a structure with random data according to the type specification
* and optional member constraints.
* ARGUMENTS:
* (max_length) - See (approx_max_length_limit).
* (memb_constraints) - Member constraints, if exist.
* The type can be constrained differently according
* to PER and OER specifications, so we find a value
* at the intersection of these constraints.
* In case the return differs from ARFILL_OK, the (struct_ptr) contents
* and (current_length) value remain in their original state.
*/
typedef struct asn_random_fill_result_s {
enum {
ARFILL_FAILED = -1, /* System error (memory?) */
ARFILL_OK = 0, /* Initialization succeeded */
ARFILL_SKIPPED = 1 /* Not done due to (length?) constraint */
} code;
size_t length; /* Approximate number of bytes created. */
} asn_random_fill_result_t;
typedef asn_random_fill_result_t(asn_random_fill_f)(
const struct asn_TYPE_descriptor_s *td, void **struct_ptr,
const struct asn_encoding_constraints_s *memb_constraints,
size_t max_length);
/*
* Returns 0 if the structure was properly initialized, -1 otherwise.
* The (approx_max_length_limit) specifies the approximate limit of the
* resulting structure in units closely resembling bytes. The actual result
* might be several times larger or smaller than the length limit.
*/
int asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr,
size_t approx_max_length_limit);
/*
* Returns a random number between min and max.
*/
intmax_t asn_random_between(intmax_t min, intmax_t max);
#endif /* ASN_RANDOM_FILL */

150
e2sm/headers/asn_system.h Normal file
View File

@@ -0,0 +1,150 @@
/*
* Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
/*
* Miscellaneous system-dependent types.
*/
#ifndef ASN_SYSTEM_H
#define ASN_SYSTEM_H
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#ifndef _DEFAULT_SOURCE
#define _DEFAULT_SOURCE 1
#endif
#ifndef _BSD_SOURCE
#define _BSD_SOURCE /* for snprintf() on some linux systems */
#endif
#include <stdio.h> /* For snprintf(3) */
#include <stdlib.h> /* For *alloc(3) */
#include <string.h> /* For memcpy(3) */
#include <sys/types.h> /* For size_t */
#include <limits.h> /* For LONG_MAX */
#include <stdarg.h> /* For va_start */
#include <stddef.h> /* for offsetof and ptrdiff_t */
#ifdef _WIN32
#include <malloc.h>
#define snprintf _snprintf
#define vsnprintf _vsnprintf
/* To avoid linking with ws2_32.lib, here's the definition of ntohl() */
#define sys_ntohl(l) ((((l) << 24) & 0xff000000) \
| (((l) << 8) & 0xff0000) \
| (((l) >> 8) & 0xff00) \
| ((l >> 24) & 0xff))
#ifdef _MSC_VER /* MSVS.Net */
#ifndef __cplusplus
#define inline __inline
#endif
#ifndef ASSUMESTDTYPES /* Standard types have been defined elsewhere */
#define ssize_t SSIZE_T
#if _MSC_VER < 1600
typedef char int8_t;
typedef short int16_t;
typedef int int32_t;
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
#else /* _MSC_VER >= 1600 */
#include <stdint.h>
#endif /* _MSC_VER < 1600 */
#endif /* ASSUMESTDTYPES */
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <float.h>
#define isnan _isnan
#define finite _finite
#define copysign _copysign
#define ilogb _logb
#else /* !_MSC_VER */
#include <stdint.h>
#endif /* _MSC_VER */
#else /* !_WIN32 */
#if defined(__vxworks)
#include <types/vxTypes.h>
#else /* !defined(__vxworks) */
#include <inttypes.h> /* C99 specifies this file */
#include <netinet/in.h> /* for ntohl() */
#define sys_ntohl(foo) ntohl(foo)
#endif /* defined(__vxworks) */
#endif /* _WIN32 */
#if __GNUC__ >= 3 || defined(__clang__)
#define CC_ATTRIBUTE(attr) __attribute__((attr))
#else
#define CC_ATTRIBUTE(attr)
#endif
#define CC_PRINTFLIKE(fmt, var) CC_ATTRIBUTE(format(printf, fmt, var))
#define CC_NOTUSED CC_ATTRIBUTE(unused)
#ifndef CC_ATTR_NO_SANITIZE
#define CC_ATTR_NO_SANITIZE(what) CC_ATTRIBUTE(no_sanitize(what))
#endif
/* Figure out if thread safety is requested */
#if !defined(ASN_THREAD_SAFE) && (defined(THREAD_SAFE) || defined(_REENTRANT))
#define ASN_THREAD_SAFE
#endif /* Thread safety */
#ifndef offsetof /* If not defined by <stddef.h> */
#define offsetof(s, m) ((ptrdiff_t)&(((s *)0)->m) - (ptrdiff_t)((s *)0))
#endif /* offsetof */
#ifndef MIN /* Suitable for comparing primitive types (integers) */
#if defined(__GNUC__)
#define MIN(a,b) ({ __typeof a _a = a; __typeof b _b = b; \
((_a)<(_b)?(_a):(_b)); })
#else /* !__GNUC__ */
#define MIN(a,b) ((a)<(b)?(a):(b)) /* Unsafe variant */
#endif /* __GNUC__ */
#endif /* MIN */
#if __STDC_VERSION__ >= 199901L
#ifndef SIZE_MAX
#define SIZE_MAX ((~((size_t)0)) >> 1)
#endif
#ifndef RSIZE_MAX /* C11, Annex K */
#define RSIZE_MAX (SIZE_MAX >> 1)
#endif
#ifndef RSSIZE_MAX /* Halve signed size even further than unsigned */
#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1))
#endif
#else /* Old compiler */
#undef SIZE_MAX
#undef RSIZE_MAX
#undef RSSIZE_MAX
#define SIZE_MAX ((~((size_t)0)) >> 1)
#define RSIZE_MAX (SIZE_MAX >> 1)
#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1))
#endif
#if __STDC_VERSION__ >= 199901L
#define ASN_PRI_SIZE "zu"
#define ASN_PRI_SSIZE "zd"
#define ASN_PRIuMAX PRIuMAX
#define ASN_PRIdMAX PRIdMAX
#else
#define ASN_PRI_SIZE "lu"
#define ASN_PRI_SSIZE "ld"
#if LLONG_MAX > LONG_MAX
#define ASN_PRIuMAX "llu"
#define ASN_PRIdMAX "lld"
#else
#define ASN_PRIuMAX "lu"
#define ASN_PRIdMAX "ld"
#endif
#endif
#endif /* ASN_SYSTEM_H */

View File

@@ -0,0 +1,66 @@
/*-
* Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#ifndef _BER_DECODER_H_
#define _BER_DECODER_H_
#include <asn_application.h>
#ifdef __cplusplus
extern "C" {
#endif
struct asn_TYPE_descriptor_s; /* Forward declaration */
struct asn_codec_ctx_s; /* Forward declaration */
/*
* The BER decoder of any type.
* This function may be invoked directly from the application.
* Decodes BER, DER and CER data (DER and CER are different subsets of BER).
*
* NOTE: Use the der_encode() function (der_encoder.h) to produce encoding
* which is compliant with ber_decode().
*/
asn_dec_rval_t ber_decode(
const struct asn_codec_ctx_s *opt_codec_ctx,
const struct asn_TYPE_descriptor_s *type_descriptor,
void **struct_ptr, /* Pointer to a target structure's pointer */
const void *buffer, /* Data to be decoded */
size_t size /* Size of that buffer */
);
/*
* Type of generic function which decodes the byte stream into the structure.
*/
typedef asn_dec_rval_t(ber_type_decoder_f)(
const struct asn_codec_ctx_s *opt_codec_ctx,
const struct asn_TYPE_descriptor_s *type_descriptor, void **struct_ptr,
const void *buf_ptr, size_t size, int tag_mode);
/*******************************
* INTERNALLY USEFUL FUNCTIONS *
*******************************/
/*
* Check that all tags correspond to the type definition (as given in head).
* On return, last_length would contain either a non-negative length of the
* value part of the last TLV, or the negative number of expected
* "end of content" sequences. The number may only be negative if the
* head->last_tag_form is non-zero.
*/
asn_dec_rval_t ber_check_tags(
const struct asn_codec_ctx_s *opt_codec_ctx, /* codec options */
const struct asn_TYPE_descriptor_s *type_descriptor,
asn_struct_ctx_t *opt_ctx, /* saved decoding context */
const void *ptr, size_t size,
int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */
int last_tag_form, /* {-1,0:1}: any, primitive, constr */
ber_tlv_len_t *last_length, int *opt_tlv_form /* optional tag form */
);
#ifdef __cplusplus
}
#endif
#endif /* _BER_DECODER_H_ */

View File

@@ -0,0 +1,50 @@
/*-
* Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#ifndef _BER_TLV_LENGTH_H_
#define _BER_TLV_LENGTH_H_
#ifdef __cplusplus
extern "C" {
#endif
typedef ssize_t ber_tlv_len_t;
/*
* This function tries to fetch the length of the BER TLV value and place it
* in *len_r.
* RETURN VALUES:
* 0: More data expected than bufptr contains.
* -1: Fatal error deciphering length.
* >0: Number of bytes used from bufptr.
* On return with >0, len_r is constrained as -1..MAX, where -1 mean
* that the value is of indefinite length.
*/
ssize_t ber_fetch_length(int _is_constructed, const void *bufptr, size_t size,
ber_tlv_len_t *len_r);
/*
* This function expects bufptr to be positioned over L in TLV.
* It returns number of bytes occupied by L and V together, suitable
* for skipping. The function properly handles indefinite length.
* RETURN VALUES:
* Standard {-1,0,>0} convention.
*/
ssize_t ber_skip_length(
const struct asn_codec_ctx_s *opt_codec_ctx, /* optional context */
int _is_constructed, const void *bufptr, size_t size);
/*
* This function serializes the length (L from TLV) in DER format.
* It always returns number of bytes necessary to represent the length,
* it is a caller's responsibility to check the return value
* against the supplied buffer's size.
*/
size_t der_tlv_length_serialize(ber_tlv_len_t len, void *bufptr, size_t size);
#ifdef __cplusplus
}
#endif
#endif /* _BER_TLV_LENGTH_H_ */

View File

@@ -0,0 +1,60 @@
/*-
* Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#ifndef _BER_TLV_TAG_H_
#define _BER_TLV_TAG_H_
#ifdef __cplusplus
extern "C" {
#endif
enum asn_tag_class {
ASN_TAG_CLASS_UNIVERSAL = 0, /* 0b00 */
ASN_TAG_CLASS_APPLICATION = 1, /* 0b01 */
ASN_TAG_CLASS_CONTEXT = 2, /* 0b10 */
ASN_TAG_CLASS_PRIVATE = 3 /* 0b11 */
};
typedef unsigned ber_tlv_tag_t; /* BER TAG from Tag-Length-Value */
/*
* Tag class is encoded together with tag value for optimization purposes.
*/
#define BER_TAG_CLASS(tag) ((tag) & 0x3)
#define BER_TAG_VALUE(tag) ((tag) >> 2)
#define BER_TLV_CONSTRUCTED(tagptr) (((*(const uint8_t *)tagptr)&0x20)?1:0)
#define BER_TAGS_EQUAL(tag1, tag2) ((tag1) == (tag2))
/*
* Several functions for printing the TAG in the canonical form
* (i.e. "[PRIVATE 0]").
* Return values correspond to their libc counterparts (if any).
*/
ssize_t ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t buflen);
ssize_t ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *);
char *ber_tlv_tag_string(ber_tlv_tag_t tag);
/*
* This function tries to fetch the tag from the input stream.
* RETURN VALUES:
* 0: More data expected than bufptr contains.
* -1: Fatal error deciphering tag.
* >0: Number of bytes used from bufptr. tag_r will contain the tag.
*/
ssize_t ber_fetch_tag(const void *bufptr, size_t size, ber_tlv_tag_t *tag_r);
/*
* This function serializes the tag (T from TLV) in BER format.
* It always returns number of bytes necessary to represent the tag,
* it is a caller's responsibility to check the return value
* against the supplied buffer's size.
*/
size_t ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufptr, size_t size);
#ifdef __cplusplus
}
#endif
#endif /* _BER_TLV_TAG_H_ */

View File

@@ -0,0 +1,80 @@
/*
* Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#ifndef _CONSTR_CHOICE_H_
#define _CONSTR_CHOICE_H_
#include <asn_application.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct asn_CHOICE_specifics_s {
/*
* Target structure description.
*/
unsigned struct_size; /* Size of the target structure. */
unsigned ctx_offset; /* Offset of the asn_codec_ctx_t member */
unsigned pres_offset; /* Identifier of the present member */
unsigned pres_size; /* Size of the identifier (enum) */
/*
* Tags to members mapping table.
*/
const asn_TYPE_tag2member_t *tag2el;
unsigned tag2el_count;
/* Canonical ordering of CHOICE elements, for PER */
const unsigned *to_canonical_order;
const unsigned *from_canonical_order;
/*
* Extensions-related stuff.
*/
signed ext_start; /* First member of extensions, or -1 */
} asn_CHOICE_specifics_t;
/*
* A set specialized functions dealing with the CHOICE type.
*/
asn_struct_free_f CHOICE_free;
asn_struct_print_f CHOICE_print;
asn_struct_compare_f CHOICE_compare;
asn_constr_check_f CHOICE_constraint;
ber_type_decoder_f CHOICE_decode_ber;
der_type_encoder_f CHOICE_encode_der;
xer_type_decoder_f CHOICE_decode_xer;
xer_type_encoder_f CHOICE_encode_xer;
oer_type_decoder_f CHOICE_decode_oer;
oer_type_encoder_f CHOICE_encode_oer;
per_type_decoder_f CHOICE_decode_uper;
per_type_encoder_f CHOICE_encode_uper;
per_type_decoder_f CHOICE_decode_aper;
per_type_encoder_f CHOICE_encode_aper;
asn_outmost_tag_f CHOICE_outmost_tag;
asn_random_fill_f CHOICE_random_fill;
extern asn_TYPE_operation_t asn_OP_CHOICE;
/*
* Return the 1-based choice variant presence index.
* Returns 0 in case of error.
*/
unsigned CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td,
const void *structure_ptr);
/*
* Sets or resets the 1-based choice variant presence index.
* In case a previous index is not zero, the currently selected structure
* member is freed and zeroed-out first.
* Returns 0 on success and -1 on error.
*/
int CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td,
void *structure_ptr, unsigned present);
#ifdef __cplusplus
}
#endif
#endif /* _CONSTR_CHOICE_H_ */

View File

@@ -0,0 +1,68 @@
/*-
* Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#ifndef _CONSTR_SEQUENCE_H_
#define _CONSTR_SEQUENCE_H_
#include <asn_application.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct asn_SEQUENCE_specifics_s {
/*
* Target structure description.
*/
unsigned struct_size; /* Size of the target structure. */
unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */
/*
* Tags to members mapping table (sorted).
*/
const asn_TYPE_tag2member_t *tag2el;
unsigned tag2el_count;
/*
* Optional members of the extensions root (roms) or additions (aoms).
* Meaningful for PER.
*/
const int *oms; /* Optional MemberS */
unsigned roms_count; /* Root optional members count */
unsigned aoms_count; /* Additions optional members count */
/*
* Description of an extensions group.
* Root components are clustered at the beginning of the structure,
* whereas extensions are clustered at the end. -1 means not extensible.
*/
signed first_extension; /* First extension addition */
} asn_SEQUENCE_specifics_t;
/*
* A set specialized functions dealing with the SEQUENCE type.
*/
asn_struct_free_f SEQUENCE_free;
asn_struct_print_f SEQUENCE_print;
asn_struct_compare_f SEQUENCE_compare;
asn_constr_check_f SEQUENCE_constraint;
ber_type_decoder_f SEQUENCE_decode_ber;
der_type_encoder_f SEQUENCE_encode_der;
xer_type_decoder_f SEQUENCE_decode_xer;
xer_type_encoder_f SEQUENCE_encode_xer;
oer_type_decoder_f SEQUENCE_decode_oer;
oer_type_encoder_f SEQUENCE_encode_oer;
per_type_decoder_f SEQUENCE_decode_uper;
per_type_encoder_f SEQUENCE_encode_uper;
per_type_decoder_f SEQUENCE_decode_aper;
per_type_encoder_f SEQUENCE_encode_aper;
asn_random_fill_f SEQUENCE_random_fill;
extern asn_TYPE_operation_t asn_OP_SEQUENCE;
#ifdef __cplusplus
}
#endif
#endif /* _CONSTR_SEQUENCE_H_ */

View File

@@ -0,0 +1,41 @@
/*-
* Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#ifndef _CONSTR_SEQUENCE_OF_H_
#define _CONSTR_SEQUENCE_OF_H_
#include <asn_application.h>
#include <constr_SET_OF.h> /* Implemented using SET OF */
#ifdef __cplusplus
extern "C" {
#endif
/*
* A set specialized functions dealing with the SEQUENCE OF type.
* Generally implemented using SET OF.
*/
asn_struct_compare_f SEQUENCE_OF_compare;
der_type_encoder_f SEQUENCE_OF_encode_der;
xer_type_encoder_f SEQUENCE_OF_encode_xer;
per_type_encoder_f SEQUENCE_OF_encode_uper;
per_type_encoder_f SEQUENCE_OF_encode_aper;
extern asn_TYPE_operation_t asn_OP_SEQUENCE_OF;
#define SEQUENCE_OF_free SET_OF_free
#define SEQUENCE_OF_print SET_OF_print
#define SEQUENCE_OF_constraint SET_OF_constraint
#define SEQUENCE_OF_decode_ber SET_OF_decode_ber
#define SEQUENCE_OF_decode_xer SET_OF_decode_xer
#define SEQUENCE_OF_decode_oer SET_OF_decode_oer
#define SEQUENCE_OF_encode_oer SET_OF_encode_oer
#define SEQUENCE_OF_decode_uper SET_OF_decode_uper
#define SEQUENCE_OF_decode_aper SET_OF_decode_aper
#define SEQUENCE_OF_random_fill SET_OF_random_fill
#ifdef __cplusplus
}
#endif
#endif /* _CONSTR_SET_OF_H_ */

View File

@@ -0,0 +1,49 @@
/*-
* Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#ifndef CONSTR_SET_OF_H
#define CONSTR_SET_OF_H
#include <asn_application.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct asn_SET_OF_specifics_s {
/*
* Target structure description.
*/
unsigned struct_size; /* Size of the target structure. */
unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */
/* XER-specific stuff */
int as_XMLValueList; /* The member type must be encoded like this */
} asn_SET_OF_specifics_t;
/*
* A set specialized functions dealing with the SET OF type.
*/
asn_struct_free_f SET_OF_free;
asn_struct_print_f SET_OF_print;
asn_struct_compare_f SET_OF_compare;
asn_constr_check_f SET_OF_constraint;
ber_type_decoder_f SET_OF_decode_ber;
der_type_encoder_f SET_OF_encode_der;
xer_type_decoder_f SET_OF_decode_xer;
xer_type_encoder_f SET_OF_encode_xer;
oer_type_decoder_f SET_OF_decode_oer;
oer_type_encoder_f SET_OF_encode_oer;
per_type_decoder_f SET_OF_decode_uper;
per_type_encoder_f SET_OF_encode_uper;
per_type_decoder_f SET_OF_decode_aper;
per_type_encoder_f SET_OF_encode_aper;
asn_random_fill_f SET_OF_random_fill;
extern asn_TYPE_operation_t asn_OP_SET_OF;
#ifdef __cplusplus
}
#endif
#endif /* CONSTR_SET_OF_H */

262
e2sm/headers/constr_TYPE.h Normal file
View File

@@ -0,0 +1,262 @@
/*
* Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
/*
* This file contains the declaration structure called "ASN.1 Type Definition",
* which holds all information necessary for encoding and decoding routines.
* This structure even contains pointer to these encoding and decoding routines
* for each defined ASN.1 type.
*/
#ifndef _CONSTR_TYPE_H_
#define _CONSTR_TYPE_H_
#include <ber_tlv_length.h>
#include <ber_tlv_tag.h>
#ifdef __cplusplus
extern "C" {
#endif
struct asn_TYPE_descriptor_s; /* Forward declaration */
struct asn_TYPE_member_s; /* Forward declaration */
/*
* This type provides the context information for various ASN.1 routines,
* primarily ones doing decoding. A member _asn_ctx of this type must be
* included into certain target language's structures, such as compound types.
*/
typedef struct asn_struct_ctx_s {
short phase; /* Decoding phase */
short step; /* Elementary step of a phase */
int context; /* Other context information */
void *ptr; /* Decoder-specific stuff (stack elements) */
ber_tlv_len_t left; /* Number of bytes left, -1 for indefinite */
} asn_struct_ctx_t;
#include <ber_decoder.h> /* Basic Encoding Rules decoder */
#include <der_encoder.h> /* Distinguished Encoding Rules encoder */
#include <xer_decoder.h> /* Decoder of XER (XML, text) */
#include <xer_encoder.h> /* Encoder into XER (XML, text) */
#include <per_decoder.h> /* Packet Encoding Rules decoder */
#include <per_encoder.h> /* Packet Encoding Rules encoder */
#include <constraints.h> /* Subtype constraints support */
#include <asn_random_fill.h> /* Random structures support */
#ifdef ASN_DISABLE_OER_SUPPORT
typedef void (oer_type_decoder_f)(void);
typedef void (oer_type_encoder_f)(void);
typedef void asn_oer_constraints_t;
#else
#include <oer_decoder.h> /* Octet Encoding Rules encoder */
#include <oer_encoder.h> /* Octet Encoding Rules encoder */
#endif
/*
* Free the structure according to its specification.
* Use one of ASN_STRUCT_{FREE,RESET,CONTENTS_ONLY} macros instead.
* Do not use directly.
*/
enum asn_struct_free_method {
ASFM_FREE_EVERYTHING, /* free(struct_ptr) and underlying members */
ASFM_FREE_UNDERLYING, /* free underlying members */
ASFM_FREE_UNDERLYING_AND_RESET /* FREE_UNDERLYING + memset(0) */
};
typedef void (asn_struct_free_f)(
const struct asn_TYPE_descriptor_s *type_descriptor,
void *struct_ptr, enum asn_struct_free_method);
/*
* Free the structure including freeing the memory pointed to by ptr itself.
*/
#define ASN_STRUCT_FREE(asn_DEF, ptr) \
(asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_EVERYTHING)
/*
* Free the memory used by the members of the structure without freeing the
* the structure pointer itself.
* ZERO-OUT the structure to the safe clean state.
* (Retaining the pointer may be useful in case the structure is allocated
* statically or arranged on the stack, yet its elements are dynamic.)
*/
#define ASN_STRUCT_RESET(asn_DEF, ptr) \
(asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING_AND_RESET)
/*
* Free memory used by the members of the structure without freeing
* the structure pointer itself.
* (Retaining the pointer may be useful in case the structure is allocated
* statically or arranged on the stack, yet its elements are dynamic.)
* AVOID using it in the application code;
* Use a safer ASN_STRUCT_RESET() instead.
*/
#define ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF, ptr) \
(asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING)
/*
* Print the structure according to its specification.
*/
typedef int(asn_struct_print_f)(
const struct asn_TYPE_descriptor_s *type_descriptor,
const void *struct_ptr,
int level, /* Indentation level */
asn_app_consume_bytes_f *callback, void *app_key);
/*
* Compare two structs between each other.
* Returns <0 if struct_A is "smaller" than struct_B, >0 if "greater",
* and =0 if "equal to", for some type-specific, stable definition of
* "smaller", "greater" and "equal to".
*/
typedef int (asn_struct_compare_f)(
const struct asn_TYPE_descriptor_s *type_descriptor,
const void *struct_A,
const void *struct_B);
/*
* Return the outmost tag of the type.
* If the type is untagged CHOICE, the dynamic operation is performed.
* NOTE: This function pointer type is only useful internally.
* Do not use it in your application.
*/
typedef ber_tlv_tag_t (asn_outmost_tag_f)(
const struct asn_TYPE_descriptor_s *type_descriptor,
const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag);
/* The instance of the above function type; used internally. */
asn_outmost_tag_f asn_TYPE_outmost_tag;
/*
* Fetch the desired type of the Open Type based on the
* Information Object Set driven constraints.
*/
typedef struct asn_type_selector_result_s {
const struct asn_TYPE_descriptor_s *type_descriptor; /* Type encoded. */
unsigned presence_index; /* Associated choice variant. */
} asn_type_selector_result_t;
typedef asn_type_selector_result_t(asn_type_selector_f)(
const struct asn_TYPE_descriptor_s *parent_type_descriptor,
const void *parent_structure_ptr);
/*
* Generalized functions for dealing with the speciic type.
* May be directly invoked by applications.
*/
typedef struct asn_TYPE_operation_s {
asn_struct_free_f *free_struct; /* Free the structure */
asn_struct_print_f *print_struct; /* Human readable output */
asn_struct_compare_f *compare_struct; /* Compare two structures */
ber_type_decoder_f *ber_decoder; /* Generic BER decoder */
der_type_encoder_f *der_encoder; /* Canonical DER encoder */
xer_type_decoder_f *xer_decoder; /* Generic XER decoder */
xer_type_encoder_f *xer_encoder; /* [Canonical] XER encoder */
oer_type_decoder_f *oer_decoder; /* Generic OER decoder */
oer_type_encoder_f *oer_encoder; /* Canonical OER encoder */
per_type_decoder_f *uper_decoder; /* Unaligned PER decoder */
per_type_encoder_f *uper_encoder; /* Unaligned PER encoder */
per_type_decoder_f *aper_decoder; /* Aligned PER decoder */
per_type_encoder_f *aper_encoder; /* Aligned PER encoder */
asn_random_fill_f *random_fill; /* Initialize with a random value */
asn_outmost_tag_f *outmost_tag; /* <optional, internal> */
} asn_TYPE_operation_t;
/*
* A constraints tuple specifying both the OER and PER constraints.
*/
typedef struct asn_encoding_constraints_s {
const struct asn_oer_constraints_s *oer_constraints;
const struct asn_per_constraints_s *per_constraints;
asn_constr_check_f *general_constraints;
} asn_encoding_constraints_t;
/*
* The definitive description of the destination language's structure.
*/
typedef struct asn_TYPE_descriptor_s {
const char *name; /* A name of the ASN.1 type. "" in some cases. */
const char *xml_tag; /* Name used in XML tag */
/*
* Generalized functions for dealing with the specific type.
* May be directly invoked by applications.
*/
asn_TYPE_operation_t *op;
/***********************************************************************
* Internally useful members. Not to be used by applications directly. *
**********************************************************************/
/*
* Tags that are expected to occur.
*/
const ber_tlv_tag_t *tags; /* Effective tags sequence for this type */
unsigned tags_count; /* Number of tags which are expected */
const ber_tlv_tag_t *all_tags; /* Every tag for BER/containment */
unsigned all_tags_count; /* Number of tags */
/* OER, PER, and general constraints */
asn_encoding_constraints_t encoding_constraints;
/*
* An ASN.1 production type members (members of SEQUENCE, SET, CHOICE).
*/
struct asn_TYPE_member_s *elements;
unsigned elements_count;
/*
* Additional information describing the type, used by appropriate
* functions above.
*/
const void *specifics;
} asn_TYPE_descriptor_t;
/*
* This type describes an element of the constructed type,
* i.e. SEQUENCE, SET, CHOICE, etc.
*/
enum asn_TYPE_flags_e {
ATF_NOFLAGS,
ATF_POINTER = 0x01, /* Represented by the pointer */
ATF_OPEN_TYPE = 0x02, /* Open Type */
ATF_ANY_TYPE = 0x04 /* ANY type (deprecated!) */
};
typedef struct asn_TYPE_member_s {
enum asn_TYPE_flags_e flags; /* Element's presentation flags */
unsigned optional; /* Following optional members, including current */
unsigned memb_offset; /* Offset of the element */
ber_tlv_tag_t tag; /* Outmost (most immediate) tag */
int tag_mode; /* IMPLICIT/no/EXPLICIT tag at current level */
asn_TYPE_descriptor_t *type; /* Member type descriptor */
asn_type_selector_f *type_selector; /* IoS runtime type selector */
asn_encoding_constraints_t encoding_constraints;
int (*default_value_cmp)(const void *sptr); /* Compare DEFAULT <value> */
int (*default_value_set)(void **sptr); /* Set DEFAULT <value> */
const char *name; /* ASN.1 identifier of the element */
} asn_TYPE_member_t;
/*
* BER tag to element number mapping.
*/
typedef struct asn_TYPE_tag2member_s {
ber_tlv_tag_t el_tag; /* Outmost tag of the member */
unsigned el_no; /* Index of the associated member, base 0 */
int toff_first; /* First occurence of the el_tag, relative */
int toff_last; /* Last occurence of the el_tag, relative */
} asn_TYPE_tag2member_t;
/*
* This function prints out the contents of the target language's structure
* (struct_ptr) into the file pointer (stream) in human readable form.
* RETURN VALUES:
* 0: The structure is printed.
* -1: Problem dumping the structure.
* (See also xer_fprint() in xer_encoder.h)
*/
int asn_fprint(FILE *stream, /* Destination stream descriptor */
const asn_TYPE_descriptor_t *td, /* ASN.1 type descriptor */
const void *struct_ptr); /* Structure to be printed */
#ifdef __cplusplus
}
#endif
#endif /* _CONSTR_TYPE_H_ */

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