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
ad3a2d32
Commit
ad3a2d32
authored
Feb 06, 2020
by
matzakos
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
nr-ip-UL-nos1: Substitute LTE macros in new NR functions and data structures + logs cleanup
parent
b55e25df
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
27 additions
and
138 deletions
+27
-138
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
+2
-2
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
+1
-1
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+1
-1
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
+3
-0
openair2/LAYER2/NR_MAC_UE/mac.h
openair2/LAYER2/NR_MAC_UE/mac.h
+0
-61
openair2/LAYER2/NR_MAC_UE/mac_defs.h
openair2/LAYER2/NR_MAC_UE/mac_defs.h
+9
-28
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+6
-5
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
+3
-38
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
+1
-1
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
+1
-1
No files found.
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
View file @
ad3a2d32
...
...
@@ -192,7 +192,7 @@ uint8_t nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
//Use zeros for the header bytes in noS1 mode, in order to make sure that the LCID is not valid
//and block this traffic from being forwarded to the upper layers at the gNB
uint16_t
payload_offset
=
5
;
LOG_
E
(
PHY
,
"Random data to be tranmsitted:
\n
"
);
LOG_
D
(
PHY
,
"Random data to be tranmsitted:
\n
"
);
//Give the header bytes some dummy value in order to block the random packet at the MAC layer of the receiver
for
(
i
=
0
;
i
<
payload_offset
;
i
++
)
harq_process_ul_ue
->
a
[
i
]
=
0
;
...
...
@@ -426,7 +426,7 @@ uint8_t nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
///////////
////////////////////////////////////////////////////////////////////////
LOG_
I
(
PHY
,
"Is data existing ?: %d
\n
"
,
data_existing
);
LOG_
D
(
PHY
,
"Is data existing ?: %d
\n
"
,
data_existing
);
return
data_existing
;
}
...
...
openair1/SCHED_NR/phy_procedures_nr_gNB.c
View file @
ad3a2d32
...
...
@@ -288,7 +288,7 @@ void nr_ulsch_procedures(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx, int UE_id
LOG_I
(
PHY
,
"ULSCH in error
\n
"
);
//gNB->ulsch[UE_id+1][0]->harq_processes[harq_pid]->b
else
if
(
gNB
->
ulsch
[
UE_id
][
0
]
->
harq_processes
[
harq_pid
]
->
b
!=
NULL
){
LOG_
D
(
PHY
,
"ULSCH received ok
\n
"
);
LOG_
I
(
PHY
,
"ULSCH received ok
\n
"
);
if
(
IS_SOFTMODEM_NOS1
){
//&& gNB->ulsch[UE_id][0]->rnti == 0x1234
nr_fill_crc_indication
(
gNB
,
UE_id
,
frame_rx
,
slot_rx
,
0
);
nr_fill_rx_indication
(
gNB
,
frame_rx
,
slot_rx
,
UE_id
,
harq_pid
);
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
ad3a2d32
...
...
@@ -2502,7 +2502,7 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue,
} // UE_mode==PUSCH
*/
LOG_
I
(
PHY
,
"Sending data
\n
"
);
LOG_
D
(
PHY
,
"Sending data
\n
"
);
nr_ue_pusch_common_procedures
(
ue
,
harq_pid
,
slot_tx
,
...
...
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
View file @
ad3a2d32
...
...
@@ -133,6 +133,9 @@ typedef struct {
#define UL_SCH_LCID_L_BSR 0x3E
#define UL_SCH_LCID_PADDING 0x3F
#define NR_MAX_NUM_LCID 32
#define NR_MAX_NUM_LCGID 8
#endif
/*__LAYER2_MAC_H__ */
openair2/LAYER2/NR_MAC_UE/mac.h
View file @
ad3a2d32
...
...
@@ -49,65 +49,4 @@ typedef enum {
UE_PHY_HO_PRACH
}
NR_UE_L2_STATE_t
;
typedef
struct
{
uint8_t
LCID
:
6
;
// octet 1 [5:0]
uint8_t
F
:
1
;
// octet 1 [6]
uint8_t
R
:
1
;
// octet 1 [7]
uint8_t
L
:
8
;
// octet 2 [7:0]
}
__attribute__
((
__packed__
))
NR_MAC_SUBHEADER_SHORT
;
typedef
struct
{
uint8_t
LCID
:
6
;
// octet 1 [5:0]
uint8_t
F
:
1
;
// octet 1 [6]
uint8_t
R
:
1
;
// octet 1 [7]
uint8_t
L1
:
8
;
// octet 2 [7:0]
uint8_t
L2
:
8
;
// octet 3 [7:0]
}
__attribute__
((
__packed__
))
NR_MAC_SUBHEADER_LONG
;
typedef
struct
{
uint8_t
LCID
:
6
;
// octet 1 [5:0]
uint8_t
R
:
2
;
// octet 1 [7:6]
}
__attribute__
((
__packed__
))
NR_MAC_SUBHEADER_FIXED
;
// 38.321 ch6.2.1, 38.331
#define DL_SCH_LCID_CCCH 0x00
#define DL_SCH_LCID_SRB1 0x01
#define DL_SCH_LCID_SRB2 0x02
#define DL_SCH_LCID_SRB3 0x03
#define DL_SCH_LCID_RECOMMENDED_BITRATE 0x2F
#define DL_SCH_LCID_SP_ZP_CSI_RS_RES_SET_ACT 0x30
#define DL_SCH_LCID_PUCCH_SPATIAL_RELATION_ACT 0x31
#define DL_SCH_LCID_SP_SRS_ACTIVATION 0x32
#define DL_SCH_LCID_SP_CSI_REP_PUCCH_ACT 0x33
#define DL_SCH_LCID_TCI_STATE_IND_UE_SPEC_PDCCH 0x34
#define DL_SCH_LCID_TCI_STATE_ACT_UE_SPEC_PDSCH 0x35
#define DL_SCH_LCID_APERIODIC_CSI_TRI_STATE_SUBSEL 0x36
#define DL_SCH_LCID_SP_CSI_RS_CSI_IM_RES_SET_ACT 0X37
#define DL_SCH_LCID_DUPLICATION_ACT 0X38
#define DL_SCH_LCID_SCell_ACT_4_OCT 0X39
#define DL_SCH_LCID_SCell_ACT_1_OCT 0X3A
#define DL_SCH_LCID_L_DRX 0x3B
#define DL_SCH_LCID_DRX 0x3C
#define DL_SCH_LCID_TA_COMMAND 0x3D
#define DL_SCH_LCID_CON_RES_ID 0x3E
#define DL_SCH_LCID_PADDING 0x3F
#define UL_SCH_LCID_CCCH 0x00
#define UL_SCH_LCID_SRB1 0x01
#define UL_SCH_LCID_SRB2 0x02
#define UL_SCH_LCID_SRB3 0x03
#define UL_SCH_LCID_CCCH_MSG3 0x21
#define UL_SCH_LCID_RECOMMENDED_BITRATE_QUERY 0x35
#define UL_SCH_LCID_MULTI_ENTRY_PHR_4_OCT 0x36
#define UL_SCH_LCID_CONFIGURED_GRANT_CONFIRMATION 0x37
#define UL_SCH_LCID_MULTI_ENTRY_PHR_1_OCT 0x38
#define UL_SCH_LCID_SINGLE_ENTRY_PHR 0x39
#define UL_SCH_LCID_C_RNTI 0x3A
#define UL_SCH_LCID_S_TRUNCATED_BSR 0x3B
#define UL_SCH_LCID_L_TRUNCATED_BSR 0x3C
#define UL_SCH_LCID_S_BSR 0x3D
#define UL_SCH_LCID_L_BSR 0x3E
#define UL_SCH_LCID_PADDING 0x3F
#endif
/*__LAYER2_MAC_DEFS_H__ */
openair2/LAYER2/NR_MAC_UE/mac_defs.h
View file @
ad3a2d32
...
...
@@ -51,12 +51,11 @@
#include "fapi_nr_ue_interface.h"
#include "NR_IF_Module.h"
#include "PHY/defs_nr_common.h"
#include "openair2/LAYER2/NR_MAC_COMMON/nr_mac.h"
#define NB_NR_UE_MAC_INST 1
/*!\brief Maximum number of logical channl group IDs */
#define MAX_NUM_LCGID 4
/*!\brief Maximum number of logical chanels */
#define MAX_NUM_LCID 11
/*!\brief value for indicating BSR Timer is not running */
#define NR_MAC_UE_BSR_TIMER_NOT_RUNNING (0xFFFF)
...
...
@@ -67,42 +66,24 @@ typedef enum {
SFN_C_IMPOSSIBLE
}
SFN_C_TYPE
;
#define UL_SCH_LCID_CCCH 0x00
#define UL_SCH_LCID_SRB1 0x01
#define UL_SCH_LCID_SRB2 0x02
#define UL_SCH_LCID_DTCH 0x03
#define UL_SCH_LCID_SRB3 0x04
#define UL_SCH_LCID_CCCH_MSG3 0x21
#define UL_SCH_LCID_RECOMMENDED_BITRATE_QUERY 0x35
#define UL_SCH_LCID_MULTI_ENTRY_PHR_4_OCT 0x36
#define UL_SCH_LCID_CONFIGURED_GRANT_CONFIRMATION 0x37
#define UL_SCH_LCID_MULTI_ENTRY_PHR_1_OCT 0x38
#define UL_SCH_LCID_SINGLE_ENTRY_PHR 0x39
#define UL_SCH_LCID_C_RNTI 0x3A
#define UL_SCH_LCID_S_TRUNCATED_BSR 0x3B
#define UL_SCH_LCID_L_TRUNCATED_BSR 0x3C
#define UL_SCH_LCID_S_BSR 0x3D
#define UL_SCH_LCID_L_BSR 0x3E
#define UL_SCH_LCID_PADDING 0x3F
// LTE structure, might need to be adapted for NR
typedef
struct
{
/// buffer status for each lcgid
uint8_t
BSR
[
MAX_NUM_LCGID
];
// should be more for mesh topology
uint8_t
BSR
[
NR_
MAX_NUM_LCGID
];
// should be more for mesh topology
/// keep the number of bytes in rlc buffer for each lcgid
int32_t
BSR_bytes
[
MAX_NUM_LCGID
];
int32_t
BSR_bytes
[
NR_
MAX_NUM_LCGID
];
/// after multiplexing buffer remain for each lcid
int32_t
LCID_buffer_remain
[
MAX_NUM_LCID
];
int32_t
LCID_buffer_remain
[
NR_
MAX_NUM_LCID
];
/// sum of all lcid buffer size
uint16_t
All_lcid_buffer_size_lastTTI
;
/// buffer status for each lcid
uint8_t
LCID_status
[
MAX_NUM_LCID
];
uint8_t
LCID_status
[
NR_
MAX_NUM_LCID
];
/// SR pending as defined in 36.321
uint8_t
SR_pending
;
/// SR_COUNTER as defined in 36.321
uint16_t
SR_COUNTER
;
/// logical channel group ide for each LCID
uint8_t
LCGID
[
MAX_NUM_LCID
];
uint8_t
LCGID
[
NR_
MAX_NUM_LCID
];
/// retxBSR-Timer, default value is sf2560
uint16_t
retxBSR_Timer
;
/// retxBSR_SF, number of subframe before triggering a regular BSR
...
...
@@ -142,9 +123,9 @@ typedef struct {
uint16_t
extendedPHR_r10
;
//Bj bucket usage per lcid
int16_t
Bj
[
MAX_NUM_LCID
];
int16_t
Bj
[
NR_
MAX_NUM_LCID
];
// Bucket size per lcid
int16_t
bucket_size
[
MAX_NUM_LCID
];
int16_t
bucket_size
[
NR_
MAX_NUM_LCID
];
}
NR_UE_SCHEDULING_INFO
;
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
ad3a2d32
...
...
@@ -36,9 +36,10 @@
#include "assertions.h"
#include "PHY/defs_nr_UE.h"
#include "common/utils/LOG/log.h"
#include "openair2/LAYER2/MAC/mac.h"
#include "openair2/LAYER2/RLC/rlc.h"
//
#include "openair2/LAYER2/MAC/mac.h"
//
#include "openair2/LAYER2/RLC/rlc.h"
#include "SIMULATION/TOOLS/sim.h" // for taus
#include "openair2/LAYER2/NR_MAC_COMMON/nr_mac.h"
#include <stdio.h>
#include <math.h>
...
...
@@ -2184,7 +2185,7 @@ void nr_ue_process_mac_pdu(
break
;
// MAC SDU
case
DL_SCH_LCID_
SRB1
:
case
DL_SCH_LCID_
DCCH
:
// check if LCID is valid at current time.
case
UL_SCH_LCID_SRB2
:
// check if LCID is valid at current time.
...
...
@@ -2506,8 +2507,8 @@ nr_ue_get_sdu(module_id_t module_idP, int CC_id, frame_t frameP,
// Check for DCCH first
// TO DO: Multiplex in the order defined by the logical channel prioritization
for
(
lcid
=
DCCH
;
lcid
<
MAX_NUM_LCID
;
lcid
++
)
{
for
(
lcid
=
UL_SCH_LCID_SRB1
;
lcid
<
NR_
MAX_NUM_LCID
;
lcid
++
)
{
lcid_buffer_occupancy_old
=
//TODO: Replace static value with CRNTI
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
View file @
ad3a2d32
...
...
@@ -565,9 +565,6 @@ void nr_process_mac_pdu(
int
pdu_len
=
mac_pdu_len
;
uint16_t
mac_ce_len
,
mac_subheader_len
,
mac_sdu_len
;
rx_lcid
=
((
NR_MAC_SUBHEADER_FIXED
*
)
pdu_ptr
)
->
LCID
;
LOG_I
(
MAC
,
"LCID received at gNB side: %d
\n
"
,
rx_lcid
);
// For both DL/UL-SCH
// Except:
...
...
@@ -600,7 +597,7 @@ void nr_process_mac_pdu(
mac_sdu_len
=
0
;
rx_lcid
=
((
NR_MAC_SUBHEADER_FIXED
*
)
pdu_ptr
)
->
LCID
;
LOG_
I
(
MAC
,
"LCID received at gNB side: %d
\n
"
,
rx_lcid
);
LOG_
D
(
MAC
,
"LCID received at gNB side: %d
\n
"
,
rx_lcid
);
switch
(
rx_lcid
){
// MAC CE
...
...
@@ -681,49 +678,17 @@ void nr_rx_sdu(module_id_t module_idP,
const
uint8_t
ul_cqi
)
{
LOG_
I
(
MAC
,
"Handling PDU frame %d slot %d pdu_len: %d
\n
"
,
frameP
,
ttiP
,
pdu_len
);
LOG_
D
(
MAC
,
"Handling PDU frame %d slot %d pdu_len: %d
\n
"
,
frameP
,
ttiP
,
pdu_len
);
uint8_t
*
pduP
=
pdu
;
/*if (opt_enabled) {
trace_pdu(DIRECTION_DOWNLINK, pduP, pdu_len, module_idP, WS_C_RNTI,
UE_mac_inst[module_idP].cs_RNTI, frameP, ttiP, 0, 0); //subframeP
LOG_D(OPT, "[UE %d][DLSCH] Frame %d trace pdu for rnti %x with size %d\n",
module_idP, frameP, UE_mac_inst[module_idP].cs_RNTI, pdu_len);
}*/
/*
#ifdef DEBUG_HEADER_PARSING
LOG_D(MAC, "[UE %d] ue_send_sdu : Frame %d gNB_index %d : num_ce %d num_sdu %d\n",
module_idP, frameP, gNB_index, num_ce, num_sdu);
#endif
*/
/*
#if defined(ENABLE_MAC_PAYLOAD_DEBUG)
LOG_T(MAC, "[UE %d] First 32 bytes of DLSCH : \n", module_idP);
for (i = 0; i < 32; i++) {
LOG_T(MAC, "%x.", sdu[i]);
}
LOG_T(MAC, "\n");
#endif
*/
// Processing MAC PDU
// it parses MAC CEs subheaders, MAC CEs, SDU subheaderds and SDUs
if
(
pduP
!=
NULL
){
LOG_
I
(
MAC
,
"Received PDU at MAC gNB
\n
"
);
LOG_
D
(
MAC
,
"Received PDU at MAC gNB
\n
"
);
nr_process_mac_pdu
(
module_idP
,
CC_id
,
frameP
,
pduP
,
pdu_len
);
}
//VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SEND_SDU, VCD_FUNCTION_OUT);
/*
#if UE_TIMING_TRACE
stop_meas(&UE_mac_inst[module_idP].rx_dlsch_sdu);
#endif
*/
}
...
...
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
View file @
ad3a2d32
...
...
@@ -78,7 +78,7 @@ void mac_rlc_data_ind (
}
if
(
rb
!=
NULL
)
{
LOG_W
(
RLC
,
"RB found! (channel ID %d)
\n
"
,
channel_idP
);
LOG_D
(
RLC
,
"RB found! (channel ID %d)
\n
"
,
channel_idP
);
rb
->
set_time
(
rb
,
nr_rlc_current_time
);
rb
->
recv_pdu
(
rb
,
buffer_pP
,
tb_sizeP
);
}
else
{
...
...
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
View file @
ad3a2d32
...
...
@@ -192,7 +192,7 @@ void handle_nr_ulsch(NR_UL_IND_t *UL_info) {
UL_info
->
rx_ind
.
rx_indication_body
.
rx_pdu_list
[
i
].
rx_indication_rel8
.
timing_advance
,
UL_info
->
rx_ind
.
rx_indication_body
.
rx_pdu_list
[
i
].
rx_indication_rel8
.
ul_cqi
);
}
else
{
LOG_
I
(
MAC
,
"Frame %d, Slot %d Calling rx_sdu (CRC ok), received length: %d
\n
"
,
UL_info
->
frame
,
UL_info
->
slot
,
UL_info
->
rx_ind
.
rx_indication_body
.
rx_pdu_list
[
i
].
rx_indication_rel8
.
length
);
LOG_
D
(
MAC
,
"Frame %d, Slot %d Calling rx_sdu (CRC ok), received length: %d
\n
"
,
UL_info
->
frame
,
UL_info
->
slot
,
UL_info
->
rx_ind
.
rx_indication_body
.
rx_pdu_list
[
i
].
rx_indication_rel8
.
length
);
nr_rx_sdu
(
UL_info
->
module_id
,
UL_info
->
CC_id
,
NFAPI_SFNSF2SFN
(
UL_info
->
rx_ind
.
sfn_sf
),
//UL_info->frame,
...
...
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