Project

General

Profile

Actions

Bug #3545

closed

pit::Entry::hasUnexpiredOutRecords does not consider Nack

Added by Junxiao Shi over 8 years ago. Updated over 8 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Forwarding
Target version:
Start date:
03/11/2016
Due date:
% Done:

100%

Estimated time:
1.50 h

Description

pit::Entry::hasUnexpiredOutRecords determines whether a PIT entry has any out-record that is still waiting for Data.

A use case is in RetxSuppressionFixed and RetxSuppressionExponential, in which a retransmitted Interest would not be suppressed if there isn't an out-record waiting for Data.

Currently, this function returns true if any out-record's timestamp plus the InterestLifetime is less than now.
In other words, an Interest has been sent to the upstream, InterestLifetime is not exceeded, and Data has not come back (when Data comes back, the out-record is deleted within incoming Data pipeline).

However, if Nack comes back in response to the Interest, the out-record is not deleted within incoming Nack pipeline.
In this case, this function still returns true as if an out-record is waiting for Data, but no Data would ever come back (at upstream node outgoing Nack pipeline deletes the in-record when sending Nack).

Thus, pit::Entry::hasUnexpiredOutRecords should take incoming Nack into consideration, and return true only if the PIT entry has any out-record that is not only unexpired in terms of InterestLifetime, but also not yet Nacked.

The function shall be renamed to fw::hasPendingOutRecords to reflect the semantics change.

Actions

Also available in: Atom PDF