Move functions for packing/unpacking CONFIG.response
Add unitary test for CONFIG.response ( test pack/unpack, free, copy and compare )
This commit is contained in:
committed by
Rúben Soares Silva
parent
52aff43e2d
commit
7e440ae3a9
@@ -40,4 +40,6 @@ uint8_t pack_nr_param_response(void *msg, uint8_t **ppWritePackedMsg, uint8_t *e
|
||||
uint8_t unpack_nr_param_response(uint8_t **ppReadPackedMsg, uint8_t *end, void *msg, nfapi_p4_p5_codec_config_t *config);
|
||||
uint8_t pack_nr_config_request(void *msg, uint8_t **ppWritePackedMsg, uint8_t *end, nfapi_p4_p5_codec_config_t *config);
|
||||
uint8_t unpack_nr_config_request(uint8_t **ppReadPackedMsg, uint8_t *end, void *msg, nfapi_p4_p5_codec_config_t *config);
|
||||
uint8_t pack_nr_config_response(void *msg, uint8_t **ppWritePackedMsg, uint8_t *end, nfapi_p4_p5_codec_config_t *config);
|
||||
uint8_t unpack_nr_config_response(uint8_t **ppReadPackedMsg, uint8_t *end, void *msg, nfapi_p4_p5_codec_config_t *config);
|
||||
#endif // OPENAIRINTERFACE_NR_FAPI_P5_H
|
||||
|
||||
@@ -1566,3 +1566,69 @@ uint8_t unpack_nr_config_request(uint8_t **ppReadPackedMsg, uint8_t *end, void *
|
||||
printf("[PNF] vnf p7 %s:%d\n", inet_ntoa(vnf_p7_sockaddr.sin_addr), pNfapiMsg->nfapi_config.p7_vnf_port.value);
|
||||
return 1;
|
||||
}
|
||||
|
||||
uint8_t pack_nr_config_response(void *msg, uint8_t **ppWritePackedMsg, uint8_t *end, nfapi_p4_p5_codec_config_t *config)
|
||||
{
|
||||
nfapi_nr_config_response_scf_t *pNfapiMsg = (nfapi_nr_config_response_scf_t *)msg;
|
||||
uint8_t retval = push8(pNfapiMsg->error_code, ppWritePackedMsg, end);
|
||||
retval &= push8(pNfapiMsg->num_invalid_tlvs, ppWritePackedMsg, end);
|
||||
retval &= push8(pNfapiMsg->num_invalid_tlvs_configured_in_idle, ppWritePackedMsg, end);
|
||||
retval &= push8(pNfapiMsg->num_invalid_tlvs_configured_in_running, ppWritePackedMsg, end);
|
||||
retval &= push8(pNfapiMsg->num_missing_tlvs, ppWritePackedMsg, end);
|
||||
|
||||
// pack lists
|
||||
for (int i = 0; i < pNfapiMsg->num_invalid_tlvs; ++i) {
|
||||
nfapi_nr_generic_tlv_scf_t *element = &(pNfapiMsg->invalid_tlvs_list[i]);
|
||||
pack_nr_generic_tlv(element->tl.tag, element, ppWritePackedMsg, end);
|
||||
}
|
||||
for (int i = 0; i < pNfapiMsg->num_invalid_tlvs_configured_in_idle; ++i) {
|
||||
nfapi_nr_generic_tlv_scf_t *element = &(pNfapiMsg->invalid_tlvs_configured_in_idle_list[i]);
|
||||
pack_nr_generic_tlv(element->tl.tag, element, ppWritePackedMsg, end);
|
||||
}
|
||||
for (int i = 0; i < pNfapiMsg->num_invalid_tlvs_configured_in_running; ++i) {
|
||||
nfapi_nr_generic_tlv_scf_t *element = &(pNfapiMsg->invalid_tlvs_configured_in_running_list[i]);
|
||||
pack_nr_generic_tlv(element->tl.tag, element, ppWritePackedMsg, end);
|
||||
}
|
||||
for (int i = 0; i < pNfapiMsg->num_missing_tlvs; ++i) {
|
||||
nfapi_nr_generic_tlv_scf_t *element = &(pNfapiMsg->missing_tlvs_list[i]);
|
||||
pack_nr_generic_tlv(element->tl.tag, element, ppWritePackedMsg, end);
|
||||
}
|
||||
|
||||
retval &= pack_vendor_extension_tlv(pNfapiMsg->vendor_extension, ppWritePackedMsg, end, config);
|
||||
return retval;
|
||||
}
|
||||
|
||||
uint8_t unpack_nr_config_response(uint8_t **ppReadPackedMsg, uint8_t *end, void *msg, nfapi_p4_p5_codec_config_t *config)
|
||||
{
|
||||
nfapi_nr_config_response_scf_t *nfapi_resp = (nfapi_nr_config_response_scf_t *)msg;
|
||||
uint8_t retval = pull8(ppReadPackedMsg, &nfapi_resp->error_code, end)
|
||||
&& pull8(ppReadPackedMsg, &nfapi_resp->num_invalid_tlvs, end)
|
||||
&& pull8(ppReadPackedMsg, &nfapi_resp->num_invalid_tlvs_configured_in_idle, end)
|
||||
&& pull8(ppReadPackedMsg, &nfapi_resp->num_invalid_tlvs_configured_in_running, end)
|
||||
&& pull8(ppReadPackedMsg, &nfapi_resp->num_missing_tlvs, end);
|
||||
// First unpack the invalid_tlvs_list
|
||||
// allocate the memory
|
||||
nfapi_resp->invalid_tlvs_list =
|
||||
(nfapi_nr_generic_tlv_scf_t *)malloc(nfapi_resp->num_invalid_tlvs * sizeof(nfapi_nr_generic_tlv_scf_t));
|
||||
nfapi_resp->invalid_tlvs_configured_in_idle_list =
|
||||
(nfapi_nr_generic_tlv_scf_t *)malloc(nfapi_resp->num_invalid_tlvs_configured_in_idle * sizeof(nfapi_nr_generic_tlv_scf_t));
|
||||
nfapi_resp->invalid_tlvs_configured_in_running_list =
|
||||
(nfapi_nr_generic_tlv_scf_t *)malloc(nfapi_resp->num_invalid_tlvs_configured_in_running * sizeof(nfapi_nr_generic_tlv_scf_t));
|
||||
nfapi_resp->missing_tlvs_list =
|
||||
(nfapi_nr_generic_tlv_scf_t *)malloc(nfapi_resp->num_missing_tlvs * sizeof(nfapi_nr_generic_tlv_scf_t));
|
||||
|
||||
// unpack the TLV lists
|
||||
unpack_nr_generic_tlv_list(nfapi_resp->invalid_tlvs_list, nfapi_resp->num_invalid_tlvs, ppReadPackedMsg, end);
|
||||
unpack_nr_generic_tlv_list(nfapi_resp->invalid_tlvs_configured_in_idle_list,
|
||||
nfapi_resp->num_invalid_tlvs_configured_in_idle,
|
||||
ppReadPackedMsg,
|
||||
end);
|
||||
unpack_nr_generic_tlv_list(nfapi_resp->invalid_tlvs_configured_in_running_list,
|
||||
nfapi_resp->num_invalid_tlvs_configured_in_running,
|
||||
ppReadPackedMsg,
|
||||
end);
|
||||
unpack_nr_generic_tlv_list(nfapi_resp->missing_tlvs_list, nfapi_resp->num_missing_tlvs, ppReadPackedMsg, end);
|
||||
// TODO: Process and use the invalid TLVs fields
|
||||
retval &= unpack_nr_tlv_list(NULL, 0, ppReadPackedMsg, end, config, &(nfapi_resp->vendor_extension));
|
||||
return retval;
|
||||
}
|
||||
|
||||
@@ -4121,10 +4121,6 @@ int pack_nr_srs_beamforming_report(void *pMessageBuf, void *pPackedBuf, uint32_t
|
||||
*/
|
||||
int unpack_nr_srs_beamforming_report(void *pMessageBuf, uint32_t messageBufLen, void *pUnpackedBuf, uint32_t unpackedBufLen);
|
||||
|
||||
uint8_t pack_nr_config_response(void *msg, uint8_t **ppWritePackedMsg, uint8_t *end, nfapi_p4_p5_codec_config_t *config);
|
||||
|
||||
uint8_t unpack_nr_config_response(uint8_t **ppReadPackedMsg, uint8_t *end, void *msg, nfapi_p4_p5_codec_config_t *config);
|
||||
|
||||
uint8_t pack_nr_start_request(void *msg, uint8_t **ppWritePackedMsg, uint8_t *end, nfapi_p4_p5_codec_config_t *config);
|
||||
|
||||
uint8_t unpack_nr_start_request(uint8_t **ppReadPackedMsg, uint8_t *end, void *msg, nfapi_p4_p5_codec_config_t *config);
|
||||
|
||||
@@ -1146,37 +1146,6 @@ static uint8_t pack_config_request(void *msg, uint8_t **ppWritePackedMsg, uint8_
|
||||
&pack_uint8_tlv_value));
|
||||
}
|
||||
|
||||
uint8_t pack_nr_config_response(void *msg, uint8_t **ppWritePackedMsg, uint8_t *end, nfapi_p4_p5_codec_config_t *config)
|
||||
{
|
||||
nfapi_nr_config_response_scf_t *pNfapiMsg = (nfapi_nr_config_response_scf_t *)msg;
|
||||
uint8_t retval = push8(pNfapiMsg->error_code, ppWritePackedMsg, end);
|
||||
retval &= push8(pNfapiMsg->num_invalid_tlvs, ppWritePackedMsg, end);
|
||||
retval &= push8(pNfapiMsg->num_invalid_tlvs_configured_in_idle, ppWritePackedMsg, end);
|
||||
retval &= push8(pNfapiMsg->num_invalid_tlvs_configured_in_running, ppWritePackedMsg, end);
|
||||
retval &= push8(pNfapiMsg->num_missing_tlvs, ppWritePackedMsg, end);
|
||||
|
||||
// pack lists
|
||||
for (int i = 0; i < pNfapiMsg->num_invalid_tlvs; ++i) {
|
||||
nfapi_nr_generic_tlv_scf_t *element = &(pNfapiMsg->invalid_tlvs_list[i]);
|
||||
pack_nr_generic_tlv(element->tl.tag, element, ppWritePackedMsg, end);
|
||||
}
|
||||
for (int i = 0; i < pNfapiMsg->num_invalid_tlvs_configured_in_idle; ++i) {
|
||||
nfapi_nr_generic_tlv_scf_t *element = &(pNfapiMsg->invalid_tlvs_configured_in_idle_list[i]);
|
||||
pack_nr_generic_tlv(element->tl.tag, element, ppWritePackedMsg, end);
|
||||
}
|
||||
for (int i = 0; i < pNfapiMsg->num_invalid_tlvs_configured_in_running; ++i) {
|
||||
nfapi_nr_generic_tlv_scf_t *element = &(pNfapiMsg->invalid_tlvs_configured_in_running_list[i]);
|
||||
pack_nr_generic_tlv(element->tl.tag, element, ppWritePackedMsg, end);
|
||||
}
|
||||
for (int i = 0; i < pNfapiMsg->num_missing_tlvs; ++i) {
|
||||
nfapi_nr_generic_tlv_scf_t *element = &(pNfapiMsg->missing_tlvs_list[i]);
|
||||
pack_nr_generic_tlv(element->tl.tag, element, ppWritePackedMsg, end);
|
||||
}
|
||||
|
||||
retval &= pack_vendor_extension_tlv(pNfapiMsg->vendor_extension, ppWritePackedMsg, end, config);
|
||||
return retval;
|
||||
}
|
||||
|
||||
static uint8_t pack_config_response(void *msg, uint8_t **ppWritePackedMsg, uint8_t *end, nfapi_p4_p5_codec_config_t *config) {
|
||||
nfapi_config_response_t *pNfapiMsg = (nfapi_config_response_t *)msg;
|
||||
return ( push32(pNfapiMsg->error_code, ppWritePackedMsg, end) &&
|
||||
@@ -2126,44 +2095,11 @@ static uint8_t unpack_config_request(uint8_t **ppReadPackedMsg, uint8_t *end, vo
|
||||
&pNfapiMsg->vendor_extension));
|
||||
}
|
||||
|
||||
static uint8_t unpack_config_response(uint8_t **ppReadPackedMsg, uint8_t *end, void *msg, nfapi_p4_p5_codec_config_t *config) {
|
||||
nfapi_config_response_t *pNfapiMsg = (nfapi_config_response_t *)msg;
|
||||
return ( pull32(ppReadPackedMsg, &pNfapiMsg->error_code, end) &&
|
||||
unpack_tlv_list(NULL, 0, ppReadPackedMsg, end, config, &(pNfapiMsg->vendor_extension)));
|
||||
}
|
||||
|
||||
uint8_t unpack_nr_config_response(uint8_t **ppReadPackedMsg, uint8_t *end, void *msg, nfapi_p4_p5_codec_config_t *config)
|
||||
static uint8_t unpack_config_response(uint8_t **ppReadPackedMsg, uint8_t *end, void *msg, nfapi_p4_p5_codec_config_t *config)
|
||||
{
|
||||
nfapi_nr_config_response_scf_t *nfapi_resp = (nfapi_nr_config_response_scf_t *)msg;
|
||||
uint8_t retval = pull8(ppReadPackedMsg, &nfapi_resp->error_code, end)
|
||||
&& pull8(ppReadPackedMsg, &nfapi_resp->num_invalid_tlvs, end)
|
||||
&& pull8(ppReadPackedMsg, &nfapi_resp->num_invalid_tlvs_configured_in_idle, end)
|
||||
&& pull8(ppReadPackedMsg, &nfapi_resp->num_invalid_tlvs_configured_in_running, end)
|
||||
&& pull8(ppReadPackedMsg, &nfapi_resp->num_missing_tlvs, end);
|
||||
// First unpack the invalid_tlvs_list
|
||||
// allocate the memory
|
||||
nfapi_resp->invalid_tlvs_list =
|
||||
(nfapi_nr_generic_tlv_scf_t *)malloc(nfapi_resp->num_invalid_tlvs * sizeof(nfapi_nr_generic_tlv_scf_t));
|
||||
nfapi_resp->invalid_tlvs_configured_in_idle_list =
|
||||
(nfapi_nr_generic_tlv_scf_t *)malloc(nfapi_resp->num_invalid_tlvs_configured_in_idle * sizeof(nfapi_nr_generic_tlv_scf_t));
|
||||
nfapi_resp->invalid_tlvs_configured_in_running_list =
|
||||
(nfapi_nr_generic_tlv_scf_t *)malloc(nfapi_resp->num_invalid_tlvs_configured_in_running * sizeof(nfapi_nr_generic_tlv_scf_t));
|
||||
nfapi_resp->missing_tlvs_list =
|
||||
(nfapi_nr_generic_tlv_scf_t *)malloc(nfapi_resp->num_missing_tlvs * sizeof(nfapi_nr_generic_tlv_scf_t));
|
||||
|
||||
// unpack the TLV lists
|
||||
unpack_nr_generic_tlv_list(nfapi_resp->invalid_tlvs_list, nfapi_resp->num_invalid_tlvs, ppReadPackedMsg, end);
|
||||
unpack_nr_generic_tlv_list(nfapi_resp->invalid_tlvs_configured_in_idle_list,
|
||||
nfapi_resp->num_invalid_tlvs_configured_in_idle,
|
||||
ppReadPackedMsg,
|
||||
end);
|
||||
unpack_nr_generic_tlv_list(nfapi_resp->invalid_tlvs_configured_in_running_list,
|
||||
nfapi_resp->num_invalid_tlvs_configured_in_running,
|
||||
ppReadPackedMsg,
|
||||
end);
|
||||
unpack_nr_generic_tlv_list(nfapi_resp->missing_tlvs_list, nfapi_resp->num_missing_tlvs, ppReadPackedMsg, end);
|
||||
retval &= unpack_nr_tlv_list(NULL, 0, ppReadPackedMsg, end, config, &(nfapi_resp->vendor_extension));
|
||||
return retval;
|
||||
nfapi_config_response_t *pNfapiMsg = (nfapi_config_response_t *)msg;
|
||||
return (pull32(ppReadPackedMsg, &pNfapiMsg->error_code, end)
|
||||
&& unpack_tlv_list(NULL, 0, ppReadPackedMsg, end, config, &(pNfapiMsg->vendor_extension)));
|
||||
}
|
||||
|
||||
uint8_t unpack_nr_start_request(uint8_t **ppReadPackedMsg, uint8_t *end, void *msg, nfapi_p4_p5_codec_config_t *config)
|
||||
|
||||
Reference in New Issue
Block a user