<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">I agree that NDN should clarify that.<div class=""><br class=""></div><div class="">In CCNx the intent was that the FinalBlockId in the packet provided a means to implement "boolean IsFinalBlock(content)", and that it could be implemented without any interpretation of the value of the FinalBlockId.</div><div class=""><br class=""></div><div class="">There was no restriction whatsoever on FinalBlockId values in packets where IsFinalBlock() was false -- any interpretation of FinalBlockId in non-final blocks was above the basic protocol level (e.g., in the generic stream profile, or in a specialized application profile). The "advanced warning" was one interpretation, others are possible. If the value of the FinalBlockId field is interpreted care should be given to avoiding failures when unexpected values are presented.</div><div class=""><br class=""></div><div class="">-- Nick</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jun 27, 2018, at 10:45 AM, Junxiao Shi <<a href="mailto:shijunxiao@email.arizona.edu" class="">shijunxiao@email.arizona.edu</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Dear folks<div class=""><br class=""></div><div class="">I have a question regarding the use of FinalBlockId element in a Data packet that is not the final segment itself.</div><div class="">Note that "segment" in this message could be replaced with "timestamp", "sequence number", etc, because FinalBlockId is not required to be a segment number.</div><div class=""><br class=""></div><div class="">NDN Packet Spec <a href="https://named-data.net/doc/NDN-packet-spec/0.3/data.html#finalblockid" target="_blank" class="">defines</a> FinalBlockId as follows:</div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px" class=""><div class="">The optional FinalBlockId identifies the final block in a sequence of fragments. It should be present in the final block itself, and may also be present in other fragments to provide advanced warning of the end to consumers. The value here should be equal to the last explicit name component of the final block.</div></blockquote><div class="">CCNx <a href="https://github.com/ProjectCCNx/ccnx/blob/5be2b715d0cc6bb4b7c6bb7459d311bddff46834/doc/technical/ContentObject.txt#L82-L88" target="_blank" class="">has the same definition</a>.</div><div class=""><br class=""></div><div class="">As I remember (but couldn't find records):</div><div class="">In the final segment, FinalBlockId must equal the last explicit name component.</div><div class="">In earlier segments, producer may include FinalBlockId as an "advanced warning" that a stream is ending. In that case, the segment number in FinalBlockId represents an estimation, and is not required to be exact.</div><div class="">A use case is that, a video stream is going to end within 5 seconds but the producer does not know the exact segment number of the last segment, so it provides an estimate so that consumers can stop sending Interests much more beyond that segment number.</div><div class=""><br class=""></div><div class="">Change 4651 patchset 26 treats a different FinalBlockId in a stream as an error: <a href="https://gerrit.named-data.net/#/c/ndn-cxx/+/4651/26/src/util/segment-fetcher.hpp@138" class="">https://gerrit.named-data.net/#/c/ndn-cxx/+/4651/26/src/util/segment-fetcher.hpp@138</a></div><div class="">Although the later merged code has reverted to my view above, I think the NDN protocol should clarify whether FinalBlockId in non-final segment must be exact, or may be an estimation and therefore could change in later segments.</div><div class=""><br class=""></div><div class="">Yours, Junxiao</div><div class=""><br class=""></div></div>
_______________________________________________<br class="">Ndn-interest mailing list<br class=""><a href="mailto:Ndn-interest@lists.cs.ucla.edu" class="">Ndn-interest@lists.cs.ucla.edu</a><br class="">http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest<br class=""></div></blockquote></div><br class=""></div></body></html>