Bug #3693
closedinteg fails due to improper Exclude usage
100%
Description
IntegrationTests FIB matching scenario is failing because of improper Exclude usage.
Step 22 sends an Interest ndn:/D Exclude=[,D]
.
The Interest is sent to a traffic generator server which responds a Data with name ndn:/D/<implicit-digest>
.
However, Exclude=[,D]
implies any implicit digest component, as well as generic name component up to "D" are excluded, so this Data will not match the Interest.
This breaks the expectation of the consumer side that a Data will be received.
To solve this problem, the Interest should be changed to ndn:/D Exclude=[...,D]
where ...
denotes a zero-length generic name component.
Step 24 has the same problem.
Files
Updated by Junxiao Shi over 8 years ago
Also, FIB matching scenario design contains "Do prefix registration using NFD FibMgmt" which is no longer necessary since NFD-RIB is readily available. This clause should be deleted.
Updated by Junxiao Shi over 8 years ago
- Subject changed from integ fails due to improper Exclude to integ fails due to improper Exclude usage
- Description updated (diff)
Updated by Junxiao Shi over 8 years ago
- Related to Bug #3665: Exclude doesn't support ranged operations using ImplicitSha256DigestComponent added
Updated by Eric Newberry over 8 years ago
- Status changed from New to In Progress
Updated by Eric Newberry over 8 years ago
Does [...,D] indicate that ExcludeBefore should include both components ("..." and "D") or that ExcludeAfter should be "..." and ExcludeBefore should be "D"?
Updated by Junxiao Shi over 8 years ago
Answer to note-6:
[...,D]
is using mathematical notation. It's encoded as <NameComponent/><Any/><NameComponent>D</NameComponent>
and can be created from Exclude().excludeRange(name::Component(), name::Component("D"))
.
Updated by Eric Newberry over 8 years ago
- % Done changed from 0 to 90
In order to allow empty Excludes in ndn-traffic-generator, I believe I need to make changes to the client. I've tried adding the ExcludeBeforeEmpty=[0-1] and ExcludeAfterEmpty=[0-1] options and this appears to make the test run successfully. I will submit the ndn-traffic-generator patch to gerrit referencing this issue.
Updated by Eric Newberry over 8 years ago
- Status changed from In Progress to Code review
- % Done changed from 90 to 100
Updated by Junxiao Shi over 8 years ago
Reply to note-8:
The semantics of ExcludeBeforeEmpty
and ExcludeAfterEmpty
are unclear, because there's no corresponding structure in either packet format or ndn::Exclude
class.
It's better to use a structure that matches packet format or ndn::Exclude
class, such as:
ExcludeRange=comp0,comp1
where comp0
and comp1
are two name components in URI representation.
This is converted into a function call exclude.excludeRange(name::Component::fromEscapedString(comp0), name::Component::fromEscapedString(comp1))
.
Updated by Junxiao Shi over 8 years ago
- File 20160804101410.tgz 20160804101410.tgz added
- Status changed from Code review to Closed