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
Michael Black
OpenXG-RAN
Commits
fd51a5bd
Commit
fd51a5bd
authored
Jun 04, 2020
by
MaheshK1995
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
PARAM message exchange DONE
parent
776a7440
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
219 additions
and
49 deletions
+219
-49
nfapi/oai_integration/nfapi_pnf.c
nfapi/oai_integration/nfapi_pnf.c
+3
-3
nfapi/oai_integration/nfapi_vnf.c
nfapi/oai_integration/nfapi_vnf.c
+5
-5
nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h
nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h
+1
-1
nfapi/open-nFAPI/nfapi/src/nfapi_p5.c
nfapi/open-nFAPI/nfapi/src/nfapi_p5.c
+193
-23
nfapi/open-nFAPI/pnf/public_inc/nfapi_pnf_interface.h
nfapi/open-nFAPI/pnf/public_inc/nfapi_pnf_interface.h
+1
-1
nfapi/open-nFAPI/pnf/src/pnf_interface.c
nfapi/open-nFAPI/pnf/src/pnf_interface.c
+2
-2
nfapi/open-nFAPI/vnf/public_inc/nfapi_vnf_interface.h
nfapi/open-nFAPI/vnf/public_inc/nfapi_vnf_interface.h
+1
-1
nfapi/open-nFAPI/vnf/src/vnf.c
nfapi/open-nFAPI/vnf/src/vnf.c
+1
-1
nfapi/open-nFAPI/vnf/src/vnf_interface.c
nfapi/open-nFAPI/vnf/src/vnf_interface.c
+6
-6
targets/PROJECTS/GENERIC-LTE-EPC/CONF/oaiL1.nfapi.usrpx300.conf
...s/PROJECTS/GENERIC-LTE-EPC/CONF/oaiL1.nfapi.usrpx300.conf
+3
-3
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band78.tm1.106PRB.nfapi.conf
...CTS/GENERIC-LTE-EPC/CONF/rcc.band78.tm1.106PRB.nfapi.conf
+3
-3
No files found.
nfapi/oai_integration/nfapi_pnf.c
View file @
fd51a5bd
...
...
@@ -459,7 +459,7 @@ int pnf_stop_request(nfapi_pnf_config_t *config, nfapi_pnf_stop_request_t *req)
int
param_request
(
nfapi_pnf_config_t
*
config
,
nfapi_pnf_phy_config_t
*
phy
,
nfapi_nr_param_request_scf_t
*
req
)
{
printf
(
"[PNF] Received NFAPI_PARAM_REQUEST phy_id:%d
\n
"
,
req
->
header
.
phy_id
);
//pnf_info* pnf = (pnf_info*)(config->user_data);
nfapi_
param_response
_t
nfapi_resp
;
nfapi_
nr_param_response_scf
_t
nfapi_resp
;
pnf_info
*
pnf
=
(
pnf_info
*
)(
config
->
user_data
);
memset
(
&
nfapi_resp
,
0
,
sizeof
(
nfapi_resp
));
nfapi_resp
.
header
.
message_id
=
NFAPI_PARAM_RESPONSE
;
...
...
@@ -475,7 +475,7 @@ int param_request(nfapi_pnf_config_t *config, nfapi_pnf_phy_config_t *phy, nfapi
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_pnf_param_resp
(
config
,
&
nfapi_resp
);
printf
(
"[PNF] Sent NFAPI_PARAM_RESPONSE phy_id:%d number_of_tlvs:%u
\n
"
,
req
->
header
.
phy_id
,
nfapi_resp
.
num_tlv
);
printf
(
"[PNF] Sent NFAPI_P
NF_P
ARAM_RESPONSE phy_id:%d number_of_tlvs:%u
\n
"
,
req
->
header
.
phy_id
,
nfapi_resp
.
num_tlv
);
printf
(
"[PNF] param request .. exit
\n
"
);
return
0
;
}
...
...
@@ -676,7 +676,7 @@ int config_request(nfapi_pnf_config_t *config, nfapi_pnf_phy_config_t *phy, nfap
nfapi_resp
.
header
.
phy_id
=
phy_info
->
id
;
nfapi_resp
.
error_code
=
0
;
// DJP - some value resp->error_code;
nfapi_pnf_config_resp
(
config
,
&
nfapi_resp
);
printf
(
"[PNF] Sent NFAPI_CONFIG_RESPONSE phy_id:%d
\n
"
,
phy_info
->
id
);
printf
(
"[PNF] Sent NFAPI_
PNF_
CONFIG_RESPONSE phy_id:%d
\n
"
,
phy_info
->
id
);
if
(
NFAPI_MODE
==
NFAPI_UE_STUB_PNF
)
free
(
fp
);
...
...
nfapi/oai_integration/nfapi_vnf.c
View file @
fd51a5bd
...
...
@@ -981,7 +981,7 @@ void *vnf_p7_thread_start(void *ptr) {
p7_vnf
->
config
->
codec_config
.
deallocate
=
&
vnf_deallocate
;
p7_vnf
->
config
->
allocate_p7_vendor_ext
=
&
phy_allocate_p7_vendor_ext
;
p7_vnf
->
config
->
deallocate_p7_vendor_ext
=
&
phy_deallocate_p7_vendor_ext
;
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"[VNF] Creating VNF NFAPI start thread %s
\n
"
,
__FUNCTION__
);
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"[VNF] Creating VNF NFAPI
P7
start thread %s
\n
"
,
__FUNCTION__
);
pthread_create
(
&
vnf_p7_start_pthread
,
NULL
,
&
vnf_p7_start_thread
,
p7_vnf
->
config
);
return
0
;
}
...
...
@@ -1002,7 +1002,7 @@ int pnf_start_resp_cb(nfapi_vnf_config_t *config, int p5_idx, nfapi_pnf_start_re
}
// start all the phys in the pnf.
printf
(
"[VNF] Sending NFAPI_PARAM_REQUEST phy_id:%d
\n
"
,
pnf
->
phys
[
0
].
id
);
printf
(
"[VNF] Sending NFAPI_
VNF_
PARAM_REQUEST phy_id:%d
\n
"
,
pnf
->
phys
[
0
].
id
);
memset
(
&
req
,
0
,
sizeof
(
req
));
req
.
header
.
message_id
=
NFAPI_PARAM_REQUEST
;
req
.
header
.
phy_id
=
pnf
->
phys
[
0
].
id
;
...
...
@@ -1019,7 +1019,7 @@ int param_resp_cb(nfapi_vnf_config_t *config, int p5_idx, nfapi_nr_param_respons
pnf_info
*
pnf
=
vnf
->
pnfs
;
phy_info
*
phy
=
pnf
->
phys
;
struct
sockaddr_in
pnf_p7_sockaddr
;
nfapi_nr_config_request_t
*
req
=
&
RC
.
nrmac
[
0
]
->
config
[
0
];
nfapi_nr_config_request_
scf_
t
*
req
=
&
RC
.
nrmac
[
0
]
->
config
[
0
];
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
);
phy
->
remote_addr
=
inet_ntoa
(
pnf_p7_sockaddr
.
sin_addr
);
...
...
@@ -1062,7 +1062,7 @@ int param_resp_cb(nfapi_vnf_config_t *config, int p5_idx, nfapi_nr_param_respons
ve2
.
dummy
=
2016
;
req
->
vendor_extension
=
&
ve2
.
tl
;
nfapi_vnf_config_req
(
config
,
p5_idx
,
req
);
printf
(
"[VNF] Sent NFAPI_CONFIG_REQ num_tlv:%u
\n
"
,
req
->
num_tlv
);
printf
(
"[VNF] Sent NFAPI_
VNF_
CONFIG_REQ num_tlv:%u
\n
"
,
req
->
num_tlv
);
return
0
;
}
...
...
@@ -1075,7 +1075,7 @@ int config_resp_cb(nfapi_vnf_config_t *config, int p5_idx, nfapi_config_response
req
.
header
.
message_id
=
NFAPI_START_REQUEST
;
req
.
header
.
phy_id
=
resp
->
header
.
phy_id
;
nfapi_vnf_start_req
(
config
,
p5_idx
,
&
req
);
printf
(
"[VNF] Send NFAPI_START_REQUEST idx:%d phy_id:%d
\n
"
,
p5_idx
,
resp
->
header
.
phy_id
);
printf
(
"[VNF] Send NFAPI_
VNF_
START_REQUEST idx:%d phy_id:%d
\n
"
,
p5_idx
,
resp
->
header
.
phy_id
);
return
0
;
}
...
...
nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h
View file @
fd51a5bd
...
...
@@ -459,7 +459,7 @@ typedef struct {
nfapi_p4_p5_message_header_t
header
;
nfapi_nr_param_errors_e
error_code
;
uint8_t
num
ber_of_tlvs
;
uint8_t
num
_tlv
;
nfapi_vendor_extension_tlv_t
vendor_extension
;
nfapi_nr_cell_param_t
cell_param
;
...
...
nfapi/open-nFAPI/nfapi/src/nfapi_p5.c
View file @
fd51a5bd
...
...
@@ -317,7 +317,7 @@ static uint8_t pack_pnf_stop_response(void *msg, uint8_t **ppWritePackedMsg, uin
}
static
uint8_t
pack_param_request
(
void
*
msg
,
uint8_t
**
ppWritePackedMsg
,
uint8_t
*
end
,
nfapi_p4_p5_codec_config_t
*
config
)
{
{
nfapi_param_request_t
*
pNfapiMsg
=
(
nfapi_param_request_t
*
)
msg
;
return
(
pack_vendor_extension_tlv
(
pNfapiMsg
->
vendor_extension
,
ppWritePackedMsg
,
end
,
config
));
}
...
...
@@ -428,8 +428,100 @@ static uint8_t pack_embms_mbsfn_config_value(void* tlv, uint8_t **ppWritePackedM
//}
static
uint8_t
pack_param_response
(
void
*
msg
,
uint8_t
**
ppWritePackedMsg
,
uint8_t
*
end
,
nfapi_p4_p5_codec_config_t
*
config
)
{
nfapi_param_response_t
*
pNfapiMsg
=
(
nfapi_param_response_t
*
)
msg
;
printf
(
"
\n
RUNNING pack_param_response
\n
"
);
nfapi_nr_param_response_scf_t
*
pNfapiMsg
=
(
nfapi_nr_param_response_scf_t
*
)
msg
;
return
(
push8
(
pNfapiMsg
->
error_code
,
ppWritePackedMsg
,
end
)
&&
push8
(
pNfapiMsg
->
num_tlv
,
ppWritePackedMsg
,
end
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_RELEASE_CAPABILITY_TAG
,
&
(
pNfapiMsg
->
cell_param
.
release_capability
),
ppWritePackedMsg
,
end
,
&
pack_uint16_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PHY_STATE_TAG
,
&
(
pNfapiMsg
->
cell_param
.
phy_state
),
ppWritePackedMsg
,
end
,
&
pack_uint16_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_SKIP_BLANK_DL_CONFIG_TAG
,
&
(
pNfapiMsg
->
cell_param
.
skip_blank_dl_config
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_SKIP_BLANK_UL_CONFIG_TAG
,
&
(
pNfapiMsg
->
cell_param
.
skip_blank_ul_config
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_NUM_CONFIG_TLVS_TO_REPORT_TAG
,
&
(
pNfapiMsg
->
cell_param
.
num_config_tlvs_to_report
),
ppWritePackedMsg
,
end
,
&
pack_uint16_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_CYCLIC_PREFIX_TAG
,
&
(
pNfapiMsg
->
carrier_param
.
cyclic_prefix
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_SUPPORTED_SUBCARRIER_SPACINGS_DL_TAG
,
&
(
pNfapiMsg
->
carrier_param
.
supported_subcarrier_spacings_dl
),
ppWritePackedMsg
,
end
,
&
pack_uint16_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_SUPPORTED_BANDWIDTH_DL_TAG
,
&
(
pNfapiMsg
->
carrier_param
.
supported_bandwidth_dl
),
ppWritePackedMsg
,
end
,
&
pack_uint16_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_SUPPORTED_SUBCARRIER_SPACINGS_UL_TAG
,
&
(
pNfapiMsg
->
carrier_param
.
supported_subcarrier_spacings_ul
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_SUPPORTED_BANDWIDTH_UL_TAG
,
&
(
pNfapiMsg
->
carrier_param
.
supported_bandwidth_ul
),
ppWritePackedMsg
,
end
,
&
pack_uint16_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_CCE_MAPPING_TYPE_TAG
,
&
(
pNfapiMsg
->
pdcch_param
.
cce_mapping_type
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_CORESET_OUTSIDE_FIRST_3_OFDM_SYMS_OF_SLOT_TAG
,
&
(
pNfapiMsg
->
pdcch_param
.
coreset_outside_first_3_of_ofdm_syms_of_slot
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PRECODER_GRANULARITY_CORESET_TAG
,
&
(
pNfapiMsg
->
pdcch_param
.
coreset_precoder_granularity_coreset
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PDCCH_MU_MIMO_TAG
,
&
(
pNfapiMsg
->
pdcch_param
.
pdcch_mu_mimo
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PDCCH_PRECODER_CYCLING_TAG
,
&
(
pNfapiMsg
->
pdcch_param
.
pdcch_precoder_cycling
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_MAX_PDCCHS_PER_SLOT_TAG
,
&
(
pNfapiMsg
->
pdcch_param
.
max_pdcch_per_slot
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PUCCH_FORMATS_TAG
,
&
(
pNfapiMsg
->
pucch_param
.
pucch_formats
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_MAX_PUCCHS_PER_SLOT_TAG
,
&
(
pNfapiMsg
->
pucch_param
.
max_pucchs_per_slot
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PDSCH_MAPPING_TYPE_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
pdsch_mapping_type
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PDSCH_ALLOCATION_TYPES_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
pdsch_allocation_types
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PDSCH_VRB_TO_PRB_MAPPING_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
pdsch_vrb_to_prb_mapping
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PDSCH_CBG_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
pdsch_cbg
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PDSCH_DMRS_CONFIG_TYPES_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
pdsch_dmrs_config_types
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PDSCH_DMRS_MAX_LENGTH_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
pdsch_dmrs_max_length
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PDSCH_DMRS_ADDITIONAL_POS_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
pdsch_dmrs_additional_pos
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_MAX_PDSCH_S_YBS_PER_SLOT_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
max_pdsch_tbs_per_slot
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_MAX_NUMBER_MIMO_LAYERS_PDSCH_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
max_number_mimo_layers_pdsch
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_MAX_MU_MIMO_USERS_DL_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
max_mu_mimo_users_dl
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PDSCH_DATA_IN_DMRS_SYMBOLS_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
pdsch_data_in_dmrs_symbols
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PREMPTION_SUPPORT_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
premption_support
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PDSCH_NON_SLOT_SUPPORT_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
pdsch_non_slot_support
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_UCI_MUX_ULSCH_IN_PUSCH_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
uci_mux_ulsch_in_pusch
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_UCI_ONLY_PUSCH_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
uci_only_pusch
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PUSCH_FREQUENCY_HOPPING_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
pusch_frequency_hopping
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PUSCH_DMRS_CONFIG_TYPES_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
pusch_dmrs_config_types
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PUSCH_DMRS_MAX_LEN_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
pusch_dmrs_max_len
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PUSCH_DMRS_ADDITIONAL_POS_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
pusch_dmrs_additional_pos
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PUSCH_CBG_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
pusch_cbg
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PUSCH_MAPPING_TYPE_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
pusch_mapping_type
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PUSCH_ALLOCATION_TYPES_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
pusch_allocation_types
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PUSCH_VRB_TO_PRB_MAPPING_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
pusch_vrb_to_prb_mapping
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PUSCH_MAX_PTRS_PORTS_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
pusch_max_ptrs_ports
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_MAX_PDUSCHS_TBS_PER_SLOT_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
max_pduschs_tbs_per_slot
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_MAX_NUMBER_MIMO_LAYERS_NON_CB_PUSCH_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
max_number_mimo_layers_non_cb_pusch
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_SUPPORTED_MODULATION_ORDER_UL_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
supported_modulation_order_ul
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_MAX_MU_MIMO_USERS_UL_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
max_mu_mimo_users_ul
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_DFTS_OFDM_SUPPORT_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
dfts_ofdm_support
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PUSCH_AGGREGATION_FACTOR_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
pusch_aggregation_factor
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PRACH_LONG_FORMATS_TAG
,
&
(
pNfapiMsg
->
prach_param
.
prach_long_formats
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PRACH_SHORT_FORMATS_TAG
,
&
(
pNfapiMsg
->
prach_param
.
prach_short_formats
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_PRACH_RESTRICTED_SETS_TAG
,
&
(
pNfapiMsg
->
prach_param
.
prach_restricted_sets
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_MAX_PRACH_FD_OCCASIONS_IN_A_SLOT_TAG
,
&
(
pNfapiMsg
->
prach_param
.
max_prach_fd_occasions_in_a_slot
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_PARAM_TLV_RSSI_MEASUREMENT_SUPPORT_TAG
,
&
(
pNfapiMsg
->
measurement_param
.
rssi_measurement_support
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
// config:
pack_tlv
(
NFAPI_NR_NFAPI_P7_VNF_ADDRESS_IPV4_TAG
,
&
(
pNfapiMsg
->
nfapi_config
.
p7_vnf_address_ipv4
),
ppWritePackedMsg
,
end
,
&
pack_ipv4_address_value
)
&&
pack_tlv
(
NFAPI_NR_NFAPI_P7_VNF_ADDRESS_IPV6_TAG
,
&
(
pNfapiMsg
->
nfapi_config
.
p7_vnf_address_ipv6
),
ppWritePackedMsg
,
end
,
&
pack_ipv6_address_value
)
&&
pack_tlv
(
NFAPI_NR_NFAPI_P7_VNF_PORT_TAG
,
&
(
pNfapiMsg
->
nfapi_config
.
p7_vnf_port
),
ppWritePackedMsg
,
end
,
&
pack_uint16_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_NFAPI_P7_PNF_ADDRESS_IPV4_TAG
,
&
(
pNfapiMsg
->
nfapi_config
.
p7_pnf_address_ipv4
),
ppWritePackedMsg
,
end
,
&
pack_ipv4_address_value
)
&&
pack_tlv
(
NFAPI_NR_NFAPI_P7_PNF_ADDRESS_IPV6_TAG
,
&
(
pNfapiMsg
->
nfapi_config
.
p7_pnf_address_ipv6
),
ppWritePackedMsg
,
end
,
&
pack_ipv6_address_value
)
&&
pack_tlv
(
NFAPI_NR_NFAPI_P7_PNF_PORT_TAG
,
&
(
pNfapiMsg
->
nfapi_config
.
p7_pnf_port
),
ppWritePackedMsg
,
end
,
&
pack_uint16_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_NFAPI_DOWNLINK_UES_PER_SUBFRAME_TAG
,
&
(
pNfapiMsg
->
nfapi_config
.
dl_ue_per_sf
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_NFAPI_UPLINK_UES_PER_SUBFRAME_TAG
,
&
(
pNfapiMsg
->
nfapi_config
.
ul_ue_per_sf
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_NFAPI_RF_BANDS_TAG
,
&
(
pNfapiMsg
->
nfapi_config
.
rf_bands
),
ppWritePackedMsg
,
end
,
&
pack_rf_bands_value
)
&&
pack_tlv
(
NFAPI_NR_NFAPI_TIMING_WINDOW_TAG
,
&
(
pNfapiMsg
->
nfapi_config
.
timing_window
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_NFAPI_TIMING_INFO_MODE_TAG
,
&
(
pNfapiMsg
->
nfapi_config
.
timing_info_mode
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_NFAPI_TIMING_INFO_PERIOD_TAG
,
&
(
pNfapiMsg
->
nfapi_config
.
timing_info_period
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_NFAPI_MAXIMUM_TRANSMIT_POWER_TAG
,
&
(
pNfapiMsg
->
nfapi_config
.
max_transmit_power
),
ppWritePackedMsg
,
end
,
&
pack_uint16_tlv_value
)
&&
// vendor extension:
pack_vendor_extension_tlv
(
pNfapiMsg
->
vendor_extension
,
ppWritePackedMsg
,
end
,
config
));
#if 0
return( push8(pNfapiMsg->error_code, ppWritePackedMsg, end) &&
push8(pNfapiMsg->num_tlv, ppWritePackedMsg, end) &&
pack_tlv(NFAPI_L1_STATUS_PHY_STATE_TAG, &pNfapiMsg->l1_status.phy_state, ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
...
...
@@ -482,15 +574,15 @@ static uint8_t pack_param_response(void *msg, uint8_t **ppWritePackedMsg, uint8_
pack_tlv(NFAPI_PUCCH_CONFIG_N_AN_CS_TAG, &(pNfapiMsg->pucch_config.n_an_cs), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
pack_tlv(NFAPI_PUCCH_CONFIG_N1_PUCCH_AN_TAG, &(pNfapiMsg->pucch_config.n1_pucch_an), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
pack_tlv
(
NFAPI_EMBMS_MBSFN_CONFIG_AREA_IDX_TAG
,
&
(
pNfapiMsg
->
embms_sib13_config
.
mbsfn_area_idx
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_EMBMS_MBSFN_CONFIG_AREA_IDR9_TAG
,
&
(
pNfapiMsg
->
embms_sib13_config
.
mbsfn_area_id_r9
),
ppWritePackedMsg
,
end
,
&
pack_uint16_tlv_value
)
&&
pack_tlv(NFAPI_EMBMS_MBSFN_CONFIG_AREA_IDX_TAG, &(pNfapiMsg->embms_sib13_config.mbsfn_area_idx), ppWritePackedMsg, end, &pack_uint8_tlv_value) &&
pack_tlv(NFAPI_EMBMS_MBSFN_CONFIG_AREA_IDR9_TAG, &(pNfapiMsg->embms_sib13_config.mbsfn_area_id_r9), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
pack_tlv
(
NFAPI_EMBMS_MBSFN_CONFIG_TAG
,
&
(
pNfapiMsg
->
embms_mbsfn_config
),
ppWritePackedMsg
,
end
,
&
pack_embms_mbsfn_config_value
)
&&
pack_tlv(NFAPI_EMBMS_MBSFN_CONFIG_TAG, &(pNfapiMsg->embms_mbsfn_config), ppWritePackedMsg, end, &pack_embms_mbsfn_config_value) &&
pack_tlv
(
NFAPI_FEMBMS_CONFIG_RADIOFRAME_ALLOCATION_PERIOD_TAG
,
&
(
pNfapiMsg
->
fembms_config
.
radioframe_allocation_period
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_FEMBMS_CONFIG_RADIOFRAME_ALLOCATION_OFFSET_TAG
,
&
(
pNfapiMsg
->
fembms_config
.
radioframe_allocation_offset
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_FEMBMS_CONFIG_NON_MBSFN_FLAG_TAG
,
&
(
pNfapiMsg
->
fembms_config
.
non_mbsfn_config_flag
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_FEMBMS_CONFIG_NON_MBSFN_SUBFRAMECONFIG_TAG
,
&
(
pNfapiMsg
->
fembms_config
.
non_mbsfn_subframeconfig
),
ppWritePackedMsg
,
end
,
&
pack_uint16_tlv_value
)
&&
pack_tlv(NFAPI_FEMBMS_CONFIG_RADIOFRAME_ALLOCATION_PERIOD_TAG, &(pNfapiMsg->fembms_config.radioframe_allocation_period), ppWritePackedMsg, end, &pack_uint8_tlv_value) &&
pack_tlv(NFAPI_FEMBMS_CONFIG_RADIOFRAME_ALLOCATION_OFFSET_TAG, &(pNfapiMsg->fembms_config.radioframe_allocation_offset), ppWritePackedMsg, end, &pack_uint8_tlv_value) &&
pack_tlv(NFAPI_FEMBMS_CONFIG_NON_MBSFN_FLAG_TAG, &(pNfapiMsg->fembms_config.non_mbsfn_config_flag), ppWritePackedMsg, end, &pack_uint8_tlv_value) &&
pack_tlv(NFAPI_FEMBMS_CONFIG_NON_MBSFN_SUBFRAMECONFIG_TAG, &(pNfapiMsg->fembms_config.non_mbsfn_subframeconfig), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
pack_tlv(NFAPI_SRS_CONFIG_BANDWIDTH_CONFIGURATION_TAG, &(pNfapiMsg->srs_config.bandwidth_configuration), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
...
...
@@ -507,7 +599,7 @@ static uint8_t pack_param_response(void *msg, uint8_t **ppWritePackedMsg, uint8_
pack_tlv(NFAPI_L23_CONFIG_DATA_REPORT_MODE_TAG, &(pNfapiMsg->l23_config.data_report_mode), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
pack_tlv(NFAPI_L23_CONFIG_SFNSF_TAG, &(pNfapiMsg->l23_config.sfnsf), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
pack_tlv
(
NFAPI_NFAPI_P7_VNF_ADDRESS_IPV4_TAG
,
&
(
pNfapiMsg
->
nfapi_config
.
p7_vnf_address_ipv4
),
ppWritePackedMsg
,
end
,
&
pack_ipv4_address_value
)
&&
pack_tlv(NFAPI_N
R_N
FAPI_P7_VNF_ADDRESS_IPV4_TAG, &(pNfapiMsg->nfapi_config.p7_vnf_address_ipv4), ppWritePackedMsg, end, &pack_ipv4_address_value) &&
pack_tlv(NFAPI_NFAPI_P7_VNF_ADDRESS_IPV6_TAG, &(pNfapiMsg->nfapi_config.p7_vnf_address_ipv6), ppWritePackedMsg, end, &pack_ipv6_address_value) &&
pack_tlv(NFAPI_NFAPI_P7_VNF_PORT_TAG, &(pNfapiMsg->nfapi_config.p7_vnf_port), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
...
...
@@ -526,7 +618,7 @@ static uint8_t pack_param_response(void *msg, uint8_t **ppWritePackedMsg, uint8_
pack_tlv(NFAPI_NFAPI_TIMING_INFO_MODE_TAG, &(pNfapiMsg->nfapi_config.timing_info_mode), ppWritePackedMsg, end, &pack_uint8_tlv_value) &&
pack_tlv(NFAPI_NFAPI_TIMING_INFO_PERIOD_TAG, &(pNfapiMsg->nfapi_config.timing_info_period), ppWritePackedMsg, end, &pack_uint8_tlv_value) &&
pack_tlv
(
NFAPI_NFAPI_MAXIMUM_TRANSMIT_POWER_TAG
,
&
(
pNfapiMsg
->
nfapi_config
.
max_transmit_power
),
ppWritePackedMsg
,
end
,
&
pack_uint16_tlv_value
)
&&
pack_tlv(NFAPI_N
R_N
FAPI_MAXIMUM_TRANSMIT_POWER_TAG, &(pNfapiMsg->nfapi_config.max_transmit_power), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
pack_tlv(NFAPI_NFAPI_EARFCN_TAG, &(pNfapiMsg->nfapi_config.earfcn), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
...
...
@@ -535,7 +627,7 @@ static uint8_t pack_param_response(void *msg, uint8_t **ppWritePackedMsg, uint8_
pack_tlv(NFAPI_NFAPI_NMM_LTE_FREQUENCY_BANDS_TAG, &(pNfapiMsg->nfapi_config.nmm_lte_frequency_bands), ppWritePackedMsg, end, &pack_nmm_frequency_bands_value) &&
pack_tlv(NFAPI_NFAPI_NMM_UPLINK_RSSI_SUPPORTED_TAG, &(pNfapiMsg->nfapi_config.nmm_uplink_rssi_supported), ppWritePackedMsg, end, &pack_uint8_tlv_value) &&
pack_vendor_extension_tlv(pNfapiMsg->vendor_extension, ppWritePackedMsg, end, config) );
#endif
}
static
uint8_t
pack_config_request
(
void
*
msg
,
uint8_t
**
ppWritePackedMsg
,
uint8_t
*
end
,
nfapi_p4_p5_codec_config_t
*
config
)
...
...
@@ -1235,10 +1327,88 @@ static uint8_t unpack_param_request(uint8_t **ppReadPackedMsg, uint8_t *end, voi
static
uint8_t
unpack_param_response
(
uint8_t
**
ppReadPackedMsg
,
uint8_t
*
end
,
void
*
msg
,
nfapi_p4_p5_codec_config_t
*
config
)
{
nfapi_param_response_t
*
pNfapiMsg
=
(
nfapi_param_response_t
*
)
msg
;
printf
(
"
\n\n
RUNNING unpack_param_response
\n
"
);
nfapi_nr_param_response_scf_t
*
pNfapiMsg
=
(
nfapi_nr_param_response_scf_t
*
)
msg
;
unpack_tlv_t
unpack_fns
[]
=
{
{
{
NFAPI_NR_PARAM_TLV_RELEASE_CAPABILITY_TAG
,
&
(
pNfapiMsg
->
cell_param
.
release_capability
),
&
unpack_uint16_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PHY_STATE_TAG
,
&
(
pNfapiMsg
->
cell_param
.
phy_state
),
&
unpack_uint16_tlv_value
},
{
NFAPI_NR_PARAM_TLV_SKIP_BLANK_DL_CONFIG_TAG
,
&
(
pNfapiMsg
->
cell_param
.
skip_blank_dl_config
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_SKIP_BLANK_UL_CONFIG_TAG
,
&
(
pNfapiMsg
->
cell_param
.
skip_blank_ul_config
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_NUM_CONFIG_TLVS_TO_REPORT_TAG
,
&
(
pNfapiMsg
->
cell_param
.
num_config_tlvs_to_report
),
&
unpack_uint16_tlv_value
},
{
NFAPI_NR_PARAM_TLV_CYCLIC_PREFIX_TAG
,
&
(
pNfapiMsg
->
carrier_param
.
cyclic_prefix
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_SUPPORTED_SUBCARRIER_SPACINGS_DL_TAG
,
&
(
pNfapiMsg
->
carrier_param
.
supported_subcarrier_spacings_dl
),
&
unpack_uint16_tlv_value
},
{
NFAPI_NR_PARAM_TLV_SUPPORTED_BANDWIDTH_DL_TAG
,
&
(
pNfapiMsg
->
carrier_param
.
supported_bandwidth_dl
),
&
unpack_uint16_tlv_value
},
{
NFAPI_NR_PARAM_TLV_SUPPORTED_SUBCARRIER_SPACINGS_UL_TAG
,
&
(
pNfapiMsg
->
carrier_param
.
supported_subcarrier_spacings_ul
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_SUPPORTED_BANDWIDTH_UL_TAG
,
&
(
pNfapiMsg
->
carrier_param
.
supported_bandwidth_ul
),
&
unpack_uint16_tlv_value
},
{
NFAPI_NR_PARAM_TLV_CCE_MAPPING_TYPE_TAG
,
&
(
pNfapiMsg
->
pdcch_param
.
cce_mapping_type
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_CORESET_OUTSIDE_FIRST_3_OFDM_SYMS_OF_SLOT_TAG
,
&
(
pNfapiMsg
->
pdcch_param
.
coreset_outside_first_3_of_ofdm_syms_of_slot
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PRECODER_GRANULARITY_CORESET_TAG
,
&
(
pNfapiMsg
->
pdcch_param
.
coreset_precoder_granularity_coreset
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PDCCH_MU_MIMO_TAG
,
&
(
pNfapiMsg
->
pdcch_param
.
pdcch_mu_mimo
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PDCCH_PRECODER_CYCLING_TAG
,
&
(
pNfapiMsg
->
pdcch_param
.
pdcch_precoder_cycling
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_MAX_PDCCHS_PER_SLOT_TAG
,
&
(
pNfapiMsg
->
pdcch_param
.
max_pdcch_per_slot
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PUCCH_FORMATS_TAG
,
&
(
pNfapiMsg
->
pucch_param
.
pucch_formats
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_MAX_PUCCHS_PER_SLOT_TAG
,
&
(
pNfapiMsg
->
pucch_param
.
max_pucchs_per_slot
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PDSCH_MAPPING_TYPE_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
pdsch_mapping_type
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PDSCH_ALLOCATION_TYPES_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
pdsch_allocation_types
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PDSCH_VRB_TO_PRB_MAPPING_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
pdsch_vrb_to_prb_mapping
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PDSCH_CBG_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
pdsch_cbg
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PDSCH_DMRS_CONFIG_TYPES_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
pdsch_dmrs_config_types
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PDSCH_DMRS_MAX_LENGTH_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
pdsch_dmrs_max_length
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PDSCH_DMRS_ADDITIONAL_POS_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
pdsch_dmrs_additional_pos
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_MAX_PDSCH_S_YBS_PER_SLOT_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
max_pdsch_tbs_per_slot
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_MAX_NUMBER_MIMO_LAYERS_PDSCH_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
max_number_mimo_layers_pdsch
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_MAX_MU_MIMO_USERS_DL_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
max_mu_mimo_users_dl
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PDSCH_DATA_IN_DMRS_SYMBOLS_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
pdsch_data_in_dmrs_symbols
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PREMPTION_SUPPORT_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
premption_support
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PDSCH_NON_SLOT_SUPPORT_TAG
,
&
(
pNfapiMsg
->
pdsch_param
.
pdsch_non_slot_support
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_UCI_MUX_ULSCH_IN_PUSCH_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
uci_mux_ulsch_in_pusch
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_UCI_ONLY_PUSCH_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
uci_only_pusch
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PUSCH_FREQUENCY_HOPPING_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
pusch_frequency_hopping
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PUSCH_DMRS_CONFIG_TYPES_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
pusch_dmrs_config_types
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PUSCH_DMRS_MAX_LEN_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
pusch_dmrs_max_len
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PUSCH_DMRS_ADDITIONAL_POS_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
pusch_dmrs_additional_pos
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PUSCH_CBG_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
pusch_cbg
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PUSCH_MAPPING_TYPE_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
pusch_mapping_type
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PUSCH_ALLOCATION_TYPES_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
pusch_allocation_types
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PUSCH_VRB_TO_PRB_MAPPING_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
pusch_vrb_to_prb_mapping
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PUSCH_MAX_PTRS_PORTS_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
pusch_max_ptrs_ports
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_MAX_PDUSCHS_TBS_PER_SLOT_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
max_pduschs_tbs_per_slot
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_MAX_NUMBER_MIMO_LAYERS_NON_CB_PUSCH_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
max_number_mimo_layers_non_cb_pusch
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_SUPPORTED_MODULATION_ORDER_UL_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
supported_modulation_order_ul
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_MAX_MU_MIMO_USERS_UL_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
max_mu_mimo_users_ul
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_DFTS_OFDM_SUPPORT_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
dfts_ofdm_support
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PUSCH_AGGREGATION_FACTOR_TAG
,
&
(
pNfapiMsg
->
pusch_param
.
pusch_aggregation_factor
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PRACH_LONG_FORMATS_TAG
,
&
(
pNfapiMsg
->
prach_param
.
prach_long_formats
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PRACH_SHORT_FORMATS_TAG
,
&
(
pNfapiMsg
->
prach_param
.
prach_short_formats
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_PRACH_RESTRICTED_SETS_TAG
,
&
(
pNfapiMsg
->
prach_param
.
prach_restricted_sets
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_MAX_PRACH_FD_OCCASIONS_IN_A_SLOT_TAG
,
&
(
pNfapiMsg
->
prach_param
.
max_prach_fd_occasions_in_a_slot
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_PARAM_TLV_RSSI_MEASUREMENT_SUPPORT_TAG
,
&
(
pNfapiMsg
->
measurement_param
.
rssi_measurement_support
),
&
unpack_uint8_tlv_value
},
//config
{
NFAPI_NR_NFAPI_P7_VNF_ADDRESS_IPV4_TAG
,
&
pNfapiMsg
->
nfapi_config
.
p7_vnf_address_ipv4
,
&
unpack_ipv4_address_value
},
{
NFAPI_NR_NFAPI_P7_VNF_ADDRESS_IPV6_TAG
,
&
pNfapiMsg
->
nfapi_config
.
p7_vnf_address_ipv6
,
&
unpack_ipv6_address_value
},
{
NFAPI_NR_NFAPI_P7_VNF_PORT_TAG
,
&
pNfapiMsg
->
nfapi_config
.
p7_vnf_port
,
&
unpack_uint16_tlv_value
},
{
NFAPI_NR_NFAPI_P7_PNF_ADDRESS_IPV4_TAG
,
&
pNfapiMsg
->
nfapi_config
.
p7_pnf_address_ipv4
,
&
unpack_ipv4_address_value
},
{
NFAPI_NR_NFAPI_P7_PNF_ADDRESS_IPV6_TAG
,
&
pNfapiMsg
->
nfapi_config
.
p7_pnf_address_ipv6
,
&
unpack_ipv6_address_value
},
{
NFAPI_NR_NFAPI_P7_PNF_PORT_TAG
,
&
pNfapiMsg
->
nfapi_config
.
p7_pnf_port
,
&
unpack_uint16_tlv_value
},
{
NFAPI_NR_NFAPI_DOWNLINK_UES_PER_SUBFRAME_TAG
,
&
pNfapiMsg
->
nfapi_config
.
dl_ue_per_sf
,
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_NFAPI_UPLINK_UES_PER_SUBFRAME_TAG
,
&
pNfapiMsg
->
nfapi_config
.
ul_ue_per_sf
,
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_NFAPI_RF_BANDS_TAG
,
&
pNfapiMsg
->
nfapi_config
.
rf_bands
,
&
unpack_rf_bands_value
},
{
NFAPI_NR_NFAPI_TIMING_WINDOW_TAG
,
&
pNfapiMsg
->
nfapi_config
.
timing_window
,
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_NFAPI_TIMING_INFO_MODE_TAG
,
&
pNfapiMsg
->
nfapi_config
.
timing_info_mode
,
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_NFAPI_TIMING_INFO_PERIOD_TAG
,
&
pNfapiMsg
->
nfapi_config
.
timing_info_period
,
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_NFAPI_MAXIMUM_TRANSMIT_POWER_TAG
,
&
pNfapiMsg
->
nfapi_config
.
max_transmit_power
,
&
unpack_uint16_tlv_value
}
};
#if LTE
{
NFAPI_L1_STATUS_PHY_STATE_TAG
,
&
pNfapiMsg
->
l1_status
.
phy_state
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PHY_CAPABILITIES_DL_BANDWIDTH_SUPPORT_TAG
,
&
pNfapiMsg
->
phy_capabilities
.
dl_bandwidth_support
,
&
unpack_uint16_tlv_value
},
...
...
@@ -1324,7 +1494,7 @@ static uint8_t unpack_param_response(uint8_t **ppReadPackedMsg, uint8_t *end, vo
{
NFAPI_NFAPI_NMM_UPLINK_RSSI_SUPPORTED_TAG
,
&
pNfapiMsg
->
nfapi_config
.
nmm_uplink_rssi_supported
,
&
unpack_uint8_tlv_value
},
};
#endif
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
));
...
...
@@ -1606,23 +1776,23 @@ static int check_unpack_length(nfapi_message_id_e msgId, uint32_t unpackedBufLen
break
;
case
NFAPI_PARAM_REQUEST
:
if
(
unpackedBufLen
>=
sizeof
(
nfapi_
param_request
_t
))
retLen
=
sizeof
(
nfapi_
param_request
_t
);
if
(
unpackedBufLen
>=
sizeof
(
nfapi_
nr_param_request_scf
_t
))
retLen
=
sizeof
(
nfapi_
nr_param_request_scf
_t
);
break
;
case
NFAPI_PARAM_RESPONSE
:
if
(
unpackedBufLen
>=
sizeof
(
nfapi_
param_response
_t
))
retLen
=
sizeof
(
nfapi_
param_response
_t
);
if
(
unpackedBufLen
>=
sizeof
(
nfapi_
nr_param_response_scf
_t
))
retLen
=
sizeof
(
nfapi_
nr_param_response_scf
_t
);
break
;
case
NFAPI_CONFIG_REQUEST
:
if
(
unpackedBufLen
>=
sizeof
(
nfapi_
config_request
_t
))
retLen
=
sizeof
(
nfapi_
config_request
_t
);
if
(
unpackedBufLen
>=
sizeof
(
nfapi_
nr_config_request_scf
_t
))
retLen
=
sizeof
(
nfapi_
nr_config_request_scf
_t
);
break
;
case
NFAPI_CONFIG_RESPONSE
:
if
(
unpackedBufLen
>=
sizeof
(
nfapi_
config_response
_t
))
retLen
=
sizeof
(
nfapi_
config_response
_t
);
if
(
unpackedBufLen
>=
sizeof
(
nfapi_
nr_config_response_scf
_t
))
retLen
=
sizeof
(
nfapi_
nr_config_response_scf
_t
);
break
;
case
NFAPI_START_REQUEST
:
...
...
nfapi/open-nFAPI/pnf/public_inc/nfapi_pnf_interface.h
View file @
fd51a5bd
...
...
@@ -405,7 +405,7 @@ int nfapi_pnf_pnf_stop_resp(nfapi_pnf_config_t* config, nfapi_pnf_stop_response_
* \return 0 for success, -1 for failure
*
*/
int
nfapi_pnf_param_resp
(
nfapi_pnf_config_t
*
config
,
nfapi_
param_response
_t
*
resp
);
int
nfapi_pnf_param_resp
(
nfapi_pnf_config_t
*
config
,
nfapi_
nr_param_response_scf
_t
*
resp
);
/*! Send the CONFIG.response
* \param config A pointer to a pnf configuraiton
...
...
nfapi/open-nFAPI/pnf/src/pnf_interface.c
View file @
fd51a5bd
...
...
@@ -169,7 +169,7 @@ int nfapi_pnf_pnf_stop_resp(nfapi_pnf_config_t* config, nfapi_pnf_stop_response_
return
pnf_pack_and_send_p5_message
(
_this
,
&
(
resp
->
header
),
sizeof
(
nfapi_pnf_stop_response_t
));
}
int
nfapi_pnf_param_resp
(
nfapi_pnf_config_t
*
config
,
nfapi_
param_response
_t
*
resp
)
int
nfapi_pnf_param_resp
(
nfapi_pnf_config_t
*
config
,
nfapi_
nr_param_response_scf
_t
*
resp
)
{
if
(
config
==
NULL
||
resp
==
NULL
)
{
...
...
@@ -179,7 +179,7 @@ int nfapi_pnf_param_resp(nfapi_pnf_config_t* config, nfapi_param_response_t* res
pnf_t
*
_this
=
(
pnf_t
*
)(
config
);
return
pnf_pack_and_send_p5_message
(
_this
,
&
(
resp
->
header
),
sizeof
(
nfapi_
param_response
_t
));
return
pnf_pack_and_send_p5_message
(
_this
,
&
(
resp
->
header
),
sizeof
(
nfapi_
nr_param_response_scf
_t
));
}
int
nfapi_pnf_config_resp
(
nfapi_pnf_config_t
*
config
,
nfapi_config_response_t
*
resp
)
...
...
nfapi/open-nFAPI/vnf/public_inc/nfapi_vnf_interface.h
View file @
fd51a5bd
...
...
@@ -541,7 +541,7 @@ int nfapi_vnf_param_req(nfapi_vnf_config_t* config, int p5_idx, nfapi_param_requ
* \param req A pointer to a CONFIG.request message structure
* \return 0 means success, -1 failure
*/
int
nfapi_vnf_config_req
(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_
config_request
_t
*
req
);
int
nfapi_vnf_config_req
(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_
nr_config_request_scf
_t
*
req
);
/*! Send the START.request
* \param config A pointer to a vnf config
...
...
nfapi/open-nFAPI/vnf/src/vnf.c
View file @
fd51a5bd
...
...
@@ -246,7 +246,7 @@ void vnf_handle_param_response(void *pRecvMsg, int recvMsgLen, nfapi_vnf_config_
{
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"Received PARAM_RESPONSE
\n
"
);
nfapi_
param_response
_t
msg
;
nfapi_
nr_param_response_scf
_t
msg
;
// unpack the message
if
(
nfapi_p5_message_unpack
(
pRecvMsg
,
recvMsgLen
,
&
msg
,
sizeof
(
msg
),
&
config
->
codec_config
)
>=
0
)
...
...
nfapi/open-nFAPI/vnf/src/vnf_interface.c
View file @
fd51a5bd
...
...
@@ -487,7 +487,7 @@ int nfapi_vnf_stop(nfapi_vnf_config_t* config)
}
int
nfapi_vnf_pnf_param_req
(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_pnf_param_request_t
*
req
)
{
{
printf
(
"nfapi_vnf_pnf_param_req
\n
"
);
if
(
config
==
0
||
req
==
0
)
return
-
1
;
...
...
@@ -535,7 +535,7 @@ int nfapi_vnf_param_req(nfapi_vnf_config_t* config, int p5_idx, nfapi_param_requ
return
vnf_pack_and_send_p5_message
(
_this
,
p5_idx
,
&
req
->
header
,
sizeof
(
nfapi_param_request_t
));
}
int
nfapi_vnf_config_req
(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_
config_request
_t
*
req
)
int
nfapi_vnf_config_req
(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_
nr_config_request_scf
_t
*
req
)
{
if
(
config
==
0
||
req
==
0
)
return
-
1
;
...
...
@@ -551,19 +551,19 @@ int nfapi_vnf_config_req(nfapi_vnf_config_t* config, int p5_idx, nfapi_config_re
}
// set the timing parameters
req
->
nfapi_config
.
timing_window
.
tl
.
tag
=
NFAPI_NFAPI_TIMING_WINDOW_TAG
;
req
->
nfapi_config
.
timing_window
.
tl
.
tag
=
NFAPI_N
R_N
FAPI_TIMING_WINDOW_TAG
;
req
->
nfapi_config
.
timing_window
.
value
=
phy
->
timing_window
;
req
->
num_tlv
++
;
req
->
nfapi_config
.
timing_info_mode
.
tl
.
tag
=
NFAPI_NFAPI_TIMING_INFO_MODE_TAG
;
req
->
nfapi_config
.
timing_info_mode
.
tl
.
tag
=
NFAPI_N
R_N
FAPI_TIMING_INFO_MODE_TAG
;
req
->
nfapi_config
.
timing_info_mode
.
value
=
phy
->
timing_info_mode
;
req
->
num_tlv
++
;
req
->
nfapi_config
.
timing_info_period
.
tl
.
tag
=
NFAPI_NFAPI_TIMING_INFO_PERIOD_TAG
;
req
->
nfapi_config
.
timing_info_period
.
tl
.
tag
=
NFAPI_N
R_N
FAPI_TIMING_INFO_PERIOD_TAG
;
req
->
nfapi_config
.
timing_info_period
.
value
=
phy
->
timing_info_period
;
req
->
num_tlv
++
;
return
vnf_pack_and_send_p5_message
(
_this
,
p5_idx
,
&
req
->
header
,
sizeof
(
nfapi_
config_request
_t
));
return
vnf_pack_and_send_p5_message
(
_this
,
p5_idx
,
&
req
->
header
,
sizeof
(
nfapi_
nr_config_request_scf
_t
));
}
int
nfapi_vnf_start_req
(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_start_request_t
*
req
)
{
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/oaiL1.nfapi.usrpx300.conf
View file @
fd51a5bd
...
...
@@ -25,9 +25,9 @@ L1s = (
remote_n_address
=
"127.0.0.1"
; //
vnf
addr
local_n_address
=
"127.0.0.1"
; //
pnf
addr
local_n_portc
=
50000
; //
pnf
p5
port
[!]
remote_n_portc
=
5000
0
; //
vnf
p5
port
local_n_portd
=
5000
1
; //
pnf
p7
port
remote_n_portd
=
5000
1
; //
vnf
p7
port
remote_n_portc
=
5000
1
; //
vnf
p5
port
local_n_portd
=
5000
2
; //
pnf
p7
port
remote_n_portd
=
5000
3
; //
vnf
p7
port
}
);
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band78.tm1.106PRB.nfapi.conf
View file @
fd51a5bd
...
...
@@ -240,10 +240,10 @@ MACRLCs = (
local_s_if_name
=
"lo:"
;
remote_s_address
=
"127.0.0.1"
; //
pnf
addr
[!]
local_s_address
=
"127.0.0.1"
; //
vnf
addr
local_s_portc
=
5000
0
; //
vnf
p5
port
local_s_portc
=
5000
1
; //
vnf
p5
port
remote_s_portc
=
50000
; //
pnf
p5
port
[!]
local_s_portd
=
5000
1
; //
vnf
p7
port
[!]
remote_s_portd
=
5000
1
; //
pnf
p7
port
[!]
local_s_portd
=
5000
3
; //
vnf
p7
port
[!]
remote_s_portd
=
5000
2
; //
pnf
p7
port
[!]
tr_s_preference
=
"nfapi"
;
tr_n_preference
=
"local_RRC"
;
}
...
...
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