Project

General

Profile

Actions

Bug #5090

closed

PitToken is lost upon ContentStoreHit

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

Status:
Closed
Priority:
Normal
Assignee:
Category:
Forwarding
Target version:
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:

  1. When CS match is found, Forwarder::onContentStoreHit invokes Strategy::afterContentStoreHit, which in turn invokes Strategy::sendData to transmit reply Data to downstream.
  2. Strategy::sendData looks for downstream PitToken among PIT in-records.
  3. However, PIT in-record is only inserted in Forwarder::onContentStoreMiss, not upon CS match.
Actions

Also available in: Atom PDF