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
8d3e20ca
Commit
8d3e20ca
authored
Dec 25, 2020
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'oairu' of
https://gitlab.eurecom.fr/oai/openairinterface5g
into oairu
parents
7620fe9b
881ac549
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
62 additions
and
11 deletions
+62
-11
openair1/PHY/INIT/lte_init.c
openair1/PHY/INIT/lte_init.c
+2
-0
openair1/PHY/defs_eNB.h
openair1/PHY/defs_eNB.h
+1
-0
openair1/SCHED/fapi_l1.c
openair1/SCHED/fapi_l1.c
+4
-0
openair1/SCHED/phy_procedures_lte_eNb.c
openair1/SCHED/phy_procedures_lte_eNb.c
+3
-0
openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c
openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c
+3
-0
openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.c
.../ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.c
+3
-0
openair2/ENB_APP/NB_IoT_interface.c
openair2/ENB_APP/NB_IoT_interface.c
+3
-0
openair2/ENB_APP/NB_IoT_interface.h
openair2/ENB_APP/NB_IoT_interface.h
+1
-0
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+2
-0
openair2/ENB_APP/flexran_agent.c
openair2/ENB_APP/flexran_agent.c
+3
-0
openair2/ENB_APP/flexran_agent_common.c
openair2/ENB_APP/flexran_agent_common.c
+3
-0
openair2/ENB_APP/flexran_agent_ran_api.c
openair2/ENB_APP/flexran_agent_ran_api.c
+3
-0
openair2/LAYER2/MAC/mac_extern.h
openair2/LAYER2/MAC/mac_extern.h
+4
-0
openair2/PHY_INTERFACE/IF_Module.c
openair2/PHY_INTERFACE/IF_Module.c
+2
-0
targets/RT/USER/lte-enb.c
targets/RT/USER/lte-enb.c
+5
-1
targets/RT/USER/lte-ru.c
targets/RT/USER/lte-ru.c
+1
-0
targets/RT/USER/lte-softmodem.c
targets/RT/USER/lte-softmodem.c
+18
-9
targets/RT/USER/lte-softmodem.h
targets/RT/USER/lte-softmodem.h
+1
-1
No files found.
openair1/PHY/INIT/lte_init.c
View file @
8d3e20ca
...
...
@@ -46,6 +46,8 @@ uint8_t dmrs1_tab[8] = { 0, 2, 3, 4, 6, 8, 9, 10 };
int
N_RB_DL_array
[
6
]
=
{
6
,
15
,
25
,
50
,
75
,
100
};
extern
RAN_CONTEXT_t
RC
;
int
l1_north_init_eNB
()
{
int
i
,
j
;
...
...
openair1/PHY/defs_eNB.h
View file @
8d3e20ca
...
...
@@ -362,6 +362,7 @@ typedef struct L1_proc_t_s {
pthread_t
process_stats_thread
;
/// for waking up tx procedure
RU_proc_t
*
ru_proc
;
struct
PHY_VARS_eNB_s
*
eNB
;
}
L1_proc_t
;
...
...
openair1/SCHED/fapi_l1.c
View file @
8d3e20ca
...
...
@@ -32,11 +32,15 @@
#include "PHY/defs_eNB.h"
#include "PHY/LTE_TRANSPORT/transport_proto.h"
#include "PHY/LTE_TRANSPORT/transport_extern.h"
#include "SCHED/sched_eNB.h"
#include "nfapi/oai_integration/vendor_ext.h"
#include "nfapi_pnf_interface.h"
#include "fapi_l1.h"
#include "common/ran_context.h"
extern
RAN_CONTEXT_t
RC
;
int
oai_nfapi_dl_config_req
(
nfapi_dl_config_request_t
*
dl_config_req
);
int
oai_nfapi_tx_req
(
nfapi_tx_request_t
*
tx_req
);
int
oai_nfapi_hi_dci0_req
(
nfapi_hi_dci0_request_t
*
hi_dci0_req
);
...
...
openair1/SCHED/phy_procedures_lte_eNb.c
View file @
8d3e20ca
...
...
@@ -51,6 +51,9 @@
#define MBMS_NFAPI_SCHEDULER
#include "common/ran_context.h"
extern
RAN_CONTEXT_t
RC
;
nfapi_ue_release_request_body_t
release_rntis
;
int16_t
get_hundred_times_delta_IF_eNB
(
PHY_VARS_eNB
*
eNB
,
uint16_t
UE_id
,
uint8_t
harq_pid
,
uint8_t
bw_factor
)
{
...
...
openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c
View file @
8d3e20ca
...
...
@@ -42,6 +42,9 @@
#include <dlfcn.h>
#include "common/ran_context.h"
extern
RAN_CONTEXT_t
RC
;
/*Array containing the Agent-MAC interfaces*/
AGENT_MAC_xface
*
agent_mac_xface
[
NUM_MAX_ENB
];
...
...
openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.c
View file @
8d3e20ca
...
...
@@ -33,6 +33,9 @@
#include "flexran_agent_mac_internal.h"
#include "flexran_agent_mac_slice_verification.h"
#include "common/ran_context.h"
extern
RAN_CONTEXT_t
RC
;
extern
SLIST_HEAD
(
flexran_so_handle
,
flexran_agent_so_handle_s
)
flexran_handles
[
NUM_MAX_ENB
];
...
...
openair2/ENB_APP/NB_IoT_interface.c
View file @
8d3e20ca
...
...
@@ -35,6 +35,9 @@
#define NBIOT_INTERFACE_SOURCE
#include "NB_IoT_interface.h"
#include "common/ran_context.h"
extern
RAN_CONTEXT_t
RC
;
...
...
openair2/ENB_APP/NB_IoT_interface.h
View file @
8d3e20ca
...
...
@@ -31,6 +31,7 @@
#define NBIOT_MODULENAME "NB_IoT"
#include "common/ran_context.h"
typedef
void
(
*
RCConfig_NbIoT_f_t
)(
RAN_CONTEXT_t
*
RC
);
#define NBIOT_RCCONFIG_FNAME "RCConfig_NbIoT"
...
...
openair2/ENB_APP/enb_config.c
View file @
8d3e20ca
...
...
@@ -63,6 +63,8 @@ extern uint32_t to_earfcn_UL(int eutra_bandP, uint32_t ul_CarrierFreq, uint32_t
extern
char
*
parallel_config
;
extern
char
*
worker_config
;
RAN_CONTEXT_t
RC
;
void
RCconfig_flexran
()
{
/* get number of eNBs */
paramdef_t
ENBSParams
[]
=
ENBSPARAMS_DESC
;
...
...
openair2/ENB_APP/flexran_agent.c
View file @
8d3e20ca
...
...
@@ -33,6 +33,9 @@
#include <pthread.h>
#include <arpa/inet.h>
#include "common/ran_context.h"
extern
RAN_CONTEXT_t
RC
;
int
agent_task_created
=
0
;
/*
* enb agent task mainly wakes up the tx thread for periodic and oneshot messages to the controller
...
...
openair2/ENB_APP/flexran_agent_common.c
View file @
8d3e20ca
...
...
@@ -53,6 +53,9 @@
#include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
#include "rrc_eNB_UE_context.h"
#include "common/ran_context.h"
extern
RAN_CONTEXT_t
RC
;
/*
* message primitives
*/
...
...
openair2/ENB_APP/flexran_agent_ran_api.c
View file @
8d3e20ca
...
...
@@ -32,6 +32,9 @@
#include "s1ap_eNB_management_procedures.h"
#include "openair2/LAYER2/MAC/slicing/slicing.h"
#include "common/ran_context.h"
extern
RAN_CONTEXT_t
RC
;
static
inline
int
phy_is_present
(
mid_t
mod_id
,
uint8_t
cc_id
)
{
return
RC
.
eNB
&&
RC
.
eNB
[
mod_id
]
&&
RC
.
eNB
[
mod_id
][
cc_id
];
}
...
...
openair2/LAYER2/MAC/mac_extern.h
View file @
8d3e20ca
...
...
@@ -77,4 +77,8 @@ extern eNB_UE_STATS pre_scd_eNB_UE_stats[MAX_NUM_CCs][NUMBER_OF_UE_MAX];
extern
mac_rlc_am_muilist_t
rlc_am_mui
;
extern
SCHEDULER_MODES
global_scheduler_mode
;
#include "common/ran_context.h"
extern
RAN_CONTEXT_t
RC
;
#endif //DEF_H
openair2/PHY_INTERFACE/IF_Module.c
View file @
8d3e20ca
...
...
@@ -19,6 +19,8 @@ extern int oai_nfapi_rx_ind(nfapi_rx_indication_t *ind);
extern
uint16_t
sf_ahead
;
extern
UL_RCC_IND_t
UL_RCC_INFO
;
extern
RAN_CONTEXT_t
RC
;
uint16_t
frame_cnt
=
0
;
void
handle_rach
(
UL_IND_t
*
UL_info
)
{
int
i
;
...
...
targets/RT/USER/lte-enb.c
View file @
8d3e20ca
...
...
@@ -96,6 +96,9 @@
#include "T.h"
#include "common/ran_context.h"
extern
RAN_CONTEXT_t
RC
;
//#define DEBUG_THREADS 1
//#define USRP_DEBUG 1
...
...
@@ -323,7 +326,7 @@ static inline int rxtx(PHY_VARS_eNB *eNB,
static
void
*
L1_thread_tx
(
void
*
param
)
{
L1_proc_t
*
eNB_proc
=
(
L1_proc_t
*
)
param
;
L1_rxtx_proc_t
*
proc
=
&
eNB_proc
->
L1_proc_tx
;
PHY_VARS_eNB
*
eNB
=
RC
.
eNB
[
0
][
proc
->
CC_id
]
;
PHY_VARS_eNB
*
eNB
=
eNB_proc
->
eNB
;
char
thread_name
[
100
];
sprintf
(
thread_name
,
"TXnp4_%d
\n
"
,
&
eNB
->
proc
.
L1_proc
==
proc
?
0
:
1
);
thread_top_init
(
thread_name
,
1
,
470000
,
500000
,
500000
);
...
...
@@ -858,6 +861,7 @@ void init_eNB_proc(int inst) {
L1_proc_tx
->
instance_cnt
=
-
1
;
L1_proc
->
instance_cnt_RUs
=
0
;
L1_proc_tx
->
instance_cnt_RUs
=
0
;
proc
->
eNB
=
eNB
;
proc
->
instance_cnt_prach
=
-
1
;
proc
->
instance_cnt_asynch_rxtx
=
-
1
;
proc
->
instance_cnt_synch
=
-
1
;
...
...
targets/RT/USER/lte-ru.c
View file @
8d3e20ca
...
...
@@ -3041,6 +3041,7 @@ RU_t **RCconfig_RU(int nb_RU,int nb_L1_inst,PHY_VARS_eNB ***eNB,uint64_t *ru_mas
ru
[
j
]
->
nb_rx
=
*
(
RUParamList
.
paramarray
[
j
][
RU_NB_RX_IDX
].
uptr
);
ru
[
j
]
->
att_tx
=
*
(
RUParamList
.
paramarray
[
j
][
RU_ATT_TX_IDX
].
uptr
);
ru
[
j
]
->
att_rx
=
*
(
RUParamList
.
paramarray
[
j
][
RU_ATT_RX_IDX
].
uptr
);
*
ru_mask
=
(
*
ru_mask
)
|
(
1
<<
j
);
}
// j=0..num_rus
}
...
...
targets/RT/USER/lte-softmodem.c
View file @
8d3e20ca
...
...
@@ -169,6 +169,8 @@ extern void print_opp_meas(void);
extern
void
init_eNB_afterRU
(
void
);
RU_t
**
RCconfig_RU
(
int
nb_RU
,
int
nb_L1_inst
,
PHY_VARS_eNB
***
eNB
,
uint64_t
*
ru_mask
,
pthread_mutex_t
*
ru_mutex
,
pthread_cond_t
*
ru_cond
);
int
transmission_mode
=
1
;
int
emulate_rf
=
0
;
int
numerology
=
0
;
...
...
@@ -426,7 +428,6 @@ int stop_L1L2(module_id_t enb_id) {
* Restart the lte-softmodem after it has been soft-stopped with stop_L1L2()
*/
int
restart_L1L2
(
module_id_t
enb_id
)
{
RU_t
*
ru
=
RC
.
ru
[
enb_id
];
int
cc_id
;
MessageDef
*
msg_p
=
NULL
;
LOG_W
(
ENB_APP
,
"restarting lte-softmodem
\n
"
);
...
...
@@ -437,10 +438,12 @@ int restart_L1L2(module_id_t enb_id) {
for
(
cc_id
=
0
;
cc_id
<
RC
.
nb_L1_CC
[
enb_id
];
cc_id
++
)
{
RC
.
eNB
[
enb_id
][
cc_id
]
->
configured
=
0
;
for
(
int
ru_id
=
0
;
ru_id
<
RC
.
eNB
[
enb_id
][
cc_id
]
->
num_RU
;
ru_id
++
)
{
int
ru_idx
=
RC
.
eNB
[
enb_id
][
cc_id
]
->
RU_list
[
ru_id
]
->
idx
;
RC
.
ru_mask
|=
(
1
<<
ru_idx
);
set_function_spec_param
(
RC
.
ru
[
ru_idx
]);
}
}
RC
.
ru_mask
|=
(
1
<<
ru
->
idx
);
set_function_spec_param
(
RC
.
ru
[
enb_id
]);
/* reset the list of connected UEs in the MAC, since in this process with
* loose all UEs (have to reconnect) */
init_UE_info
(
&
RC
.
mac
[
enb_id
]
->
UE_info
);
...
...
@@ -461,9 +464,15 @@ int restart_L1L2(module_id_t enb_id) {
/* TODO XForms might need to be restarted, but it is currently (09/02/18)
* broken, so we cannot test it */
wait_eNBs
();
init_RU_proc
(
ru
);
ru
->
rf_map
.
card
=
0
;
ru
->
rf_map
.
chain
=
0
;
/* CC_id + chain_offset;*/
for
(
int
cc_id
=
0
;
cc_id
<
RC
.
nb_L1_CC
[
enb_id
];
cc_id
++
)
{
for
(
int
ru_id
=
0
;
ru_id
<
RC
.
eNB
[
enb_id
][
cc_id
]
->
num_RU
;
ru_id
++
)
{
int
ru_idx
=
RC
.
eNB
[
enb_id
][
cc_id
]
->
RU_list
[
ru_id
]
->
idx
;
init_RU_proc
(
RC
.
ru
[
ru_idx
]);
RC
.
ru
[
ru_idx
]
->
rf_map
.
card
=
0
;
RC
.
ru
[
ru_idx
]
->
rf_map
.
chain
=
0
;
/* CC_id + chain_offset;*/
}
}
wait_RUs
();
init_eNB_afterRU
();
printf
(
"Sending sync to all threads
\n
"
);
...
...
@@ -576,7 +585,7 @@ int main ( int argc, char **argv )
/* We need to read RU configuration before FlexRAN starts so it knows what
* splits to report. Actual RU start comes later. */
if
(
RC
.
nb_RU
>
0
&&
NFAPI_MODE
!=
NFAPI_MODE_VNF
)
{
RC
config_RU
(
);
RC
.
ru
=
RCconfig_RU
(
RC
.
nb_RU
,
RC
.
nb_L1_inst
,
RC
.
eNB
,
&
RC
.
ru_mask
,
&
RC
.
ru_mutex
,
&
RC
.
ru_cond
);
LOG_I
(
PHY
,
"number of L1 instances %d, number of RU %d, number of CPU cores %d
\n
"
,
RC
.
nb_L1_inst
,
RC
.
nb_RU
,
get_nprocs
());
...
...
@@ -679,7 +688,7 @@ int main ( int argc, char **argv )
// some initialization is necessary and init_ru_vnf do this.
if
(
RC
.
nb_RU
>
0
&&
NFAPI_MODE
!=
NFAPI_MODE_VNF
)
{
printf
(
"Initializing RU threads
\n
"
);
init_RU
(
get_softmodem_params
()
->
rf_config_file
,
get_softmodem_params
()
->
send_dmrs_sync
);
init_RU
(
RC
.
ru
,
RC
.
nb_RU
,
RC
.
eNB
,
RC
.
nb_L1_inst
,
RC
.
nb_L1_CC
,
get_softmodem_params
()
->
rf_config_file
,
get_softmodem_params
()
->
send_dmrs_sync
);
for
(
ru_id
=
0
;
ru_id
<
RC
.
nb_RU
;
ru_id
++
)
{
RC
.
ru
[
ru_id
]
->
rf_map
.
card
=
0
;
...
...
targets/RT/USER/lte-softmodem.h
View file @
8d3e20ca
...
...
@@ -171,7 +171,7 @@ extern void init_RU_proc(RU_t *ru);
extern
void
stop_RU
(
int
nb_ru
);
extern
void
kill_RU_proc
(
RU_t
*
ru
);
extern
void
set_function_spec_param
(
RU_t
*
ru
);
extern
void
init_RU
(
char
*
,
int
send_dmrssync
);
extern
void
init_RU
(
RU_t
**
rup
,
int
nb_RU
,
PHY_VARS_eNB
***
eNBp
,
int
nb_L1
,
int
*
nb_CC
,
char
*
rf_config_file
,
int
send_dmrssync
);
// In lte-ue.c
extern
int
setup_ue_buffers
(
PHY_VARS_UE
**
phy_vars_ue
,
openair0_config_t
*
openair0_cfg
);
...
...
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