2 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
3 * From ASN.1 module "NR-RRC-Definitions"
4 * found in "/home/labadmin/hlal/rrc_15.3_asn.asn1"
5 * `asn1c -D ./15_3_rrc/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example`
8 #ifndef _PUSCH_Config_H_
9 #define _PUSCH_Config_H_
12 #include <asn_application.h>
14 /* Including external dependencies */
15 #include <NativeInteger.h>
16 #include <NativeEnumerated.h>
18 #include <constr_CHOICE.h>
19 #include <asn_SEQUENCE_OF.h>
20 #include <constr_SEQUENCE_OF.h>
21 #include <constr_SEQUENCE.h>
28 typedef enum PUSCH_Config__txConfig {
29 PUSCH_Config__txConfig_codebook = 0,
30 PUSCH_Config__txConfig_nonCodebook = 1
31 } e_PUSCH_Config__txConfig;
32 typedef enum PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA_PR {
33 PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA_PR_NOTHING, /* No components present */
34 PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA_PR_release,
35 PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA_PR_setup
36 } PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA_PR;
37 typedef enum PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB_PR {
38 PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB_PR_NOTHING, /* No components present */
39 PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB_PR_release,
40 PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB_PR_setup
41 } PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB_PR;
42 typedef enum PUSCH_Config__frequencyHopping {
43 PUSCH_Config__frequencyHopping_intraSlot = 0,
44 PUSCH_Config__frequencyHopping_interSlot = 1
45 } e_PUSCH_Config__frequencyHopping;
46 typedef enum PUSCH_Config__resourceAllocation {
47 PUSCH_Config__resourceAllocation_resourceAllocationType0 = 0,
48 PUSCH_Config__resourceAllocation_resourceAllocationType1 = 1,
49 PUSCH_Config__resourceAllocation_dynamicSwitch = 2
50 } e_PUSCH_Config__resourceAllocation;
51 typedef enum PUSCH_Config__pusch_TimeDomainAllocationList_PR {
52 PUSCH_Config__pusch_TimeDomainAllocationList_PR_NOTHING, /* No components present */
53 PUSCH_Config__pusch_TimeDomainAllocationList_PR_release,
54 PUSCH_Config__pusch_TimeDomainAllocationList_PR_setup
55 } PUSCH_Config__pusch_TimeDomainAllocationList_PR;
56 typedef enum PUSCH_Config__pusch_AggregationFactor {
57 PUSCH_Config__pusch_AggregationFactor_n2 = 0,
58 PUSCH_Config__pusch_AggregationFactor_n4 = 1,
59 PUSCH_Config__pusch_AggregationFactor_n8 = 2
60 } e_PUSCH_Config__pusch_AggregationFactor;
61 typedef enum PUSCH_Config__mcs_Table {
62 PUSCH_Config__mcs_Table_qam256 = 0,
63 PUSCH_Config__mcs_Table_qam64LowSE = 1
64 } e_PUSCH_Config__mcs_Table;
65 typedef enum PUSCH_Config__mcs_TableTransformPrecoder {
66 PUSCH_Config__mcs_TableTransformPrecoder_qam256 = 0,
67 PUSCH_Config__mcs_TableTransformPrecoder_qam64LowSE = 1
68 } e_PUSCH_Config__mcs_TableTransformPrecoder;
69 typedef enum PUSCH_Config__transformPrecoder {
70 PUSCH_Config__transformPrecoder_enabled = 0,
71 PUSCH_Config__transformPrecoder_disabled = 1
72 } e_PUSCH_Config__transformPrecoder;
73 typedef enum PUSCH_Config__codebookSubset {
74 PUSCH_Config__codebookSubset_fullyAndPartialAndNonCoherent = 0,
75 PUSCH_Config__codebookSubset_partialAndNonCoherent = 1,
76 PUSCH_Config__codebookSubset_nonCoherent = 2
77 } e_PUSCH_Config__codebookSubset;
78 typedef enum PUSCH_Config__rbg_Size {
79 PUSCH_Config__rbg_Size_config2 = 0
80 } e_PUSCH_Config__rbg_Size;
81 typedef enum PUSCH_Config__uci_OnPUSCH_PR {
82 PUSCH_Config__uci_OnPUSCH_PR_NOTHING, /* No components present */
83 PUSCH_Config__uci_OnPUSCH_PR_release,
84 PUSCH_Config__uci_OnPUSCH_PR_setup
85 } PUSCH_Config__uci_OnPUSCH_PR;
86 typedef enum PUSCH_Config__tp_pi2BPSK {
87 PUSCH_Config__tp_pi2BPSK_enabled = 0
88 } e_PUSCH_Config__tp_pi2BPSK;
90 /* Forward declarations */
91 struct PUSCH_PowerControl;
92 struct DMRS_UplinkConfig;
93 struct PUSCH_TimeDomainResourceAllocationList;
97 typedef struct PUSCH_Config {
98 long *dataScramblingIdentityPUSCH; /* OPTIONAL */
99 long *txConfig; /* OPTIONAL */
100 struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA {
101 PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA_PR present;
102 union PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA_u {
104 struct DMRS_UplinkConfig *setup;
107 /* Context for parsing across buffer boundaries */
108 asn_struct_ctx_t _asn_ctx;
109 } *dmrs_UplinkForPUSCH_MappingTypeA;
110 struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB {
111 PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB_PR present;
112 union PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB_u {
114 struct DMRS_UplinkConfig *setup;
117 /* Context for parsing across buffer boundaries */
118 asn_struct_ctx_t _asn_ctx;
119 } *dmrs_UplinkForPUSCH_MappingTypeB;
120 struct PUSCH_PowerControl *pusch_PowerControl; /* OPTIONAL */
121 long *frequencyHopping; /* OPTIONAL */
122 struct PUSCH_Config__frequencyHoppingOffsetLists {
123 A_SEQUENCE_OF(long) list;
125 /* Context for parsing across buffer boundaries */
126 asn_struct_ctx_t _asn_ctx;
127 } *frequencyHoppingOffsetLists;
128 long resourceAllocation;
129 struct PUSCH_Config__pusch_TimeDomainAllocationList {
130 PUSCH_Config__pusch_TimeDomainAllocationList_PR present;
131 union PUSCH_Config__pusch_TimeDomainAllocationList_u {
133 struct PUSCH_TimeDomainResourceAllocationList *setup;
136 /* Context for parsing across buffer boundaries */
137 asn_struct_ctx_t _asn_ctx;
138 } *pusch_TimeDomainAllocationList;
139 long *pusch_AggregationFactor; /* OPTIONAL */
140 long *mcs_Table; /* OPTIONAL */
141 long *mcs_TableTransformPrecoder; /* OPTIONAL */
142 long *transformPrecoder; /* OPTIONAL */
143 long *codebookSubset; /* OPTIONAL */
144 long *maxRank; /* OPTIONAL */
145 long *rbg_Size; /* OPTIONAL */
146 struct PUSCH_Config__uci_OnPUSCH {
147 PUSCH_Config__uci_OnPUSCH_PR present;
148 union PUSCH_Config__uci_OnPUSCH_u {
150 struct UCI_OnPUSCH *setup;
153 /* Context for parsing across buffer boundaries */
154 asn_struct_ctx_t _asn_ctx;
156 long *tp_pi2BPSK; /* OPTIONAL */
158 * This type is extensible,
159 * possible extensions are below.
162 /* Context for parsing across buffer boundaries */
163 asn_struct_ctx_t _asn_ctx;
167 /* extern asn_TYPE_descriptor_t asn_DEF_txConfig_3; // (Use -fall-defs-global to expose) */
168 /* extern asn_TYPE_descriptor_t asn_DEF_frequencyHopping_13; // (Use -fall-defs-global to expose) */
169 /* extern asn_TYPE_descriptor_t asn_DEF_resourceAllocation_18; // (Use -fall-defs-global to expose) */
170 /* extern asn_TYPE_descriptor_t asn_DEF_pusch_AggregationFactor_25; // (Use -fall-defs-global to expose) */
171 /* extern asn_TYPE_descriptor_t asn_DEF_mcs_Table_29; // (Use -fall-defs-global to expose) */
172 /* extern asn_TYPE_descriptor_t asn_DEF_mcs_TableTransformPrecoder_32; // (Use -fall-defs-global to expose) */
173 /* extern asn_TYPE_descriptor_t asn_DEF_transformPrecoder_35; // (Use -fall-defs-global to expose) */
174 /* extern asn_TYPE_descriptor_t asn_DEF_codebookSubset_38; // (Use -fall-defs-global to expose) */
175 /* extern asn_TYPE_descriptor_t asn_DEF_rbg_Size_43; // (Use -fall-defs-global to expose) */
176 /* extern asn_TYPE_descriptor_t asn_DEF_tp_pi2BPSK_48; // (Use -fall-defs-global to expose) */
177 extern asn_TYPE_descriptor_t asn_DEF_PUSCH_Config;
178 extern asn_SEQUENCE_specifics_t asn_SPC_PUSCH_Config_specs_1;
179 extern asn_TYPE_member_t asn_MBR_PUSCH_Config_1[18];
185 #endif /* _PUSCH_Config_H_ */
186 #include <asn_internal.h>