implement some grant demand hardening; implement network watchdog hardening for NXDN;

pull/121/merge
Bryan Biedenkapp 1 month ago
parent d8a65dc766
commit 7885ecc151

@ -995,8 +995,6 @@ void Control::processNetwork()
::memcpy(data.get(), buffer.get() + 24U, frameLength);
}
m_networkWatchdog.start();
if (m_debug) {
Utils::dump(2U, "* !!! NXDN Network Frame", data.get(), frameLength);
}

@ -221,6 +221,9 @@ bool Data::processNetwork(ChOption::E option, lc::RTCH& netLC, uint8_t* data, ui
resetNet();
}
if (m_nxdn->m_netState == RS_NET_DATA)
m_nxdn->m_networkWatchdog.start();
channel::UDCH udch;
bool validUDCH = udch.decode(data + 2U);
if (m_nxdn->m_netState == RS_NET_IDLE && !validUDCH)
@ -368,6 +371,7 @@ bool Data::processNetwork(ChOption::E option, lc::RTCH& netLC, uint8_t* data, ui
m_nxdn->m_voice->m_netFrames);
m_nxdn->writeEndNet();
m_nxdn->m_networkWatchdog.stop();
}
return true;

@ -611,6 +611,9 @@ bool Voice::processNetwork(FuncChannelType::E fct, ChOption::E option, lc::RTCH&
resetNet();
}
if (m_nxdn->m_netState == RS_NET_AUDIO)
m_nxdn->m_networkWatchdog.start();
channel::SACCH sacch;
sacch.decode(data + 2U);
@ -649,6 +652,7 @@ bool Voice::processNetwork(FuncChannelType::E fct, ChOption::E option, lc::RTCH&
m_nxdn->m_netState = RS_NET_IDLE;
m_nxdn->m_netMask = 0x00U;
m_nxdn->m_netLC.reset();
m_nxdn->m_networkWatchdog.stop();
return false;
}
}
@ -661,6 +665,7 @@ bool Voice::processNetwork(FuncChannelType::E fct, ChOption::E option, lc::RTCH&
m_nxdn->m_netLC.reset();
m_nxdn->m_netLastDstId = 0U;
m_nxdn->m_netLastSrcId = 0U;
m_nxdn->m_networkWatchdog.stop();
return false;
}
} else if (type == MessageType::RTCH_VCALL) {
@ -891,6 +896,7 @@ bool Voice::processNetwork(FuncChannelType::E fct, ChOption::E option, lc::RTCH&
m_rfBits = 1U;
m_nxdn->m_netTimeout.start();
m_nxdn->m_netState = RS_NET_AUDIO;
m_nxdn->m_networkWatchdog.start();
if (m_verbose) {
LogInfoEx(LOG_NET, "NXDN, " NXDN_RTCH_MSG_TYPE_VCALL ", srcId = %u, dstId = %u, group = %u, emerg = %u, encrypt = %u, prio = %u, algo = $%02X, kid = $%04X",

@ -1681,15 +1681,14 @@ void Control::processNetwork()
return;
}
// perform grant response logic
m_control->writeRF_TSDU_Grant(srcId, dstId, serviceOptions, !unitToUnit, true);
/*
if (!m_control->writeRF_TSDU_Grant(srcId, dstId, serviceOptions, !unitToUnit, true))
{
LogError(LOG_NET, P25_TSDU_STR " call rejected, network call not granted, dstId = %u", dstId);
return;
if (!m_affiliations->isGranted(dstId)) {
// perform grant response logic
if (m_control->writeRF_TSDU_Grant(srcId, dstId, serviceOptions, !unitToUnit, true)) {
m_netLastSrcId = srcId;
m_netLastDstId = dstId;
}
}
*/
return;
}

Loading…
Cancel
Save

Powered by TurnKey Linux.