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
ZhouShuya
OpenXG-RAN
Commits
18548260
Commit
18548260
authored
Mar 22, 2018
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
FlexRAN: send agent_id (aka enb_id)
parent
e7a60fc9
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
52 additions
and
54 deletions
+52
-54
openair2/ENB_APP/MESSAGES/V2/flexran.proto
openair2/ENB_APP/MESSAGES/V2/flexran.proto
+1
-1
openair2/ENB_APP/flexran_agent_common.c
openair2/ENB_APP/flexran_agent_common.c
+51
-53
No files found.
openair2/ENB_APP/MESSAGES/V2/flexran.proto
View file @
18548260
...
...
@@ -131,7 +131,7 @@ message flex_enb_config_request {
message
flex_enb_config_reply
{
optional
flex_header
header
=
1
;
optional
uint
32
eNB_id
=
2
;
// Unique id to distinguish the eNB
optional
uint
64
eNB_id
=
2
;
// Unique id to distinguish the eNB
repeated
flex_cell_config
cell_config
=
3
;
optional
uint32
device_spec
=
4
;
}
...
...
openair2/ENB_APP/flexran_agent_common.c
View file @
18548260
...
...
@@ -804,7 +804,6 @@ int flexran_agent_enb_config_reply(mid_t mod_id, const void *params, Protocol__F
xid
=
(
enb_config_req_msg
->
header
)
->
xid
;
int
i
,
j
;
int
enb_id
=
mod_id
;
Protocol__FlexEnbConfigReply
*
enb_config_reply_msg
;
enb_config_reply_msg
=
malloc
(
sizeof
(
Protocol__FlexEnbConfigReply
));
...
...
@@ -816,10 +815,10 @@ int flexran_agent_enb_config_reply(mid_t mod_id, const void *params, Protocol__F
goto
error
;
enb_config_reply_msg
->
header
=
header
;
enb_config_reply_msg
->
enb_id
=
mod
_id
;
enb_config_reply_msg
->
enb_id
=
RC
.
flexran
[
mod_id
]
->
agent
_id
;
enb_config_reply_msg
->
has_enb_id
=
1
;
enb_config_reply_msg
->
n_cell_config
=
MAX_NUM_CCs
;
Protocol__FlexCellConfig
**
cell_conf
;
...
...
@@ -832,43 +831,43 @@ int flexran_agent_enb_config_reply(mid_t mod_id, const void *params, Protocol__F
protocol__flex_cell_config__init
(
cell_conf
[
i
]);
cell_conf
[
i
]
->
phy_cell_id
=
1
;
cell_conf
[
i
]
->
has_phy_cell_id
=
flexran_get_cell_id
(
enb
_id
,
i
);
cell_conf
[
i
]
->
has_phy_cell_id
=
flexran_get_cell_id
(
mod
_id
,
i
);
cell_conf
[
i
]
->
cell_id
=
i
;
cell_conf
[
i
]
->
has_cell_id
=
1
;
cell_conf
[
i
]
->
pusch_hopping_offset
=
flexran_get_hopping_offset
(
enb
_id
,
i
);
cell_conf
[
i
]
->
pusch_hopping_offset
=
flexran_get_hopping_offset
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_pusch_hopping_offset
=
1
;
if
(
flexran_get_hopping_mode
(
enb
_id
,
i
)
==
0
)
{
if
(
flexran_get_hopping_mode
(
mod
_id
,
i
)
==
0
)
{
cell_conf
[
i
]
->
hopping_mode
=
PROTOCOL__FLEX_HOPPING_MODE__FLHM_INTER
;
}
else
if
(
flexran_get_hopping_mode
(
enb
_id
,
i
)
==
1
)
{
}
else
if
(
flexran_get_hopping_mode
(
mod
_id
,
i
)
==
1
)
{
cell_conf
[
i
]
->
hopping_mode
=
PROTOCOL__FLEX_HOPPING_MODE__FLHM_INTERINTRA
;
}
cell_conf
[
i
]
->
has_hopping_mode
=
1
;
cell_conf
[
i
]
->
n_sb
=
flexran_get_n_SB
(
enb
_id
,
i
);
cell_conf
[
i
]
->
n_sb
=
flexran_get_n_SB
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_n_sb
=
1
;
if
(
flexran_get_phich_resource
(
enb
_id
,
i
)
==
0
)
{
if
(
flexran_get_phich_resource
(
mod
_id
,
i
)
==
0
)
{
cell_conf
[
i
]
->
phich_resource
=
PROTOCOL__FLEX_PHICH_RESOURCE__FLPR_ONE_SIXTH
;
//0
}
else
if
(
flexran_get_phich_resource
(
enb
_id
,
i
)
==
1
)
{
}
else
if
(
flexran_get_phich_resource
(
mod
_id
,
i
)
==
1
)
{
cell_conf
[
i
]
->
phich_resource
=
PROTOCOL__FLEX_PHICH_RESOURCE__FLPR_HALF
;
//1
}
else
if
(
flexran_get_phich_resource
(
enb
_id
,
i
)
==
2
)
{
}
else
if
(
flexran_get_phich_resource
(
mod
_id
,
i
)
==
2
)
{
cell_conf
[
i
]
->
phich_resource
=
PROTOCOL__FLEX_PHICH_RESOURCE__FLPR_ONE
;
// 2
}
else
if
(
flexran_get_phich_resource
(
enb
_id
,
i
)
==
3
)
{
}
else
if
(
flexran_get_phich_resource
(
mod
_id
,
i
)
==
3
)
{
cell_conf
[
i
]
->
phich_resource
=
PROTOCOL__FLEX_PHICH_RESOURCE__FLPR_TWO
;
//3
}
cell_conf
[
i
]
->
has_phich_resource
=
1
;
if
(
flexran_get_phich_duration
(
enb
_id
,
i
)
==
0
)
{
if
(
flexran_get_phich_duration
(
mod
_id
,
i
)
==
0
)
{
cell_conf
[
i
]
->
phich_duration
=
PROTOCOL__FLEX_PHICH_DURATION__FLPD_NORMAL
;
}
else
if
(
flexran_get_phich_duration
(
enb
_id
,
i
)
==
1
)
{
}
else
if
(
flexran_get_phich_duration
(
mod
_id
,
i
)
==
1
)
{
cell_conf
[
i
]
->
phich_duration
=
PROTOCOL__FLEX_PHICH_DURATION__FLPD_EXTENDED
;
}
cell_conf
[
i
]
->
has_phich_duration
=
1
;
//TODO: Fill in with actual value, See TS 36.211, section 6.9
cell_conf
[
i
]
->
init_nr_pdcch_ofdm_sym
=
flexran_get_num_pdcch_symb
(
enb
_id
,
i
);
cell_conf
[
i
]
->
init_nr_pdcch_ofdm_sym
=
flexran_get_num_pdcch_symb
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_init_nr_pdcch_ofdm_sym
=
0
;
//TODO: Fill in with actual value
/* Protocol__FlexSiConfig *si_config; */
...
...
@@ -880,10 +879,10 @@ int flexran_agent_enb_config_reply(mid_t mod_id, const void *params, Protocol__F
/* si_config->sfn = 1; */
/* si_config->has_sfn = 1; */
/* //TODO: Fill in with actual value, the length of SIB1 in bytes */
/* si_config->sib1_length = get_sib1_length(
enb
_id,i); */
/* si_config->sib1_length = get_sib1_length(
mod
_id,i); */
/* si_config->has_sib1_length = 1; */
/* //TODO: Fill in with actual value, Scheduling window for all SIs in SF */
/* si_config->si_window_length = (uint32_t) get_si_window_length(
enb
_id,i); */
/* si_config->si_window_length = (uint32_t) get_si_window_length(
mod
_id,i); */
/* si_config->has_si_window_length = 1; */
/* //TODO: Fill in with actual value, the number of SI messages */
/* si_config->n_si_message=1; */
...
...
@@ -908,22 +907,22 @@ int flexran_agent_enb_config_reply(mid_t mod_id, const void *params, Protocol__F
/* } */
/* cell_conf[i]->si_config = si_config; */
cell_conf
[
i
]
->
dl_bandwidth
=
flexran_get_N_RB_DL
(
enb
_id
,
i
);
cell_conf
[
i
]
->
dl_bandwidth
=
flexran_get_N_RB_DL
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_dl_bandwidth
=
1
;
cell_conf
[
i
]
->
ul_bandwidth
=
flexran_get_N_RB_UL
(
enb
_id
,
i
);
cell_conf
[
i
]
->
ul_bandwidth
=
flexran_get_N_RB_UL
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_ul_bandwidth
=
1
;
if
(
flexran_get_ul_cyclic_prefix_length
(
enb
_id
,
i
)
==
0
)
{
if
(
flexran_get_ul_cyclic_prefix_length
(
mod
_id
,
i
)
==
0
)
{
cell_conf
[
i
]
->
ul_cyclic_prefix_length
=
PROTOCOL__FLEX_UL_CYCLIC_PREFIX_LENGTH__FLUCPL_NORMAL
;
}
else
if
(
flexran_get_ul_cyclic_prefix_length
(
enb
_id
,
i
)
==
1
)
{
cell_conf
[
i
]
->
ul_cyclic_prefix_length
=
PROTOCOL__FLEX_UL_CYCLIC_PREFIX_LENGTH__FLUCPL_EXTENDED
;
}
else
if
(
flexran_get_ul_cyclic_prefix_length
(
mod
_id
,
i
)
==
1
)
{
cell_conf
[
i
]
->
ul_cyclic_prefix_length
=
PROTOCOL__FLEX_UL_CYCLIC_PREFIX_LENGTH__FLUCPL_EXTENDED
;
}
cell_conf
[
i
]
->
has_ul_cyclic_prefix_length
=
1
;
if
(
flexran_get_ul_cyclic_prefix_length
(
enb
_id
,
i
)
==
0
)
{
if
(
flexran_get_ul_cyclic_prefix_length
(
mod
_id
,
i
)
==
0
)
{
cell_conf
[
i
]
->
ul_cyclic_prefix_length
=
PROTOCOL__FLEX_DL_CYCLIC_PREFIX_LENGTH__FLDCPL_NORMAL
;
}
else
if
(
flexran_get_ul_cyclic_prefix_length
(
enb
_id
,
i
)
==
1
)
{
}
else
if
(
flexran_get_ul_cyclic_prefix_length
(
mod
_id
,
i
)
==
1
)
{
cell_conf
[
i
]
->
ul_cyclic_prefix_length
=
PROTOCOL__FLEX_DL_CYCLIC_PREFIX_LENGTH__FLDCPL_EXTENDED
;
}
...
...
@@ -932,17 +931,17 @@ int flexran_agent_enb_config_reply(mid_t mod_id, const void *params, Protocol__F
cell_conf
[
i
]
->
antenna_ports_count
=
1
;
cell_conf
[
i
]
->
has_antenna_ports_count
=
1
;
if
(
flexran_get_duplex_mode
(
enb
_id
,
i
)
==
1
)
{
if
(
flexran_get_duplex_mode
(
mod
_id
,
i
)
==
1
)
{
cell_conf
[
i
]
->
duplex_mode
=
PROTOCOL__FLEX_DUPLEX_MODE__FLDM_FDD
;
}
else
if
(
flexran_get_duplex_mode
(
enb
_id
,
i
)
==
0
)
{
}
else
if
(
flexran_get_duplex_mode
(
mod
_id
,
i
)
==
0
)
{
cell_conf
[
i
]
->
duplex_mode
=
PROTOCOL__FLEX_DUPLEX_MODE__FLDM_TDD
;
}
cell_conf
[
i
]
->
has_duplex_mode
=
1
;
//TODO: Fill in with actual value, DL/UL subframe assignment. TDD only
cell_conf
[
i
]
->
subframe_assignment
=
flexran_get_subframe_assignment
(
enb
_id
,
i
);
cell_conf
[
i
]
->
subframe_assignment
=
flexran_get_subframe_assignment
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_subframe_assignment
=
0
;
//TODO: Fill in with actual value, TDD only. See TS 36.211, table 4.2.1
cell_conf
[
i
]
->
special_subframe_patterns
=
flexran_get_special_subframe_assignment
(
enb
_id
,
i
);
cell_conf
[
i
]
->
special_subframe_patterns
=
flexran_get_special_subframe_assignment
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_special_subframe_patterns
=
0
;
//TODO: Fill in with actual value, The MBSFN radio frame period
cell_conf
[
i
]
->
n_mbsfn_subframe_config_rfperiod
=
0
;
...
...
@@ -954,7 +953,7 @@ int flexran_agent_enb_config_reply(mid_t mod_id, const void *params, Protocol__F
elem_rfperiod
[
j
]
=
1
;
}
cell_conf
[
i
]
->
mbsfn_subframe_config_rfperiod
=
elem_rfperiod
;
//TODO: Fill in with actual value, The MBSFN radio frame offset
cell_conf
[
i
]
->
n_mbsfn_subframe_config_rfoffset
=
0
;
uint32_t
*
elem_rfoffset
;
...
...
@@ -965,7 +964,7 @@ int flexran_agent_enb_config_reply(mid_t mod_id, const void *params, Protocol__F
elem_rfoffset
[
j
]
=
1
;
}
cell_conf
[
i
]
->
mbsfn_subframe_config_rfoffset
=
elem_rfoffset
;
//TODO: Fill in with actual value, Bitmap indicating the MBSFN subframes
cell_conf
[
i
]
->
n_mbsfn_subframe_config_sfalloc
=
0
;
uint32_t
*
elem_sfalloc
;
...
...
@@ -976,63 +975,62 @@ int flexran_agent_enb_config_reply(mid_t mod_id, const void *params, Protocol__F
elem_sfalloc
[
j
]
=
1
;
}
cell_conf
[
i
]
->
mbsfn_subframe_config_sfalloc
=
elem_sfalloc
;
cell_conf
[
i
]
->
prach_config_index
=
flexran_get_prach_ConfigIndex
(
enb
_id
,
i
);
cell_conf
[
i
]
->
prach_config_index
=
flexran_get_prach_ConfigIndex
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_prach_config_index
=
1
;
cell_conf
[
i
]
->
prach_freq_offset
=
flexran_get_prach_FreqOffset
(
enb
_id
,
i
);
cell_conf
[
i
]
->
prach_freq_offset
=
flexran_get_prach_FreqOffset
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_prach_freq_offset
=
1
;
cell_conf
[
i
]
->
ra_response_window_size
=
flexran_get_ra_ResponseWindowSize
(
enb
_id
,
i
);
cell_conf
[
i
]
->
ra_response_window_size
=
flexran_get_ra_ResponseWindowSize
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_ra_response_window_size
=
1
;
cell_conf
[
i
]
->
mac_contention_resolution_timer
=
flexran_get_mac_ContentionResolutionTimer
(
enb
_id
,
i
);
cell_conf
[
i
]
->
mac_contention_resolution_timer
=
flexran_get_mac_ContentionResolutionTimer
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_mac_contention_resolution_timer
=
1
;
cell_conf
[
i
]
->
max_harq_msg3tx
=
flexran_get_maxHARQ_Msg3Tx
(
enb
_id
,
i
);
cell_conf
[
i
]
->
max_harq_msg3tx
=
flexran_get_maxHARQ_Msg3Tx
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_max_harq_msg3tx
=
1
;
cell_conf
[
i
]
->
n1pucch_an
=
flexran_get_n1pucch_an
(
enb
_id
,
i
);
cell_conf
[
i
]
->
n1pucch_an
=
flexran_get_n1pucch_an
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_n1pucch_an
=
1
;
cell_conf
[
i
]
->
deltapucch_shift
=
flexran_get_deltaPUCCH_Shift
(
enb
_id
,
i
);
cell_conf
[
i
]
->
deltapucch_shift
=
flexran_get_deltaPUCCH_Shift
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_deltapucch_shift
=
1
;
cell_conf
[
i
]
->
nrb_cqi
=
flexran_get_nRB_CQI
(
enb
_id
,
i
);
cell_conf
[
i
]
->
nrb_cqi
=
flexran_get_nRB_CQI
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_nrb_cqi
=
1
;
cell_conf
[
i
]
->
srs_subframe_config
=
flexran_get_srs_SubframeConfig
(
enb
_id
,
i
);
cell_conf
[
i
]
->
srs_subframe_config
=
flexran_get_srs_SubframeConfig
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_srs_subframe_config
=
1
;
cell_conf
[
i
]
->
srs_bw_config
=
flexran_get_srs_BandwidthConfig
(
enb
_id
,
i
);
cell_conf
[
i
]
->
srs_bw_config
=
flexran_get_srs_BandwidthConfig
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_srs_bw_config
=
1
;
cell_conf
[
i
]
->
srs_mac_up_pts
=
flexran_get_srs_MaxUpPts
(
enb
_id
,
i
);
cell_conf
[
i
]
->
srs_mac_up_pts
=
flexran_get_srs_MaxUpPts
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_srs_mac_up_pts
=
1
;
cell_conf
[
i
]
->
dl_freq
=
flexran_agent_get_operating_dl_freq
(
enb
_id
,
i
);
cell_conf
[
i
]
->
dl_freq
=
flexran_agent_get_operating_dl_freq
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_dl_freq
=
1
;
cell_conf
[
i
]
->
ul_freq
=
flexran_agent_get_operating_ul_freq
(
enb
_id
,
i
);
cell_conf
[
i
]
->
ul_freq
=
flexran_agent_get_operating_ul_freq
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_ul_freq
=
1
;
cell_conf
[
i
]
->
eutra_band
=
flexran_agent_get_operating_eutra_band
(
enb
_id
,
i
);
cell_conf
[
i
]
->
eutra_band
=
flexran_agent_get_operating_eutra_band
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_eutra_band
=
1
;
cell_conf
[
i
]
->
dl_pdsch_power
=
flexran_agent_get_operating_pdsch_refpower
(
enb
_id
,
i
);
cell_conf
[
i
]
->
dl_pdsch_power
=
flexran_agent_get_operating_pdsch_refpower
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_dl_pdsch_power
=
1
;
cell_conf
[
i
]
->
ul_pusch_power
=
flexran_agent_get_operating_pusch_p0
(
enb
_id
,
i
);
cell_conf
[
i
]
->
ul_pusch_power
=
flexran_agent_get_operating_pusch_p0
(
mod
_id
,
i
);
cell_conf
[
i
]
->
has_ul_pusch_power
=
1
;
if
(
flexran_get_enable64QAM
(
enb
_id
,
i
)
==
0
)
{
if
(
flexran_get_enable64QAM
(
mod
_id
,
i
)
==
0
)
{
cell_conf
[
i
]
->
enable_64qam
=
PROTOCOL__FLEX_QAM__FLEQ_MOD_16QAM
;
}
else
if
(
flexran_get_enable64QAM
(
enb
_id
,
i
)
==
1
)
{
}
else
if
(
flexran_get_enable64QAM
(
mod
_id
,
i
)
==
1
)
{
cell_conf
[
i
]
->
enable_64qam
=
PROTOCOL__FLEX_QAM__FLEQ_MOD_64QAM
;
}
cell_conf
[
i
]
->
has_enable_64qam
=
1
;
cell_conf
[
i
]
->
carrier_index
=
i
;
cell_conf
[
i
]
->
has_carrier_index
=
1
;
}
...
...
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