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
lizhongxiao
OpenXG-RAN
Commits
93ac6bd4
Commit
93ac6bd4
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
bb7a7888
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 @
93ac6bd4
...
...
@@ -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 @
93ac6bd4
...
...
@@ -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 @
93ac6bd4
...
...
@@ -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 @
93ac6bd4
...
...
@@ -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 @
93ac6bd4
...
...
@@ -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 @
93ac6bd4
...
...
@@ -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 @
93ac6bd4
...
...
@@ -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 @
93ac6bd4
...
...
@@ -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 @
93ac6bd4
...
...
@@ -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 @
93ac6bd4
...
...
@@ -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