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
e1172a4e
Commit
e1172a4e
authored
Jun 18, 2020
by
Raphael Defosseux
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/rework-5G-scope' into develop_integration_2020_w25
parents
0174eb94
427b9794
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
668 additions
and
830 deletions
+668
-830
executables/nr-softmodem.c
executables/nr-softmodem.c
+3
-1
executables/nr-uesoftmodem.c
executables/nr-uesoftmodem.c
+3
-56
openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c
openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c
+3
-4
openair1/PHY/NR_REFSIG/scrambling_luts.c
openair1/PHY/NR_REFSIG/scrambling_luts.c
+2
-1
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
+1
-1
openair1/PHY/TOOLS/nr_phy_scope.c
openair1/PHY/TOOLS/nr_phy_scope.c
+645
-719
openair1/PHY/TOOLS/nr_phy_scope.h
openair1/PHY/TOOLS/nr_phy_scope.h
+3
-43
targets/ARCH/rfsimulator/simulator.c
targets/ARCH/rfsimulator/simulator.c
+8
-5
No files found.
executables/nr-softmodem.c
View file @
e1172a4e
...
@@ -963,7 +963,9 @@ if(!IS_SOFTMODEM_NOS1)
...
@@ -963,7 +963,9 @@ if(!IS_SOFTMODEM_NOS1)
scopeParms_t
p
;
scopeParms_t
p
;
p
.
argc
=&
argc
;
p
.
argc
=&
argc
;
p
.
argv
=
argv
;
p
.
argv
=
argv
;
startScope
(
&
p
);
p
.
gNB
=
RC
.
gNB
[
0
];
p
.
ru
=
RC
.
ru
[
0
];
gNBinitScope
(
&
p
);
}
}
if
(
nfapi_mode
!=
1
&&
nfapi_mode
!=
2
)
{
if
(
nfapi_mode
!=
1
&&
nfapi_mode
!=
2
)
{
...
...
executables/nr-uesoftmodem.c
View file @
e1172a4e
...
@@ -76,36 +76,11 @@ unsigned short config_frames[4] = {2,9,11,13};
...
@@ -76,36 +76,11 @@ unsigned short config_frames[4] = {2,9,11,13};
#include <openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.h>
#include <openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.h>
#include <openair1/SCHED_NR_UE/fapi_nr_ue_l1.h>
#include <openair1/SCHED_NR_UE/fapi_nr_ue_l1.h>
#include <forms.h>
/* Callbacks, globals and object handlers */
extern
void
reset_stats
(
FL_OBJECT
*
,
long
);
//extern void initTpool(char *params, tpool_t *pool, bool performanceMeas);
/* Forms and Objects */
typedef
struct
{
FL_FORM
*
stats_form
;
void
*
vdata
;
char
*
cdata
;
long
ldata
;
FL_OBJECT
*
stats_text
;
FL_OBJECT
*
stats_button
;
}
FD_stats_form
;
extern
FD_stats_form
*
create_form_stats_form
(
void
);
#include "PHY/TOOLS/nr_phy_scope.h"
//#include "stats.h"
//#include "stats.h"
// current status is that every UE has a DL scope for a SINGLE eNB (eNB_id=0)
// current status is that every UE has a DL scope for a SINGLE eNB (eNB_id=0)
#include "PHY/TOOLS/nr_phy_scope.h"
// at eNB 0, an UL scope for every UE
// at eNB 0, an UL scope for every UE
FD_phy_scope_nrue
*
form_nrue
[
NUMBER_OF_UE_MAX
];
//FD_lte_phy_scope_enb *form_enb[MAX_NUM_CCs][NUMBER_OF_UE_MAX];
//FD_lte_phy_scope_enb *form_enb[MAX_NUM_CCs][NUMBER_OF_UE_MAX];
//FD_stats_form *form_stats=NULL,*form_stats_l2=NULL;
char
title
[
255
];
static
pthread_t
forms_thread
;
//xforms
#include <executables/nr-uesoftmodem.h>
#include <executables/nr-uesoftmodem.h>
#include "executables/softmodem-common.h"
#include "executables/softmodem-common.h"
...
@@ -304,35 +279,6 @@ void reset_stats(FL_OBJECT *button, long arg) {
...
@@ -304,35 +279,6 @@ void reset_stats(FL_OBJECT *button, long arg) {
}*/
}*/
}
}
static
void
*
scope_thread
(
void
*
arg
)
{
sleep
(
5
);
while
(
!
oai_exit
)
{
phy_scope_nrUE
(
form_nrue
[
0
],
PHY_vars_UE_g
[
0
][
0
],
0
,
0
,
1
);
usleep
(
100
*
1000
);
}
pthread_exit
((
void
*
)
arg
);
}
void
init_scope
(
void
)
{
int
fl_argc
=
1
;
if
(
do_forms
==
1
)
{
char
*
name
=
"5G-UE-scope"
;
fl_initialize
(
&
fl_argc
,
&
name
,
NULL
,
0
,
0
);
int
UE_id
=
0
;
form_nrue
[
UE_id
]
=
create_phy_scope_nrue
();
sprintf
(
title
,
"NR DL SCOPE UE"
);
fl_show_form
(
form_nrue
[
UE_id
]
->
phy_scope_nrue
,
FL_PLACE_HOTSPOT
,
FL_FULLBORDER
,
title
);
threadCreate
(
&
forms_thread
,
scope_thread
,
NULL
,
"scope"
,
-
1
,
OAI_PRIORITY_RT_LOW
);
}
}
void
*
l2l1_task
(
void
*
arg
)
{
void
*
l2l1_task
(
void
*
arg
)
{
MessageDef
*
message_p
=
NULL
;
MessageDef
*
message_p
=
NULL
;
int
result
;
int
result
;
...
@@ -814,7 +760,8 @@ int main( int argc, char **argv ) {
...
@@ -814,7 +760,8 @@ int main( int argc, char **argv ) {
memset
(
&
UE_PF_PO
[
0
][
0
],
0
,
sizeof
(
UE_PF_PO_t
)
*
NUMBER_OF_UE_MAX
*
MAX_NUM_CCs
);
memset
(
&
UE_PF_PO
[
0
][
0
],
0
,
sizeof
(
UE_PF_PO_t
)
*
NUMBER_OF_UE_MAX
*
MAX_NUM_CCs
);
configure_linux
();
configure_linux
();
mlockall
(
MCL_CURRENT
|
MCL_FUTURE
);
mlockall
(
MCL_CURRENT
|
MCL_FUTURE
);
init_scope
();
if
(
do_forms
)
nrUEinitScope
(
PHY_vars_UE_g
[
0
][
0
]);
number_of_cards
=
1
;
number_of_cards
=
1
;
for
(
int
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
for
(
int
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
...
...
openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c
View file @
e1172a4e
...
@@ -821,15 +821,14 @@ int rx_pdsch(PHY_VARS_UE *ue,
...
@@ -821,15 +821,14 @@ int rx_pdsch(PHY_VARS_UE *ue,
pllr_symbol_cw0
+=
llr_offset_symbol
;
pllr_symbol_cw0
+=
llr_offset_symbol
;
pllr_symbol_cw1
+=
llr_offset_symbol
;
pllr_symbol_cw1
+=
llr_offset_symbol
;
/*
LOG_D
(
PHY
,
"compute LLRs [AbsSubframe %d.%d-%d] NbRB %d Qm %d LLRs-Length %d LLR-Offset %d @LLR Buff %p @LLR Buff(symb) %p energy: %d
\n
"
,
LOG_I(PHY,"compute LLRs [AbsSubframe %d.%d-%d] NbRB %d Qm %d LLRs-Length %d LLR-Offset %d @LLR Buff %p @LLR Buff(symb) %p\n",
frame
,
subframe
,
symbol
,
frame
,
subframe
,
symbol
,
nb_rb
,
dlsch0_harq
->
Qm
,
nb_rb
,
dlsch0_harq
->
Qm
,
pdsch_vars
[
eNB_id
]
->
llr_length
[
symbol
],
pdsch_vars
[
eNB_id
]
->
llr_length
[
symbol
],
pdsch_vars
[
eNB_id
]
->
llr_offset
[
symbol
],
pdsch_vars
[
eNB_id
]
->
llr_offset
[
symbol
],
(
int16_t
*
)
pdsch_vars
[
eNB_id
]
->
llr
[
0
],
(
int16_t
*
)
pdsch_vars
[
eNB_id
]
->
llr
[
0
],
pllr_symbol_cw0
);
pllr_symbol_cw0
,
*/
signal_energy
(
pdsch_vars
[
eNB_id
]
->
rxdataF_comp0
[
0
],
7
*
2
*
frame_parms
->
N_RB_DL
*
12
));
switch
(
dlsch0_harq
->
Qm
)
{
switch
(
dlsch0_harq
->
Qm
)
{
case
2
:
case
2
:
if
((
rx_type
==
rx_standard
)
||
(
codeword_TB1
==
-
1
))
{
if
((
rx_type
==
rx_standard
)
||
(
codeword_TB1
==
-
1
))
{
...
...
openair1/PHY/NR_REFSIG/scrambling_luts.c
View file @
e1172a4e
...
@@ -27,6 +27,7 @@
...
@@ -27,6 +27,7 @@
#include "PHY/impl_defs_nr.h"
#include "PHY/impl_defs_nr.h"
#include "PHY/sse_intrin.h"
#include "PHY/sse_intrin.h"
#include <common/utils/LOG/log.h>
__m64
byte2m64_re
[
256
];
__m64
byte2m64_re
[
256
];
__m64
byte2m64_im
[
256
];
__m64
byte2m64_im
[
256
];
...
@@ -42,7 +43,7 @@ void init_byte2m64(void) {
...
@@ -42,7 +43,7 @@ void init_byte2m64(void) {
byte2m64_im
[
s
]
=
_mm_insert_pi16
(
byte2m64_im
[
s
],(
1
-
2
*
((
s
>>
5
)
&
1
)),
2
);
byte2m64_im
[
s
]
=
_mm_insert_pi16
(
byte2m64_im
[
s
],(
1
-
2
*
((
s
>>
5
)
&
1
)),
2
);
byte2m64_re
[
s
]
=
_mm_insert_pi16
(
byte2m64_re
[
s
],(
1
-
2
*
((
s
>>
6
)
&
1
)),
3
);
byte2m64_re
[
s
]
=
_mm_insert_pi16
(
byte2m64_re
[
s
],(
1
-
2
*
((
s
>>
6
)
&
1
)),
3
);
byte2m64_im
[
s
]
=
_mm_insert_pi16
(
byte2m64_im
[
s
],(
1
-
2
*
((
s
>>
7
)
&
1
)),
3
);
byte2m64_im
[
s
]
=
_mm_insert_pi16
(
byte2m64_im
[
s
],(
1
-
2
*
((
s
>>
7
)
&
1
)),
3
);
printf
(
"init_scrambling_luts: s %x (%d) ((%d,%d),(%d,%d),(%d,%d),(%d,%d))
\n
"
,
LOG_T
(
PHY
,
"init_scrambling_luts: s %x (%d) ((%d,%d),(%d,%d),(%d,%d),(%d,%d))
\n
"
,
((
uint16_t
*
)
&
s
)[
0
],
((
uint16_t
*
)
&
s
)[
0
],
(
1
-
2
*
(
s
&
1
)),
(
1
-
2
*
(
s
&
1
)),
((
int16_t
*
)
&
byte2m64_re
[
s
])[
0
],((
int16_t
*
)
&
byte2m64_im
[
s
])[
0
],
((
int16_t
*
)
&
byte2m64_re
[
s
])[
0
],((
int16_t
*
)
&
byte2m64_im
[
s
])[
0
],
...
...
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
View file @
e1172a4e
...
@@ -1145,8 +1145,8 @@ void nr_rx_pusch(PHY_VARS_gNB *gNB,
...
@@ -1145,8 +1145,8 @@ void nr_rx_pusch(PHY_VARS_gNB *gNB,
//----------------------------------------------------------
//----------------------------------------------------------
//-------------------- LLRs computation --------------------
//-------------------- LLRs computation --------------------
//----------------------------------------------------------
//----------------------------------------------------------
start_meas
(
&
gNB
->
ulsch_llr_stats
);
start_meas
(
&
gNB
->
ulsch_llr_stats
);
AssertFatal
(
gNB
->
pusch_vars
[
UE_id
]
->
rxdataF_ext_offset
*
rel15_ul
->
qam_mod_order
+
nb_re_pusch
*
rel15_ul
->
qam_mod_order
<
(
8
*
((
3
*
8
*
6144
)
+
12
))
,
"Mysterious llr buffer size check"
);
nr_ulsch_compute_llr
(
&
gNB
->
pusch_vars
[
UE_id
]
->
rxdataF_comp
[
0
][
symbol
*
rel15_ul
->
rb_size
*
NR_NB_SC_PER_RB
],
nr_ulsch_compute_llr
(
&
gNB
->
pusch_vars
[
UE_id
]
->
rxdataF_comp
[
0
][
symbol
*
rel15_ul
->
rb_size
*
NR_NB_SC_PER_RB
],
gNB
->
pusch_vars
[
UE_id
]
->
ul_ch_mag0
,
gNB
->
pusch_vars
[
UE_id
]
->
ul_ch_mag0
,
gNB
->
pusch_vars
[
UE_id
]
->
ul_ch_magb0
,
gNB
->
pusch_vars
[
UE_id
]
->
ul_ch_magb0
,
...
...
openair1/PHY/TOOLS/nr_phy_scope.c
View file @
e1172a4e
This diff is collapsed.
Click to expand it.
openair1/PHY/TOOLS/nr_phy_scope.h
View file @
e1172a4e
...
@@ -34,55 +34,15 @@
...
@@ -34,55 +34,15 @@
//#include "PHY/impl_defs_top.h"
//#include "PHY/impl_defs_top.h"
#include "PHY/defs_nr_UE.h"
#include "PHY/defs_nr_UE.h"
/* Forms and Objects */
typedef
struct
{
FL_FORM
*
phy_scope_gnb
;
FL_OBJECT
*
rxsig_t
;
FL_OBJECT
*
chest_f
;
FL_OBJECT
*
chest_t
;
FL_OBJECT
*
pusch_comp
;
FL_OBJECT
*
pucch_comp
;
FL_OBJECT
*
pucch_comp1
;
FL_OBJECT
*
pusch_llr
;
FL_OBJECT
*
pusch_tput
;
FL_OBJECT
*
button_0
;
}
FD_phy_scope_gnb
;
typedef
struct
{
FL_FORM
*
phy_scope_nrue
;
FL_OBJECT
*
rxsig_t
;
FL_OBJECT
*
chest_f
;
FL_OBJECT
*
chest_t
;
FL_OBJECT
*
pbch_comp
;
FL_OBJECT
*
pbch_llr
;
FL_OBJECT
*
pdcch_comp
;
FL_OBJECT
*
pdcch_llr
;
FL_OBJECT
*
pdsch_comp
;
FL_OBJECT
*
pdsch_llr
;
FL_OBJECT
*
pdsch_comp1
;
FL_OBJECT
*
pdsch_llr1
;
FL_OBJECT
*
pdsch_tput
;
FL_OBJECT
*
button_0
;
}
FD_phy_scope_nrue
;
typedef
struct
{
typedef
struct
{
int
*
argc
;
int
*
argc
;
char
**
argv
;
char
**
argv
;
RU_t
*
ru
;
RU_t
*
ru
;
PHY_VARS_gNB
*
gNB
;
PHY_VARS_gNB
*
gNB
;
}
scopeParms_t
;
}
scopeParms_t
;
extern
unsigned
char
scope_enb_num_ue
;
void
gNBinitScope
(
scopeParms_t
*
p
);
FD_phy_scope_nrue
*
create_phy_scope_nrue
(
void
);
void
nrUEinitScope
(
PHY_VARS_NR_UE
*
ue
);
void
phy_scope_nrUE
(
FD_phy_scope_nrue
*
form
,
PHY_VARS_NR_UE
*
phy_vars_ue
,
int
eNB_id
,
int
UE_id
,
uint8_t
subframe
);
void
startScope
(
scopeParms_t
*
p
);
extern
RAN_CONTEXT_t
RC
;
extern
RAN_CONTEXT_t
RC
;
#endif
#endif
targets/ARCH/rfsimulator/simulator.c
View file @
e1172a4e
...
@@ -476,14 +476,16 @@ static bool flushInput(rfsimulator_state_t *t, int timeout, int nsamps_for_initi
...
@@ -476,14 +476,16 @@ static bool flushInput(rfsimulator_state_t *t, int timeout, int nsamps_for_initi
b
->
trashingPacket
=
true
;
b
->
trashingPacket
=
true
;
}
else
if
(
b
->
lastReceivedTS
<
b
->
th
.
timestamp
)
{
}
else
if
(
b
->
lastReceivedTS
<
b
->
th
.
timestamp
)
{
int
nbAnt
=
b
->
th
.
nbAnt
;
int
nbAnt
=
b
->
th
.
nbAnt
;
if
(
b
->
th
.
timestamp
-
b
->
lastReceivedTS
<
CirSize
)
{
for
(
uint64_t
index
=
b
->
lastReceivedTS
;
index
<
b
->
th
.
timestamp
;
index
++
)
{
for
(
uint64_t
index
=
b
->
lastReceivedTS
;
index
<
b
->
th
.
timestamp
;
index
++
)
{
for
(
int
a
=
0
;
a
<
nbAnt
;
a
++
)
{
for
(
int
a
=
0
;
a
<
nbAnt
;
a
++
)
{
b
->
circularBuf
[(
index
*
nbAnt
+
a
)
%
CirSize
].
r
=
0
;
b
->
circularBuf
[(
index
*
nbAnt
+
a
)
%
CirSize
].
r
=
0
;
b
->
circularBuf
[(
index
*
nbAnt
+
a
)
%
CirSize
].
i
=
0
;
b
->
circularBuf
[(
index
*
nbAnt
+
a
)
%
CirSize
].
i
=
0
;
}
}
}
}
}
else
{
memset
(
b
->
circularBuf
,
0
,
sampleToByte
(
CirSize
,
1
));
}
if
(
b
->
lastReceivedTS
!=
0
&&
b
->
th
.
timestamp
-
b
->
lastReceivedTS
>
50
)
if
(
b
->
lastReceivedTS
!=
0
&&
b
->
th
.
timestamp
-
b
->
lastReceivedTS
>
50
)
LOG_W
(
HW
,
"UEsock: %d gap of: %ld in reception
\n
"
,
fd
,
b
->
th
.
timestamp
-
b
->
lastReceivedTS
);
LOG_W
(
HW
,
"UEsock: %d gap of: %ld in reception
\n
"
,
fd
,
b
->
th
.
timestamp
-
b
->
lastReceivedTS
);
b
->
lastReceivedTS
=
b
->
th
.
timestamp
;
b
->
lastReceivedTS
=
b
->
th
.
timestamp
;
...
@@ -646,10 +648,11 @@ int rfsimulator_read(openair0_device *device, openair0_timestamp *ptimestamp, vo
...
@@ -646,10 +648,11 @@ int rfsimulator_read(openair0_device *device, openair0_timestamp *ptimestamp, vo
);
);
else
{
// no channel modeling
else
{
// no channel modeling
sample_t
*
out
=
(
sample_t
*
)
samplesVoid
[
a
];
sample_t
*
out
=
(
sample_t
*
)
samplesVoid
[
a
];
const
int64_t
base
=
t
->
nextTimestamp
*
nbAnt
+
a
;
for
(
int
i
=
0
;
i
<
nsamps
;
i
++
)
{
for
(
int
i
=
0
;
i
<
nsamps
;
i
++
)
{
out
[
i
].
r
+=
ptr
->
circularBuf
[((
t
->
nextTimestamp
+
i
)
*
nbAnt
+
a
)
%
CirSize
].
r
;
const
int
idx
=
(
i
*
nbAnt
+
base
)
%
CirSize
;
out
[
i
].
i
+=
ptr
->
circularBuf
[((
t
->
nextTimestamp
+
i
)
*
nbAnt
+
a
)
%
CirSize
].
i
;
out
[
i
].
r
+=
ptr
->
circularBuf
[
idx
].
r
;
out
[
i
].
i
+=
ptr
->
circularBuf
[
idx
].
i
;
}
}
}
// end of no channel modeling
}
// end of no channel modeling
}
// end for a...
}
// end for a...
...
...
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