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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG
OpenXG-RAN
Commits
aecc695d
Commit
aecc695d
authored
Apr 26, 2024
by
Jaroslava Fiedlerova
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/GPS_time_stamp_sync' into integration_2024_w17
parents
55c91e72
1924b3c7
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
10 additions
and
10 deletions
+10
-10
executables/nr-gnb.c
executables/nr-gnb.c
+5
-5
executables/nr-ru.c
executables/nr-ru.c
+3
-3
executables/rt_profiling.h
executables/rt_profiling.h
+2
-2
No files found.
executables/nr-gnb.c
View file @
aecc695d
...
...
@@ -115,10 +115,10 @@ static void tx_func(void *param)
int
slot_tx
=
info
->
slot
;
int
frame_rx
=
info
->
frame_rx
;
int
slot_rx
=
info
->
slot_rx
;
int
absslot_tx
=
info
->
timestamp_tx
/
info
->
gNB
->
frame_parms
.
get_samples_per_slot
(
slot_tx
,
&
info
->
gNB
->
frame_parms
);
int
absslot_rx
=
absslot_tx
-
info
->
gNB
->
RU_list
[
0
]
->
sl_ahead
;
int
64_t
absslot_tx
=
info
->
timestamp_tx
/
info
->
gNB
->
frame_parms
.
get_samples_per_slot
(
slot_tx
,
&
info
->
gNB
->
frame_parms
);
int
64_t
absslot_rx
=
absslot_tx
-
info
->
gNB
->
RU_list
[
0
]
->
sl_ahead
;
if
(
absslot_rx
<
0
)
{
LOG_W
(
NR_PHY
,
"Slot ahead %d is larger than absslot_tx %d. Cannot start TX yet.
\n
"
,
info
->
gNB
->
RU_list
[
0
]
->
sl_ahead
,
absslot_tx
);
LOG_W
(
NR_PHY
,
"Slot ahead %d is larger than absslot_tx %
l
d. Cannot start TX yet.
\n
"
,
info
->
gNB
->
RU_list
[
0
]
->
sl_ahead
,
absslot_tx
);
return
;
}
LOG_D
(
NR_PHY
,
"%d.%d running tx_func
\n
"
,
frame_tx
,
slot_tx
);
...
...
@@ -218,8 +218,8 @@ void rx_func(void *param)
for
(;
i
<
gNB
->
frame_parms
.
slots_per_subframe
/
2
;
i
++
)
cumul_samples
+=
gNB
->
frame_parms
.
get_samples_per_slot
(
i
,
&
gNB
->
frame_parms
);
int
samples
=
cumul_samples
/
i
;
int
absslot_tx
=
info
->
timestamp_tx
/
samples
;
int
absslot_rx
=
absslot_tx
-
gNB
->
RU_list
[
0
]
->
sl_ahead
;
int
64_t
absslot_tx
=
info
->
timestamp_tx
/
samples
;
int
64_t
absslot_rx
=
absslot_tx
-
gNB
->
RU_list
[
0
]
->
sl_ahead
;
int
rt_prof_idx
=
absslot_rx
%
RT_PROF_DEPTH
;
clock_gettime
(
CLOCK_MONOTONIC
,
&
info
->
gNB
->
rt_L1_profiling
.
start_L1_RX
[
rt_prof_idx
]);
start_meas
(
&
softmodem_stats_rxtx_sf
);
...
...
executables/nr-ru.c
View file @
aecc695d
...
...
@@ -1108,8 +1108,8 @@ void ru_tx_func(void *param) {
for
(;
i
<
fp
->
slots_per_subframe
/
2
;
i
++
)
cumul_samples
+=
fp
->
get_samples_per_slot
(
i
,
fp
);
int
samples
=
cumul_samples
/
i
;
int
absslot_tx
=
info
->
timestamp_tx
/
samples
;
int
absslot_rx
=
absslot_tx
-
ru
->
sl_ahead
;
int
64_t
absslot_tx
=
info
->
timestamp_tx
/
samples
;
int
64_t
absslot_rx
=
absslot_tx
-
ru
->
sl_ahead
;
int
rt_prof_idx
=
absslot_rx
%
RT_PROF_DEPTH
;
clock_gettime
(
CLOCK_MONOTONIC
,
&
ru
->
rt_ru_profiling
.
start_RU_TX
[
rt_prof_idx
]);
// do TX front-end processing if needed (precoding and/or IDFTs)
...
...
@@ -1335,7 +1335,7 @@ void *ru_thread( void *param ) {
proc
->
timestamp_tx
+=
fp
->
get_samples_per_slot
(
i
%
fp
->
slots_per_frame
,
fp
);
proc
->
tti_tx
=
(
proc
->
tti_rx
+
ru
->
sl_ahead
)
%
fp
->
slots_per_frame
;
proc
->
frame_tx
=
proc
->
tti_rx
>
proc
->
tti_tx
?
(
proc
->
frame_rx
+
1
)
&
1023
:
proc
->
frame_rx
;
int
absslot_rx
=
proc
->
timestamp_rx
/
fp
->
get_samples_per_slot
(
proc
->
tti_rx
,
fp
);
int
64_t
absslot_rx
=
proc
->
timestamp_rx
/
fp
->
get_samples_per_slot
(
proc
->
tti_rx
,
fp
);
int
rt_prof_idx
=
absslot_rx
%
RT_PROF_DEPTH
;
clock_gettime
(
CLOCK_MONOTONIC
,
&
ru
->
rt_ru_profiling
.
return_RU_south_in
[
rt_prof_idx
]);
LOG_D
(
PHY
,
"AFTER fh_south_in - SFN/SL:%d%d RU->proc[RX:%d.%d TX:%d.%d] RC.gNB[0]:[RX:%d%d TX(SFN):%d]
\n
"
,
...
...
executables/rt_profiling.h
View file @
aecc695d
...
...
@@ -40,7 +40,7 @@ extern "C"
// depth of trace in slots
#define RT_PROF_DEPTH 100
typedef
struct
{
int
absslot_rx
[
RT_PROF_DEPTH
];
int
64_t
absslot_rx
[
RT_PROF_DEPTH
];
struct
timespec
return_RU_south_in
[
RT_PROF_DEPTH
];
struct
timespec
return_RU_feprx
[
RT_PROF_DEPTH
];
struct
timespec
return_RU_prachrx
[
RT_PROF_DEPTH
];
...
...
@@ -50,7 +50,7 @@ typedef struct {
}
rt_ru_profiling_t
;
typedef
struct
{
int
absslot_ux
[
RT_PROF_DEPTH
];
int
64_t
absslot_ux
[
RT_PROF_DEPTH
];
struct
timespec
start_L1_RX
[
RT_PROF_DEPTH
];
struct
timespec
return_L1_RX
[
RT_PROF_DEPTH
];
struct
timespec
start_L1_TX
[
RT_PROF_DEPTH
];
...
...
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