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
canghaiwuhen
OpenXG-RAN
Commits
d21a4006
Commit
d21a4006
authored
Jun 18, 2020
by
laurent
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
scope for 5G
parent
a9ba117a
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
138 additions
and
254 deletions
+138
-254
doc/SystemX-tutorial-design.md
doc/SystemX-tutorial-design.md
+0
-90
executables/nr-softmodem.c
executables/nr-softmodem.c
+3
-1
executables/nr-uesoftmodem.c
executables/nr-uesoftmodem.c
+2
-2
executables/ocp-gnb.c
executables/ocp-gnb.c
+1
-1
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
+1
-0
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
+1
-3
openair1/PHY/TOOLS/nr_phy_scope.c
openair1/PHY/TOOLS/nr_phy_scope.c
+127
-153
openair1/PHY/TOOLS/nr_phy_scope.h
openair1/PHY/TOOLS/nr_phy_scope.h
+3
-4
No files found.
doc/SystemX-tutorial-design.md
View file @
d21a4006
# OpenAirInterface for SystemX
# OpenAirInterface for SystemX
<<<<<<< HEAD
#Terminology
****
This document use the 5G terminology
****
**Central Unit (CU): **It is a logical node that includes the gNB
=======
# Terminology
# Terminology
****
This document use the 5G terminology
****
****
This document use the 5G terminology
****
**Central Unit (CU):**
It is a logical node that includes the gNB
**Central Unit (CU):**
It is a logical node that includes the gNB
>>>>>>> da54778c4ab381743c388078676103663addafcc
functions like Transfer of user data, Mobility control, Radio access
functions like Transfer of user data, Mobility control, Radio access
network sharing, Positioning, Session Management etc., except those
network sharing, Positioning, Session Management etc., except those
functions allocated exclusively to the DU. CU controls the operation of
functions allocated exclusively to the DU. CU controls the operation of
...
@@ -27,13 +19,9 @@ names like RRH/RRU/RE/RU/PNF.
...
@@ -27,13 +19,9 @@ names like RRH/RRU/RE/RU/PNF.
In OpenAir code, the terminology is often RU and BBU.
In OpenAir code, the terminology is often RU and BBU.
# OpenAirUsage
# OpenAirUsage
<<<<<<< HEAD
##EPC and general environment
=======
## EPC and general environment
## EPC and general environment
>>>>>>> da54778c4ab381743c388078676103663addafcc
### OAI EPC
### OAI EPC
Use the stable OAI EPC, that can run in one machine (VM or standalone)
Use the stable OAI EPC, that can run in one machine (VM or standalone)
...
@@ -41,16 +29,10 @@ Use the stable OAI EPC, that can run in one machine (VM or standalone)
...
@@ -41,16 +29,10 @@ Use the stable OAI EPC, that can run in one machine (VM or standalone)
Draft description:
Draft description:
<https://open-cells.com/index.php/2017/08/22/all-in-one-openairinterface-august-22nd/>
<https://open-cells.com/index.php/2017/08/22/all-in-one-openairinterface-august-22nd/>
<<<<<<< HEAD
##Standalone 4G
EPC+eNB on one machine, the UE can be commercial or OAI UE.
=======
## Standalone 4G
## Standalone 4G
EPC+eNB on one machine, the UE can be commercial or OAI UE.
EPC+eNB on one machine, the UE can be commercial or OAI UE.
>>>>>>> da54778c4ab381743c388078676103663addafcc
### USRP B210
### USRP B210
Main current issue: traffic is good only on coaxial link between UE and
Main current issue: traffic is good only on coaxial link between UE and
...
@@ -76,12 +58,8 @@ the same IP tunnel end point as the UE.
...
@@ -76,12 +58,8 @@ the same IP tunnel end point as the UE.
So, we have to create a network namespace for the UE and to route data
So, we have to create a network namespace for the UE and to route data
in/out of the namespace.
in/out of the namespace.
<<<<<<< HEAD
``` bash
=======
```
bash
```
bash
>>>>>>>
da54778c4ab381743c388078676103663addafcc
ip netns delete aNameSpace 2>
;
/dev/null
ip netns delete aNameSpace 2>
;
/dev/null
ip
link
delete v-eth1 2>
;
/dev/null
ip
link
delete v-eth1 2>
;
/dev/null
...
@@ -96,11 +74,7 @@ ip addr add 10.200.1.1/24 dev v-eth1
...
@@ -96,11 +74,7 @@ ip addr add 10.200.1.1/24 dev v-eth1
ip
link set
v-eth1 up
ip
link set
v-eth1 up
<<<<<<
< HEAD
iptables
-t
nat
-A
POSTROUTING
-s
10.200.1.0/255.255.255.0
-o
enp0s31f6
=======
iptables
-t
nat
-A
POSTROUTING
-s
10.200.1.0/255.255.255.0
-o
enp0s31f6
\
iptables
-t
nat
-A
POSTROUTING
-s
10.200.1.0/255.255.255.0
-o
enp0s31f6
\
>>>>>>>
da54778c4ab381743c388078676103663addafcc
-j
MASQUERADE
-j
MASQUERADE
iptables
-A
FORWARD
-i
enp0s31f6
-o
v-eth1
-j
ACCEPT
iptables
-A
FORWARD
-i
enp0s31f6
-o
v-eth1
-j
ACCEPT
...
@@ -122,15 +96,6 @@ to run the UE.
...
@@ -122,15 +96,6 @@ to run the UE.
To make user plan traffic, the traffic generator has to run in the same
To make user plan traffic, the traffic generator has to run in the same
namespace
namespace
<<<<<<< HEAD
`ip netns exec aNameSpace bash
`
The traffic genenrator has to specify the interface:
`route add default oaitun_ue1
`
=======
```
bash
```
bash
ip netns
exec
aNameSpace bash
ip netns
exec
aNameSpace bash
```
```
...
@@ -140,7 +105,6 @@ The traffic genenrator has to specify the interface:
...
@@ -140,7 +105,6 @@ The traffic genenrator has to specify the interface:
```
bash
```
bash
route add default oaitun_ue1
route add default oaitun_ue1
```
```
>>>>>>> da54778c4ab381743c388078676103663addafcc
or specify the outgoing route in the traffic generator (like option “-I”
or specify the outgoing route in the traffic generator (like option “-I”
in ping command).
in ping command).
...
@@ -153,10 +117,7 @@ is this work the downlink “functional split 6”.
...
@@ -153,10 +117,7 @@ is this work the downlink “functional split 6”.
The customer required after signature to develop also the uplink
The customer required after signature to develop also the uplink
functional split 6. This is accepted, as long as the whole work is
functional split 6. This is accepted, as long as the whole work is
research with no delivery completeness warranty.
research with no delivery completeness warranty.
<<<<<<< HEAD
=======
>>>>>>> da54778c4ab381743c388078676103663addafcc
### Simulation
### Simulation
To be able to verify the new features and to help in all future
To be able to verify the new features and to help in all future
...
@@ -165,19 +126,12 @@ during this contract.
...
@@ -165,19 +126,12 @@ during this contract.
We added the channel modeling simulation, that offer to simulate various
We added the channel modeling simulation, that offer to simulate various
3GPP defined channels.
3GPP defined channels.
<<<<<<< HEAD
=======
>>>>>>> da54778c4ab381743c388078676103663addafcc
### Main loop
### Main loop
The main log is in RF simulator is in
The main log is in RF simulator is in
<<<<<<< HEAD
targets/RT/USER/lte-ru.c and targets/RT/USER/lte-enb.c
=======
`targets/RT/USER/lte-ru.c and targets/RT/USER/lte-enb.c`
`targets/RT/USER/lte-ru.c and targets/RT/USER/lte-enb.c`
>>>>>>> da54778c4ab381743c388078676103663addafcc
As this piece of SW is very complex and doesn’t meet our goals
As this piece of SW is very complex and doesn’t meet our goals
(functional split 6), a cleaned version replaces these 2 files in
(functional split 6), a cleaned version replaces these 2 files in
...
@@ -196,13 +150,8 @@ The reworked main loop take care of a uniq variable that comes directly from har
...
@@ -196,13 +150,8 @@ The reworked main loop take care of a uniq variable that comes directly from har
To use OAI, we need to set all OAI variables that derivates from this timestamp value. The function setAllfromTS() implements this.
To use OAI, we need to set all OAI variables that derivates from this timestamp value. The function setAllfromTS() implements this.
<<<<<<< HEAD
### Splitted main level
=======
### Splitted main level
### Splitted main level
>>>>>>> da54778c4ab381743c388078676103663addafcc
When FS6 is actived, a main loop for DU (du_fs6()) a main loop for CU case replaces the uniq eNB main loop.
When FS6 is actived, a main loop for DU (du_fs6()) a main loop for CU case replaces the uniq eNB main loop.
Each of these main loops calls initialization of OAI LTE data and the FS6 transport layer initialization.
Each of these main loops calls initialization of OAI LTE data and the FS6 transport layer initialization.
...
@@ -321,31 +270,6 @@ The end line option “--split73” enables the fs6 (also called split 7.3) mode
...
@@ -321,31 +270,6 @@ The end line option “--split73” enables the fs6 (also called split 7.3) mode
Example:
Example:
<<<<<<< HEAD
./ocp-softmodem -O $OPENAIR_DIR/enb.fs6.example.conf --rfsim --log_config.phy_log_level debug --split73 cu:127.0.0.1
`
Run the CU init of the split 6 eNB, that will call du on 127.0.0.1 address
./ocp-softmodem -O $OPENAIR_DIR/enb.fs6.example.conf --rfsim --log_config.phy_log_level debug --split73 du:127.0.0.1
will run the du, calling the cu on 127.0.0.1
`
If the CU and the DU are not on the same machine, the remote address of each side need to be specified as per this example
./ocp-softmodem -O $OPENAIR_DIR/enb.fs6.example.conf --rfsim --log_config.phy_log_level debug --split73 du:192.168.1.55
`
runs the functional split 6 DU
`
./lte-uesoftmodem -C 2685000000 -r 50 --rfsim --rfsimulator.serveraddr 192.168.1.1 -d
`
Runs the UE (to have the UE signal scope, compile it with make uescope)
CU+DU+UE can run with option --noS1 to avoid to use a EPC and/or with --rfsim to simulate RF board
##5G and F1
=======
```
bash
```
bash
./ocp-softmodem
-O
$OPENAIR_DIR
/enb.fs6.example.conf
--rfsim
--log_config
.phy_log_level debug
--split73
cu:127.0.0.1
./ocp-softmodem
-O
$OPENAIR_DIR
/enb.fs6.example.conf
--rfsim
--log_config
.phy_log_level debug
--split73
cu:127.0.0.1
```
```
...
@@ -376,7 +300,6 @@ CU+DU+UE can run with option `--noS1` to avoid to use a EPC and/or with `--rfsim
...
@@ -376,7 +300,6 @@ CU+DU+UE can run with option `--noS1` to avoid to use a EPC and/or with `--rfsim
## 5G and F1
## 5G and F1
>>>>>>> da54778c4ab381743c388078676103663addafcc
Today 5G achievement is limited to physical layer.
Today 5G achievement is limited to physical layer.
...
@@ -397,18 +320,6 @@ frames).
...
@@ -397,18 +320,6 @@ frames).
Usage with RFsimulator:
Usage with RFsimulator:
<<<<<<< HEAD
gNB
`
sudo RFSIMULATOR=server ./nr-softmodem -O
../../../targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf
--parallel-config PARALLEL
\_
SINGLE
\_
THREAD
`
nrUE
`
sudo RFSIMULATOR=127.0.0.1 ./nr-uesoftmodem --numerology 1 -r 106 -C
3510000000 -d`
=======
**gNB**
**gNB**
```
bash
```
bash
...
@@ -423,4 +334,3 @@ sudo RFSIMULATOR=server ./nr-softmodem -O \
...
@@ -423,4 +334,3 @@ sudo RFSIMULATOR=server ./nr-softmodem -O \
sudo
RFSIMULATOR
=
127.0.0.1 ./nr-uesoftmodem
--numerology
1
-r
106
-C
\
sudo
RFSIMULATOR
=
127.0.0.1 ./nr-uesoftmodem
--numerology
1
-r
106
-C
\
3510000000
-d
3510000000
-d
```
```
>>>>>>> da54778c4ab381743c388078676103663addafcc
executables/nr-softmodem.c
View file @
d21a4006
...
@@ -954,7 +954,9 @@ if(!IS_SOFTMODEM_NOS1)
...
@@ -954,7 +954,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 @
d21a4006
...
@@ -249,7 +249,7 @@ void exit_function(const char *file, const char *function, const int line, const
...
@@ -249,7 +249,7 @@ void exit_function(const char *file, const char *function, const int line, const
}
}
void
reset_stats
(
FL_OBJECT
*
button
,
long
arg
)
{
void
reset_stats
(
long
arg
)
{
//int i,j,k;
//int i,j,k;
/*PHY_VARS_eNB *phy_vars_eNB = PHY_vars_eNB_g[0][0];
/*PHY_VARS_eNB *phy_vars_eNB = PHY_vars_eNB_g[0][0];
...
@@ -729,7 +729,7 @@ int main( int argc, char **argv ) {
...
@@ -729,7 +729,7 @@ int main( int argc, char **argv ) {
configure_linux
();
configure_linux
();
mlockall
(
MCL_CURRENT
|
MCL_FUTURE
);
mlockall
(
MCL_CURRENT
|
MCL_FUTURE
);
if
(
do_forms
)
if
(
do_forms
)
init_s
cope
(
PHY_vars_UE_g
[
0
][
0
]);
nrUEinitS
cope
(
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
++
)
{
...
...
executables/ocp-gnb.c
View file @
d21a4006
...
@@ -880,7 +880,7 @@ int main( int argc, char **argv ) {
...
@@ -880,7 +880,7 @@ int main( int argc, char **argv ) {
if
(
do_forms
==
1
)
{
if
(
do_forms
==
1
)
{
scopeParms_t
tmp
=
{
&
argc
,
argv
,
&
ru
,
RC
.
gNB
[
0
]};
scopeParms_t
tmp
=
{
&
argc
,
argv
,
&
ru
,
RC
.
gNB
[
0
]};
star
tScope
(
&
tmp
);
gNBini
tScope
(
&
tmp
);
}
}
while
(
!
oai_exit
)
while
(
!
oai_exit
)
...
...
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
View file @
d21a4006
...
@@ -1145,6 +1145,7 @@ void nr_rx_pusch(PHY_VARS_gNB *gNB,
...
@@ -1145,6 +1145,7 @@ 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/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
View file @
d21a4006
...
@@ -669,13 +669,11 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
...
@@ -669,13 +669,11 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
pdsch_vars
[
eNB_id
]
->
llr_offset
[
symbol
]
=
len
*
dlsch0_harq
->
Qm
+
llr_offset_symbol
;
pdsch_vars
[
eNB_id
]
->
llr_offset
[
symbol
]
=
len
*
dlsch0_harq
->
Qm
+
llr_offset_symbol
;
LOG_I
(
PHY
,
"compute LLRs [symbol %d] NbRB %d Qm %d LLRs-Length %d LLR-Offset %d
@LLR Buff %x @LLR Buff(symb) %x
energy %d
\n
"
,
LOG_I
(
PHY
,
"compute LLRs [symbol %d] NbRB %d Qm %d LLRs-Length %d LLR-Offset %d energy %d
\n
"
,
symbol
,
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
],
pllr_symbol_cw0
,
signal_energy
(
pdsch_vars
[
eNB_id
]
->
rxdataF_comp0
[
0
],
7
*
2
*
frame_parms
->
N_RB_DL
*
12
));
signal_energy
(
pdsch_vars
[
eNB_id
]
->
rxdataF_comp0
[
0
],
7
*
2
*
frame_parms
->
N_RB_DL
*
12
));
//if (ue->current_thread_id[nr_tti_rx] ==0 )
//if (ue->current_thread_id[nr_tti_rx] ==0 )
//phy_scope_nrUE(NULL, ue, 0, 0, 0);
//phy_scope_nrUE(NULL, ue, 0, 0, 0);
...
...
openair1/PHY/TOOLS/nr_phy_scope.c
View file @
d21a4006
This diff is collapsed.
Click to expand it.
openair1/PHY/TOOLS/nr_phy_scope.h
View file @
d21a4006
...
@@ -29,7 +29,6 @@
...
@@ -29,7 +29,6 @@
#include <openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h>
#include <openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h>
#include "common/ran_context.h"
#include "common/ran_context.h"
#include <openair1/PHY/defs_gNB.h>
#include <openair1/PHY/defs_gNB.h>
#include <forms.h>
#include "PHY/defs_gNB.h"
#include "PHY/defs_gNB.h"
//#include "PHY/defs_nrUE.h"
//#include "PHY/defs_nrUE.h"
//#include "PHY/impl_defs_top.h"
//#include "PHY/impl_defs_top.h"
...
@@ -38,12 +37,12 @@
...
@@ -38,12 +37,12 @@
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
;
void
startScope
(
scopeParms_t
*
p
);
void
gNBinitScope
(
scopeParms_t
*
p
);
void
init_s
cope
(
PHY_VARS_NR_UE
*
ue
);
void
nrUEinitS
cope
(
PHY_VARS_NR_UE
*
ue
);
extern
RAN_CONTEXT_t
RC
;
extern
RAN_CONTEXT_t
RC
;
#endif
#endif
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