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
45ec62f9
Commit
45ec62f9
authored
Dec 17, 2020
by
Xue Song
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
read config about f1
parent
0fdc6711
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
60 additions
and
1 deletion
+60
-1
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_config.c
+49
-1
openair2/GNB_APP/gnb_paramdef.h
openair2/GNB_APP/gnb_paramdef.h
+3
-0
openair2/RRC/NR/nr_rrc_defs.h
openair2/RRC/NR/nr_rrc_defs.h
+8
-0
No files found.
openair2/GNB_APP/gnb_config.c
View file @
45ec62f9
...
@@ -76,6 +76,7 @@
...
@@ -76,6 +76,7 @@
#include "NR_EUTRA-MBSFN-SubframeConfig.h"
#include "NR_EUTRA-MBSFN-SubframeConfig.h"
extern
uint16_t
sf_ahead
;
extern
uint16_t
sf_ahead
;
int
macrlc_has_f1
=
0
;
extern
int
config_check_band_frequencies
(
int
ind
,
int16_t
band
,
uint64_t
downlink_frequency
,
extern
int
config_check_band_frequencies
(
int
ind
,
int16_t
band
,
uint64_t
downlink_frequency
,
int32_t
uplink_frequency_offset
,
uint32_t
frame_type
);
int32_t
uplink_frequency_offset
,
uint32_t
frame_type
);
...
@@ -469,6 +470,17 @@ void RCconfig_nr_macrlc() {
...
@@ -469,6 +470,17 @@ void RCconfig_nr_macrlc() {
if
(
strcmp
(
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_TRANSPORT_N_PREFERENCE_IDX
].
strptr
),
"local_RRC"
)
==
0
)
{
if
(
strcmp
(
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_TRANSPORT_N_PREFERENCE_IDX
].
strptr
),
"local_RRC"
)
==
0
)
{
// check number of instances is same as RRC/PDCP
// check number of instances is same as RRC/PDCP
}
else
if
(
strcmp
(
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_TRANSPORT_N_PREFERENCE_IDX
].
strptr
),
"f1"
)
==
0
)
{
printf
(
"Configuring F1 interfaces for MACRLC
\n
"
);
RC
.
nrmac
[
j
]
->
eth_params_n
.
local_if_name
=
strdup
(
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_LOCAL_N_IF_NAME_IDX
].
strptr
));
RC
.
nrmac
[
j
]
->
eth_params_n
.
my_addr
=
strdup
(
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_LOCAL_N_ADDRESS_IDX
].
strptr
));
RC
.
nrmac
[
j
]
->
eth_params_n
.
remote_addr
=
strdup
(
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_REMOTE_N_ADDRESS_IDX
].
strptr
));
RC
.
nrmac
[
j
]
->
eth_params_n
.
my_portc
=
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_LOCAL_N_PORTC_IDX
].
iptr
);
RC
.
nrmac
[
j
]
->
eth_params_n
.
remote_portc
=
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_REMOTE_N_PORTC_IDX
].
iptr
);
RC
.
nrmac
[
j
]
->
eth_params_n
.
my_portd
=
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_LOCAL_N_PORTD_IDX
].
iptr
);
RC
.
nrmac
[
j
]
->
eth_params_n
.
remote_portd
=
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_REMOTE_N_PORTD_IDX
].
iptr
);;
RC
.
nrmac
[
j
]
->
eth_params_n
.
transp_preference
=
ETH_UDP_MODE
;
macrlc_has_f1
=
1
;
}
else
if
(
strcmp
(
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_TRANSPORT_N_PREFERENCE_IDX
].
strptr
),
"cudu"
)
==
0
)
{
}
else
if
(
strcmp
(
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_TRANSPORT_N_PREFERENCE_IDX
].
strptr
),
"cudu"
)
==
0
)
{
RC
.
nrmac
[
j
]
->
eth_params_n
.
local_if_name
=
strdup
(
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_LOCAL_N_IF_NAME_IDX
].
strptr
));
RC
.
nrmac
[
j
]
->
eth_params_n
.
local_if_name
=
strdup
(
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_LOCAL_N_IF_NAME_IDX
].
strptr
));
RC
.
nrmac
[
j
]
->
eth_params_n
.
my_addr
=
strdup
(
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_LOCAL_N_ADDRESS_IDX
].
strptr
));
RC
.
nrmac
[
j
]
->
eth_params_n
.
my_addr
=
strdup
(
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_LOCAL_N_ADDRESS_IDX
].
strptr
));
...
@@ -504,7 +516,8 @@ void RCconfig_nr_macrlc() {
...
@@ -504,7 +516,8 @@ void RCconfig_nr_macrlc() {
}
}
}
// for (j=0;j<RC.nb_nr_macrlc_inst;j++)
}
// for (j=0;j<RC.nb_nr_macrlc_inst;j++)
}
else
{
// MacRLC_ParamList.numelt > 0
}
else
{
// MacRLC_ParamList.numelt > 0
AssertFatal
(
0
,
"No "
CONFIG_STRING_MACRLC_LIST
" configuration found"
);
printf
(
"No %s configuration found
\n
"
,
CONFIG_STRING_MACRLC_LIST
);
// AssertFatal (0,"No " CONFIG_STRING_MACRLC_LIST " configuration found");
}
}
}
}
...
@@ -589,6 +602,41 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
...
@@ -589,6 +602,41 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
fix_scc
(
scc
,
ssb_bitmap
);
fix_scc
(
scc
,
ssb_bitmap
);
}
}
printf
(
"NRRRC %d: Southbound Transport %s
\n
"
,
i
,
*
(
GNBParamList
.
paramarray
[
i
][
GNB_TRANSPORT_S_PREFERENCE_IDX
].
strptr
));
printf
(
"NRRRC %d: Southbound Transport %s
\n
"
,
i
,
*
(
GNBParamList
.
paramarray
[
i
][
GNB_TRANSPORT_S_PREFERENCE_IDX
].
strptr
));
if
(
strcmp
(
*
(
GNBParamList
.
paramarray
[
i
][
GNB_TRANSPORT_S_PREFERENCE_IDX
].
strptr
),
"f1"
)
==
0
)
{
paramdef_t
SCTPParams
[]
=
GNBSCTPPARAMS_DESC
;
char
aprefix
[
MAX_OPTNAME_SIZE
*
2
+
8
];
sprintf
(
aprefix
,
"%s.[%u].%s"
,
GNB_CONFIG_STRING_GNB_LIST
,
i
,
GNB_CONFIG_STRING_SCTP_CONFIG
);
config_get
(
SCTPParams
,
sizeof
(
SCTPParams
)
/
sizeof
(
paramdef_t
),
aprefix
);
rrc
->
node_id
=
*
(
GNBParamList
.
paramarray
[
0
][
GNB_GNB_ID_IDX
].
uptr
);
LOG_I
(
GNB_APP
,
"F1AP: gNB_CU_id[%d] %d
\n
"
,
k
,
rrc
->
node_id
);
rrc
->
node_name
=
strdup
(
*
(
GNBParamList
.
paramarray
[
0
][
GNB_GNB_NAME_IDX
].
strptr
));
LOG_I
(
GNB_APP
,
"F1AP: gNB_CU_name[%d] %s
\n
"
,
k
,
rrc
->
node_name
);
rrc
->
eth_params_s
.
local_if_name
=
strdup
(
*
(
GNBParamList
.
paramarray
[
i
][
GNB_LOCAL_S_IF_NAME_IDX
].
strptr
));
rrc
->
eth_params_s
.
my_addr
=
strdup
(
*
(
GNBParamList
.
paramarray
[
i
][
GNB_LOCAL_S_ADDRESS_IDX
].
strptr
));
rrc
->
eth_params_s
.
remote_addr
=
strdup
(
*
(
GNBParamList
.
paramarray
[
i
][
GNB_REMOTE_S_ADDRESS_IDX
].
strptr
));
rrc
->
eth_params_s
.
my_portc
=
*
(
GNBParamList
.
paramarray
[
i
][
GNB_LOCAL_S_PORTC_IDX
].
uptr
);
rrc
->
eth_params_s
.
remote_portc
=
*
(
GNBParamList
.
paramarray
[
i
][
GNB_REMOTE_S_PORTC_IDX
].
uptr
);
rrc
->
eth_params_s
.
my_portd
=
*
(
GNBParamList
.
paramarray
[
i
][
GNB_LOCAL_S_PORTD_IDX
].
uptr
);
rrc
->
eth_params_s
.
remote_portd
=
*
(
GNBParamList
.
paramarray
[
i
][
GNB_REMOTE_S_PORTD_IDX
].
uptr
);
rrc
->
eth_params_s
.
transp_preference
=
ETH_UDP_MODE
;
rrc
->
node_type
=
ngran_gNB_CU
;
rrc
->
sctp_in_streams
=
(
uint16_t
)
*
(
SCTPParams
[
GNB_SCTP_INSTREAMS_IDX
].
uptr
);
rrc
->
sctp_out_streams
=
(
uint16_t
)
*
(
SCTPParams
[
GNB_SCTP_OUTSTREAMS_IDX
].
uptr
);
}
else
{
// set to ngran_gNB for now, it will get set to ngran_gNB_DU if macrlc entity which uses F1 is present
// Note: we will have to handle the case of ngran_ng_gNB_DU
if
(
macrlc_has_f1
==
0
)
{
rrc
->
node_type
=
ngran_gNB
;
LOG_I
(
RRC
,
"Setting node_type to ngran_eNB
\n
"
);
}
else
{
rrc
->
node_type
=
ngran_gNB_DU
;
LOG_I
(
RRC
,
"Setting node_type to ngran_eNB_DU
\n
"
);
}
}
rrc
->
nr_cellid
=
(
uint64_t
)
*
(
GNBParamList
.
paramarray
[
i
][
ENB_NRCELLID_IDX
].
u64ptr
);
if
(
strcmp
(
*
(
GNBParamList
.
paramarray
[
i
][
GNB_TRANSPORT_S_PREFERENCE_IDX
].
strptr
),
"local_mac"
)
==
0
)
{
if
(
strcmp
(
*
(
GNBParamList
.
paramarray
[
i
][
GNB_TRANSPORT_S_PREFERENCE_IDX
].
strptr
),
"local_mac"
)
==
0
)
{
}
else
if
(
strcmp
(
*
(
GNBParamList
.
paramarray
[
i
][
GNB_TRANSPORT_S_PREFERENCE_IDX
].
strptr
),
"cudu"
)
==
0
)
{
}
else
if
(
strcmp
(
*
(
GNBParamList
.
paramarray
[
i
][
GNB_TRANSPORT_S_PREFERENCE_IDX
].
strptr
),
"cudu"
)
==
0
)
{
...
...
openair2/GNB_APP/gnb_paramdef.h
View file @
45ec62f9
...
@@ -117,6 +117,7 @@ typedef enum {
...
@@ -117,6 +117,7 @@ typedef enum {
#define GNB_CONFIG_STRING_PDSCHANTENNAPORTS "pdsch_AntennaPorts"
#define GNB_CONFIG_STRING_PDSCHANTENNAPORTS "pdsch_AntennaPorts"
#define GNB_CONFIG_STRING_PUSCHTARGETPOWX10 "pusch_TargetSNRx10"
#define GNB_CONFIG_STRING_PUSCHTARGETPOWX10 "pusch_TargetSNRx10"
#define GNB_CONFIG_STRING_PUCCHTARGETPOWX10 "pucch_TargetSNRx10"
#define GNB_CONFIG_STRING_PUCCHTARGETPOWX10 "pucch_TargetSNRx10"
#define GNB_CONFIG_STRING_NR_CELLID "nr_cellid"
typedef
struct
ccparams_nr_x2
{
typedef
struct
ccparams_nr_x2
{
...
@@ -165,6 +166,7 @@ typedef struct ccparams_nr_x2 {
...
@@ -165,6 +166,7 @@ typedef struct ccparams_nr_x2 {
{GNB_CONFIG_STRING_PDSCHANTENNAPORTS, NULL, 0, iptr:NULL, defintval:1, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_PDSCHANTENNAPORTS, NULL, 0, iptr:NULL, defintval:1, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_PUSCHTARGETPOWX10, NULL, 0, iptr:NULL, defintval:200, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_PUSCHTARGETPOWX10, NULL, 0, iptr:NULL, defintval:200, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_PUCCHTARGETPOWX10, NULL, 0, iptr:NULL, defintval:200, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_PUCCHTARGETPOWX10, NULL, 0, iptr:NULL, defintval:200, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_NR_CELLID, NULL, 0, u64ptr:NULL, defint64val:0, TYPE_UINT64, 0}, \
}
}
#define GNB_GNB_ID_IDX 0
#define GNB_GNB_ID_IDX 0
...
@@ -185,6 +187,7 @@ typedef struct ccparams_nr_x2 {
...
@@ -185,6 +187,7 @@ typedef struct ccparams_nr_x2 {
#define GNB_PDSCH_ANTENNAPORTS_IDX 15
#define GNB_PDSCH_ANTENNAPORTS_IDX 15
#define GNB_PUSCH_TARGETPOW_X10_IDX 16
#define GNB_PUSCH_TARGETPOW_X10_IDX 16
#define GNB_PUCCH_TARGETPOW_X10_IDX 17
#define GNB_PUCCH_TARGETPOW_X10_IDX 17
#define GNB_NRCELLID_IDX 18
#define TRACKING_AREA_CODE_OKRANGE {0x0001,0xFFFD}
#define TRACKING_AREA_CODE_OKRANGE {0x0001,0xFFFD}
#define GNBPARAMS_CHECK { \
#define GNBPARAMS_CHECK { \
...
...
openair2/RRC/NR/nr_rrc_defs.h
View file @
45ec62f9
...
@@ -438,6 +438,9 @@ typedef struct {
...
@@ -438,6 +438,9 @@ typedef struct {
//---NR---(completely change)---------------------
//---NR---(completely change)---------------------
typedef
struct
gNB_RRC_INST_s
{
typedef
struct
gNB_RRC_INST_s
{
ngran_node_t
node_type
;
uint32_t
node_id
;
char
*
node_name
;
int
module_id
;
int
module_id
;
eth_params_t
eth_params_s
;
eth_params_t
eth_params_s
;
rrc_gNB_carrier_data_t
carrier
;
rrc_gNB_carrier_data_t
carrier
;
...
@@ -449,6 +452,9 @@ typedef struct gNB_RRC_INST_s {
...
@@ -449,6 +452,9 @@ typedef struct gNB_RRC_INST_s {
hash_table_t
*
initial_id2_ngap_ids
;
hash_table_t
*
initial_id2_ngap_ids
;
hash_table_t
*
ngap_id2_ngap_ids
;
hash_table_t
*
ngap_id2_ngap_ids
;
/// NR cell id
uint64_t
nr_cellid
;
// other PLMN parameters
// other PLMN parameters
/// Mobile country code
/// Mobile country code
int
mcc
;
int
mcc
;
...
@@ -465,6 +471,8 @@ typedef struct gNB_RRC_INST_s {
...
@@ -465,6 +471,8 @@ typedef struct gNB_RRC_INST_s {
int
srb1_timer_reordering
;
int
srb1_timer_reordering
;
int
srb1_timer_status_prohibit
;
int
srb1_timer_status_prohibit
;
int
srs_enable
[
MAX_NUM_CCs
];
int
srs_enable
[
MAX_NUM_CCs
];
uint16_t
sctp_in_streams
;
uint16_t
sctp_out_streams
;
}
gNB_RRC_INST
;
}
gNB_RRC_INST
;
...
...
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