Project

General

Profile

Task #3446

NDNLPv2 support

Added by Alex Afanasyev about 5 years ago. Updated almost 5 years ago.

Status:
Closed
Priority:
High
Assignee:
Start date:
Due date:
% Done:

100%

Estimated time:

Description

Implement NDNLPv2 support at least for:

  • equivalent of LocalControlHeader
  • NACK processing

Related issues

Blocks jndn - Task #3445: Deprecate/Remove LocalControlHeaderClosedJeff Thompson03/31/2016

Actions
#1

Updated by Alex Afanasyev about 5 years ago

  • Blocks Task #3445: Deprecate/Remove LocalControlHeader added
#2

Updated by Alex Afanasyev about 5 years ago

  • Priority changed from Normal to High
#3

Updated by Jeff Burke about 5 years ago

What language support would be most valuable to have first?

#4

Updated by Alex Afanasyev about 5 years ago

I think Java, as it is used by Andrew (I think his apps are effectively broken if upgraded to NFD 0.4.0)

#5

Updated by Andrew Brown about 5 years ago

We tried 0.4 but had some startup issues (a BerEncoding exception coming from libcryptopp?) so I can't confirm Alex's statement; I was under the impression, though, that NDNLP would just wrap the Interest or Data and clients would be able to safely ignore the exterior container?

#6

Updated by Andrew Brown almost 5 years ago

Andrew Brown wrote:

We tried 0.4 but had some startup issues (a BerEncoding exception coming from libcryptopp?) so I can't confirm Alex's statement; I was under the impression, though, that NDNLP would just wrap the Interest or Data and clients would be able to safely ignore the exterior container?

We fixed the BerEncoding issue.

#7

Updated by Jeff Thompson almost 5 years ago

  • Assignee set to Jeff Thompson

Currently, expressInterest has the onData and onTimeout callbacks. To support network Nack, we need another callback. But instead of adding an onNack callback, I propose to add a more general onError callback which would include a network Nack as one kind of error. This would be useful on highly asynchronous platforms where the library cannot report a problem to the application using an exception (which doesn't work with an asynchronous call). The onError callback could also be used for a problem sending the interest due to a local connection drop.

#8

Updated by Jeff Thompson almost 5 years ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 50

In the NDNLPv2 branch of jNDN and NDN-JS, added the NetworkNack object and added support for OnNetworkNack to expressInterest. When decoding an incoming packet, decode an LpPacket and set it in the Interest or Data so that the application can call getIncomingFaceId.

#9

Updated by Andrew Brown almost 5 years ago

Question: can I get an example of how someone/anyone has used the different NACK codes to alter the flow of their application? I am looking at https://github.com/named-data/jndn/commit/f0a50c635afe0cbd27cc84e188b582eb7e457b9b#diff-e12e36065baf92aa80b384cbfb3eef02R35 and was interested in finding out the different actions others are taking: obviously log, wait and re-send for congestion, fail and throw for no route, ___ for duplicate?

#10

Updated by Jeff Thompson almost 5 years ago

Hi Andrew. Can you send the question to nfd-dev? I think it is general enough and will get more attention.

#11

Updated by Jeff Thompson almost 5 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 50 to 100

The changes are merged to the master branch in all libraries.

#12

Updated by Jeff Thompson almost 5 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF