Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
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
wangjie
OpenXG-RAN
Commits
7164409e
Commit
7164409e
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
20b44143
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 @
7164409e
...
@@ -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