You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The ka9q (and n0ary-bbs) stack handles back to back RR and REJ's very poorly.
Notably, RNR/REJ can cause inv_rex() to be called, clearing axp->unack, and thus queuing a new set of transmit attempts. If the sender sends a bunch of RR/RNR/REJ's in a burst in response to sent traffic (eg if there's no T2 timer support, or it's too short, or it's broken!) then this results in the stack making some pretty poor decisions about what to send and when.
So, whilst I'm adding T2 support for data/control paths to KA9Q, it may be interesting to track when a full burst was sent and not re-trigger it until T1 expires and/or we receive an S/I frame with an updated sequence number. That way even if T2 expires and we're ready to send some more data, we won't be sending another packet burst if we've already /sent/ a packet burst.
The text was updated successfully, but these errors were encountered:
The ka9q (and n0ary-bbs) stack handles back to back RR and REJ's very poorly.
Notably, RNR/REJ can cause inv_rex() to be called, clearing axp->unack, and thus queuing a new set of transmit attempts. If the sender sends a bunch of RR/RNR/REJ's in a burst in response to sent traffic (eg if there's no T2 timer support, or it's too short, or it's broken!) then this results in the stack making some pretty poor decisions about what to send and when.
So, whilst I'm adding T2 support for data/control paths to KA9Q, it may be interesting to track when a full burst was sent and not re-trigger it until T1 expires and/or we receive an S/I frame with an updated sequence number. That way even if T2 expires and we're ready to send some more data, we won't be sending another packet burst if we've already /sent/ a packet burst.
The text was updated successfully, but these errors were encountered: