Task #3552

Specify default ChildSelector behavior for ContentStore lookup

Added by Jeff Burke over 5 years ago. Updated over 4 years ago.

Start date:
Due date:
% Done:


Estimated time:


Specify the ContentStore matching behavior when Interest does not carry ChildSelector.

Current packet format specification (version 0.2-alpha-3) defines the matching rules for leftmost and rightmost, but is vague about the behavior when ChildSelector is omitted.

NFD 0.4.0 treats omitted ChildSelector in the same way as leftmost.

We should decide whether the default should be leftmost, rightmost, or the ContentStore is permitted to return whatever Data that satisfies the Name and other Selectors.


Updated by Alex Afanasyev over 5 years ago

I would ask a slightly different question: is there a use case for "left-most child" at all?

  • When fetching segmented data, if "latest" version is known (meta data, exclude, etc.), the segment number can be specified explicitly
  • Other case?

Updated by Jeff Burke over 5 years ago

In combination with exclude filters, one can use it to ask for the child "right before" a certain query name. I think we used leftmostchild for seeking in NDNVideo- to find the first keyframe before a target seek time, which is needed to actually start rendering the video.


Updated by Lixia Zhang over 5 years ago

the question is not whether leftmost option is useful in any case, but rather what is the most common expectation that we should make the default for. One can always get whatever he wants by using selectors explicitly.

in-network caching is double-edged sword, with a huge gain in scaling delivery but does introduce this new issue of how to get to the latest fast. Left most is an obstacle here -- one has to use exclude to fetch all that's in the cache before one can move forward.


Updated by Junxiao Shi over 5 years ago

  • Project changed from NFD to NDN Specifications
  • Subject changed from Design default behavior for LPM to Specify default ChildSelector behavior for ContentStore lookup
  • Description updated (diff)
  • Start date deleted (03/13/2016)

This belongs to ndn-tlv because it should be specified in packet format.

Original description:

Per discussion in 3/8/16 NFD call - consider what the default behavior should be for LPM. It is currently leftmost child. Should it be rightmost child, often "latest version" ? Design discussion needed.

I'm renamed the issue because there's no Longest Prefix Matching involved.

Also the new description gives an option of permitting the ContentStore to return whatever Data under the prefix, this choice has been rejected by Van in 2014.

His reason is that the forwarder should have a consistent behavior when given the same state (ContentStore entries) and input (Interest).

I agree with this rationale, but I'm still keeping this as part of the design space.


Updated by Junxiao Shi over 4 years ago

  • Status changed from New to Closed
  • Assignee set to Eric Newberry
  • % Done changed from 0 to 100

In ndn-tlv:commit:1c799959484969a7342a7bcdafb2e0ece32484e0, it is defined that omitted ChildSelector is interpreted as leftmost.

Also available in: Atom PDF