Actions
Bug #5090
closedPitToken is lost upon ContentStoreHit
Start date:
Due date:
% Done:
100%
Estimated time:
1.50 h
Description
Steps to reproduce:
echo -ne '\x64\x16\x62\x01\xD0\x50\x11\x05\x0F\x07\x05\x08\x03ndn\x21\x00\x0A\x04\xAA\xAA\xAA\xAA' \
| nc ROUTER 6363 \
| ndn-dissect
This command transmits an Interest /8=ndn
with CanBePrefix=1, wrapped in an LpPacket with PitToken=D0.
Run this command twice or more.
Expected behavior: the output contains PitToken=D0.
Actual behavior: other than the first run, the output most likely does not contain PitToken.
Root cause:
- When CS match is found,
Forwarder::onContentStoreHit
invokesStrategy::afterContentStoreHit
, which in turn invokesStrategy::sendData
to transmit reply Data to downstream. Strategy::sendData
looks for downstream PitToken among PIT in-records.- However, PIT in-record is only inserted in
Forwarder::onContentStoreMiss
, not upon CS match.
Actions