This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
pespin gerrit-no-reply at lists.osmocom.orgpespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21122 ) Change subject: decoding: Fix implicit ACK due to BeginOfWindow=1 on rx EGPRS PKT DL ACK/NACK ...................................................................... decoding: Fix implicit ACK due to BeginOfWindow=1 on rx EGPRS PKT DL ACK/NACK According to sepcs, if BeginOfWindow=1, then SSN=V(Q)+1 mod 2048. As a result, all unacked BSN before SSN can be marked as ACKED since they are implicitly ACKED (because the window advanced). The calculation, however was wrong. In specs V(A) points to last acked BSN, but in our implementation, V(A) actually refers to the first unacked BSN (see how Window object is initialized to v_s=0 and v_a=0). Hence, spec "V(A) = v_a - 1" in our implementation. Therefore, the calculation on the amount of blocks to ACK would be: V(Q) - (v_a - 1) = (SSN - 1) - (v_a - 1) Which can be simplified to: SSN - v_a Example: PCU sends DL block for BSN=0..20 included, with BSN=20 containing RRBP to ACK them. EGPRS MS would send EGPRS PKT DL ACK/NACK with BEginofWindow=1 and SSN=21 to ACK all of them. Before this patch, PCU would only mark BSN0..19 as ACKED and BSN20 as UNACKED, retransmitting BSN20. Reference: 3GPP TS 44.060 12.3.1 EGPRS Ack/Nack Description Change-Id: Ic71326fc956491bb7e5e50896a6ba8f5354c20ec --- M src/decoding.cpp 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/22/21122/1 diff --git a/src/decoding.cpp b/src/decoding.cpp index 0437994..71e61ea 100644 --- a/src/decoding.cpp +++ b/src/decoding.cpp @@ -684,7 +684,7 @@ */ if (desc->BEGINNING_OF_WINDOW) { - implicitly_acked_blocks = window->mod_sns(ssn - 1 - window->v_a()); + implicitly_acked_blocks = window->mod_sns(ssn - window->v_a()); for (i = 0; i < implicitly_acked_blocks; i++) bitvec_set_bit(bits, ONE); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21122 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic71326fc956491bb7e5e50896a6ba8f5354c20ec Gerrit-Change-Number: 21122 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin at sysmocom.de> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201112/7d34f47c/attachment.htm>