Merge feature/late-entry-dsetup-throttle into tx_receipts

Bring in the 5s late-entry D-SETUP interval fix and return->continue
bug fix from the feature branch. Drop the mcch_queue_depth heuristic
throttle (StackState field, UMAC publish, CMCE check, dl_queue_depth)
in favor of the tx_receipt-based approach on this branch.
This commit is contained in:
proxiboi69
2026-02-26 12:10:03 +02:00
2 changed files with 4 additions and 4 deletions

View File

@@ -8,7 +8,7 @@ use tetra_saps::{
};
const D_SETUP_REPEATS: i32 = 1;
const LATE_ENTRY_INTERVAL_TIMESLOTS: i32 = multiframes!(20);
const LATE_ENTRY_INTERVAL_TIMESLOTS: i32 = multiframes!(5);
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum CircuitErr {
@@ -307,7 +307,7 @@ impl CircuitMgr {
tasks = self.close_expired_circuits(tasks);
// Next, go through channels, see if D-SETUPs need to be sent
// Late entry: resend D-SETUP every 20 multiframes (5 seconds)
// Late entry: resend D-SETUP every 5 seconds
for circuit in self.dl.iter() {
if let Some(circuit) = circuit {
let age = circuit.ts_created.age(dltime);
@@ -319,7 +319,7 @@ impl CircuitMgr {
.get_or_insert_with(Vec::new)
.push(CircuitMgrCmd::SendDSetup(circuit.call_id, circuit.usage, circuit.ts));
}
// Late entry: resend every 20 multiframes
// Late entry: resend every 5 seconds
else if age % LATE_ENTRY_INTERVAL_TIMESLOTS == 0 {
tasks
.get_or_insert_with(Vec::new)

View File

@@ -651,7 +651,7 @@ impl CcBsSubentity {
// Get our cached D-SETUP, build a prim and send it down the stack
let Some((pdu, dest_addr)) = self.cached_setups.get_mut(&call_id) else {
tracing::error!("No cached D-SETUP for call id {}", call_id);
return;
continue;
};
// Update transmission_grant based on current call state:
// During hangtime (nobody transmitting), use NotGranted;