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
wangjie
OpenXG-RAN
Commits
881ac549
Commit
881ac549
authored
Dec 25, 2020
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
merge with develop
parent
9edd67b2
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
63 additions
and
12 deletions
+63
-12
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/enb_config.h
openair2/ENB_APP/enb_config.h
+0
-1
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
+2
-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 @
881ac549
...
...
@@ -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 @
881ac549
...
...
@@ -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 @
881ac549
...
...
@@ -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 @
881ac549
...
...
@@ -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 @
881ac549
...
...
@@ -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 @
881ac549
...
...
@@ -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 @
881ac549
...
...
@@ -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 @
881ac549
...
...
@@ -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 @
881ac549
...
...
@@ -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/enb_config.h
View file @
881ac549
...
...
@@ -100,7 +100,6 @@ typedef struct ru_config_s {
uint8_t
if_compress
;
}
ru_config_t
;
extern
void
RCconfig_RU
(
void
);
extern
void
RCconfig_flexran
(
void
);
extern
void
RCconfig_L1
(
void
);
extern
void
RCconfig_macrlc
(
int
macrlc_has_f1
[
MAX_MAC_INST
]);
...
...
openair2/ENB_APP/flexran_agent.c
View file @
881ac549
...
...
@@ -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 @
881ac549
...
...
@@ -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 @
881ac549
...
...
@@ -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 @
881ac549
...
...
@@ -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 @
881ac549
...
...
@@ -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 @
881ac549
...
...
@@ -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 @
881ac549
...
...
@@ -77,6 +77,7 @@ static int DEFBFW[] = {0x00007fff};
#include "T.h"
#include "executables/softmodem-common.h"
#define MBMS_EXPERIMENTAL
...
...
@@ -3040,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 @
881ac549
...
...
@@ -167,6 +167,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
;
...
...
@@ -424,7 +426,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
"
);
...
...
@@ -435,10 +436,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
);
...
...
@@ -459,9 +462,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
"
);
...
...
@@ -574,7 +583,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
());
...
...
@@ -677,7 +686,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 @
881ac549
...
...
@@ -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