Prevent the PNF from sending P7 messages after sending a STOP.indication

Upon stopping the PNF, when sending the STOP.indication to the VNF, set pnf_p7->terminate to 1.

Add a check on the PNF P7 send functions to not send a message after pnf_p7->terminate is set
This commit is contained in:
Rúben Soares Silva
2026-01-28 16:08:03 +00:00
parent ed4cca814a
commit f76e530f90
3 changed files with 11 additions and 1 deletions

View File

@@ -1801,6 +1801,9 @@ int nr_stop_request(nfapi_pnf_config_t *config, nfapi_pnf_phy_config_t *phy, nfa
.header.phy_id = req->header.phy_id};
nfapi_nr_stop_indication(config, &resp);
has_sent_stop_ind = true;
// Upon sending the STOP.indication mark P7 PNF to terminate, to not send any further messages to the VNF
pnf_p7_t *pnf_p7 = (pnf_p7_t *)(p7_config_g);
pnf_p7->terminate = 1;
#ifdef ENABLE_WLS
wls_pnf_close(pnf_p5_init_and_receive_pthread);
#endif

View File

@@ -78,6 +78,10 @@ static int send_p7_msg(pnf_p7_t *pnf_p7, uint8_t *msg, uint32_t len)
bool pnf_nr_send_p7_message(pnf_p7_t *pnf_p7, nfapi_nr_p7_message_header_t *header, uint32_t msg_len)
{
if (pnf_p7->terminate) {
//don't send any further P7 messages after terminating
return false;
}
header->m_segment_sequence = NFAPI_NR_P7_SET_MSS(0, 0, pnf_p7->sequence_number);
// Need to guard against different threads calling the encode function at the same time

View File

@@ -201,7 +201,10 @@ bool wls_pnf_nr_send_p5_message(pnf_t *pnf, nfapi_nr_p4_p5_message_header_t *msg
bool wls_pnf_nr_send_p7_message(pnf_p7_t *pnf_p7, nfapi_nr_p7_message_header_t *msg, uint32_t msg_len)
{
UNUSED_VARIABLE(msg_len);
if (pnf_p7->terminate) {
// don't send any further P7 messages after terminating
return false;
}
if (!isFAPIMessageIDValid(msg->message_id)) {
return false;
}