<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:DengXian;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@DengXian";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Hi Ashlesh</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The unusual thing, as you tagged in sync-interest-trail, is “not sure what triggers A here”. I looked at A’s nfd.log and pieced together the changes on PIT entry.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>From A’s point of view, face261 is the local app, face262 is B, face263 is C.</p><p class=MsoNormal>Incoming+outgoing Interests, and PIT entry contents are as follows:</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>52.39 from=C=4168 to=app<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'>      PIT in=[C=4168@52.39] out=[app@52.39]<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'>52.72 from=B=6605<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'>      PIT in=[C=4168@52.39,B=6605@52.72] out=[app@52.39]<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'>52.74 from=app=7385 to=B,C<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'>      PIT in=[C=4168@52.39,B=6605@52.72,app=7385@52.74] out=[app@52.39,B@52.74,C@52.74]<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'>56.39 PIT in=[B=6605@52.72,app=7385@52.74]+expired[C=4168@52.39] out=[B@52.74,C@52.74]+expired[app@52.39]<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'>56.72 PIT in=[app=7385@52.74]+expired[C=4168@52.39,B=6605@52.72] out=[B@52.74,C@52.74]+expired[app@52.39]<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'>56.74 Interest unsatisfied, PIT erased<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'>56.89 from=C=0641 to=app<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'>      PIT in=[C=0641@56.89] out=[app@56.89]<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'>56.90 from=app=7567 to=B,C<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'>      PIT in=[C=0641@56.89,app=7567@56.90] out=[app@56.89,B@56.90,C@56.90]<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'>57.06 from=B=1547<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'>      PIT in=[C=0641@56.89,app=7567@56.90,B=1547@57.06] out=[app@56.89,B@56.90,C@56.90]<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'>60.89 PIT in=[app=7567@56.90,B=1547@57.06]+expired[C=0641@56.89] out=[B@56.90,C@56.90]+expired[app@56.89]<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'>60.90 PIT in=[B=1547@57.06]+expired[C=0641@56.89,app=7567@56.90] out=[]+expired[app@56.89,B@56.90,C@56.90]<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'>61.05 from=C=6600 to=app,B,C<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'>      PIT in=[B=1547@57.06,C=6600@61.05]+expired[app=7567@56.90] out=[app@61.05,B@61.05,C@61.05]<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Time is represented with last two digits of integral part and first two digits of fractional part. Nonce is represented with last four digits. PIT in-record is represented as <downstream>=<nonce>@<time>. PIT out-record is represented as <upstream>@<time>.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The PIT entry has been erased at 56.74, so anything before that does not affect the later part.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>At 61.05, an Interest with nonce 6600 is received from C. Before processing this Interest, the PIT entry has one unexpired in-record from B which has nonce 1547 and was created at 57.06; all out-records have been expired.</p><p class=MsoNormal>This Interest is forwarded with nonce 6600 to both app and B.</p><p class=MsoNormal>Since the PIT entry indicates B still wants the Data, the strategy also forwards the Interest with nonce 1547 (which came from B at 57.06) back to C. </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>While this may not be the best idea for multicast strategy, and using a nonce from non-local-app may be problematic with /localhop, this forwarding is valid in general: nonce 1547 has never been forwarded earlier, and downstream B still wants the Data, so the strategy can certainly forward the Interest to C using this nonce.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>If all you see is Nack-Duplicate, but application can still retrieve Data normally, don’t worry about that. The root cause of having Nack-Duplicates is that the topology contains a cycle.</p><p class=MsoNormal>Also, in general case, ChronoSync should not use /localhop, because it’s possible that two participants are not directly connected.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Yours, Junxiao<o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman",serif'><o:p> </o:p></span></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:agawande@memphis.edu">Ashlesh Gawande (agawande)</a><br><b>Sent: </b>Wednesday, June 29, 2016 13:24<br><b>To: </b><a href="mailto:shijunxiao@email.arizona.edu">Junxiao Shi</a><br><b>Cc: </b><a href="mailto:lanwang@memphis.edu">Lan Wang (lanwang)</a>; <a href="mailto:nfd-dev@lists.cs.ucla.edu">nfd-dev@lists.cs.ucla.edu</a><br><b>Subject: </b>Re: [Nfd-dev] Help needed with debugging duplicate Nonce</p></div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman",serif'><o:p> </o:p></span></p><p style='background:white'><span style='font-family:"Calibri",sans-serif;color:black'>Okay, so I performed a new experiment (i.e. just ran minindn and quit after some time) with FibManager and Forwarder DEBUG logs.<o:p></o:p></span></p><p style='background:white'><span style='font-family:"Calibri",sans-serif;color:black'><o:p> </o:p></span></p><p style='background:white'><span style='font-family:"Calibri",sans-serif;color:black'>In this experiment, looked at the first Duplicate NACK on localhop prefix (Nonce: 567161547) and found the following:<o:p></o:p></span></p><p style='background:white'><span style='font-family:"Calibri",sans-serif;color:black'>1) b->a<o:p></o:p></span></p><p style='background:white'><span style='font-family:"Calibri",sans-serif;color:black'>2) b->c<o:p></o:p></span></p><p style='background:white'><span style='font-family:"Calibri",sans-serif;color:black'>3) a->c<o:p></o:p></span></p><p style='background:white'><span style='font-family:"Calibri",sans-serif;color:black'>4) c sends Duplicate NACK<o:p></o:p></span></p><p style='background:white'><span style='font-family:"Calibri",sans-serif;color:black'><o:p> </o:p></span></p><p style='background:white'><span style='font-family:"Calibri",sans-serif;color:black'>This happens around 1467225861 - I don't see any FibManager messages around this time in NFD logs.<o:p></o:p></span></p><p style='background:white'><span style='font-family:"Calibri",sans-serif;color:black'><o:p> </o:p></span></p><p style='background:white'><span style='font-family:"Calibri",sans-serif;color:black'>I have attached a sync interest trail where I grepped for the particular sync interest such as:<o:p></o:p></span></p><p style='background:white'><span style='font-family:"Calibri",sans-serif;color:black'>grep "/localhop/NLSR/sync/e4c858598a526f7f25d42f4da49cb51b7950cf352e26d5092bd35126b509101b?ndn.MustBeFresh=1&ndn.Nonce" */ndndump* | sort -t: -nk2 | awk '{split($NF,a,"Nonce="); $NF=""; print $0 " " a[2]}' > sync-interest-trail<o:p></o:p></span></p><p style='background:white'><span style='font-family:"Calibri",sans-serif;color:black'><o:p> </o:p></span></p><p style='background:white'><span style='font-family:"Calibri",sans-serif;color:black'>(ndndump* includes localhost as well as interface)<o:p></o:p></span></p><p style='background:white'><span style='font-family:"Calibri",sans-serif;color:black'><o:p> </o:p></span></p><p style='background:white'><span style='font-family:"Calibri",sans-serif;color:black'>Seems like before the NACK, a sends interests with two different Nonces - one to c (which resulted in the above NACK), one to b (resulted in another NACK). <o:p></o:p></span></p><p style='background:white'><span style='font-family:"Calibri",sans-serif;color:black'>This time I didn't see any local new interest for the sync on a  (which should be equivalent to b from the previous example).<o:p></o:p></span></p><p style='background:white'><span style='font-family:"Calibri",sans-serif;color:black'><o:p> </o:p></span></p><p style='background:white'><span style='font-family:"Calibri",sans-serif;color:black'>Ashlesh</span><span style='font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div></body></html>