Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Michael Black
OpenXG UE
Commits
7dda7fa9
Commit
7dda7fa9
authored
Jun 16, 2014
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
git-svn-id:
http://svn.eurecom.fr/openair4G/trunk@5396
818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent
b00ed5a0
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
1379 additions
and
387 deletions
+1379
-387
openair1/PHY/LTE_TRANSPORT/dci.h
openair1/PHY/LTE_TRANSPORT/dci.h
+1379
-387
No files found.
openair1/PHY/LTE_TRANSPORT/dci.h
View file @
7dda7fa9
...
@@ -989,19 +989,21 @@ struct DCI1E_5MHz_2A_M10PRB_TDD {
...
@@ -989,19 +989,21 @@ struct DCI1E_5MHz_2A_M10PRB_TDD {
typedef
struct
DCI1E_5MHz_2A_M10PRB_TDD
DCI1E_5MHz_2A_M10PRB_TDD_t
;
typedef
struct
DCI1E_5MHz_2A_M10PRB_TDD
DCI1E_5MHz_2A_M10PRB_TDD_t
;
#define sizeof_DCI1E_5MHz_2A_M10PRB_TDD_t 34
#define sizeof_DCI1E_5MHz_2A_M10PRB_TDD_t 34
// **********************************************************
/// DCI Format Type 2 (5 MHz, TDD, 2 Antenna Ports, less than 10 PRBs, 41 bits)
// ********************FORMAT 2 DCIs ************************
struct
DCI2_5MHz_2A_L10PRB_TDD
{
// **********************************************************
/// DCI Format Type 2 (1.5 MHz, TDD, 2 Antenna Ports, 34 bits)
struct
DCI2_1_5MHz_2A_TDD
{
/// padding to 64bits
/// padding to 64bits
uint64_t
padding64
:
22
;
uint64_t
padding64
:
30
;
/// TPMI information for precoding
uint64_t
tpmi
:
3
;
/// Redundancy version 2
/// Redundancy version 2
uint64_t
rv2
:
2
;
uint64_t
rv2
:
2
;
/// New Data Indicator 2
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
uint64_t
mcs2
:
5
;
/// TPMI information for precoding
uint64_t
tpmi
:
3
;
/// Redundancy version 1
/// Redundancy version 1
uint64_t
rv1
:
2
;
uint64_t
rv1
:
2
;
/// New Data Indicator 1
/// New Data Indicator 1
...
@@ -1017,57 +1019,57 @@ struct DCI2_5MHz_2A_L10PRB_TDD {
...
@@ -1017,57 +1019,57 @@ struct DCI2_5MHz_2A_L10PRB_TDD {
/// Power Control
/// Power Control
uint64_t
TPC
:
2
;
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
13
;
uint64_t
rballoc
:
6
;
}
__attribute__
((
__packed__
));
}
__attribute__
((
__packed__
));
typedef
struct
DCI2_
5MHz_2A_L10PRB_TDD
DCI2_5MHz_2A_L10PRB
_TDD_t
;
typedef
struct
DCI2_
1_5MHz_2A_TDD
DCI2_1_5MHz_2A
_TDD_t
;
#define sizeof_DCI2_
5MHz_2A_L10PRB_TDD_t 41
#define sizeof_DCI2_
1_5MHz_2A_TDD_t 34
/// DCI Format Type 2 (5 MHz, TDD, 4 Antenna Ports, less than 10 PRBs, 45 bits)
/// DCI Format Type 2 (1.5 MHz, TDD, 4 Antenna Ports, 37 bits)
struct
DCI2_5MHz_4A_L10PRB_TDD
{
struct
DCI2_1_5MHz_4A_TDD
{
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
/// padding for 64-bit
uint32_t
rballoc
:
13
;
uint64_t
padding64
:
27
;
/// Power Control
uint32_t
TPC
:
2
;
/// Downlink Assignment Index
uint32_t
dai
:
2
;
/// HARQ Process
uint32_t
harq_pid
:
4
;
/// TB swap
uint32_t
tb_swap
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint32_t
mcs1
:
5
;
/// New Data Indicator 1
uint32_t
ndi1
:
1
;
/// Redundancy version 1
uint32_t
rv1
:
2
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint32_t
mcs2
:
5
;
/// New Data Indicator 2
uint32_t
ndi2
:
1
;
/// Redundancy version 2
uint32_t
rv2
:
2
;
/// TPMI information for precoding
/// TPMI information for precoding
uint32_t
tpmi
:
6
;
uint64_t
tpmi
:
6
;
/// Padding for ambiguous sizes (44 -> 45 bits)
/// Redundancy version 2
uint32_t
padding
:
1
;
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// TB swap
uint64_t
tb_swap
:
1
;
/// HARQ Process
uint64_t
harq_pid
:
4
;
/// Downlink Assignment Index
uint64_t
dai
:
2
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
6
;
}
__attribute__
((
__packed__
));
}
__attribute__
((
__packed__
));
typedef
struct
DCI2_
5MHz_4A_L10PRB_TDD
DCI2_5MHz_4A_L10PRB
_TDD_t
;
typedef
struct
DCI2_
1_5MHz_4A_TDD
DCI2_1_5MHz_4A
_TDD_t
;
#define sizeof_DCI2_
5MHz_4A_L10PRB_TDD_t 45
#define sizeof_DCI2_
1_5MHz_4A_TDD_t 37
/// DCI Format Type 2 (5 MHz, TDD, 2 Antenna Ports,
more than 10 PRBs,
42 bits)
/// DCI Format Type 2 (5 MHz, TDD, 2 Antenna Ports, 42 bits)
struct
DCI2_5MHz_2A_
M10PRB_
TDD
{
struct
DCI2_5MHz_2A_TDD
{
/// padding to 64bits
/// padding to 64bits
uint64_t
padding64
:
22
;
uint64_t
padding64
:
22
;
/// TPMI information for precoding
uint64_t
tpmi
:
3
;
/// Redundancy version 2
/// Redundancy version 2
uint64_t
rv2
:
2
;
uint64_t
rv2
:
2
;
/// New Data Indicator 2
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
uint64_t
mcs2
:
5
;
/// TPMI information for precoding
uint64_t
tpmi
:
3
;
/// Redundancy version 1
/// Redundancy version 1
uint64_t
rv1
:
2
;
uint64_t
rv1
:
2
;
/// New Data Indicator 1
/// New Data Indicator 1
...
@@ -1088,386 +1090,1376 @@ struct DCI2_5MHz_2A_M10PRB_TDD {
...
@@ -1088,386 +1090,1376 @@ struct DCI2_5MHz_2A_M10PRB_TDD {
uint64_t
rah
:
1
;
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
}
__attribute__
((
__packed__
));
typedef
struct
DCI2_5MHz_2A_
M10PRB_TDD
DCI2_5MHz_2A_M10PRB
_TDD_t
;
typedef
struct
DCI2_5MHz_2A_
TDD
DCI2_5MHz_2A
_TDD_t
;
#define sizeof_DCI2_5MHz_2A_
M10PRB_
TDD_t 42
#define sizeof_DCI2_5MHz_2A_TDD_t 42
/// DCI Format Type 2 (5 MHz, TDD, 4 Antenna Ports, more than 10 PRBs, 45 bits)
/// DCI Format Type 2 (5 MHz, TDD, 4 Antenna Ports, 45 bits)
struct
DCI2_5MHz_4A_M10PRB_TDD
{
struct
DCI2_5MHz_4A_TDD
{
/// Resource Allocation Header
/// padding for 64-bit
uint32_t
rah
:
1
;
uint64_t
padding64
:
19
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint32_t
rballoc
:
13
;
/// Power Control
uint32_t
TPC
:
2
;
/// Downlink Assignment Index
uint32_t
dai
:
2
;
/// HARQ Process
uint32_t
harq_pid
:
4
;
/// TB swap
uint32_t
tb_swap
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint32_t
mcs1
:
5
;
/// New Data Indicator 1
uint32_t
ndi1
:
1
;
/// Redundancy version 1
uint32_t
rv1
:
2
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint32_t
mcs2
:
5
;
/// New Data Indicator 2
uint32_t
ndi2
:
1
;
/// Redundancy version 2
uint32_t
rv2
:
2
;
/// TPMI information for precoding
/// TPMI information for precoding
uint32_t
tpmi
:
6
;
uint64_t
tpmi
:
6
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// TB swap
uint64_t
tb_swap
:
1
;
/// HARQ Process
uint64_t
harq_pid
:
4
;
/// Downlink Assignment Index
uint64_t
dai
:
2
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
13
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
}
__attribute__
((
__packed__
));
typedef
struct
DCI2_5MHz_4A_M10PRB_TDD
DCI2_5MHz_4A_M10PRB_TDD_t
;
typedef
struct
DCI2_5MHz_4A_TDD
DCI2_5MHz_4A_TDD_t
;
#define sizeof_DCI2_5MHz_4A_M10PRB_TDD_t 45
#define sizeof_DCI2_5MHz_4A_TDD_t 45
/// DCI Format Type 2 (5 MHz, FDD, 2 Antenna Ports, less than 10 PRBs, 38 bits)
/// DCI Format Type 2 (10 MHz, TDD, 2 Antenna Ports, 46 bits)
struct
DCI2_5MHz_2A_L10PRB_FDD
{
struct
DCI2_10MHz_2A_TDD
{
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
/// padding to 64bits
uint32_t
rballoc
:
13
;
uint64_t
padding64
:
18
;
/// Power Control
uint32_t
TPC
:
2
;
/// HARQ Process
uint32_t
harq_pid
:
3
;
/// TB swap
uint32_t
tb_swap
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint32_t
mcs1
:
5
;
/// New Data Indicator 1
uint32_t
ndi1
:
1
;
/// Redundancy version 1
uint32_t
rv1
:
2
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint32_t
mcs2
:
5
;
/// New Data Indicator 2
uint32_t
ndi2
:
1
;
/// Redundancy version 2
uint32_t
rv2
:
2
;
/// TPMI information for precoding
/// TPMI information for precoding
uint32_t
tpmi
:
3
;
uint64_t
tpmi
:
3
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// TB swap
uint64_t
tb_swap
:
1
;
/// HARQ Process
uint64_t
harq_pid
:
4
;
/// Downlink Assignment Index
uint64_t
dai
:
2
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
17
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
}
__attribute__
((
__packed__
));
typedef
struct
DCI2_
5MHz_2A_L10PRB_FDD
DCI2_5MHz_2A_L10PRB_F
DD_t
;
typedef
struct
DCI2_
10MHz_2A_TDD
DCI2_10MHz_2A_T
DD_t
;
#define sizeof_DCI2_
5MHz_2A_L10PRB_FDD_t 38
#define sizeof_DCI2_
10MHz_2A_TDD_t 46
/// DCI Format Type 2 (5 MHz, FDD, 4 Antenna Ports, less than 10 PRBs, 41 bits)
/// DCI Format Type 2 (10 MHz, TDD, 4 Antenna Ports, 49 bits)
typedef
struct
__attribute__
((
__packed__
)){
struct
DCI2_10MHz_4A_TDD
{
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
/// padding for 64-bit
uint32_t
rballoc
:
13
;
uint64_t
padding64
:
15
;
/// Power Control
uint32_t
TPC
:
2
;
/// HARQ Process
uint32_t
harq_pid
:
3
;
/// TB swap
uint32_t
tb_swap
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint32_t
mcs1
:
5
;
/// New Data Indicator 1
uint32_t
ndi1
:
1
;
/// Redundancy version 1
uint32_t
rv1
:
2
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint32_t
mcs2
:
5
;
/// New Data Indicator 2
uint32_t
ndi2
:
1
;
/// Redundancy version 2
uint32_t
rv2
:
2
;
/// TPMI information for precoding
/// TPMI information for precoding
uint32_t
tpmi
:
6
;
uint64_t
tpmi
:
6
;
}
DCI2_5MHz_4A_L10PRB_FDD_t
;
#define sizeof_DCI2_5MHz_4A_L10PRB_FDD_t 41
/// DCI Format Type 2 (5 MHz, FDD, 2 Antenna Ports, more than 10 PRBs, 39 bits)
typedef
struct
__attribute__
((
__packed__
)){
/// Resource Allocation Header
uint32_t
rah
:
1
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint32_t
rballoc
:
13
;
/// Power Control
uint32_t
TPC
:
2
;
/// HARQ Process
uint32_t
harq_pid
:
3
;
/// TB swap
uint32_t
tb_swap
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint32_t
mcs1
:
5
;
/// New Data Indicator 1
uint32_t
ndi1
:
1
;
/// Redundancy version 1
uint32_t
rv1
:
2
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint32_t
mcs2
:
5
;
/// New Data Indicator 2
uint32_t
ndi2
:
1
;
/// Redundancy version 2
/// Redundancy version 2
uint32_t
rv2
:
2
;
uint64_t
rv2
:
2
;
/// TPMI information for precoding
uint32_t
tpmi
:
3
;
}
DCI2_5MHz_2A_M10PRB_FDD_t
;
#define sizeof_DCI2_5MHz_2A_M10PRB_FDD_t 39
/// DCI Format Type 2 (5 MHz, TDD, 4 Antenna Ports, more than 10 PRBs, 42 bits)
typedef
struct
__attribute__
((
__packed__
)){
/// Resource Allocation Header
uint32_t
rah
:
1
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint32_t
rballoc
:
13
;
/// Power Control
uint32_t
TPC
:
2
;
/// HARQ Process
uint32_t
harq_pid
:
3
;
/// TB swap
uint32_t
tb_swap
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint32_t
mcs1
:
5
;
/// New Data Indicator 1
uint32_t
ndi1
:
1
;
/// Redundancy version 1
uint32_t
rv1
:
2
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint32_t
mcs2
:
5
;
/// New Data Indicator 2
/// New Data Indicator 2
uint32_t
ndi2
:
1
;
uint64_t
ndi2
:
1
;
/// Redundancy version 2
/// Modulation and Coding Scheme and Redundancy Version 2
uint32_t
rv2
:
2
;
uint64_t
mcs2
:
5
;
/// TPMI information for precoding
/// Redundancy version 1
uint32_t
tpmi
:
6
;
uint64_t
rv1
:
2
;
}
DCI2_5MHz_4A_M10PRB_FDD_t
;
/// New Data Indicator 1
#define sizeof_DCI2_5MHz_4A_M10PRB_FDD_t 42
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// TB swap
uint64_t
tb_swap
:
1
;
/// HARQ Process
uint64_t
harq_pid
:
4
;
/// Downlink Assignment Index
uint64_t
dai
:
2
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
17
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
typedef
struct
DCI2_10MHz_4A_TDD
DCI2_10MHz_4A_TDD_t
;
#define sizeof_DCI2_10MHz_4A_TDD_t 49
/// DCI Format Type 2A (5 MHz, TDD, 2 Antenna Ports, less than 10 PRBs, 38 bits)
/// DCI Format Type 2 (20 MHz, TDD, 2 Antenna Ports, 54 bits)
typedef
struct
__attribute__
((
__packed__
)){
struct
DCI2_20MHz_2A_TDD
{
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
/// padding to 64bits
uint32_t
rballoc
:
13
;
uint64_t
padding64
:
10
;
/// Power Control
/// TPMI information for precoding
uint32_t
TPC
:
2
;
uint64_t
tpmi
:
3
;
/// Downlink Assignment Index
/// Redundancy version 2
uint32_t
dai
:
2
;
uint64_t
rv2
:
2
;
/// HARQ Process
/// New Data Indicator 2
uint32_t
harq_pid
:
4
;
uint64_t
ndi2
:
1
;
/// TB swap
uint32_t
tb_swap
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint32_t
mcs1
:
5
;
/// New Data Indicator 1
uint32_t
ndi1
:
1
;
/// Redundancy version 1
uint32_t
rv1
:
2
;
/// Modulation and Coding Scheme and Redundancy Version 2
/// Modulation and Coding Scheme and Redundancy Version 2
uint32_t
mcs2
:
5
;
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// TB swap
uint64_t
tb_swap
:
1
;
/// HARQ Process
uint64_t
harq_pid
:
4
;
/// Downlink Assignment Index
uint64_t
dai
:
2
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
25
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
typedef
struct
DCI2_20MHz_2A_TDD
DCI2_20MHz_2A_TDD_t
;
#define sizeof_DCI2_20MHz_2A_TDD_t 54
/// DCI Format Type 2 (20 MHz, TDD, 4 Antenna Ports, 57 bits)
struct
DCI2_20MHz_4A_TDD
{
/// padding for 64-bit
uint64_t
padding64
:
7
;
/// TPMI information for precoding
uint64_t
tpmi
:
6
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
/// New Data Indicator 2
uint32_t
ndi2
:
1
;
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// TB swap
uint64_t
tb_swap
:
1
;
/// HARQ Process
uint64_t
harq_pid
:
4
;
/// Downlink Assignment Index
uint64_t
dai
:
2
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
25
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
typedef
struct
DCI2_20MHz_4A_TDD
DCI2_20MHz_4A_TDD_t
;
#define sizeof_DCI2_20MHz_4A_TDD_t 58
/// DCI Format Type 2 (1.5 MHz, FDD, 2 Antenna Ports, 31 bits)
struct
DCI2_1_5MHz_2A_FDD
{
//padding for 32 bits
uint32_t
padding32
:
1
;
/// precoding bits
uint32_t
tpmi
:
3
;
/// Redundancy version 2
/// Redundancy version 2
uint32_t
rv2
:
2
;
uint32_t
rv2
:
2
;
}
DCI2A_5MHz_2A_L10PRB_TDD_t
;
#define sizeof_DCI2A_5MHz_2A_L10PRB_TDD_t 38
/// DCI Format Type 2A (5 MHz, TDD, 4 Antenna Ports, less than 10 PRBs, 41 bits)
typedef
struct
__attribute__
((
__packed__
)){
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint32_t
rballoc
:
13
;
/// Power Control
uint32_t
TPC
:
2
;
/// Downlink Assignment Index
uint32_t
dai
:
2
;
/// HARQ Process
uint32_t
harq_pid
:
4
;
/// TB swap
uint32_t
tb_swap
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint32_t
mcs1
:
5
;
/// New Data Indicator 1
uint32_t
ndi1
:
1
;
/// Redundancy version 1
uint32_t
rv1
:
2
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint32_t
mcs2
:
5
;
/// New Data Indicator 2
/// New Data Indicator 2
uint32_t
ndi2
:
1
;
uint32_t
ndi2
:
1
;
/// Redundancy version 2
uint32_t
rv2
:
2
;
/// TPMI information for precoding
uint32_t
tpmi
:
2
;
/// Padding for ambiguous sizes (40 -> 41 bits)
uint32_t
padding
:
1
;
}
DCI2A_5MHz_4A_L10PRB_TDD_t
;
#define sizeof_DCI2A_5MHz_4A_L10PRB_TDD_t 41
/// DCI Format Type 2A (5 MHz, TDD, 2 Antenna Ports, more than 10 PRBs, 39 bits)
typedef
struct
__attribute__
((
__packed__
)){
/// Resource Allocation Header
uint32_t
rah
:
1
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint32_t
rballoc
:
13
;
/// Power Control
uint32_t
TPC
:
2
;
/// Downlink Assignment Index
uint32_t
dai
:
2
;
/// HARQ Process
uint32_t
harq_pid
:
4
;
/// TB swap
uint32_t
tb_swap
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint32_t
mcs1
:
5
;
/// New Data Indicator 1
uint32_t
ndi1
:
1
;
/// Redundancy version 1
uint32_t
rv1
:
2
;
/// Modulation and Coding Scheme and Redundancy Version 2
/// Modulation and Coding Scheme and Redundancy Version 2
uint32_t
mcs2
:
5
;
uint32_t
mcs2
:
5
;
/// New Data Indicator 2
uint32_t
ndi2
:
1
;
/// Redundancy version 2
uint32_t
rv2
:
2
;
}
DCI2A_5MHz_2A_M10PRB_TDD_t
;
#define sizeof_DCI2A_5MHz_2A_M10PRB_TDD_t 39
/// DCI Format Type 2A (5 MHz, TDD, 4 Antenna Ports, more than 10 PRBs, 45 bits)
typedef
struct
__attribute__
((
__packed__
)){
/// Resource Allocation Header
uint32_t
rah
:
1
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint32_t
rballoc
:
13
;
/// Power Control
uint32_t
TPC
:
2
;
/// Downlink Assignment Index
uint32_t
dai
:
2
;
/// HARQ Process
uint32_t
harq_pid
:
4
;
/// TB swap
uint32_t
tb_swap
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint32_t
mcs1
:
5
;
/// New Data Indicator 1
uint32_t
ndi1
:
1
;
/// Redundancy version 1
/// Redundancy version 1
uint32_t
rv1
:
2
;
uint32_t
rv1
:
2
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint32_t
mcs2
:
5
;
/// New Data Indicator 2
uint32_t
ndi2
:
1
;
/// Redundancy version 2
uint32_t
rv2
:
2
;
/// TPMI information for precoding
uint32_t
tpmi
:
2
;
}
DCI2A_5MHz_4A_M10PRB_TDD_t
;
#define sizeof_DCI2A_5MHz_4A_M10PRB_TDD_t 45
/// DCI Format Type 2A (5 MHz, FDD, 2 Antenna Ports, less than 10 PRBs, 35 bits)
typedef
struct
__attribute__
((
__packed__
)){
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint32_t
rballoc
:
13
;
/// Power Control
uint32_t
TPC
:
2
;
/// HARQ Process
uint32_t
harq_pid
:
3
;
/// TB swap
uint32_t
tb_swap
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint32_t
mcs1
:
5
;
/// New Data Indicator 1
/// New Data Indicator 1
uint32_t
ndi1
:
1
;
uint32_t
ndi1
:
1
;
/// Redundancy version 1
uint32_t
rv1
:
2
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint32_t
mcs2
:
5
;
/// New Data Indicator 2
uint32_t
ndi2
:
1
;
/// Redundancy version 2
uint32_t
rv2
:
2
;
}
DCI2A_5MHz_2A_L10PRB_FDD_t
;
#define sizeof_DCI2A_5MHz_2A_L10PRB_FDD_t 35
/// DCI Format Type 2A (5 MHz, FDD, 4 Antenna Ports, less than 10 PRBs, 37 bits)
typedef
struct
__attribute__
((
__packed__
)){
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint32_t
rballoc
:
13
;
/// Power Control
uint32_t
TPC
:
2
;
/// HARQ Process
uint32_t
harq_pid
:
3
;
/// TB swap
uint32_t
tb_swap
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
/// Modulation and Coding Scheme and Redundancy Version 1
uint32_t
mcs1
:
5
;
uint32_t
mcs1
:
5
;
/// New Data Indicator 1
uint32_t
ndi1
:
1
;
/// Redundancy version 1
uint32_t
rv1
:
2
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint32_t
mcs2
:
5
;
/// New Data Indicator 2
uint32_t
ndi2
:
1
;
/// Redundancy version 2
uint32_t
rv2
:
2
;
/// TPMI information for precoding
uint32_t
tpmi
:
2
;
}
DCI2A_5MHz_4A_L10PRB_FDD_t
;
#define sizeof_DCI2A_5MHz_4A_L10PRB_FDD_t 37
/// DCI Format Type 2A (5 MHz, FDD, 2 Antenna Ports, more than 10 PRBs, 36 bits)
typedef
struct
__attribute__
((
__packed__
)){
/// Resource Allocation Header
uint32_t
rah
:
1
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint32_t
rballoc
:
13
;
/// Power Control
uint32_t
TPC
:
2
;
/// HARQ Process
uint32_t
harq_pid
:
3
;
/// TB swap
/// TB swap
uint32_t
tb_swap
:
1
;
uint32_t
tb_swap
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint32_t
mcs1
:
5
;
/// New Data Indicator 1
uint32_t
ndi1
:
1
;
/// Redundancy version 1
uint32_t
rv1
:
2
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint32_t
mcs2
:
5
;
/// New Data Indicator 2
uint32_t
ndi2
:
1
;
/// Redundancy version 2
uint32_t
rv2
:
2
;
}
DCI2A_5MHz_2A_M10PRB_FDD_t
;
#define sizeof_DCI2A_5MHz_2A_M10PRB_FDD_t 36
/// DCI Format Type 2A (5 MHz, TDD, 4 Antenna Ports, more than 10 PRBs, 38 bits)
typedef
struct
__attribute__
((
__packed__
)){
/// Resource Allocation Header
uint32_t
rah
:
1
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint32_t
rballoc
:
13
;
/// Power Control
uint32_t
TPC
:
2
;
/// HARQ Process
/// HARQ Process
uint32_t
harq_pid
:
3
;
uint32_t
harq_pid
:
3
;
/// TB swap
/// Power Control
uint32_t
tb_swap
:
1
;
uint32_t
TPC
:
2
;
/// Modulation and Coding Scheme and Redundancy Version 1
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint32_t
mcs1
:
5
;
uint32_t
rballoc
:
6
;
/// New Data Indicator 1
}
__attribute__
((
__packed__
));
uint32_t
ndi1
:
1
;
/// Redundancy version 1
typedef
struct
DCI2_1_5MHz_2A_FDD
DCI2_1_5MHz_2A_FDD_t
;
uint32_t
rv1
:
2
;
#define sizeof_DCI2_1_5MHz_2A_FDD_t 31
/// Modulation and Coding Scheme and Redundancy Version 2
uint32_t
mcs2
:
5
;
/// DCI Format Type 2 (1.5 MHz, FDD, 4 Antenna Ports, 34 bits)
/// New Data Indicator 2
struct
DCI2_1_5MHz_4A_FDD
{
uint32_t
ndi2
:
1
;
/// padding for 32 bits
uint64_t
padding64
:
30
;
/// precoding bits
uint64_t
tpmi
:
6
;
/// Redundancy version 2
/// Redundancy version 2
uint32_t
rv2
:
2
;
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// TB swap
uint64_t
tb_swap
:
1
;
/// HARQ Process
uint64_t
harq_pid
:
3
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
6
;
}
__attribute__
((
__packed__
));
typedef
struct
DCI2_1_5MHz_4A_FDD
DCI2_1_5MHz_4A_FDD_t
;
#define sizeof_DCI2_1_5MHz_4A_FDD_t 34
/// DCI Format Type 2 (5 MHz, FDD, 2 Antenna Ports, 39 bits)
struct
DCI2_5MHz_2A_FDD
{
/// padding for 64-bit
uint64_t
padding64
:
25
;
/// TPMI information for precoding
/// TPMI information for precoding
uint32_t
tpmi
:
2
;
uint64_t
tpmi
:
3
;
}
DCI2A_5MHz_4A_M10PRB_FDD_t
;
/// Redundancy version 2
#define sizeof_DCI2A_5MHz_4A_M10PRB_FDD_t 38
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// TB swap
uint64_t
tb_swap
:
1
;
/// HARQ Process
uint64_t
harq_pid
:
3
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
13
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
#define sizeof_DCI2_5MHz_2A_FDD_t 39
typedef
struct
DCI2_5MHz_2A_FDD
DCI2_5MHz_2A_FDD_t
;
/// DCI Format Type 2 (5 MHz, TDD, 4 Antenna Ports, 42 bits)
struct
DCI2_5MHz_4A_FDD
{
/// padding for 64-bit
uint64_t
padding64
:
21
;
/// TPMI information for precoding
uint64_t
tpmi
:
6
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// TB swap
uint64_t
tb_swap
:
1
;
/// HARQ Process
uint64_t
harq_pid
:
3
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
13
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
#define sizeof_DCI2_5MHz_4A_FDD_t 42
typedef
struct
DCI2_5MHz_4A_FDD
DCI2_5MHz_4A_FDD_t
;
/// DCI Format Type 2 (10 MHz, FDD, 2 Antenna Ports, 43 bits)
struct
DCI2_10MHz_2A_FDD
{
/// padding for 64-bit
uint64_t
padding64
:
21
;
/// TPMI information for precoding
uint64_t
tpmi
:
3
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// TB swap
uint64_t
tb_swap
:
1
;
/// HARQ Process
uint64_t
harq_pid
:
3
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
17
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
#define sizeof_DCI2_10MHz_2A_FDD_t 43
typedef
struct
DCI2_10MHz_2A_FDD
DCI2_10MHz_2A_FDD_t
;
/// DCI Format Type 2 (5 MHz, TDD, 4 Antenna Ports, 46 bits)
struct
DCI2_10MHz_4A_FDD
{
/// padding for 64-bit
uint64_t
padding64
:
18
;
/// TPMI information for precoding
uint64_t
tpmi
:
6
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// TB swap
uint64_t
tb_swap
:
1
;
/// HARQ Process
uint64_t
harq_pid
:
3
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
17
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
#define sizeof_DCI2_10MHz_4A_FDD_t 46
typedef
struct
DCI2_10MHz_4A_FDD
DCI2_10MHz_4A_FDD_t
;
/// DCI Format Type 2 (20 MHz, FDD, 2 Antenna Ports, 51 bits)
struct
DCI2_20MHz_2A_FDD
{
/// padding for 64-bit
uint64_t
padding64
:
13
;
/// TPMI information for precoding
uint64_t
tpmi
:
3
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// TB swap
uint64_t
tb_swap
:
1
;
/// HARQ Process
uint64_t
harq_pid
:
3
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
25
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
#define sizeof_DCI2_20MHz_2A_FDD_t 51
typedef
struct
DCI2_20MHz_2A_FDD
DCI2_20MHz_2A_FDD_t
;
/// DCI Format Type 2 (20 MHz, FDD, 4 Antenna Ports, 54 bits)
struct
DCI2_20MHz_4A_FDD
{
/// padding for 64-bit
uint64_t
padding64
:
10
;
/// TPMI information for precoding
uint64_t
tpmi
:
6
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// TB swap
uint64_t
tb_swap
:
1
;
/// HARQ Process
uint64_t
harq_pid
:
3
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
25
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
#define sizeof_DCI2_20MHz_4A_FDD_t 54
typedef
struct
DCI2_20MHz_4A_FDD
DCI2_20MHz_4A_FDD_t
;
// *******************************************************************
// ********************FORMAT 2A DCIs*********************************
// *******************************************************************
/// DCI Format Type 2A (5 MHz, TDD, 2 Antenna Ports, 39 bits)
struct
__attribute__
((
__packed__
)){
/// Resource Allocation Header
uint32_t
rah
:
1
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint32_t
rballoc
:
13
;
/// Power Control
uint32_t
TPC
:
2
;
/// Downlink Assignment Index
uint32_t
dai
:
2
;
/// HARQ Process
uint32_t
harq_pid
:
4
;
/// TB swap
uint32_t
tb_swap
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint32_t
mcs1
:
5
;
/// New Data Indicator 1
uint32_t
ndi1
:
1
;
/// Redundancy version 1
uint32_t
rv1
:
2
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint32_t
mcs2
:
5
;
/// New Data Indicator 2
uint32_t
ndi2
:
1
;
/// Redundancy version 2
uint32_t
rv2
:
2
;
}
DCI2A_5MHz_2A_TDD
;
#define sizeof_DCI2A_5MHz_2A_TDD_t 39
/// DCI Format Type 2A (5 MHz, TDD, 4 Antenna Ports, 45 bits)
typedef
struct
__attribute__
((
__packed__
)){
/// Resource Allocation Header
uint32_t
rah
:
1
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint32_t
rballoc
:
13
;
/// Power Control
uint32_t
TPC
:
2
;
/// Downlink Assignment Index
uint32_t
dai
:
2
;
/// HARQ Process
uint32_t
harq_pid
:
4
;
/// TB swap
uint32_t
tb_swap
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint32_t
mcs1
:
5
;
/// New Data Indicator 1
uint32_t
ndi1
:
1
;
/// Redundancy version 1
uint32_t
rv1
:
2
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint32_t
mcs2
:
5
;
/// New Data Indicator 2
uint32_t
ndi2
:
1
;
/// Redundancy version 2
uint32_t
rv2
:
2
;
/// TPMI information for precoding
uint32_t
tpmi
:
2
;
}
DCI2A_5MHz_4A_TDD_t
;
#define sizeof_DCI2A_5MHz_4A_TDD_t 45
/// DCI Format Type 2A (5 MHz, FDD, 2 Antenna Ports, 36 bits)
struct
__attribute__
((
__packed__
)){
/// Resource Allocation Header
uint32_t
rah
:
1
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint32_t
rballoc
:
13
;
/// Power Control
uint32_t
TPC
:
2
;
/// HARQ Process
uint32_t
harq_pid
:
3
;
/// TB swap
uint32_t
tb_swap
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint32_t
mcs1
:
5
;
/// New Data Indicator 1
uint32_t
ndi1
:
1
;
/// Redundancy version 1
uint32_t
rv1
:
2
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint32_t
mcs2
:
5
;
/// New Data Indicator 2
uint32_t
ndi2
:
1
;
/// Redundancy version 2
uint32_t
rv2
:
2
;
}
DCI2A_5MHz_2A_M10PRB_FDD
;
#define sizeof_DCI2A_5MHz_2A_FDD_t 36
/// DCI Format Type 2A (5 MHz, TDD, 4 Antenna Ports, 38 bits)
struct
__attribute__
((
__packed__
)){
/// Resource Allocation Header
uint32_t
rah
:
1
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint32_t
rballoc
:
13
;
/// Power Control
uint32_t
TPC
:
2
;
/// HARQ Process
uint32_t
harq_pid
:
3
;
/// TB swap
uint32_t
tb_swap
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint32_t
mcs1
:
5
;
/// New Data Indicator 1
uint32_t
ndi1
:
1
;
/// Redundancy version 1
uint32_t
rv1
:
2
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint32_t
mcs2
:
5
;
/// New Data Indicator 2
uint32_t
ndi2
:
1
;
/// Redundancy version 2
uint32_t
rv2
:
2
;
/// TPMI information for precoding
uint32_t
tpmi
:
2
;
}
DCI2A_5MHz_4A_FDD
;
#define sizeof_DCI2A_5MHz_4A_FDD_t 38
// *******************************************************************
// ********************FORMAT 2B DCIs*********************************
// *******************************************************************
/// DCI Format Type 2B (1.5 MHz, TDD, 33 bits)
struct
DCI2B_1_5MHz_TDD
{
uint64_t
padding64
:
31
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// SRS Request
uint64_t
srs_req
:
1
;
/// Scrambling ID
uint64_t
scrambling_id
:
1
;
/// HARQ Process
uint64_t
harq_pid
:
4
;
/// Downlink Assignment Index
uint64_t
dai
:
2
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
6
;
/// Padding for ambiguity
uint64_t
padding
:
1
;
}
__attribute__
((
__packed__
));
typedef
struct
DCI2B_1_5MHz_TDD
DCI2B_1_5MHz_TDD_t
;
#define sizeof_DCI2B_1_5MHz_TDD_t 33
/// DCI Format Type 2B (5 MHz, TDD, 39 bits)
struct
DCI2B_5MHz_TDD
{
/// padding to 64bits
uint64_t
padding64
:
25
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// SRS Request
uint64_t
srs_req
:
1
;
/// Scrambling ID
uint64_t
scrambling_id
:
1
;
/// HARQ Process
uint64_t
harq_pid
:
4
;
/// Downlink Assignment Index
uint64_t
dai
:
2
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
13
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
typedef
struct
DCI2B_5MHz_TDD
DCI2B_5MHz_TDD_t
;
#define sizeof_DCI2B_5MHz_TDD_t 39
/// DCI Format Type 2B (10 MHz, TDD, 43 bits)
struct
DCI2B_10MHz_TDD
{
/// padding to 64bits
uint64_t
padding64
:
21
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// SRS Request
uint64_t
srs_req
:
1
;
/// Scrambling ID
uint64_t
scrambling_id
:
1
;
/// HARQ Process
uint64_t
harq_pid
:
4
;
/// Downlink Assignment Index
uint64_t
dai
:
2
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
17
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
typedef
struct
DCI2B_10MHz_TDD
DCI2B_10MHz_TDD_t
;
#define sizeof_DCI2B_10MHz_TDD_t 43
/// DCI Format Type 2B (20 MHz, TDD, 51 bits)
struct
DCI2B_20MHz_TDD
{
/// padding to 64bits
uint64_t
padding64
:
13
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// SRS Request
uint64_t
srs_req
:
1
;
/// Scrambling ID
uint64_t
scrambling_id
:
1
;
/// HARQ Process
uint64_t
harq_pid
:
4
;
/// Downlink Assignment Index
uint64_t
dai
:
2
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
25
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
typedef
struct
DCI2B_20MHz_TDD
DCI2B_20MHz_TDD_t
;
#define sizeof_DCI2B_20MHz_TDD_t 51
/// DCI Format Type 2B (1.5 MHz, FDD, 28 bits)
struct
DCI2B_1_5MHz_FDD
{
//padding for 32 bits
uint32_t
padding32
:
4
;
/// Redundancy version 2
uint32_t
rv2
:
2
;
/// New Data Indicator 2
uint32_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint32_t
mcs2
:
5
;
/// Redundancy version 1
uint32_t
rv1
:
2
;
/// New Data Indicator 1
uint32_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint32_t
mcs1
:
5
;
/// Scrambling ID
uint32_t
scrambling_id
:
1
;
/// HARQ Process
uint32_t
harq_pid
:
3
;
/// Power Control
uint32_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint32_t
rballoc
:
6
;
}
__attribute__
((
__packed__
));
typedef
struct
DCI2B_1_5MHz_FDD
DCI2B_1_5MHz_FDD_t
;
#define sizeof_DCI2B_1_5MHz_FDD_t 28
/// DCI Format Type 2B (5 MHz, FDD, 36 bits)
struct
DCI2B_5MHz_FDD
{
/// padding for 64-bit
uint64_t
padding64
:
28
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// Scrambling ID
uint64_t
scrambling_id
:
1
;
/// HARQ Process
uint64_t
harq_pid
:
3
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
13
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
#define sizeof_DCI2B_5MHz_FDD_t 36
typedef
struct
DCI2B_5MHz_FDD
DCI2B_5MHz_FDD_t
;
/// DCI Format Type 2B (10 MHz, FDD, 41 bits)
struct
DCI2B_10MHz_FDD
{
/// padding for 64-bit
uint64_t
padding64
:
23
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// Scrambling ID
uint64_t
scrambling_id
:
1
;
/// HARQ Process
uint64_t
harq_pid
:
3
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
17
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
/// Padding for ambiguity
uint64_t
padding
:
1
;
}
__attribute__
((
__packed__
));
#define sizeof_DCI2B_10MHz_FDD_t 41
typedef
struct
DCI2B_10MHz_FDD
DCI2B_10MHz_FDD_t
;
/// DCI Format Type 2B (20 MHz, FDD, 48 bits)
struct
DCI2B_20MHz_FDD
{
/// padding for 64-bit
uint64_t
padding64
:
16
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// Scrambling ID
uint64_t
scrambling_id
:
1
;
/// HARQ Process
uint64_t
harq_pid
:
3
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
25
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
#define sizeof_DCI2B_20MHz_FDD_t 48
typedef
struct
DCI2B_20MHz_FDD
DCI2B_20MHz_FDD_t
;
// *******************************************************************
// ********************FORMAT 2C DCIs*********************************
// *******************************************************************
/// DCI Format Type 2C (1.5 MHz, TDD, 34 bits)
struct
DCI2C_1_5MHz_TDD
{
uint64_t
padding64
:
30
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// SRS Request
uint64_t
srs_req
:
1
;
/// Scrambling ID
uint64_t
ap_si_nl_id
:
3
;
/// HARQ Process
uint64_t
harq_pid
:
4
;
/// Downlink Assignment Index
uint64_t
dai
:
2
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
6
;
}
__attribute__
((
__packed__
));
typedef
struct
DCI2C_1_5MHz_TDD
DCI2C_1_5MHz_TDD_t
;
#define sizeof_DCI2C_1_5MHz_TDD_t 34
/// DCI Format Type 2C (5 MHz, TDD, 41 bits)
struct
DCI2C_5MHz_TDD
{
/// padding to 64bits
uint64_t
padding64
:
23
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// SRS Request
uint64_t
srs_req
:
1
;
/// Scrambling ID
uint64_t
ap_si_nl_id
:
3
;
/// HARQ Process
uint64_t
harq_pid
:
4
;
/// Downlink Assignment Index
uint64_t
dai
:
2
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
13
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
typedef
struct
DCI2C_5MHz_TDD
DCI2C_5MHz_TDD_t
;
#define sizeof_DCI2C_5MHz_TDD_t 41
/// DCI Format Type 2C (10 MHz, TDD, 45 bits)
struct
DCI2C_10MHz_TDD
{
/// padding to 64bits
uint64_t
padding64
:
19
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// SRS Request
uint64_t
srs_req
:
1
;
/// Scrambling ID
uint64_t
ap_si_nl_id
:
3
;
/// HARQ Process
uint64_t
harq_pid
:
4
;
/// Downlink Assignment Index
uint64_t
dai
:
2
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
17
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
typedef
struct
DCI2C_10MHz_TDD
DCI2C_10MHz_TDD_t
;
#define sizeof_DCI2C_10MHz_TDD_t 45
/// DCI Format Type 2C (20 MHz, TDD, 53 bits)
struct
DCI2C_20MHz_TDD
{
/// padding to 64bits
uint64_t
padding64
:
11
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// SRS Request
uint64_t
srs_req
:
1
;
/// Scrambling ID
uint64_t
ap_si_nl_id
:
3
;
/// HARQ Process
uint64_t
harq_pid
:
4
;
/// Downlink Assignment Index
uint64_t
dai
:
2
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
25
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
typedef
struct
DCI2C_20MHz_TDD
DCI2C_20MHz_TDD_t
;
#define sizeof_DCI2C_20MHz_TDD_t 53
/// DCI Format Type 2C (1.5 MHz, FDD, 30 bits)
struct
DCI2C_1_5MHz_FDD
{
//padding for 32 bits
uint32_t
padding32
:
2
;
/// Redundancy version 2
uint32_t
rv2
:
2
;
/// New Data Indicator 2
uint32_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint32_t
mcs2
:
5
;
/// Redundancy version 1
uint32_t
rv1
:
2
;
/// New Data Indicator 1
uint32_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint32_t
mcs1
:
5
;
/// Scrambling ID
uint32_t
ap_si_nl_id
:
3
;
/// HARQ Process
uint32_t
harq_pid
:
3
;
/// Power Control
uint32_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint32_t
rballoc
:
6
;
}
__attribute__
((
__packed__
));
typedef
struct
DCI2C_1_5MHz_FDD
DCI2C_1_5MHz_FDD_t
;
#define sizeof_DCI2C_1_5MHz_FDD_t 30
/// DCI Format Type 2C (5 MHz, FDD, 38 bits)
struct
DCI2C_5MHz_FDD
{
/// padding for 64-bit
uint64_t
padding64
:
26
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// Scrambling ID
uint64_t
ap_si_nl_id
:
3
;
/// HARQ Process
uint64_t
harq_pid
:
3
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
13
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
#define sizeof_DCI2C_5MHz_FDD_t 38
typedef
struct
DCI2C_5MHz_FDD
DCI2C_5MHz_FDD_t
;
/// DCI Format Type 2C (10 MHz, FDD, 42 bits)
struct
DCI2C_10MHz_FDD
{
/// padding for 64-bit
uint64_t
padding64
:
22
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// Scrambling ID
uint64_t
ap_si_nl_id
:
3
;
/// HARQ Process
uint64_t
harq_pid
:
3
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
17
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
#define sizeof_DCI2C_10MHz_FDD_t 43
typedef
struct
DCI2C_10MHz_FDD
DCI2C_10MHz_FDD_t
;
/// DCI Format Type 2C (20 MHz, FDD, 50 bits)
struct
DCI2C_20MHz_FDD
{
/// padding for 64-bit
uint64_t
padding64
:
14
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// Scrambling ID
uint64_t
ap_si_nl_id
:
3
;
/// HARQ Process
uint64_t
harq_pid
:
3
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
25
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
#define sizeof_DCI2C_20MHz_FDD_t 50
typedef
struct
DCI2C_20MHz_FDD
DCI2C_20MHz_FDD_t
;
// *******************************************************************
// ********************FORMAT 2D DCIs*********************************
// *******************************************************************
/// DCI Format Type 2D (1.5 MHz, TDD, 36 bits)
struct
DCI2D_1_5MHz_TDD
{
uint64_t
padding64
:
28
;
/// PDSCH REsource Mapping and Quasi-Co-Location Indicator
uint64_t
REMQCL
:
2
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// SRS Request
uint64_t
srs_req
:
1
;
/// Scrambling ID
uint64_t
ap_si_nl_id
:
3
;
/// HARQ Process
uint64_t
harq_pid
:
4
;
/// Downlink Assignment Index
uint64_t
dai
:
2
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
6
;
}
__attribute__
((
__packed__
));
typedef
struct
DCI2D_1_5MHz_TDD
DCI2D_1_5MHz_TDD_t
;
#define sizeof_DCI2D_1_5MHz_TDD_t 36
/// DCI Format Type 2D (5 MHz, TDD, 43 bits)
struct
DCI2D_5MHz_TDD
{
/// padding to 64bits
uint64_t
padding64
:
21
;
/// PDSCH REsource Mapping and Quasi-Co-Location Indicator
uint64_t
REMQCL
:
2
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// SRS Request
uint64_t
srs_req
:
1
;
/// Scrambling ID
uint64_t
ap_si_nl_id
:
3
;
/// HARQ Process
uint64_t
harq_pid
:
4
;
/// Downlink Assignment Index
uint64_t
dai
:
2
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
13
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
typedef
struct
DCI2D_5MHz_TDD
DCI2D_5MHz_TDD_t
;
#define sizeof_DCI2D_5MHz_TDD_t 43
/// DCI Format Type 2D (10 MHz, TDD, 47 bits)
struct
DCI2D_10MHz_TDD
{
/// padding to 64bits
uint64_t
padding64
:
17
;
/// PDSCH REsource Mapping and Quasi-Co-Location Indicator
uint64_t
REMQCL
:
2
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// SRS Request
uint64_t
srs_req
:
1
;
/// Scrambling ID
uint64_t
ap_si_nl_id
:
3
;
/// HARQ Process
uint64_t
harq_pid
:
4
;
/// Downlink Assignment Index
uint64_t
dai
:
2
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
17
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
typedef
struct
DCI2D_10MHz_TDD
DCI2D_10MHz_TDD_t
;
#define sizeof_DCI2D_10MHz_TDD_t 47
/// DCI Format Type 2D (20 MHz, TDD, 55 bits)
struct
DCI2D_20MHz_TDD
{
/// padding to 64bits
uint64_t
padding64
:
9
;
/// PDSCH REsource Mapping and Quasi-Co-Location Indicator
uint64_t
REMQCL
:
2
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// SRS Request
uint64_t
srs_req
:
1
;
/// Scrambling ID
uint64_t
ap_si_nl_id
:
3
;
/// HARQ Process
uint64_t
harq_pid
:
4
;
/// Downlink Assignment Index
uint64_t
dai
:
2
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
25
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
typedef
struct
DCI2D_20MHz_TDD
DCI2D_20MHz_TDD_t
;
#define sizeof_DCI2D_20MHz_TDD_t 55
/// DCI Format Type 2D (1.5 MHz, FDD, 33 bits)
struct
DCI2D_1_5MHz_FDD
{
//padding for 33 bits
uint64_t
padding64
:
31
;
/// PDSCH REsource Mapping and Quasi-Co-Location Indicator
uint64_t
REMQCL
:
2
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// Scrambling ID
uint64_t
ap_si_nl_id
:
3
;
/// HARQ Process
uint64_t
harq_pid
:
3
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
6
;
/// padding for ambiguity
uint64_t
padding
;
}
__attribute__
((
__packed__
));
typedef
struct
DCI2D_1_5MHz_FDD
DCI2D_1_5MHz_FDD_t
;
#define sizeof_DCI2D_1_5MHz_FDD_t 33
/// DCI Format Type 2D (5 MHz, FDD, 41 bits)
struct
DCI2D_5MHz_FDD
{
/// padding for 64-bit
uint64_t
padding64
:
23
;
/// PDSCH REsource Mapping and Quasi-Co-Location Indicator
uint64_t
REMQCL
:
2
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// Scrambling ID
uint64_t
ap_si_nl_id
:
3
;
/// HARQ Process
uint64_t
harq_pid
:
3
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
13
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
/// padding for ambiguity
uint64_t
padding
:
1
;
}
__attribute__
((
__packed__
));
#define sizeof_DCI2D_5MHz_FDD_t 41
typedef
struct
DCI2D_5MHz_FDD
DCI2D_5MHz_FDD_t
;
/// DCI Format Type 2D (10 MHz, FDD, 45 bits)
struct
DCI2D_10MHz_FDD
{
/// padding for 64-bit
uint64_t
padding64
:
19
;
/// PDSCH REsource Mapping and Quasi-Co-Location Indicator
uint64_t
REMQCL
:
2
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// Scrambling ID
uint64_t
ap_si_nl_id
:
3
;
/// HARQ Process
uint64_t
harq_pid
:
3
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
17
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
/// padding for ambiguity
uint64_t
padding
:
1
;
}
__attribute__
((
__packed__
));
#define sizeof_DCI2D_10MHz_FDD_t 45
typedef
struct
DCI2D_10MHz_FDD
DCI2D_10MHz_FDD_t
;
/// DCI Format Type 2D (20 MHz, FDD, 52 bits)
struct
DCI2D_20MHz_FDD
{
/// padding for 64-bit
uint64_t
padding64
:
12
;
/// Redundancy version 2
uint64_t
rv2
:
2
;
/// New Data Indicator 2
uint64_t
ndi2
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 2
uint64_t
mcs2
:
5
;
/// Redundancy version 1
uint64_t
rv1
:
2
;
/// New Data Indicator 1
uint64_t
ndi1
:
1
;
/// Modulation and Coding Scheme and Redundancy Version 1
uint64_t
mcs1
:
5
;
/// Scrambling ID
uint64_t
ap_si_nl_id
:
3
;
/// HARQ Process
uint64_t
harq_pid
:
3
;
/// Power Control
uint64_t
TPC
:
2
;
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
uint64_t
rballoc
:
25
;
/// Resource Allocation Header
uint64_t
rah
:
1
;
}
__attribute__
((
__packed__
));
#define sizeof_DCI2D_20MHz_FDD_t 52
typedef
struct
DCI2D_20MHz_FDD
DCI2D_20MHz_FDD_t
;
typedef
struct
__attribute__
((
__packed__
)){
typedef
struct
__attribute__
((
__packed__
)){
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment