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
lizhongxiao
OpenXG-RAN
Commits
164397b0
Commit
164397b0
authored
Jun 14, 2020
by
MaheshK1995
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
resolved pack/unpack issue
parent
3343d93d
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
304 additions
and
23 deletions
+304
-23
nfapi/README.md
nfapi/README.md
+9
-9
nfapi/oai_integration/nfapi_pnf.c
nfapi/oai_integration/nfapi_pnf.c
+205
-8
nfapi/oai_integration/nfapi_vnf.c
nfapi/oai_integration/nfapi_vnf.c
+15
-2
nfapi/open-nFAPI/nfapi/src/nfapi_p5.c
nfapi/open-nFAPI/nfapi/src/nfapi_p5.c
+9
-4
openair2/LAYER2/NR_MAC_gNB/config.c
openair2/LAYER2/NR_MAC_gNB/config.c
+66
-0
No files found.
nfapi/README.md
View file @
164397b0
# Changelog
# Changelog
each change log shoudl contain the list of commit IDs, the id of issues fixed
### 14/06/20
*
we are not clear on how the parameters are extracted from the config file
*
in ssc struct
*
for some values it is okay and for others it is zero (in
`config_request`
)
*
This causes Assertion Failures leading to termination on PNF side.
| COMMIT ID: | changes |
### 15/06/20
|---------------|-----------|
*
The values to config request are assigned in:
`config_common()`
in
`config.c`
| 6ba001ae9 | modified
`.gitignore file`
|
*
need to add lines for
`cfg->nfapi_config`
*
the config request unpacked on pnf side still has some zero values, which causes assertional failure in from_nrarfcn()
`.gitignore`
: N/A
\ No newline at end of file
```
+ .vscode/*
```
\ No newline at end of file
nfapi/oai_integration/nfapi_pnf.c
View file @
164397b0
...
@@ -466,15 +466,212 @@ int param_request(nfapi_pnf_config_t *config, nfapi_pnf_phy_config_t *phy, nfapi
...
@@ -466,15 +466,212 @@ int param_request(nfapi_pnf_config_t *config, nfapi_pnf_phy_config_t *phy, nfapi
nfapi_resp
.
header
.
phy_id
=
req
->
header
.
phy_id
;
nfapi_resp
.
header
.
phy_id
=
req
->
header
.
phy_id
;
nfapi_resp
.
error_code
=
0
;
// DJP - what value???
nfapi_resp
.
error_code
=
0
;
// DJP - what value???
struct
sockaddr_in
pnf_p7_sockaddr
;
struct
sockaddr_in
pnf_p7_sockaddr
;
pnf_p7_sockaddr
.
sin_addr
.
s_addr
=
inet_addr
(
pnf
->
phys
[
0
].
local_addr
);
// ASSIGN TAGS
{
nfapi_resp
.
cell_param
.
release_capability
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_RELEASE_CAPABILITY_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
cell_param
.
phy_state
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PHY_STATE_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
cell_param
.
skip_blank_dl_config
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_SKIP_BLANK_DL_CONFIG_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
cell_param
.
skip_blank_ul_config
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_SKIP_BLANK_UL_CONFIG_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
cell_param
.
num_config_tlvs_to_report
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_NUM_CONFIG_TLVS_TO_REPORT_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
carrier_param
.
cyclic_prefix
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_CYCLIC_PREFIX_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
carrier_param
.
supported_subcarrier_spacings_dl
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_SUPPORTED_SUBCARRIER_SPACINGS_DL_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
carrier_param
.
supported_bandwidth_dl
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_SUPPORTED_BANDWIDTH_DL_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
carrier_param
.
supported_subcarrier_spacings_ul
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_SUPPORTED_SUBCARRIER_SPACINGS_UL_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
carrier_param
.
supported_bandwidth_ul
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_SUPPORTED_BANDWIDTH_UL_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pdcch_param
.
cce_mapping_type
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_CCE_MAPPING_TYPE_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pdcch_param
.
coreset_outside_first_3_of_ofdm_syms_of_slot
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_CORESET_OUTSIDE_FIRST_3_OFDM_SYMS_OF_SLOT_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pdcch_param
.
coreset_precoder_granularity_coreset
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PRECODER_GRANULARITY_CORESET_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pdcch_param
.
pdcch_mu_mimo
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PDCCH_MU_MIMO_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pdcch_param
.
pdcch_precoder_cycling
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PDCCH_PRECODER_CYCLING_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pdcch_param
.
max_pdcch_per_slot
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_MAX_PDCCHS_PER_SLOT_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pucch_param
.
pucch_formats
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PUCCH_FORMATS_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pucch_param
.
max_pucchs_per_slot
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_MAX_PUCCHS_PER_SLOT_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pdsch_param
.
pdsch_mapping_type
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PDSCH_MAPPING_TYPE_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pdsch_param
.
pdsch_dmrs_additional_pos
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PDSCH_DMRS_ADDITIONAL_POS_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pdsch_param
.
pdsch_allocation_types
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PDSCH_ALLOCATION_TYPES_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pdsch_param
.
pdsch_vrb_to_prb_mapping
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PDSCH_VRB_TO_PRB_MAPPING_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pdsch_param
.
pdsch_cbg
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PDSCH_CBG_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pdsch_param
.
pdsch_dmrs_config_types
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PDSCH_DMRS_CONFIG_TYPES_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pdsch_param
.
max_number_mimo_layers_pdsch
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_MAX_NUMBER_MIMO_LAYERS_PDSCH_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pdsch_param
.
max_mu_mimo_users_dl
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_MAX_MU_MIMO_USERS_DL_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pdsch_param
.
pdsch_data_in_dmrs_symbols
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PDSCH_DATA_IN_DMRS_SYMBOLS_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pdsch_param
.
premption_support
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PREMPTION_SUPPORT_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pdsch_param
.
pdsch_non_slot_support
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PDSCH_NON_SLOT_SUPPORT_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pusch_param
.
uci_mux_ulsch_in_pusch
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_UCI_MUX_ULSCH_IN_PUSCH_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pusch_param
.
uci_only_pusch
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_UCI_ONLY_PUSCH_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pusch_param
.
pusch_frequency_hopping
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PUSCH_FREQUENCY_HOPPING_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pusch_param
.
pusch_dmrs_config_types
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PUSCH_DMRS_CONFIG_TYPES_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pusch_param
.
pusch_dmrs_max_len
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PUSCH_DMRS_MAX_LEN_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pusch_param
.
pusch_dmrs_additional_pos
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PUSCH_DMRS_ADDITIONAL_POS_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pusch_param
.
pusch_cbg
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PUSCH_CBG_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pusch_param
.
pusch_mapping_type
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PUSCH_MAPPING_TYPE_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pusch_param
.
pusch_allocation_types
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PUSCH_ALLOCATION_TYPES_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pusch_param
.
pusch_vrb_to_prb_mapping
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PUSCH_VRB_TO_PRB_MAPPING_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pusch_param
.
pusch_max_ptrs_ports
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PUSCH_MAX_PTRS_PORTS_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pusch_param
.
max_pduschs_tbs_per_slot
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_MAX_PDUSCHS_TBS_PER_SLOT_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pusch_param
.
max_number_mimo_layers_non_cb_pusch
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_MAX_NUMBER_MIMO_LAYERS_NON_CB_PUSCH_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pusch_param
.
supported_modulation_order_ul
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_SUPPORTED_MODULATION_ORDER_UL_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pusch_param
.
max_mu_mimo_users_ul
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_MAX_MU_MIMO_USERS_UL_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pusch_param
.
dfts_ofdm_support
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_DFTS_OFDM_SUPPORT_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
pusch_param
.
pusch_aggregation_factor
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PUSCH_AGGREGATION_FACTOR_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
prach_param
.
prach_long_formats
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PRACH_LONG_FORMATS_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
prach_param
.
prach_short_formats
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PRACH_SHORT_FORMATS_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
prach_param
.
prach_restricted_sets
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_PRACH_RESTRICTED_SETS_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
prach_param
.
max_prach_fd_occasions_in_a_slot
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_MAX_PRACH_FD_OCCASIONS_IN_A_SLOT_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
measurement_param
.
rssi_measurement_support
.
tl
.
tag
=
NFAPI_NR_PARAM_TLV_RSSI_MEASUREMENT_SUPPORT_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
nfapi_config
.
p7_vnf_address_ipv4
.
tl
.
tag
=
NFAPI_NR_NFAPI_P7_VNF_ADDRESS_IPV4_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
nfapi_config
.
p7_vnf_address_ipv6
.
tl
.
tag
=
NFAPI_NR_NFAPI_P7_VNF_ADDRESS_IPV6_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
nfapi_config
.
p7_vnf_port
.
tl
.
tag
=
NFAPI_NR_NFAPI_P7_VNF_PORT_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
nfapi_config
.
p7_pnf_address_ipv4
.
tl
.
tag
=
NFAPI_NR_NFAPI_P7_PNF_ADDRESS_IPV4_TAG
;
nfapi_resp
.
nfapi_config
.
p7_pnf_address_ipv4
.
tl
.
tag
=
NFAPI_NR_NFAPI_P7_PNF_ADDRESS_IPV4_TAG
;
memcpy
(
nfapi_resp
.
nfapi_config
.
p7_pnf_address_ipv4
.
address
,
&
pnf_p7_sockaddr
.
sin_addr
.
s_addr
,
4
);
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
num_tlv
++
;
// P7 PNF Port
nfapi_resp
.
nfapi_config
.
p7_pnf_address_ipv6
.
tl
.
tag
=
NFAPI_NR_NFAPI_P7_PNF_ADDRESS_IPV6_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
nfapi_config
.
p7_pnf_port
.
tl
.
tag
=
NFAPI_NR_NFAPI_P7_PNF_PORT_TAG
;
nfapi_resp
.
nfapi_config
.
p7_pnf_port
.
tl
.
tag
=
NFAPI_NR_NFAPI_P7_PNF_PORT_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
nfapi_config
.
dl_ue_per_sf
.
tl
.
tag
=
NFAPI_NR_NFAPI_DOWNLINK_UES_PER_SUBFRAME_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
nfapi_config
.
ul_ue_per_sf
.
tl
.
tag
=
NFAPI_NR_NFAPI_UPLINK_UES_PER_SUBFRAME_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
nfapi_config
.
rf_bands
.
tl
.
tag
=
NFAPI_NR_NFAPI_RF_BANDS_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
nfapi_config
.
timing_window
.
tl
.
tag
=
NFAPI_NR_NFAPI_TIMING_WINDOW_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
nfapi_config
.
timing_info_mode
.
tl
.
tag
=
NFAPI_NR_NFAPI_TIMING_INFO_MODE_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
nfapi_config
.
timing_info_period
.
tl
.
tag
=
NFAPI_NR_NFAPI_TIMING_INFO_PERIOD_TAG
;
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
nfapi_config
.
max_transmit_power
.
tl
.
tag
=
NFAPI_NR_NFAPI_MAXIMUM_TRANSMIT_POWER_TAG
;
nfapi_resp
.
num_tlv
++
;
}
nfapi_resp
.
nfapi_config
.
p7_pnf_port
.
value
=
pnf
->
phys
[
0
].
local_port
;
// 32123; // DJP - hard code alert!!!! FIXME TODO
nfapi_resp
.
nfapi_config
.
p7_pnf_port
.
value
=
pnf
->
phys
[
0
].
local_port
;
// 32123; // DJP - hard code alert!!!! FIXME TODO
nfapi_resp
.
num_tlv
++
;
nfapi_resp
.
num_tlv
++
;
pnf_p7_sockaddr
.
sin_addr
.
s_addr
=
inet_addr
(
pnf
->
phys
[
0
].
local_addr
);
memcpy
(
nfapi_resp
.
nfapi_config
.
p7_pnf_address_ipv4
.
address
,
&
pnf_p7_sockaddr
.
sin_addr
.
s_addr
,
4
);
nfapi_resp
.
num_tlv
++
;
// P7 PNF Port
printf
(
"TAG value :%d"
,
nfapi_resp
.
cell_param
.
phy_state
.
tl
.
tag
);
nfapi_pnf_param_resp
(
config
,
&
nfapi_resp
);
nfapi_pnf_param_resp
(
config
,
&
nfapi_resp
);
printf
(
"[PNF] Sent NFAPI_PNF_PARAM_RESPONSE phy_id:%d number_of_tlvs:%u
\n
"
,
req
->
header
.
phy_id
,
nfapi_resp
.
num_tlv
);
printf
(
"[PNF] Sent NFAPI_PNF_PARAM_RESPONSE phy_id:%d number_of_tlvs:%u
\n
"
,
req
->
header
.
phy_id
,
nfapi_resp
.
num_tlv
);
printf
(
"[PNF] param request .. exit
\n
"
);
printf
(
"[PNF] param request .. exit
\n
"
);
return
0
;
return
0
;
...
@@ -498,7 +695,7 @@ int config_request(nfapi_pnf_config_t *config, nfapi_pnf_phy_config_t *phy, nfap
...
@@ -498,7 +695,7 @@ int config_request(nfapi_pnf_config_t *config, nfapi_pnf_phy_config_t *phy, nfap
phy_info
*
phy_info
=
pnf
->
phys
;
phy_info
*
phy_info
=
pnf
->
phys
;
printf
(
"
\n
Timing window tag: %d
\n
"
,
NFAPI_NR_NFAPI_TIMING_WINDOW_TAG
);
if
(
req
->
nfapi_config
.
timing_window
.
tl
.
tag
==
NFAPI_NR_NFAPI_TIMING_WINDOW_TAG
)
{
if
(
req
->
nfapi_config
.
timing_window
.
tl
.
tag
==
NFAPI_NR_NFAPI_TIMING_WINDOW_TAG
)
{
phy_info
->
timing_window
=
req
->
nfapi_config
.
timing_window
.
value
;
phy_info
->
timing_window
=
req
->
nfapi_config
.
timing_window
.
value
;
printf
(
"Phy_info:Timing window:%u NFAPI_CONFIG:timing_window:%u
\n
"
,
phy_info
->
timing_window
,
req
->
nfapi_config
.
timing_window
.
value
);
printf
(
"Phy_info:Timing window:%u NFAPI_CONFIG:timing_window:%u
\n
"
,
phy_info
->
timing_window
,
req
->
nfapi_config
.
timing_window
.
value
);
...
@@ -545,7 +742,7 @@ int config_request(nfapi_pnf_config_t *config, nfapi_pnf_phy_config_t *phy, nfap
...
@@ -545,7 +742,7 @@ int config_request(nfapi_pnf_config_t *config, nfapi_pnf_phy_config_t *phy, nfap
}
}
if
(
req
->
nfapi_config
.
nrarfcn
.
tl
.
tag
==
NFAPI_NR_NFAPI_NRARFCN_TAG
)
{
if
(
req
->
nfapi_config
.
nrarfcn
.
tl
.
tag
==
NFAPI_NR_NFAPI_NRARFCN_TAG
)
{
fp
->
dl_CarrierFreq
=
from_nrarfcn
(
fp
->
nr_band
,
0
,
req
->
nfapi_config
.
nrarfcn
.
value
);
// TODO: give SCS index
fp
->
dl_CarrierFreq
=
from_nrarfcn
(
78
,
req
->
ssb_config
.
scs_common
.
value
,
req
->
nfapi_config
.
nrarfcn
.
value
);
fp
->
ul_CarrierFreq
=
fp
->
dl_CarrierFreq
-
(
get_nr_uldl_offset
(
fp
->
nr_band
)
*
1e5
);
// TODO: why 1e5 ?
fp
->
ul_CarrierFreq
=
fp
->
dl_CarrierFreq
-
(
get_nr_uldl_offset
(
fp
->
nr_band
)
*
1e5
);
// TODO: why 1e5 ?
num_tlv
++
;
num_tlv
++
;
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"%s() nrarfcn:%u dl_carrierFreq:%u ul_CarrierFreq:%u band:%u N_RB_DL:%u
\n
"
,
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"%s() nrarfcn:%u dl_carrierFreq:%u ul_CarrierFreq:%u band:%u N_RB_DL:%u
\n
"
,
...
...
nfapi/oai_integration/nfapi_vnf.c
View file @
164397b0
...
@@ -42,6 +42,9 @@
...
@@ -42,6 +42,9 @@
#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"
#define TEST
extern
RAN_CONTEXT_t
RC
;
extern
RAN_CONTEXT_t
RC
;
extern
UL_RCC_IND_t
UL_RCC_INFO
;
extern
UL_RCC_IND_t
UL_RCC_INFO
;
...
@@ -1013,6 +1016,15 @@ int pnf_start_resp_cb(nfapi_vnf_config_t *config, int p5_idx, nfapi_pnf_start_re
...
@@ -1013,6 +1016,15 @@ int pnf_start_resp_cb(nfapi_vnf_config_t *config, int p5_idx, nfapi_pnf_start_re
extern
uint32_t
to_earfcn
(
int
eutra_bandP
,
uint32_t
dl_CarrierFreq
,
uint32_t
bw
);
extern
uint32_t
to_earfcn
(
int
eutra_bandP
,
uint32_t
dl_CarrierFreq
,
uint32_t
bw
);
int
param_resp_cb
(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_nr_param_response_scf_t
*
resp
)
{
int
param_resp_cb
(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_nr_param_response_scf_t
*
resp
)
{
#ifdef TEST
if
(
resp
->
cell_param
.
phy_state
.
tl
.
tag
==
NFAPI_NR_PARAM_TLV_PHY_STATE_TAG
)
printf
(
"
\n\n
Matched
\n\n
"
);
// like this we can check for all the tags
#endif
printf
(
"[VNF] Received NFAPI_PARAM_RESP idx:%d phy_id:%d
\n
"
,
p5_idx
,
resp
->
header
.
phy_id
);
printf
(
"[VNF] Received NFAPI_PARAM_RESP idx:%d phy_id:%d
\n
"
,
p5_idx
,
resp
->
header
.
phy_id
);
vnf_info
*
vnf
=
(
vnf_info
*
)(
config
->
user_data
);
vnf_info
*
vnf
=
(
vnf_info
*
)(
config
->
user_data
);
vnf_p7_info
*
p7_vnf
=
vnf
->
p7_vnfs
;
vnf_p7_info
*
p7_vnf
=
vnf
->
p7_vnfs
;
...
@@ -1020,7 +1032,6 @@ int param_resp_cb(nfapi_vnf_config_t *config, int p5_idx, nfapi_nr_param_respons
...
@@ -1020,7 +1032,6 @@ int param_resp_cb(nfapi_vnf_config_t *config, int p5_idx, nfapi_nr_param_respons
phy_info
*
phy
=
pnf
->
phys
;
phy_info
*
phy
=
pnf
->
phys
;
struct
sockaddr_in
pnf_p7_sockaddr
;
struct
sockaddr_in
pnf_p7_sockaddr
;
nfapi_nr_config_request_scf_t
*
req
=
&
RC
.
nrmac
[
0
]
->
config
[
0
];
// check
nfapi_nr_config_request_scf_t
*
req
=
&
RC
.
nrmac
[
0
]
->
config
[
0
];
// check
phy
->
remote_port
=
resp
->
nfapi_config
.
p7_pnf_port
.
value
;
phy
->
remote_port
=
resp
->
nfapi_config
.
p7_pnf_port
.
value
;
memcpy
(
&
pnf_p7_sockaddr
.
sin_addr
.
s_addr
,
&
(
resp
->
nfapi_config
.
p7_pnf_address_ipv4
.
address
[
0
]),
4
);
memcpy
(
&
pnf_p7_sockaddr
.
sin_addr
.
s_addr
,
&
(
resp
->
nfapi_config
.
p7_pnf_address_ipv4
.
address
[
0
]),
4
);
phy
->
remote_addr
=
inet_ntoa
(
pnf_p7_sockaddr
.
sin_addr
);
phy
->
remote_addr
=
inet_ntoa
(
pnf_p7_sockaddr
.
sin_addr
);
...
@@ -1030,6 +1041,8 @@ int param_resp_cb(nfapi_vnf_config_t *config, int p5_idx, nfapi_nr_param_respons
...
@@ -1030,6 +1041,8 @@ int param_resp_cb(nfapi_vnf_config_t *config, int p5_idx, nfapi_nr_param_respons
req
->
header
.
message_id
=
NFAPI_CONFIG_REQUEST
;
req
->
header
.
message_id
=
NFAPI_CONFIG_REQUEST
;
req
->
header
.
phy_id
=
phy
->
id
;
req
->
header
.
phy_id
=
phy
->
id
;
printf
(
"[VNF] Send NFAPI_CONFIG_REQUEST
\n
"
);
printf
(
"[VNF] Send NFAPI_CONFIG_REQUEST
\n
"
);
printf
(
"
\n
NR bandP =%d
\n
"
,
req
->
nfapi_config
.
rf_bands
.
rf_band
[
0
]);
req
->
nfapi_config
.
p7_vnf_port
.
tl
.
tag
=
NFAPI_NR_NFAPI_P7_VNF_PORT_TAG
;
req
->
nfapi_config
.
p7_vnf_port
.
tl
.
tag
=
NFAPI_NR_NFAPI_P7_VNF_PORT_TAG
;
req
->
nfapi_config
.
p7_vnf_port
.
value
=
p7_vnf
->
local_port
;
req
->
nfapi_config
.
p7_vnf_port
.
value
=
p7_vnf
->
local_port
;
req
->
num_tlv
++
;
req
->
num_tlv
++
;
...
@@ -1042,7 +1055,7 @@ int param_resp_cb(nfapi_vnf_config_t *config, int p5_idx, nfapi_nr_param_respons
...
@@ -1042,7 +1055,7 @@ int param_resp_cb(nfapi_vnf_config_t *config, int p5_idx, nfapi_nr_param_respons
printf
(
"[VNF] DJP local_addr:%s
\n
"
,
p7_vnf
->
local_addr
);
printf
(
"[VNF] DJP local_addr:%s
\n
"
,
p7_vnf
->
local_addr
);
req
->
nfapi_config
.
timing_window
.
tl
.
tag
=
NFAPI_NR_NFAPI_TIMING_WINDOW_TAG
;
req
->
nfapi_config
.
timing_window
.
tl
.
tag
=
NFAPI_NR_NFAPI_TIMING_WINDOW_TAG
;
req
->
nfapi_config
.
timing_window
.
value
=
p7_vnf
->
timing_window
;
req
->
nfapi_config
.
timing_window
.
value
=
p7_vnf
->
timing_window
;
printf
(
"
[VNF] Timing window:%u
\n
"
,
p7_vnf
->
timing_window
);
printf
(
"
\n
[VNF]Timing window tag : %d Timing window:%u
\n
"
,
NFAPI_NR_NFAPI_TIMING_WINDOW_TAG
,
p7_vnf
->
timing_window
);
req
->
num_tlv
++
;
req
->
num_tlv
++
;
if
(
p7_vnf
->
periodic_timing_enabled
||
p7_vnf
->
aperiodic_timing_enabled
)
{
if
(
p7_vnf
->
periodic_timing_enabled
||
p7_vnf
->
aperiodic_timing_enabled
)
{
...
...
nfapi/open-nFAPI/nfapi/src/nfapi_p5.c
View file @
164397b0
...
@@ -697,8 +697,8 @@ static uint8_t pack_config_request(void *msg, uint8_t **ppWritePackedMsg, uint8_
...
@@ -697,8 +697,8 @@ static uint8_t pack_config_request(void *msg, uint8_t **ppWritePackedMsg, uint8_
pack_tlv
(
NFAPI_NR_CONFIG_MIB_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
MIB
),
ppWritePackedMsg
,
end
,
&
pack_uint32_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_CONFIG_MIB_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
MIB
),
ppWritePackedMsg
,
end
,
&
pack_uint32_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_CONFIG_MULTIPLE_CELLS_SS_PBCH_IN_A_CARRIER_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
multiple_cells_ss_pbch_in_a_carrier
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_CONFIG_MULTIPLE_CELLS_SS_PBCH_IN_A_CARRIER_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
multiple_cells_ss_pbch_in_a_carrier
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_CONFIG_SS_PBCH_MULTIPLE_CARRIERS_IN_A_BAND_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ss_pbch_multiple_carriers_in_a_band
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_CONFIG_SS_PBCH_MULTIPLE_CARRIERS_IN_A_BAND_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ss_pbch_multiple_carriers_in_a_band
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
//
pack_tlv(NFAPI_NR_CONFIG_BEAM_ID_TAG, &(pNfapiMsg->ssb_table.ssb_beam_id_list->
beam_id), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
//
pack_tlv(NFAPI_NR_CONFIG_BEAM_ID_TAG, &(pNfapiMsg->ssb_table.ssb_beam_id_list[0].
beam_id), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
//pack_tlv(NFAPI_NR_CONFIG_SSB_MASK_TAG, &(pNfapiMsg->ssb_table.ssb_mask_list->
ssb_mask), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
pack_tlv
(
NFAPI_NR_CONFIG_SSB_MASK_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ssb_mask_list
[
0
].
ssb_mask
),
ppWritePackedMsg
,
end
,
&
pack_uint16_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_CONFIG_SSB_OFFSET_POINT_A_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ssb_offset_point_a
),
ppWritePackedMsg
,
end
,
&
pack_uint16_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_CONFIG_SSB_OFFSET_POINT_A_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ssb_offset_point_a
),
ppWritePackedMsg
,
end
,
&
pack_uint16_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_CONFIG_SSB_PERIOD_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ssb_period
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_CONFIG_SSB_PERIOD_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ssb_period
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_CONFIG_SSB_SUBCARRIER_OFFSET_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ssb_subcarrier_offset
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_CONFIG_SSB_SUBCARRIER_OFFSET_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ssb_subcarrier_offset
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
...
@@ -1611,6 +1611,7 @@ static uint8_t unpack_config_request(uint8_t **ppReadPackedMsg, uint8_t *end, vo
...
@@ -1611,6 +1611,7 @@ static uint8_t unpack_config_request(uint8_t **ppReadPackedMsg, uint8_t *end, vo
unpack_tlv_t
unpack_fns
[]
=
unpack_tlv_t
unpack_fns
[]
=
{
{
{
NFAPI_NR_CONFIG_DL_BANDWIDTH_TAG
,
&
(
pNfapiMsg
->
carrier_config
.
dl_bandwidth
),
&
unpack_uint16_tlv_value
},
{
NFAPI_NR_CONFIG_DL_FREQUENCY_TAG
,
&
(
pNfapiMsg
->
carrier_config
.
dl_frequency
),
&
unpack_uint32_tlv_value
},
{
NFAPI_NR_CONFIG_DL_FREQUENCY_TAG
,
&
(
pNfapiMsg
->
carrier_config
.
dl_frequency
),
&
unpack_uint32_tlv_value
},
{
NFAPI_NR_CONFIG_DL_GRID_SIZE_TAG
,
&
(
pNfapiMsg
->
carrier_config
.
dl_grid_size
),
&
unpack_uint16_tlv_value
},
{
NFAPI_NR_CONFIG_DL_GRID_SIZE_TAG
,
&
(
pNfapiMsg
->
carrier_config
.
dl_grid_size
),
&
unpack_uint16_tlv_value
},
{
NFAPI_NR_CONFIG_DL_K0_TAG
,
&
(
pNfapiMsg
->
carrier_config
.
dl_k0
),
&
unpack_uint16_tlv_value
},
{
NFAPI_NR_CONFIG_DL_K0_TAG
,
&
(
pNfapiMsg
->
carrier_config
.
dl_k0
),
&
unpack_uint16_tlv_value
},
...
@@ -1637,6 +1638,8 @@ static uint8_t unpack_config_request(uint8_t **ppReadPackedMsg, uint8_t *end, vo
...
@@ -1637,6 +1638,8 @@ static uint8_t unpack_config_request(uint8_t **ppReadPackedMsg, uint8_t *end, vo
{
NFAPI_NR_CONFIG_MIB_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
MIB
),
&
unpack_uint32_tlv_value
},
{
NFAPI_NR_CONFIG_MIB_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
MIB
),
&
unpack_uint32_tlv_value
},
{
NFAPI_NR_CONFIG_MULTIPLE_CELLS_SS_PBCH_IN_A_CARRIER_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
multiple_cells_ss_pbch_in_a_carrier
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_CONFIG_MULTIPLE_CELLS_SS_PBCH_IN_A_CARRIER_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
multiple_cells_ss_pbch_in_a_carrier
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_CONFIG_SS_PBCH_MULTIPLE_CARRIERS_IN_A_BAND_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ss_pbch_multiple_carriers_in_a_band
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_CONFIG_SS_PBCH_MULTIPLE_CARRIERS_IN_A_BAND_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ss_pbch_multiple_carriers_in_a_band
),
&
unpack_uint8_tlv_value
},
// { NFAPI_NR_CONFIG_BEAM_ID_TAG, &(pNfapiMsg->ssb_table.ssb_beam_id_list[0].beam_id), &unpack_uint16_tlv_value},
{
NFAPI_NR_CONFIG_SSB_MASK_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ssb_mask_list
[
0
].
ssb_mask
),
&
unpack_uint16_tlv_value
},
{
NFAPI_NR_CONFIG_SSB_OFFSET_POINT_A_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ssb_offset_point_a
),
&
unpack_uint16_tlv_value
},
{
NFAPI_NR_CONFIG_SSB_OFFSET_POINT_A_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ssb_offset_point_a
),
&
unpack_uint16_tlv_value
},
{
NFAPI_NR_CONFIG_SSB_PERIOD_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ssb_period
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_CONFIG_SSB_PERIOD_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ssb_period
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_CONFIG_SSB_SUBCARRIER_OFFSET_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ssb_subcarrier_offset
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_CONFIG_SSB_SUBCARRIER_OFFSET_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ssb_subcarrier_offset
),
&
unpack_uint8_tlv_value
},
...
@@ -1774,7 +1777,9 @@ static uint8_t unpack_config_request(uint8_t **ppReadPackedMsg, uint8_t *end, vo
...
@@ -1774,7 +1777,9 @@ static uint8_t unpack_config_request(uint8_t **ppReadPackedMsg, uint8_t *end, vo
};
};
#endif
#endif
return
(
pull8
(
ppReadPackedMsg
,
&
pNfapiMsg
->
num_tlv
,
end
)
&&
return
(
pull8
(
ppReadPackedMsg
,
&
pNfapiMsg
->
error_code
,
end
)
&&
pull8
(
ppReadPackedMsg
,
&
pNfapiMsg
->
num_tlv
,
end
)
&&
unpack_tlv_list
(
unpack_fns
,
sizeof
(
unpack_fns
)
/
sizeof
(
unpack_tlv_t
),
ppReadPackedMsg
,
end
,
config
,
&
pNfapiMsg
->
vendor_extension
));
unpack_tlv_list
(
unpack_fns
,
sizeof
(
unpack_fns
)
/
sizeof
(
unpack_tlv_t
),
ppReadPackedMsg
,
end
,
config
,
&
pNfapiMsg
->
vendor_extension
));
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/config.c
View file @
164397b0
...
@@ -255,6 +255,7 @@ void config_common(int Mod_idP, int pdsch_AntennaPorts, NR_ServingCellConfigComm
...
@@ -255,6 +255,7 @@ void config_common(int Mod_idP, int pdsch_AntennaPorts, NR_ServingCellConfigComm
cfg
->
num_tlv
++
;
cfg
->
num_tlv
++
;
cfg
->
num_tlv
++
;
cfg
->
num_tlv
++
;
// TDD Table Configuration
// TDD Table Configuration
//cfg->tdd_table.tdd_period.value = scc->tdd_UL_DL_ConfigurationCommon->pattern1.dl_UL_TransmissionPeriodicity;
//cfg->tdd_table.tdd_period.value = scc->tdd_UL_DL_ConfigurationCommon->pattern1.dl_UL_TransmissionPeriodicity;
cfg
->
tdd_table
.
tdd_period
.
tl
.
tag
=
NFAPI_NR_CONFIG_TDD_PERIOD_TAG
;
cfg
->
tdd_table
.
tdd_period
.
tl
.
tag
=
NFAPI_NR_CONFIG_TDD_PERIOD_TAG
;
...
@@ -306,6 +307,71 @@ void config_common(int Mod_idP, int pdsch_AntennaPorts, NR_ServingCellConfigComm
...
@@ -306,6 +307,71 @@ void config_common(int Mod_idP, int pdsch_AntennaPorts, NR_ServingCellConfigComm
}*/
}*/
cfg
->
carrier_config
.
frequency_shift_7p5khz
.
tl
.
tag
=
NFAPI_NR_CONFIG_FREQUENCY_SHIFT_7P5KHZ_TAG
;
cfg
->
num_tlv
++
;
cfg
->
measurement_config
.
rssi_measurement
.
tl
.
tag
=
NFAPI_NR_CONFIG_RSSI_MEASUREMENT_TAG
;
cfg
->
num_tlv
++
;
cfg
->
prach_config
.
prach_multiple_carriers_in_a_band
.
tl
.
tag
=
NFAPI_NR_CONFIG_PRACH_MULTIPLE_CARRIERS_IN_A_BAND_TAG
;
cfg
->
num_tlv
++
;
cfg
->
ssb_config
.
bch_payload
.
tl
.
tag
=
NFAPI_NR_CONFIG_BCH_PAYLOAD_TAG
;
cfg
->
num_tlv
++
;
cfg
->
ssb_table
.
beta_pss
.
tl
.
tag
=
NFAPI_NR_CONFIG_BETA_PSS_TAG
;
cfg
->
num_tlv
++
;
cfg
->
ssb_table
.
MIB
.
tl
.
tag
=
NFAPI_NR_CONFIG_MIB_TAG
;
cfg
->
num_tlv
++
;
cfg
->
ssb_table
.
multiple_cells_ss_pbch_in_a_carrier
.
tl
.
tag
=
NFAPI_NR_CONFIG_MULTIPLE_CELLS_SS_PBCH_IN_A_CARRIER_TAG
;
cfg
->
num_tlv
++
;
cfg
->
ssb_table
.
ss_pbch_multiple_carriers_in_a_band
.
tl
.
tag
=
NFAPI_NR_CONFIG_SS_PBCH_MULTIPLE_CARRIERS_IN_A_BAND_TAG
;
cfg
->
num_tlv
++
;
if
(
cfg
->
ssb_table
.
ssb_beam_id_list
!=
NULL
)
{
cfg
->
ssb_table
.
ssb_beam_id_list
[
0
].
beam_id
->
tl
.
tag
=
NFAPI_NR_CONFIG_BEAM_ID_TAG
;
cfg
->
num_tlv
++
;
}
// TODO: assign values to nfapi_config struct
cfg
->
nfapi_config
.
dl_ue_per_sf
.
tl
.
tag
=
NFAPI_NR_NFAPI_DOWNLINK_UES_PER_SUBFRAME_TAG
;
cfg
->
num_tlv
++
;
cfg
->
nfapi_config
.
max_transmit_power
.
tl
.
tag
=
NFAPI_NR_NFAPI_MAXIMUM_TRANSMIT_POWER_TAG
;
cfg
->
num_tlv
++
;
cfg
->
nfapi_config
.
nrarfcn
.
tl
.
tag
=
NFAPI_NR_NFAPI_NRARFCN_TAG
;
cfg
->
nfapi_config
.
nrarfcn
.
value
=
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
;
cfg
->
num_tlv
++
;
cfg
->
nfapi_config
.
p7_pnf_address_ipv4
.
tl
.
tag
=
NFAPI_NR_NFAPI_P7_PNF_ADDRESS_IPV4_TAG
;
cfg
->
num_tlv
++
;
cfg
->
nfapi_config
.
p7_pnf_address_ipv6
.
tl
.
tag
=
NFAPI_NR_NFAPI_P7_PNF_ADDRESS_IPV6_TAG
;
cfg
->
num_tlv
++
;
cfg
->
nfapi_config
.
p7_pnf_port
.
tl
.
tag
=
NFAPI_NR_NFAPI_P7_PNF_PORT_TAG
;
cfg
->
num_tlv
++
;
cfg
->
nfapi_config
.
p7_vnf_address_ipv6
.
tl
.
tag
=
NFAPI_NR_NFAPI_P7_VNF_ADDRESS_IPV6_TAG
;
cfg
->
num_tlv
++
;
cfg
->
nfapi_config
.
rf_bands
.
tl
.
tag
=
NFAPI_NR_NFAPI_RF_BANDS_TAG
;
cfg
->
num_tlv
++
;
cfg
->
nfapi_config
.
rf_bands
.
rf_band
[
0
]
=
*
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
frequencyBandList
.
list
.
array
[
0
];
cfg
->
nfapi_config
.
ul_ue_per_sf
.
tl
.
tag
=
NFAPI_NR_NFAPI_UPLINK_UES_PER_SUBFRAME_TAG
;
cfg
->
num_tlv
++
;
}
}
...
...
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