Don't throw away UM re-assembly state when see MAC retx frame.

svn path=/trunk/; revision=49188
This commit is contained in:
Martin Mathieson 2013-05-06 21:52:49 +00:00
parent 754d4ac902
commit 2771af9851
1 changed files with 5 additions and 2 deletions

View File

@ -1404,17 +1404,20 @@ static sequence_analysis_state checkChannelSequenceInfo(packet_info *pinfo, tvbu
/* For wrong sequence number... */
if (!p_report_in_frame->sequenceExpectedCorrect) {
reassembly_destroy(p_channel_status);
/* Don't get confused by MAC (HARQ) retx */
if (is_mac_lte_frame_retx(pinfo, p_rlc_lte_info->direction)) {
p_report_in_frame->state = SN_MAC_Retx;
p_report_in_frame->firstSN = sequenceNumber;
/* No channel state to update */
break;
}
/* Frames are not missing if we get an earlier sequence number again */
/* TODO: taking time into account would give better idea of whether missing or repeated... */
else if (((snLimit + sequenceNumber - expectedSequenceNumber) % snLimit) < 10) {
reassembly_destroy(p_channel_status);
p_report_in_frame->state = SN_Missing;
tap_info->missingSNs = (snLimit + sequenceNumber - expectedSequenceNumber) % snLimit;
p_report_in_frame->firstSN = expectedSequenceNumber;