-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ReliableMessageContext::HasPeerRequestedAck should not exist #7339
Comments
bzbarsky-apple
added a commit
to bzbarsky-apple/connectedhomeip
that referenced
this issue
Jun 26, 2021
We used to set a persistent flag on reliable message contexts that would cause them to send piggyback acks with all responses after that point. Stop doing that. Also simplify the handling of the IsAckPending state. It gets set to true when we set a pending ack id, gets set to false when someone takes that ack id from us (e.g. to send the ack). This ensures that SendStandaloneAckMessage() clears the IsAckPending() state (which it already did, but that was not very obvious). Fixes project-chip#7339
bzbarsky-apple
added a commit
to bzbarsky-apple/connectedhomeip
that referenced
this issue
Jun 28, 2021
We used to set a persistent flag on reliable message contexts that would cause them to send piggyback acks with all responses after that point. Stop doing that. Also simplify the handling of the IsAckPending state. It gets set to true when we set a pending ack id, gets set to false when someone takes that ack id from us (e.g. to send the ack). This ensures that SendStandaloneAckMessage() clears the IsAckPending() state (which it already did, but that was not very obvious). Fixes project-chip#7339
woody-apple
pushed a commit
that referenced
this issue
Jun 28, 2021
We used to set a persistent flag on reliable message contexts that would cause them to send piggyback acks with all responses after that point. Stop doing that. Also simplify the handling of the IsAckPending state. It gets set to true when we set a pending ack id, gets set to false when someone takes that ack id from us (e.g. to send the ack). This ensures that SendStandaloneAckMessage() clears the IsAckPending() state (which it already did, but that was not very obvious). Fixes #7339
nikita-s-wrk
pushed a commit
to nikita-s-wrk/connectedhomeip
that referenced
this issue
Sep 23, 2021
) We used to set a persistent flag on reliable message contexts that would cause them to send piggyback acks with all responses after that point. Stop doing that. Also simplify the handling of the IsAckPending state. It gets set to true when we set a pending ack id, gets set to false when someone takes that ack id from us (e.g. to send the ack). This ensures that SendStandaloneAckMessage() clears the IsAckPending() state (which it already did, but that was not very obvious). Fixes project-chip#7339
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Problem
ReliableMessageContext::HasPeerRequestedAck
has the following properties:The only place the flag is checked is
ExchangeMessageDispatch::SendMessage
to decide whether to piggyback an ack.... but that's the wrong thing to check. It should be checking for a pending ack, not whether we have ever had an ack requested.Proposed Solution
Change
ExchangeMessageDispatch::SendMessage
to checkIsAckPending
and remove the unused and easily misusedHasPeerRequestedAck
machinery.The text was updated successfully, but these errors were encountered: