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
spbro
OpenXG-RAN
Commits
021f97cf
Commit
021f97cf
authored
May 07, 2024
by
Thomas Schlichter
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
NR UE: increase DURATION_RX_TO_TX by cellSpecificKoffset_r17
parent
26175c54
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
32 additions
and
9 deletions
+32
-9
executables/nr-uesoftmodem.c
executables/nr-uesoftmodem.c
+6
-0
openair1/PHY/INIT/nr_parms.c
openair1/PHY/INIT/nr_parms.c
+3
-3
openair1/PHY/defs_nr_common.h
openair1/PHY/defs_nr_common.h
+1
-1
openair1/PHY/impl_defs_top.h
openair1/PHY/impl_defs_top.h
+16
-5
openair1/SIMULATION/NR_PHY/dlsim.c
openair1/SIMULATION/NR_PHY/dlsim.c
+3
-0
openair1/SIMULATION/NR_PHY/ulsim.c
openair1/SIMULATION/NR_PHY/ulsim.c
+3
-0
No files found.
executables/nr-uesoftmodem.c
View file @
021f97cf
...
...
@@ -159,6 +159,9 @@ int oaisim_flag = 0;
int
emulate_rf
=
0
;
uint32_t
N_RB_DL
=
106
;
// NTN cellSpecificKoffset-r17, but in slots for DL SCS
unsigned
int
NTN_UE_Koffset
=
0
;
/* see file openair2/LAYER2/MAC/main.c for why abstraction_flag is needed
* this is very hackish - find a proper solution
*/
...
...
@@ -591,6 +594,9 @@ int main(int argc, char **argv)
}
}
// NTN cellSpecificKoffset-r17, but in slots for DL SCS
NTN_UE_Koffset
=
nrUE_params
.
ntn_koffset
<<
PHY_vars_UE_g
[
0
][
0
]
->
frame_parms
.
numerology_index
;
init_openair0
();
lock_memory_to_ram
();
...
...
openair1/PHY/INIT/nr_parms.c
View file @
021f97cf
...
...
@@ -262,15 +262,15 @@ uint32_t get_slot_from_timestamp(openair0_timestamp timestamp_rx, const NR_DL_FR
return
slot_idx
;
}
uint32_t
get_samples_slot_timestamp
(
int
slot
,
const
NR_DL_FRAME_PARMS
*
fp
,
u
int8_
t
sl_ahead
)
uint32_t
get_samples_slot_timestamp
(
int
slot
,
const
NR_DL_FRAME_PARMS
*
fp
,
u
nsigned
in
t
sl_ahead
)
{
uint32_t
samp_count
=
0
;
if
(
!
sl_ahead
)
{
for
(
u
int8_
t
idx_slot
=
0
;
idx_slot
<
slot
;
idx_slot
++
)
for
(
u
nsigned
in
t
idx_slot
=
0
;
idx_slot
<
slot
;
idx_slot
++
)
samp_count
+=
fp
->
get_samples_per_slot
(
idx_slot
,
fp
);
}
else
{
for
(
u
int8_
t
idx_slot
=
slot
;
idx_slot
<
slot
+
sl_ahead
;
idx_slot
++
)
for
(
u
nsigned
in
t
idx_slot
=
slot
;
idx_slot
<
slot
+
sl_ahead
;
idx_slot
++
)
samp_count
+=
fp
->
get_samples_per_slot
(
idx_slot
,
fp
);
}
return
samp_count
;
...
...
openair1/PHY/defs_nr_common.h
View file @
021f97cf
...
...
@@ -135,7 +135,7 @@ typedef struct NR_DL_FRAME_PARMS NR_DL_FRAME_PARMS;
typedef
uint32_t
(
*
get_samples_per_slot_t
)(
int
slot
,
const
NR_DL_FRAME_PARMS
*
fp
);
typedef
uint32_t
(
*
get_slot_from_timestamp_t
)(
openair0_timestamp
timestamp_rx
,
const
NR_DL_FRAME_PARMS
*
fp
);
typedef
uint32_t
(
*
get_samples_slot_timestamp_t
)(
int
slot
,
const
NR_DL_FRAME_PARMS
*
fp
,
u
int8_
t
sl_ahead
);
typedef
uint32_t
(
*
get_samples_slot_timestamp_t
)(
int
slot
,
const
NR_DL_FRAME_PARMS
*
fp
,
u
nsigned
in
t
sl_ahead
);
struct
NR_DL_FRAME_PARMS
{
/// frequency range
...
...
openair1/PHY/impl_defs_top.h
View file @
021f97cf
...
...
@@ -268,13 +268,24 @@
#define TDD_CONFIG_NB_FRAMES (2)
#define NR_MAX_SLOTS_PER_FRAME (160)
/* number of slots per frame */
/* FFS_NR_TODO it defines ue capability which is the number of slots */
/* - between reception of pdsch and tarnsmission of its acknowlegment */
/* - between reception of un uplink grant and its related transmission */
// should be 2 as per NR standard, but current UE is not able to perform this value
/* FFS_NR_TODO it defines ue capability which is the number of slots */
/* - between reception of pdsch and transmission of its acknowlegment (k1) */
/* - between reception of un uplink grant and its related transmission (k2) */
#define NR_UE_CAPABILITY_SLOT_RX_TO_TX (3)
#define DURATION_RX_TO_TX (NR_UE_CAPABILITY_SLOT_RX_TO_TX)
/* When the OAI UE receives RX slot N, it starts sending TX slot N+DURATION_RX_TO_TX.
* Therefore DURATION_RX_TO_TX must not be larger than the minimum k1 and k2 values (NR_UE_CAPABILITY_SLOT_RX_TO_TX).
* In case of NTN, the propagation delay is so large, that the TX slot needs to be transmitted far in advance.
* Therefore, the NTN_UE_Koffset is added to DURATION_RX_TO_TX.
*
* Note: currently, the UE requires this to be a constant.
* But in case of NTN, Koffset is only known after receiving SIB19.
* Therefore, support should be added to allow changing DURATION_RX_TO_TX on reception of SIB19 (via FAPI-like interface).
* E.g. no transmission before successful reception of SIB19, and re-sync with disabled transmission if Koffset changes.
* When this has been implemented, the global variable NTN_UE_Koffset should be removed, too.
*/
extern
unsigned
int
NTN_UE_Koffset
;
#define DURATION_RX_TO_TX (NR_UE_CAPABILITY_SLOT_RX_TO_TX + NTN_UE_Koffset)
#define NR_MAX_ULSCH_HARQ_PROCESSES (NR_MAX_HARQ_PROCESSES)
/* cf 38.214 6.1 UE procedure for receiving the physical uplink shared channel */
#define NR_MAX_DLSCH_HARQ_PROCESSES (NR_MAX_HARQ_PROCESSES)
/* cf 38.214 5.1 UE procedure for receiving the physical downlink shared channel */
...
...
openair1/SIMULATION/NR_PHY/dlsim.c
View file @
021f97cf
...
...
@@ -95,6 +95,9 @@ nfapi_ue_release_request_body_t release_rntis;
instance_t
DUuniqInstance
=
0
;
instance_t
CUuniqInstance
=
0
;
// NTN cellSpecificKoffset-r17, but in slots for DL SCS
unsigned
int
NTN_UE_Koffset
=
0
;
void
nr_derive_key_ng_ran_star
(
uint16_t
pci
,
uint64_t
nr_arfcn_dl
,
const
uint8_t
key
[
32
],
uint8_t
*
key_ng_ran_star
)
{
}
...
...
openair1/SIMULATION/NR_PHY/ulsim.c
View file @
021f97cf
...
...
@@ -93,6 +93,9 @@ nfapi_ue_release_request_body_t release_rntis;
instance_t
DUuniqInstance
=
0
;
instance_t
CUuniqInstance
=
0
;
// NTN cellSpecificKoffset-r17, but in slots for DL SCS
unsigned
int
NTN_UE_Koffset
=
0
;
void
nr_derive_key_ng_ran_star
(
uint16_t
pci
,
uint64_t
nr_arfcn_dl
,
const
uint8_t
key
[
32
],
uint8_t
*
key_ng_ran_star
)
{
}
...
...
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