Task #2763
closedNDNLPv2: NACK, Fragmentation, NextHopFaceId, CachePolicy, IncomingFaceId
100%
Description
Write spec for initial batch of NDNLPv2 features:
- network NACK
- fragmentation
- NextHopFaceId
- CachingPolicy
- IncomingFaceId
Files
Updated by Junxiao Shi over 9 years ago
- File NDNLPv2_20150417.pptx NDNLPv2_20150417.pptx added
20150420 conference call approved the design of listed features in NDNLPv2_20150417.pptx.
Other features are not yet approved, and are not part of this Task.
Updated by Davide Pesavento over 9 years ago
- Related to Feature #2520: NDNLPv2 high-level design added
Updated by Junxiao Shi over 9 years ago
- % Done changed from 0 to 30
Updated by Junxiao Shi over 9 years ago
- Category changed from Docs to Protocol
- % Done changed from 60 to 70
NACK is written.
Updated by Junxiao Shi over 9 years ago
- Status changed from In Progress to Resolved
- % Done changed from 70 to 100
LocalControlHeader-equivalent field (NextHopFaceId CachingPolicy IncomingFaceId) are complete.
Updated by Junxiao Shi over 9 years ago
- Blocks Feature #2531: LocalControlHeader added
Updated by Junxiao Shi over 9 years ago
- Blocks Task #2841: NDNLPv2 design: packet format API for NACK, Fragmentation, NextHopFaceId, CachePolicy, IncomingFaceId added
Updated by Junxiao Shi over 9 years ago
Answer to #2841 note-13:
Can we call "NdnlpHeaderExtension" a "Feature"?
No, they are distinct concepts.
A feature can have zero or more header extensions (and trailer extensions).
For example, indexed fragmentation feature defines two HeaderExtensions: NdnlpFragIndex
and NdnlpFragCount
.
Why don't we call "Nack" as "NackReason" or just "Reason". The description already calls it this way. For "DuplicataNack" and "GiveUpNack" I would lose "Nack" suffix. Why NACK reason should have "Nack" in it's name?
Agreed.
Why NdnlpPacket is assigned code 100 (0x64)?
This is to avoid clashing with NDNLP-TLV and LocalControlHeader, both of which use 80
as TLV-TYPE code for top-level element.
Updated by Junxiao Shi over 9 years ago
20150608 conference call reviewed revision 213b5818fefc773902728e66d5685cebf883f106.
Some comments are:
- The
Ndnlp
prefix on all types are unnecessary, because the design is in NDN context. However,Lp
prefix should appear on some types, because the "namespace" of TLV-TYPE declarations is flat, andLp
is necessary to distinguish the type as part of NDNLPv2. - Currently there are only 21 TLV-TYPEs reserved for link protocols, which would be insufficient according to the roadmap of NDNLPv2. We decide to reserve a block of TLV-TYPEs in 3-octet range for link protocols, and assign 3-octet codes to less common fields.
- The concept of
HeaderExtension
is confusing. It shall be renamed asHeaderField
. - It's unnecessary to let
Sequence
stand out. Instead, it could be one choice of HeaderField. HeaderField
s under a header should be sorted in increasing TLV-TYPE order, so that there's only one way to encode a packet.NdnlpHeader
andNdnlpTrailer
wrappers are wasting octets. Those wrappers should be dropped, in favor of letting header and trailer fields appear directly underLpPacket
struct.
Updated by Junxiao Shi over 9 years ago
- Blocked by Task #2866: Reserve TLV-TYPE codes for NDNLPv2 added
Updated by Junxiao Shi over 9 years ago
- Description updated (diff)
Document is updated according to note-11.
https://gist.github.com/yoursunny/92d8c3514476be6a7b93/0f51ccaf533e23f645f87893dfada67eb63d0274
Updated by Junxiao Shi over 9 years ago
- Status changed from Resolved to Closed
20150610 conference call approved this portion of the design.
https://gist.github.com/yoursunny/92d8c3514476be6a7b93/ffc631fd6397840adda1b6f3a74b38f431116fea
Updated by Junxiao Shi over 9 years ago
- Related to Feature #2222: NDNLPv2 design: link service added
Updated by Junxiao Shi over 9 years ago
- Subject changed from NDNLPv2: NACK, Fragmentation, LocalControlHeader to NDNLPv2: NACK, Fragmentation, NextHopFaceId, CachingPolicy, IncomingFaceId
Updated by Junxiao Shi over 9 years ago
- Related to Task #2883: NDNLPv2 design: NACK in client Face added
Updated by Junxiao Shi over 9 years ago
- Status changed from Closed to In Progress
- % Done changed from 100 to 80
Updated by Junxiao Shi over 9 years ago
- Status changed from In Progress to Resolved
- % Done changed from 80 to 100
https://gist.github.com/yoursunny/92d8c3514476be6a7b93/c2213a318211cf0980b19bb174c7a835ac51d186
This revision takes some design from https://gist.github.com/cawka/f8bb5f558568f06c78ca/f552c86630eb07579b85849f3108d32bfa2340e6, with the following differences:
- "NackReason-specific TLVs" is not defined, because Duplicate and GiveUp don't need this.
- TLV-TYPE code assignments are updated with NackReason element.
Updated by Junxiao Shi over 9 years ago
- Description updated (diff)
Question: should I change CachingPolicy header field to use a structure similar to Nack?
Updated by Eric Newberry over 9 years ago
Junxiao Shi wrote:
Question: should I change CachingPolicy header field to use a structure similar to Nack?
It would create consistency within the API. Does CachingPolicy need anything besides a non-negative integer to indicate the policy?
Updated by Junxiao Shi over 9 years ago
Answer to #2841 note-33:
I don't really like that you completely removed NackReason-specific elements in the spec. Why do you want to modify core parts of the specification (i.e., suddenly adding rules that Nack can actually contain multiple elements and define rules how to process those elements) instead of defining it just once upfront?
It's pointless to define something that won't be used.
We have decided not to define LpTrailerField
until it's first used.
For the same reason, NackReason-specific elements won't be defined until it's first used.
Updated by Alex Afanasyev over 9 years ago
Junxiao Shi wrote:
Question: should I change CachingPolicy header field to use a structure similar to Nack?
I don't have a strong preference, but leaning towards consistency (so, towards the change).
Updated by Junxiao Shi over 9 years ago
- Status changed from Resolved to In Progress
- % Done changed from 100 to 90
I also prefer to make the note-20 change.
Based on votes in note-21 and note-23, the change will be made, although this means implementation needs reworking.
Updated by Junxiao Shi over 9 years ago
- Status changed from In Progress to Closed
- % Done changed from 90 to 100
https://gist.github.com/yoursunny/92d8c3514476be6a7b93/f5fd5211a0dff7d33c8ad8e44dad9971dcfcaeea
note-20 is fulfilled.
I also renamed CachingPolicy to CachePolicy to reduce the length.
Updated by Davide Pesavento over 9 years ago
- Subject changed from NDNLPv2: NACK, Fragmentation, NextHopFaceId, CachingPolicy, IncomingFaceId to NDNLPv2: NACK, Fragmentation, NextHopFaceId, CachePolicy, IncomingFaceId
Updated by Junxiao Shi over 9 years ago
Spec is updated to revision 4893b3a6183b2751755cc2e9ee208c0c0bbfb8bc with NackReasons defined in #3032 note-2.