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
ZhouShuya
OpenXG-RAN
Commits
e08878ed
Commit
e08878ed
authored
Jun 04, 2020
by
Rangaswami
Committed by
k.ramya
Jun 18, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Corrected indentation and removed GES macro
parent
8533610e
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
547 additions
and
643 deletions
+547
-643
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+0
-1
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
+87
-89
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+263
-280
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
+197
-273
No files found.
cmake_targets/CMakeLists.txt
View file @
e08878ed
...
@@ -249,7 +249,6 @@ add_boolean_option(UE_AUTOTEST_TRACE False "Activate UE autotest specific logs
...
@@ -249,7 +249,6 @@ add_boolean_option(UE_AUTOTEST_TRACE False "Activate UE autotest specific logs
add_boolean_option
(
UE_DEBUG_TRACE False
"Activate UE debug trace"
)
add_boolean_option
(
UE_DEBUG_TRACE False
"Activate UE debug trace"
)
add_boolean_option
(
UE_TIMING_TRACE False
"Activate UE timing trace"
)
add_boolean_option
(
UE_TIMING_TRACE False
"Activate UE timing trace"
)
add_boolean_option
(
DEBUG_CONSOLE False
"makes debugging easier, disables stdout/stderr buffering"
)
add_boolean_option
(
DEBUG_CONSOLE False
"makes debugging easier, disables stdout/stderr buffering"
)
add_boolean_option
(
GES_SUPPORT True
"To enable the GES Code"
)
set
(
OCP_ITTI
${
OPENAIR_DIR
}
/common/utils/ocp_itti
)
set
(
OCP_ITTI
${
OPENAIR_DIR
}
/common/utils/ocp_itti
)
add_library
(
ITTI
add_library
(
ITTI
...
...
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
View file @
e08878ed
...
@@ -71,131 +71,129 @@
...
@@ -71,131 +71,129 @@
// R: Reserved bit, set to zero.
// R: Reserved bit, set to zero.
typedef
struct
{
typedef
struct
{
uint8_t
LCID
:
6
;
// octet 1 [5:0]
uint8_t
LCID
:
6
;
// octet 1 [5:0]
uint8_t
F
:
1
;
// octet 1 [6]
uint8_t
F
:
1
;
// octet 1 [6]
uint8_t
R
:
1
;
// octet 1 [7]
uint8_t
R
:
1
;
// octet 1 [7]
uint8_t
L
:
8
;
// octet 2 [7:0]
uint8_t
L
:
8
;
// octet 2 [7:0]
}
__attribute__
((
__packed__
))
NR_MAC_SUBHEADER_SHORT
;
}
__attribute__
((
__packed__
))
NR_MAC_SUBHEADER_SHORT
;
typedef
struct
{
typedef
struct
{
uint8_t
LCID
:
6
;
// octet 1 [5:0]
uint8_t
LCID
:
6
;
// octet 1 [5:0]
uint8_t
F
:
1
;
// octet 1 [6]
uint8_t
F
:
1
;
// octet 1 [6]
uint8_t
R
:
1
;
// octet 1 [7]
uint8_t
R
:
1
;
// octet 1 [7]
uint8_t
L1
:
8
;
// octet 2 [7:0]
uint8_t
L1
:
8
;
// octet 2 [7:0]
uint8_t
L2
:
8
;
// octet 3 [7:0]
uint8_t
L2
:
8
;
// octet 3 [7:0]
}
__attribute__
((
__packed__
))
NR_MAC_SUBHEADER_LONG
;
}
__attribute__
((
__packed__
))
NR_MAC_SUBHEADER_LONG
;
typedef
struct
{
typedef
struct
{
uint8_t
LCID
:
6
;
// octet 1 [5:0]
uint8_t
LCID
:
6
;
// octet 1 [5:0]
uint8_t
R
:
2
;
// octet 1 [7:6]
uint8_t
R
:
2
;
// octet 1 [7:6]
}
__attribute__
((
__packed__
))
NR_MAC_SUBHEADER_FIXED
;
}
__attribute__
((
__packed__
))
NR_MAC_SUBHEADER_FIXED
;
// BSR MAC CEs
// BSR MAC CEs
// TS 38.321 ch. 6.1.3.1
// TS 38.321 ch. 6.1.3.1
// Short BSR for a specific logical channel group ID
// Short BSR for a specific logical channel group ID
typedef
struct
{
typedef
struct
{
uint8_t
Buffer_size
:
5
;
// octet 1 LSB
uint8_t
Buffer_size
:
5
;
// octet 1 LSB
uint8_t
LcgID
:
3
;
// octet 1 MSB
uint8_t
LcgID
:
3
;
// octet 1 MSB
}
__attribute__
((
__packed__
))
NR_BSR_SHORT
;
}
__attribute__
((
__packed__
))
NR_BSR_SHORT
;
typedef
NR_BSR_SHORT
NR_BSR_SHORT_TRUNCATED
;
typedef
NR_BSR_SHORT
NR_BSR_SHORT_TRUNCATED
;
// Long BSR for all logical channel group ID
// Long BSR for all logical channel group ID
typedef
struct
{
typedef
struct
{
uint8_t
Buffer_size7
:
8
;
uint8_t
Buffer_size7
:
8
;
uint8_t
Buffer_size6
:
8
;
uint8_t
Buffer_size6
:
8
;
uint8_t
Buffer_size5
:
8
;
uint8_t
Buffer_size5
:
8
;
uint8_t
Buffer_size4
:
8
;
uint8_t
Buffer_size4
:
8
;
uint8_t
Buffer_size3
:
8
;
uint8_t
Buffer_size3
:
8
;
uint8_t
Buffer_size2
:
8
;
uint8_t
Buffer_size2
:
8
;
uint8_t
Buffer_size1
:
8
;
uint8_t
Buffer_size1
:
8
;
uint8_t
Buffer_size0
:
8
;
uint8_t
Buffer_size0
:
8
;
uint8_t
LcgID0
:
1
;
uint8_t
LcgID0
:
1
;
uint8_t
LcgID1
:
1
;
uint8_t
LcgID1
:
1
;
uint8_t
LcgID2
:
1
;
uint8_t
LcgID2
:
1
;
uint8_t
LcgID3
:
1
;
uint8_t
LcgID3
:
1
;
uint8_t
LcgID4
:
1
;
uint8_t
LcgID4
:
1
;
uint8_t
LcgID5
:
1
;
uint8_t
LcgID5
:
1
;
uint8_t
LcgID6
:
1
;
uint8_t
LcgID6
:
1
;
uint8_t
LcgID7
:
1
;
uint8_t
LcgID7
:
1
;
}
__attribute__
((
__packed__
))
NR_BSR_LONG
;
}
__attribute__
((
__packed__
))
NR_BSR_LONG
;
typedef
NR_BSR_LONG
NR_BSR_LONG_TRUNCATED
;
typedef
NR_BSR_LONG
NR_BSR_LONG_TRUNCATED
;
// 38.321 ch. 6.1.3.4
// 38.321 ch. 6.1.3.4
typedef
struct
{
typedef
struct
{
uint8_t
TA_COMMAND
:
6
;
// octet 1 [5:0]
uint8_t
TA_COMMAND
:
6
;
// octet 1 [5:0]
uint8_t
TAGID
:
2
;
// octet 1 [7:6]
uint8_t
TAGID
:
2
;
// octet 1 [7:6]
}
__attribute__
((
__packed__
))
NR_MAC_CE_TA
;
}
__attribute__
((
__packed__
))
NR_MAC_CE_TA
;
// single Entry PHR MAC CE
// single Entry PHR MAC CE
// TS 38.321 ch. 6.1.3.8
// TS 38.321 ch. 6.1.3.8
typedef
struct
{
typedef
struct
{
uint8_t
PH
:
6
;
uint8_t
PH
:
6
;
uint8_t
R1
:
2
;
uint8_t
R1
:
2
;
uint8_t
PCMAX
:
6
;
uint8_t
PCMAX
:
6
;
uint8_t
R2
:
6
;
uint8_t
R2
:
6
;
}
__attribute__
((
__packed__
))
NR_SINGLE_ENTRY_PHR_MAC_CE
;
}
__attribute__
((
__packed__
))
NR_SINGLE_ENTRY_PHR_MAC_CE
;
#ifdef GES_SUPPORT
// SP ZP CSI-RS Resource Set Activation/Deactivation MAC CE
// SP ZP CSI-RS Resource Set Activation/Deactivation MAC CE
// 38.321 ch. 6.1.3.19
// 38.321 ch. 6.1.3.19
typedef
struct
{
typedef
struct
{
uint8_t
BWPID
:
2
;
// octet 1 [1:0]
uint8_t
BWPID
:
2
;
// octet 1 [1:0]
uint8_t
CELLID
:
5
;
// octet 1 [6:2]
uint8_t
CELLID
:
5
;
// octet 1 [6:2]
uint8_t
A_D
:
1
;
// octet 1 [7]
uint8_t
A_D
:
1
;
// octet 1 [7]
uint8_t
CSIRS_RSC_ID
:
4
;
// octet 2 [3:0]
uint8_t
CSIRS_RSC_ID
:
4
;
// octet 2 [3:0]
uint8_t
R
:
4
// octet 2 [7:4]
uint8_t
R
:
4
;
// octet 2 [7:4]
}
__attribute__
((
__packed__
))
NR_MAC_CE_SP_ZP_CSI_RS_RES_SET
;
}
__attribute__
((
__packed__
))
NR_MAC_CE_SP_ZP_CSI_RS_RES_SET
;
//TS 38.321 Sec 6.1.3.15, TCI State indicaton for UE-Specific PDCCH MAC CE
//TS 38.321 Sec 6.1.3.15, TCI State indicaton for UE-Specific PDCCH MAC CE
typedef
struct
{
typedef
struct
{
uint8_t
CoresetId1
:
3
;
//Octect 1 [2:0]
uint8_t
CoresetId1
:
3
;
//Octect 1 [2:0]
uint8_t
ServingCellId
:
5
;
//Octect 1 [7:3]
uint8_t
ServingCellId
:
5
;
//Octect 1 [7:3]
uint8_t
TciStateId
:
7
;
//Octect 2 [6:0]
uint8_t
TciStateId
:
7
;
//Octect 2 [6:0]
uint8_t
CoresetId2
:
1
;
//Octect 2 [7]
uint8_t
CoresetId2
:
1
;
//Octect 2 [7]
}
__attribute__
((
__packed__
))
NR_TCI_PDCCH
;
}
__attribute__
((
__packed__
))
NR_TCI_PDCCH
;
//TS 38.321 Sec 6.1.3.14, TCI State activation/deactivation for UE Specific PDSCH MAC CE
//TS 38.321 Sec 6.1.3.14, TCI State activation/deactivation for UE Specific PDSCH MAC CE
typedef
struct
{
typedef
struct
{
uint8_t
BWP_Id
:
2
;
//Octect 1 [1:0]
uint8_t
BWP_Id
:
2
;
//Octect 1 [1:0]
uint8_t
ServingCellId
:
5
;
//Octect 1 [6:2]
uint8_t
ServingCellId
:
5
;
//Octect 1 [6:2]
uint8_t
R
:
1
;
//Octect 1 [7]
uint8_t
R
:
1
;
//Octect 1 [7]
uint8_t
T
[];
//Octects 2 to MAX TCI States/8
uint8_t
T
[];
//Octects 2 to MAX TCI States/8
}
__attribute__
((
__packed__
))
NR_TCI_PDSCH_APERIODIC_CSI
;
}
__attribute__
((
__packed__
))
NR_TCI_PDSCH_APERIODIC_CSI
;
//TS 6.1.3.16, SP CSI reporting on PUCCH Activation/Deactivation MAC CE
//TS 6.1.3.16, SP CSI reporting on PUCCH Activation/Deactivation MAC CE
typedef
struct
{
typedef
struct
{
uint8_t
BWP_Id
:
2
;
//Octect 1 [1:0]
uint8_t
BWP_Id
:
2
;
//Octect 1 [1:0]
uint8_t
ServingCellId
:
5
;
//Octect 1 [6:2]
uint8_t
ServingCellId
:
5
;
//Octect 1 [6:2]
uint8_t
R1
:
1
;
//Octect 1 [7]
uint8_t
R1
:
1
;
//Octect 1 [7]
uint8_t
S0
:
1
;
//Octect 2 [0]
uint8_t
S0
:
1
;
//Octect 2 [0]
uint8_t
S1
:
1
;
//Octect 2 [1]
uint8_t
S1
:
1
;
//Octect 2 [1]
uint8_t
S2
:
1
;
//Octect 2 [2]
uint8_t
S2
:
1
;
//Octect 2 [2]
uint8_t
S3
:
1
;
//Octect 2 [3]
uint8_t
S3
:
1
;
//Octect 2 [3]
uint8_t
R2
:
4
;
//Octect 2 [7:4]
uint8_t
R2
:
4
;
//Octect 2 [7:4]
}
__attribute__
((
__packed__
))
NR_PUCCH_CSI_REPORTING
;
}
__attribute__
((
__packed__
))
NR_PUCCH_CSI_REPORTING
;
//TS 38.321 sec 6.1.3.12
//TS 38.321 sec 6.1.3.12
//SP CSI-RS / CSI-IM Resource Set Activation/Deactivation MAC CE
//SP CSI-RS / CSI-IM Resource Set Activation/Deactivation MAC CE
typedef
struct
{
typedef
struct
{
uint8_t
BWP_ID
:
2
;
uint8_t
BWP_ID
:
2
;
uint8_t
SCID
:
5
;
uint8_t
SCID
:
5
;
uint8_t
A_D
:
1
;
uint8_t
A_D
:
1
;
uint8_t
SP_CSI_RSID
:
6
;
uint8_t
SP_CSI_RSID
:
6
;
uint8_t
IM
:
1
;
uint8_t
IM
:
1
;
uint8_t
R1
:
1
;
uint8_t
R1
:
1
;
uint8_t
SP_CSI_IMID
:
6
;
uint8_t
SP_CSI_IMID
:
6
;
uint8_t
R2
:
2
;
uint8_t
R2
:
2
;
struct
TCI_S
{
struct
TCI_S
{
uint8_t
TCI_STATE_ID
:
6
;
uint8_t
TCI_STATE_ID
:
6
;
uint8_t
R
:
2
;
uint8_t
R
:
2
;
}
__attribute__
((
__packed__
))
TCI_STATE
;
}
__attribute__
((
__packed__
))
TCI_STATE
;
}
__attribute__
((
__packed__
))
CSI_RS_CSI_IM_ACT_DEACT_MAC_CE
;
}
__attribute__
((
__packed__
))
CSI_RS_CSI_IM_ACT_DEACT_MAC_CE
;
#endif
//* RAR MAC subheader // TS 38.321 ch. 6.1.5, 6.2.2 *//
//* RAR MAC subheader // TS 38.321 ch. 6.1.5, 6.2.2 *//
// - E: The Extension field is a flag indicating if the MAC subPDU including this MAC subheader is the last MAC subPDU or not in the MAC PDU
// - E: The Extension field is a flag indicating if the MAC subPDU including this MAC subheader is the last MAC subPDU or not in the MAC PDU
...
@@ -206,30 +204,30 @@ typedef struct {
...
@@ -206,30 +204,30 @@ typedef struct {
/*!\brief RAR MAC subheader with RAPID */
/*!\brief RAR MAC subheader with RAPID */
typedef
struct
{
typedef
struct
{
uint8_t
RAPID
:
6
;
uint8_t
RAPID
:
6
;
uint8_t
T
:
1
;
uint8_t
T
:
1
;
uint8_t
E
:
1
;
uint8_t
E
:
1
;
}
__attribute__
((
__packed__
))
NR_RA_HEADER_RAPID
;
}
__attribute__
((
__packed__
))
NR_RA_HEADER_RAPID
;
/*!\brief RAR MAC subheader with Backoff Indicator */
/*!\brief RAR MAC subheader with Backoff Indicator */
typedef
struct
{
typedef
struct
{
uint8_t
BI
:
4
;
uint8_t
BI
:
4
;
uint8_t
R
:
2
;
uint8_t
R
:
2
;
uint8_t
T
:
1
;
uint8_t
T
:
1
;
uint8_t
E
:
1
;
uint8_t
E
:
1
;
}
__attribute__
((
__packed__
))
NR_RA_HEADER_BI
;
}
__attribute__
((
__packed__
))
NR_RA_HEADER_BI
;
// TS 38.321 ch. 6.2.3
// TS 38.321 ch. 6.2.3
typedef
struct
{
typedef
struct
{
uint8_t
TA1
:
7
;
// octet 1 [6:0]
uint8_t
TA1
:
7
;
// octet 1 [6:0]
uint8_t
R
:
1
;
// octet 1 [7]
uint8_t
R
:
1
;
// octet 1 [7]
uint8_t
UL_GRANT_1
:
3
;
// octet 2 [2:0]
uint8_t
UL_GRANT_1
:
3
;
// octet 2 [2:0]
uint8_t
TA2
:
5
;
// octet 2 [7:3]
uint8_t
TA2
:
5
;
// octet 2 [7:3]
uint8_t
UL_GRANT_2
:
8
;
// octet 3 [7:0]
uint8_t
UL_GRANT_2
:
8
;
// octet 3 [7:0]
uint8_t
UL_GRANT_3
:
8
;
// octet 4 [7:0]
uint8_t
UL_GRANT_3
:
8
;
// octet 4 [7:0]
uint8_t
UL_GRANT_4
:
8
;
// octet 5 [7:0]
uint8_t
UL_GRANT_4
:
8
;
// octet 5 [7:0]
uint8_t
TCRNTI_1
:
8
;
// octet 6 [7:0]
uint8_t
TCRNTI_1
:
8
;
// octet 6 [7:0]
uint8_t
TCRNTI_2
:
8
;
// octet 7 [7:0]
uint8_t
TCRNTI_2
:
8
;
// octet 7 [7:0]
}
__attribute__
((
__packed__
))
NR_MAC_RAR
;
}
__attribute__
((
__packed__
))
NR_MAC_RAR
;
// 38.321 ch6.2.1, 38.331
// 38.321 ch6.2.1, 38.331
...
@@ -273,9 +271,9 @@ typedef struct {
...
@@ -273,9 +271,9 @@ typedef struct {
#define UL_SCH_LCID_L_BSR 0x3E
#define UL_SCH_LCID_L_BSR 0x3E
#define UL_SCH_LCID_PADDING 0x3F
#define UL_SCH_LCID_PADDING 0x3F
#define NR_MAX_NUM_LCID
32
#define NR_MAX_NUM_LCID
32
#define NR_MAX_NUM_LCGID
8
#define NR_MAX_NUM_LCGID
8
#define MAX_RLC_SDU_SUBHEADER_SIZE
3
#define MAX_RLC_SDU_SUBHEADER_SIZE
3
#endif
/*__LAYER2_MAC_H__ */
#endif
/*__LAYER2_MAC_H__ */
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
e08878ed
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
View file @
e08878ed
This diff is collapsed.
Click to expand it.
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