Merge pull request #83 from softwareradiosystems/rlc_am_poll_bug

fix bug in RLC AM where poll bit was never set
master
Ismael Gomez 7 years ago committed by GitHub
commit 6619ec9512
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -163,6 +163,8 @@ private:
static const int reordering_timeout_id = 1; static const int reordering_timeout_id = 1;
static const int poll_periodicity = 8; // After how many data PDUs a status PDU shall be requested
// Timer checks // Timer checks
bool status_prohibited(); bool status_prohibited();
bool poll_retx(); bool poll_retx();

@ -381,6 +381,18 @@ bool rlc_am::poll_required()
return true; return true;
if(poll_retx()) if(poll_retx())
return true; return true;
if(tx_sdu_queue.size() == 0 && retx_queue.size() == 0)
return true;
/* According to 5.2.2.1 in 36.322 v13.3.0 a poll should be requested if
* the entire AM window is unacknowledged, i.e. no new PDU can be transmitted.
* However, it seems more appropiate to request more often if polling
* is disabled otherwise, e.g. every N PDUs.
*/
if (cfg.poll_pdu == 0 && cfg.poll_byte == 0 && vt_s % poll_periodicity == 0)
return true;
return false; return false;
} }

Loading…
Cancel
Save