Project

General

Profile

Feature #3071

chunks: segmented file transfer

Added by Junxiao Shi over 5 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Normal
Start date:
Due date:
% Done:

100%

Estimated time:
3.00 h

Description

Develop a pair of programs for segmented retrieval:

  • the producer ndnputchunks reads an input from stdin, and publishes it as segments
    • Name prefix is specified as command line argument, plus a version number from current timestamp
  • the consumer ndncatchunks retrieves segments and writes them to stdout
    • Name prefix is specified as command line argument
    • the latest version should be discovered
    • Interest pipelining should be used, and the maximum number of outstanding Interests is specified as command line argument
    • output should be in the order of segment number

Related issues

Related to ndn-cxx - Task #2106: Segmented retrieval exampleRejected

Actions
#1

Updated by Junxiao Shi over 5 years ago

Some code can be found in http://gerrit.named-data.net/1581 developed during #2106.

Although it's desirable to ensure the procedure is consistent with the best practice to be defined in name discovery technical memo, waiting for that memo is unnecessary because this is primarily a tool instead of an example.

#2

Updated by Junxiao Shi over 5 years ago

  • Related to Task #2106: Segmented retrieval example added
#3

Updated by Anonymous over 5 years ago

  • Assignee set to Anonymous
#4

Updated by Anonymous over 5 years ago

  • Status changed from New to Code review
  • % Done changed from 0 to 80

I essentially moved the example code into the tools repo without modifying it (aside from wscripts). I'd prefer to hold off on any changes to the code itself until future commits.

#6

Updated by Davide Pesavento over 5 years ago

Steve DiBenedetto wrote:

I essentially moved the example code into the tools repo without modifying it (aside from wscripts). I'd prefer to hold off on any changes to the code itself until future commits.

I agree, except for the license(s), namespace(s), and include guards, which should be updated now.

#7

Updated by Junxiao Shi over 5 years ago

I disagree with note-4.

Change 1581 code was never reviewed, so it cannot be "imported" without changes.

Instead, a complete review is needed, and fixes shall be performed within the same commit.

In other words, the commit for this issue is treated as new code without considering its history in unmerged and unreviewed Change 1581.

#8

Updated by Anonymous over 5 years ago

Sorry, but I don't have a lot of time to work on this change. I agreed to your original request because you suggested it was basically moving the year old example code into the tools repo.

Any code changes beyond the kind of stuff that Davide mentioned #6 will need to be handled by someone else or at a future date (December).

#9

Updated by Junxiao Shi over 5 years ago

  • Status changed from Code review to Feedback
  • % Done changed from 80 to 50

Any code changes ... will need to be handled by someone else or at a future date (December).

This isn't high priority, so I'll wait until December.

#10

Updated by Anonymous over 5 years ago

My mistake. I had assumed this was something we wanted for the 0.4.0 release. If there's no particular rush, then I would prefer someone else take the task. The original code was written nearly a year ago, so I suspect there is a substantial amount of work to update it (e.g. NACK usage?).

#11

Updated by Davide Pesavento over 5 years ago

Andrea, who is working with us till the end of February, can take over this task and complete the submission.

#12

Updated by Junxiao Shi over 5 years ago

  • Assignee changed from Anonymous to Andrea Tosatto

Thanks for note-11 offering. This issue is now re-assigned.

#13

Updated by Davide Pesavento over 5 years ago

Junxiao Shi wrote:

Although it's desirable to ensure the procedure is consistent with the best practice to be defined in name discovery technical memo, waiting for that memo is unnecessary because this is primarily a tool instead of an example.

Where is this memo? Is it public yet?

#14

Updated by Davide Pesavento over 5 years ago

  • Status changed from Feedback to Code review
  • % Done changed from 50 to 100
#15

Updated by Davide Pesavento over 5 years ago

http://gerrit.named-data.net/2560

On patch set #10, in discover-version.hpp, Alex raises a design concern:

I'm very much against this file and the whole (forced) mechanisms that relies on timeouts.
We have a better mechanism that is currently being used (to publish NFD calls) that is based on NDNFS definitions. There is no formal spec yet, but it should be soon here: http://redmine.named-data.net/projects/ndn-tlv/wiki

This is in contrast with the instructions given in note-1.

What shall we do? Can we merge this implementation for now and add more "ways" to discover and fetch data at a later time? (note that if the current implementation is rejected, Andrea won't have time to pursue this task any longer, as he needs to move on to other parts of his project)

#16

Updated by Alex Afanasyev over 5 years ago

We cannot merge the code as is, as it forces specific version discovery and it is impossible to use the tool if I already know the version I want to fetch.

For fetch operation, I would prefer not having any discovery by default. As a command-line option, we can allow version to be discovered using various routines, including the one implemented. May be something like -X <name>, where <name> is a mnemonics for the version discovery routine. I have in mind at least three of those:

#17

Updated by Davide Pesavento over 5 years ago

Ok, I agree with making version discovery optional. Andrea will make the necessary changes in http://gerrit.named-data.net/2560 ASAP.

To sum up:

  • by default, ndncatchunks does not perform any discovery and just fetches all data segments, possibly with interest pipelining.

    • Q: do we need a command line option to force fetching a specific version?
  • a new command line option --version-discovery is introduced (not sure which letter to use for the short option, maybe -d ?), which accepts a string argument representing the name of the discovery strategy. In the first version of the tool, only the "iterative" strategy is implemented.

  • additional discovery strategies can be implemented in a separate task, feel free to open a ticket for that.

#18

Updated by Alex Afanasyev over 5 years ago

I agree with the plan. For the first bullet, I would simply assume that the supplied name already includes version, so the first interest can just append segment number and express interest(s).

May be name for the long command-line option can be --discover-version <name>, but either would work for me.

#19

Updated by Andrea Tosatto over 5 years ago

Patch set 14 (http://gerrit.named-data.net/#/c/2560/14) introduces the possibility to use different discover version or to express a specific version included in the the supplied name.
The only discovery method implemented is the iterative (RightMostChild + Exclude), but the new design simplify the introduction of new discover version methods. The main change is the new hierarchy composed as follow:

  • DiscoverVersion is now an abstract class used as base class for every discover version and implement some methods like timeout and nack handle. Another difference, compared the the previous version, is when the right version is discovered or an error occur a signal is emitted.

  • DiscoverVersionIterative implements the iterative discover version and use DiscoverVersion class as base class. When the latest version is discovered a signal with the first segment as parameter is emitted. The first segment is useful to understand the number of the first and last segment to fetch. The consumer will catch the signal and it'll start the pipeline interests with the others segments.

  • DiscoverVersionSpecified is used to retrieve the first segment when a name with a specific version is specified by the user. This is useful to verify the existence of the specified version and to find the number of the first and last segment useful for the pipeline interests. The signal emitted is the same as DiscoverVersionIterative.

The consumer don't know the Discover Version hierarchy, the right type is created inside the main of ndncatchunks and passed as parameter of the run function.

#20

Updated by Alex Afanasyev over 5 years ago

I'm testing patchset 30 and facing the following problem:

# ndncatchunks  ndn:/ndn/edu/memphis/NFD-calls/_list/%C1.FS.dir/%FDV%91%19R
ERROR: Incorrect format of Exclude filter

This data packet exists on NDN testbed and has exactly this name. Why is there a problem with Exclude filter?

Same problem with fetching a specific file:

# ndncatchunks -d fixed /ndn/edu/memphis/NFD-calls/20160105140001.wav.gz.bin/%C1.FS.file/%FDV%91%19F
ERROR: Incorrect format of Exclude filter
#21

Updated by Alex Afanasyev over 5 years ago

I think the small problem is that the above packets don't have segment number in their name. I think we should handle such a case, or at the very least give a more reasonable error message.

#22

Updated by Andrea Tosatto over 5 years ago

Alex Afanasyev wrote:

I think the small problem is that the above packets don't have segment number in their name. I think we should handle such a case, or at the very least give a more reasonable error message.

Solved on patchset 31, now discover version fixed has value 2 as MinSuffixComponents selector.

#23

Updated by Junxiao Shi over 5 years ago

I've tested ndn-tools:commit:4855ed0f5bb26a3593a3c91672ea43ced990ce90 with NFD:commit:9aac87341525333029e4cff17f5447c766ae142d on Ubuntu 12.04, and it does not work.

My steps:

  1. install NFD and ndn-tools (configure line was ./waf configure --enable-chunks)
  2. in nfd.conf, set Forwarder loglevel to DEBUG
  3. console1: nfd-start
  4. console2: date | ndnputchunks -v -p /A
  5. console3: ndncatchunks -v /A

NFD log:

1452987874.985526 INFO: [FaceTable] Added face id=261 remote=fd://31 local=unix:///run/nfd.sock
1452987874.989330 DEBUG: [Forwarder] onIncomingData face=1 data=/localhost/nfd/faces/events/%FE%03
1452987874.989548 DEBUG: [Forwarder] onIncomingData matching=/localhost/nfd/faces/events/%FE%03
1452987874.989721 DEBUG: [Forwarder] onOutgoingData face=260 data=/localhost/nfd/faces/events/%FE%03
1452987874.990018 DEBUG: [Forwarder] onIncomingInterest face=261 interest=/localhost/nfd/rib/register/h%08%07%03%08%01Al%01%01/%00%00%01RL%D3%7E%A4/%3A%CEL%5B%B8%E2%960/%165%1B%01%01%1C0%07.%08%0Bmy-identity%08%03KEY%08%11ksk-1450627779118%08%07ID-CERT/%17%FD%01%007%06%D9%CE%DC%89%BA%AF%88%B3%0AQf%1B%E6%3A%E9%E8%60e0%C2%1D%E2%7F%9C%D9a%92%08+Mb%82J%F2%92%BAO_%CE%C8%0E%16%5C%22Y%B6%D2%84%A3%11%BDt%14%9F%8Eb%A7M%7F%EA%1A%7F%A8qy9%A5%A8%94%E8%19X%FC%0B%D2%C8%A9%A7%A4%E4%DDCB%10%06%22%C1%A4m%87%5B%02%7E%0D%EFg%C9%E68jX%1F1%9E%C7%86%81k%FA%26%CC%96%25%F2aT%22Dj%9F%24%C8%89%08qC%CF%3E%1D%18%0E%B7%24%8D%27G%8Ey%09K%A9r%CC%9D%9E%BF%E5%CF%B5%3D%BF%0D%99%10FP%EET%60%E4L%9E%2C%00%C7g%C8%E8%C9%24%C0%1D%3A%F9%E6%B0%B2I%DF%98Y%C1AV%3C%7E-%FD%00%04%2F%F9_%84%CB%7C%8Ez4%B7%B5%B2%AE%0CM%A3Q%9C%29Gg%932e%89%D3%FA%24%3C%C7m%AF4%26%91%A0%E5Z%A80%A7%24%0D%5Bj%0E1%B1o%DE%25%7FU%98%04%AD%BDB%CDd%BD%81R%99
1452987874.991325 DEBUG: [Forwarder] onContentStoreMiss interest=/localhost/nfd/rib/register/h%08%07%03%08%01Al%01%01/%00%00%01RL%D3%7E%A4/%3A%CEL%5B%B8%E2%960/%165%1B%01%01%1C0%07.%08%0Bmy-identity%08%03KEY%08%11ksk-1450627779118%08%07ID-CERT/%17%FD%01%007%06%D9%CE%DC%89%BA%AF%88%B3%0AQf%1B%E6%3A%E9%E8%60e0%C2%1D%E2%7F%9C%D9a%92%08+Mb%82J%F2%92%BAO_%CE%C8%0E%16%5C%22Y%B6%D2%84%A3%11%BDt%14%9F%8Eb%A7M%7F%EA%1A%7F%A8qy9%A5%A8%94%E8%19X%FC%0B%D2%C8%A9%A7%A4%E4%DDCB%10%06%22%C1%A4m%87%5B%02%7E%0D%EFg%C9%E68jX%1F1%9E%C7%86%81k%FA%26%CC%96%25%F2aT%22Dj%9F%24%C8%89%08qC%CF%3E%1D%18%0E%B7%24%8D%27G%8Ey%09K%A9r%CC%9D%9E%BF%E5%CF%B5%3D%BF%0D%99%10FP%EET%60%E4L%9E%2C%00%C7g%C8%E8%C9%24%C0%1D%3A%F9%E6%B0%B2I%DF%98Y%C1AV%3C%7E-%FD%00%04%2F%F9_%84%CB%7C%8Ez4%B7%B5%B2%AE%0CM%A3Q%9C%29Gg%932e%89%D3%FA%24%3C%C7m%AF4%26%91%A0%E5Z%A80%A7%24%0D%5Bj%0E1%B1o%DE%25%7FU%98%04%AD%BDB%CDd%BD%81R%99
1452987874.992650 DEBUG: [Forwarder] onOutgoingInterest face=260 interest=/localhost/nfd/rib/register/h%08%07%03%08%01Al%01%01/%00%00%01RL%D3%7E%A4/%3A%CEL%5B%B8%E2%960/%165%1B%01%01%1C0%07.%08%0Bmy-identity%08%03KEY%08%11ksk-1450627779118%08%07ID-CERT/%17%FD%01%007%06%D9%CE%DC%89%BA%AF%88%B3%0AQf%1B%E6%3A%E9%E8%60e0%C2%1D%E2%7F%9C%D9a%92%08+Mb%82J%F2%92%BAO_%CE%C8%0E%16%5C%22Y%B6%D2%84%A3%11%BDt%14%9F%8Eb%A7M%7F%EA%1A%7F%A8qy9%A5%A8%94%E8%19X%FC%0B%D2%C8%A9%A7%A4%E4%DDCB%10%06%22%C1%A4m%87%5B%02%7E%0D%EFg%C9%E68jX%1F1%9E%C7%86%81k%FA%26%CC%96%25%F2aT%22Dj%9F%24%C8%89%08qC%CF%3E%1D%18%0E%B7%24%8D%27G%8Ey%09K%A9r%CC%9D%9E%BF%E5%CF%B5%3D%BF%0D%99%10FP%EET%60%E4L%9E%2C%00%C7g%C8%E8%C9%24%C0%1D%3A%F9%E6%B0%B2I%DF%98Y%C1AV%3C%7E-%FD%00%04%2F%F9_%84%CB%7C%8Ez4%B7%B5%B2%AE%0CM%A3Q%9C%29Gg%932e%89%D3%FA%24%3C%C7m%AF4%26%91%A0%E5Z%A80%A7%24%0D%5Bj%0E1%B1o%DE%25%7FU%98%04%AD%BDB%CDd%BD%81R%99
1452987874.994053 DEBUG: [Forwarder] onIncomingInterest face=260 interest=/localhost/nfd/faces/events/%FE%04
1452987874.994297 DEBUG: [Forwarder] onContentStoreMiss interest=/localhost/nfd/faces/events/%FE%04
1452987874.994419 DEBUG: [Forwarder] onOutgoingInterest face=1 interest=/localhost/nfd/faces/events/%FE%04
1452987874.997186 INFO: [RibManager] Adding route /A nexthop=261 origin=0 cost=0
1452987874.997336 DEBUG: [Forwarder] onIncomingData face=260 data=/localhost/nfd/rib/register/h%08%07%03%08%01Al%01%01/%00%00%01RL%D3%7E%A4/%3A%CEL%5B%B8%E2%960/%165%1B%01%01%1C0%07.%08%0Bmy-identity%08%03KEY%08%11ksk-1450627779118%08%07ID-CERT/%17%FD%01%007%06%D9%CE%DC%89%BA%AF%88%B3%0AQf%1B%E6%3A%E9%E8%60e0%C2%1D%E2%7F%9C%D9a%92%08+Mb%82J%F2%92%BAO_%CE%C8%0E%16%5C%22Y%B6%D2%84%A3%11%BDt%14%9F%8Eb%A7M%7F%EA%1A%7F%A8qy9%A5%A8%94%E8%19X%FC%0B%D2%C8%A9%A7%A4%E4%DDCB%10%06%22%C1%A4m%87%5B%02%7E%0D%EFg%C9%E68jX%1F1%9E%C7%86%81k%FA%26%CC%96%25%F2aT%22Dj%9F%24%C8%89%08qC%CF%3E%1D%18%0E%B7%24%8D%27G%8Ey%09K%A9r%CC%9D%9E%BF%E5%CF%B5%3D%BF%0D%99%10FP%EET%60%E4L%9E%2C%00%C7g%C8%E8%C9%24%C0%1D%3A%F9%E6%B0%B2I%DF%98Y%C1AV%3C%7E-%FD%00%04%2F%F9_%84%CB%7C%8Ez4%B7%B5%B2%AE%0CM%A3Q%9C%29Gg%932e%89%D3%FA%24%3C%C7m%AF4%26%91%A0%E5Z%A80%A7%24%0D%5Bj%0E1%B1o%DE%25%7FU%98%04%AD%BDB%CDd%BD%81R%99
1452987874.998591 DEBUG: [Forwarder] onIncomingData matching=/localhost/nfd/rib/register/h%08%07%03%08%01Al%01%01/%00%00%01RL%D3%7E%A4/%3A%CEL%5B%B8%E2%960/%165%1B%01%01%1C0%07.%08%0Bmy-identity%08%03KEY%08%11ksk-1450627779118%08%07ID-CERT/%17%FD%01%007%06%D9%CE%DC%89%BA%AF%88%B3%0AQf%1B%E6%3A%E9%E8%60e0%C2%1D%E2%7F%9C%D9a%92%08+Mb%82J%F2%92%BAO_%CE%C8%0E%16%5C%22Y%B6%D2%84%A3%11%BDt%14%9F%8Eb%A7M%7F%EA%1A%7F%A8qy9%A5%A8%94%E8%19X%FC%0B%D2%C8%A9%A7%A4%E4%DDCB%10%06%22%C1%A4m%87%5B%02%7E%0D%EFg%C9%E68jX%1F1%9E%C7%86%81k%FA%26%CC%96%25%F2aT%22Dj%9F%24%C8%89%08qC%CF%3E%1D%18%0E%B7%24%8D%27G%8Ey%09K%A9r%CC%9D%9E%BF%E5%CF%B5%3D%BF%0D%99%10FP%EET%60%E4L%9E%2C%00%C7g%C8%E8%C9%24%C0%1D%3A%F9%E6%B0%B2I%DF%98Y%C1AV%3C%7E-%FD%00%04%2F%F9_%84%CB%7C%8Ez4%B7%B5%B2%AE%0CM%A3Q%9C%29Gg%932e%89%D3%FA%24%3C%C7m%AF4%26%91%A0%E5Z%A80%A7%24%0D%5Bj%0E1%B1o%DE%25%7FU%98%04%AD%BDB%CDd%BD%81R%99
1452987874.999421 DEBUG: [Forwarder] onOutgoingData face=261 data=/localhost/nfd/rib/register/h%08%07%03%08%01Al%01%01/%00%00%01RL%D3%7E%A4/%3A%CEL%5B%B8%E2%960/%165%1B%01%01%1C0%07.%08%0Bmy-identity%08%03KEY%08%11ksk-1450627779118%08%07ID-CERT/%17%FD%01%007%06%D9%CE%DC%89%BA%AF%88%B3%0AQf%1B%E6%3A%E9%E8%60e0%C2%1D%E2%7F%9C%D9a%92%08+Mb%82J%F2%92%BAO_%CE%C8%0E%16%5C%22Y%B6%D2%84%A3%11%BDt%14%9F%8Eb%A7M%7F%EA%1A%7F%A8qy9%A5%A8%94%E8%19X%FC%0B%D2%C8%A9%A7%A4%E4%DDCB%10%06%22%C1%A4m%87%5B%02%7E%0D%EFg%C9%E68jX%1F1%9E%C7%86%81k%FA%26%CC%96%25%F2aT%22Dj%9F%24%C8%89%08qC%CF%3E%1D%18%0E%B7%24%8D%27G%8Ey%09K%A9r%CC%9D%9E%BF%E5%CF%B5%3D%BF%0D%99%10FP%EET%60%E4L%9E%2C%00%C7g%C8%E8%C9%24%C0%1D%3A%F9%E6%B0%B2I%DF%98Y%C1AV%3C%7E-%FD%00%04%2F%F9_%84%CB%7C%8Ez4%B7%B5%B2%AE%0CM%A3Q%9C%29Gg%932e%89%D3%FA%24%3C%C7m%AF4%26%91%A0%E5Z%A80%A7%24%0D%5Bj%0E1%B1o%DE%25%7FU%98%04%AD%BDB%CDd%BD%81R%99
1452987875.000773 DEBUG: [Forwarder] onIncomingInterest face=260 interest=/localhost/nfd/fib/add-nexthop/h%0C%07%03%08%01Ai%02%01%05j%01%00/%00%00%01RL%D3%7E%B5/%3F+K%1DZ%8F%E4%2F/%165%1B%01%01%1C0%07.%08%0Bmy-identity%08%03KEY%08%11ksk-1450627779118%08%07ID-CERT/%17%FD%01%00Or%81%27%A9b%EEz%1A%9E%CB%B9%EAS8%01%40X%21%82u%BB%D4%B5%BD%9E%EAu%0E%12%86s%2F%AA%0E%E7%8A%F5%25K%27%24%5C%E7%DD5%E5Sw%80s%04Dx%96%95o%0C%27%89a%EE9%F7%E9%DEM%12%1D%9F%ACpzk%5B%8B%ED%B4%9F%8F%CD%B7%03M%2C%EE%1E%DF%E6%7F%7C%EE%1D%E2%F5j%88%08%92%F26t%E9%89%D7C%1Bq%8D%EC%C9.%0Ci%18%A0%EC%06%B0%A0%23%EB%FC%5BADp%3B%B3yY%A7%19%B0S%82%D8%FCF%86%AA%CF%CF%CE%05%AF%A3%27l%92%0E9%F1%C9%8D%87fqR%CD7%CA%05%91%C0%13%9B%9C%91%B4%DB%B2%7D%B6Mn%10%D2%F0%B1%91%5B%F0%08s%D5%9DM%95UZ%DF%8EO%B8NRE%D6%D4%8D%E1W%1C%CD%FE%B3%B3%7B%02f%29Bn%2F%F1%DC%A7%F7%A5%E5%D4%F5%90%7F%2F%5D%04%1C%EE%E8%E4J%D5%AD%3D%FB%E7%C9%01q-G%92%8B%B6%7E%C4%2F-%06%CBx%94%23%A2
1452987875.002233 DEBUG: [Forwarder] onContentStoreMiss interest=/localhost/nfd/fib/add-nexthop/h%0C%07%03%08%01Ai%02%01%05j%01%00/%00%00%01RL%D3%7E%B5/%3F+K%1DZ%8F%E4%2F/%165%1B%01%01%1C0%07.%08%0Bmy-identity%08%03KEY%08%11ksk-1450627779118%08%07ID-CERT/%17%FD%01%00Or%81%27%A9b%EEz%1A%9E%CB%B9%EAS8%01%40X%21%82u%BB%D4%B5%BD%9E%EAu%0E%12%86s%2F%AA%0E%E7%8A%F5%25K%27%24%5C%E7%DD5%E5Sw%80s%04Dx%96%95o%0C%27%89a%EE9%F7%E9%DEM%12%1D%9F%ACpzk%5B%8B%ED%B4%9F%8F%CD%B7%03M%2C%EE%1E%DF%E6%7F%7C%EE%1D%E2%F5j%88%08%92%F26t%E9%89%D7C%1Bq%8D%EC%C9.%0Ci%18%A0%EC%06%B0%A0%23%EB%FC%5BADp%3B%B3yY%A7%19%B0S%82%D8%FCF%86%AA%CF%CF%CE%05%AF%A3%27l%92%0E9%F1%C9%8D%87fqR%CD7%CA%05%91%C0%13%9B%9C%91%B4%DB%B2%7D%B6Mn%10%D2%F0%B1%91%5B%F0%08s%D5%9DM%95UZ%DF%8EO%B8NRE%D6%D4%8D%E1W%1C%CD%FE%B3%B3%7B%02f%29Bn%2F%F1%DC%A7%F7%A5%E5%D4%F5%90%7F%2F%5D%04%1C%EE%E8%E4J%D5%AD%3D%FB%E7%C9%01q-G%92%8B%B6%7E%C4%2F-%06%CBx%94%23%A2
1452987875.003484 DEBUG: [Forwarder] onOutgoingInterest face=1 interest=/localhost/nfd/fib/add-nexthop/h%0C%07%03%08%01Ai%02%01%05j%01%00/%00%00%01RL%D3%7E%B5/%3F+K%1DZ%8F%E4%2F/%165%1B%01%01%1C0%07.%08%0Bmy-identity%08%03KEY%08%11ksk-1450627779118%08%07ID-CERT/%17%FD%01%00Or%81%27%A9b%EEz%1A%9E%CB%B9%EAS8%01%40X%21%82u%BB%D4%B5%BD%9E%EAu%0E%12%86s%2F%AA%0E%E7%8A%F5%25K%27%24%5C%E7%DD5%E5Sw%80s%04Dx%96%95o%0C%27%89a%EE9%F7%E9%DEM%12%1D%9F%ACpzk%5B%8B%ED%B4%9F%8F%CD%B7%03M%2C%EE%1E%DF%E6%7F%7C%EE%1D%E2%F5j%88%08%92%F26t%E9%89%D7C%1Bq%8D%EC%C9.%0Ci%18%A0%EC%06%B0%A0%23%EB%FC%5BADp%3B%B3yY%A7%19%B0S%82%D8%FCF%86%AA%CF%CF%CE%05%AF%A3%27l%92%0E9%F1%C9%8D%87fqR%CD7%CA%05%91%C0%13%9B%9C%91%B4%DB%B2%7D%B6Mn%10%D2%F0%B1%91%5B%F0%08s%D5%9DM%95UZ%DF%8EO%B8NRE%D6%D4%8D%E1W%1C%CD%FE%B3%B3%7B%02f%29Bn%2F%F1%DC%A7%F7%A5%E5%D4%F5%90%7F%2F%5D%04%1C%EE%E8%E4J%D5%AD%3D%FB%E7%C9%01q-G%92%8B%B6%7E%C4%2F-%06%CBx%94%23%A2
1452987875.008924 DEBUG: [Forwarder] onIncomingData face=1 data=/localhost/nfd/fib/add-nexthop/h%0C%07%03%08%01Ai%02%01%05j%01%00/%00%00%01RL%D3%7E%B5/%3F+K%1DZ%8F%E4%2F/%165%1B%01%01%1C0%07.%08%0Bmy-identity%08%03KEY%08%11ksk-1450627779118%08%07ID-CERT/%17%FD%01%00Or%81%27%A9b%EEz%1A%9E%CB%B9%EAS8%01%40X%21%82u%BB%D4%B5%BD%9E%EAu%0E%12%86s%2F%AA%0E%E7%8A%F5%25K%27%24%5C%E7%DD5%E5Sw%80s%04Dx%96%95o%0C%27%89a%EE9%F7%E9%DEM%12%1D%9F%ACpzk%5B%8B%ED%B4%9F%8F%CD%B7%03M%2C%EE%1E%DF%E6%7F%7C%EE%1D%E2%F5j%88%08%92%F26t%E9%89%D7C%1Bq%8D%EC%C9.%0Ci%18%A0%EC%06%B0%A0%23%EB%FC%5BADp%3B%B3yY%A7%19%B0S%82%D8%FCF%86%AA%CF%CF%CE%05%AF%A3%27l%92%0E9%F1%C9%8D%87fqR%CD7%CA%05%91%C0%13%9B%9C%91%B4%DB%B2%7D%B6Mn%10%D2%F0%B1%91%5B%F0%08s%D5%9DM%95UZ%DF%8EO%B8NRE%D6%D4%8D%E1W%1C%CD%FE%B3%B3%7B%02f%29Bn%2F%F1%DC%A7%F7%A5%E5%D4%F5%90%7F%2F%5D%04%1C%EE%E8%E4J%D5%AD%3D%FB%E7%C9%01q-G%92%8B%B6%7E%C4%2F-%06%CBx%94%23%A2
1452987875.010176 DEBUG: [Forwarder] onIncomingData matching=/localhost/nfd/fib/add-nexthop/h%0C%07%03%08%01Ai%02%01%05j%01%00/%00%00%01RL%D3%7E%B5/%3F+K%1DZ%8F%E4%2F/%165%1B%01%01%1C0%07.%08%0Bmy-identity%08%03KEY%08%11ksk-1450627779118%08%07ID-CERT/%17%FD%01%00Or%81%27%A9b%EEz%1A%9E%CB%B9%EAS8%01%40X%21%82u%BB%D4%B5%BD%9E%EAu%0E%12%86s%2F%AA%0E%E7%8A%F5%25K%27%24%5C%E7%DD5%E5Sw%80s%04Dx%96%95o%0C%27%89a%EE9%F7%E9%DEM%12%1D%9F%ACpzk%5B%8B%ED%B4%9F%8F%CD%B7%03M%2C%EE%1E%DF%E6%7F%7C%EE%1D%E2%F5j%88%08%92%F26t%E9%89%D7C%1Bq%8D%EC%C9.%0Ci%18%A0%EC%06%B0%A0%23%EB%FC%5BADp%3B%B3yY%A7%19%B0S%82%D8%FCF%86%AA%CF%CF%CE%05%AF%A3%27l%92%0E9%F1%C9%8D%87fqR%CD7%CA%05%91%C0%13%9B%9C%91%B4%DB%B2%7D%B6Mn%10%D2%F0%B1%91%5B%F0%08s%D5%9DM%95UZ%DF%8EO%B8NRE%D6%D4%8D%E1W%1C%CD%FE%B3%B3%7B%02f%29Bn%2F%F1%DC%A7%F7%A5%E5%D4%F5%90%7F%2F%5D%04%1C%EE%E8%E4J%D5%AD%3D%FB%E7%C9%01q-G%92%8B%B6%7E%C4%2F-%06%CBx%94%23%A2
1452987875.011472 DEBUG: [Forwarder] onOutgoingData face=260 data=/localhost/nfd/fib/add-nexthop/h%0C%07%03%08%01Ai%02%01%05j%01%00/%00%00%01RL%D3%7E%B5/%3F+K%1DZ%8F%E4%2F/%165%1B%01%01%1C0%07.%08%0Bmy-identity%08%03KEY%08%11ksk-1450627779118%08%07ID-CERT/%17%FD%01%00Or%81%27%A9b%EEz%1A%9E%CB%B9%EAS8%01%40X%21%82u%BB%D4%B5%BD%9E%EAu%0E%12%86s%2F%AA%0E%E7%8A%F5%25K%27%24%5C%E7%DD5%E5Sw%80s%04Dx%96%95o%0C%27%89a%EE9%F7%E9%DEM%12%1D%9F%ACpzk%5B%8B%ED%B4%9F%8F%CD%B7%03M%2C%EE%1E%DF%E6%7F%7C%EE%1D%E2%F5j%88%08%92%F26t%E9%89%D7C%1Bq%8D%EC%C9.%0Ci%18%A0%EC%06%B0%A0%23%EB%FC%5BADp%3B%B3yY%A7%19%B0S%82%D8%FCF%86%AA%CF%CF%CE%05%AF%A3%27l%92%0E9%F1%C9%8D%87fqR%CD7%CA%05%91%C0%13%9B%9C%91%B4%DB%B2%7D%B6Mn%10%D2%F0%B1%91%5B%F0%08s%D5%9DM%95UZ%DF%8EO%B8NRE%D6%D4%8D%E1W%1C%CD%FE%B3%B3%7B%02f%29Bn%2F%F1%DC%A7%F7%A5%E5%D4%F5%90%7F%2F%5D%04%1C%EE%E8%E4J%D5%AD%3D%FB%E7%C9%01q-G%92%8B%B6%7E%C4%2F-%06%CBx%94%23%A2
1452987875.013188 INFO: [AutoPrefixPropagator] no signing identity available for: /A
1452987875.089839 DEBUG: [Forwarder] onInterestFinalize interest=/localhost/nfd/faces/events/%FE%03 satisfied
1452987875.099673 DEBUG: [Forwarder] onInterestFinalize interest=/localhost/nfd/rib/register/h%08%07%03%08%01Al%01%01/%00%00%01RL%D3%7E%A4/%3A%CEL%5B%B8%E2%960/%165%1B%01%01%1C0%07.%08%0Bmy-identity%08%03KEY%08%11ksk-1450627779118%08%07ID-CERT/%17%FD%01%007%06%D9%CE%DC%89%BA%AF%88%B3%0AQf%1B%E6%3A%E9%E8%60e0%C2%1D%E2%7F%9C%D9a%92%08+Mb%82J%F2%92%BAO_%CE%C8%0E%16%5C%22Y%B6%D2%84%A3%11%BDt%14%9F%8Eb%A7M%7F%EA%1A%7F%A8qy9%A5%A8%94%E8%19X%FC%0B%D2%C8%A9%A7%A4%E4%DDCB%10%06%22%C1%A4m%87%5B%02%7E%0D%EFg%C9%E68jX%1F1%9E%C7%86%81k%FA%26%CC%96%25%F2aT%22Dj%9F%24%C8%89%08qC%CF%3E%1D%18%0E%B7%24%8D%27G%8Ey%09K%A9r%CC%9D%9E%BF%E5%CF%B5%3D%BF%0D%99%10FP%EET%60%E4L%9E%2C%00%C7g%C8%E8%C9%24%C0%1D%3A%F9%E6%B0%B2I%DF%98Y%C1AV%3C%7E-%FD%00%04%2F%F9_%84%CB%7C%8Ez4%B7%B5%B2%AE%0CM%A3Q%9C%29Gg%932e%89%D3%FA%24%3C%C7m%AF4%26%91%A0%E5Z%A80%A7%24%0D%5Bj%0E1%B1o%DE%25%7FU%98%04%AD%BDB%CDd%BD%81R%99 satisfied
1452987875.112744 DEBUG: [Forwarder] onInterestFinalize interest=/localhost/nfd/fib/add-nexthop/h%0C%07%03%08%01Ai%02%01%05j%01%00/%00%00%01RL%D3%7E%B5/%3F+K%1DZ%8F%E4%2F/%165%1B%01%01%1C0%07.%08%0Bmy-identity%08%03KEY%08%11ksk-1450627779118%08%07ID-CERT/%17%FD%01%00Or%81%27%A9b%EEz%1A%9E%CB%B9%EAS8%01%40X%21%82u%BB%D4%B5%BD%9E%EAu%0E%12%86s%2F%AA%0E%E7%8A%F5%25K%27%24%5C%E7%DD5%E5Sw%80s%04Dx%96%95o%0C%27%89a%EE9%F7%E9%DEM%12%1D%9F%ACpzk%5B%8B%ED%B4%9F%8F%CD%B7%03M%2C%EE%1E%DF%E6%7F%7C%EE%1D%E2%F5j%88%08%92%F26t%E9%89%D7C%1Bq%8D%EC%C9.%0Ci%18%A0%EC%06%B0%A0%23%EB%FC%5BADp%3B%B3yY%A7%19%B0S%82%D8%FCF%86%AA%CF%CF%CE%05%AF%A3%27l%92%0E9%F1%C9%8D%87fqR%CD7%CA%05%91%C0%13%9B%9C%91%B4%DB%B2%7D%B6Mn%10%D2%F0%B1%91%5B%F0%08s%D5%9DM%95UZ%DF%8EO%B8NRE%D6%D4%8D%E1W%1C%CD%FE%B3%B3%7B%02f%29Bn%2F%F1%DC%A7%F7%A5%E5%D4%F5%90%7F%2F%5D%04%1C%EE%E8%E4J%D5%AD%3D%FB%E7%C9%01q-G%92%8B%B6%7E%C4%2F-%06%CBx%94%23%A2 satisfied
1452987878.933903 INFO: [UnixStreamTransport] [id=0,local=unix:///run/nfd.sock,remote=fd://32] Creating transport
1452987878.934008 INFO: [FaceTable] Added face id=262 remote=fd://32 local=unix:///run/nfd.sock
1452987878.937143 DEBUG: [Forwarder] onIncomingData face=1 data=/localhost/nfd/faces/events/%FE%04
1452987878.937354 DEBUG: [Forwarder] onIncomingData matching=/localhost/nfd/faces/events/%FE%04
1452987878.937525 DEBUG: [Forwarder] onOutgoingData face=260 data=/localhost/nfd/faces/events/%FE%04
1452987878.937828 DEBUG: [Forwarder] onIncomingInterest face=262 interest=/A
1452987878.937943 DEBUG: [Forwarder] onContentStoreMiss interest=/A
1452987878.938016 DEBUG: [Forwarder] onOutgoingInterest face=261 interest=/A
1452987878.938346 DEBUG: [Forwarder] onIncomingInterest face=260 interest=/localhost/nfd/faces/events/%FE%05
1452987878.938604 DEBUG: [Forwarder] onContentStoreMiss interest=/localhost/nfd/faces/events/%FE%05
1452987878.938728 DEBUG: [Forwarder] onOutgoingInterest face=1 interest=/localhost/nfd/faces/events/%FE%05
1452987879.037676 DEBUG: [Forwarder] onInterestFinalize interest=/localhost/nfd/faces/events/%FE%04 satisfied
1452987882.936231 DEBUG: [Forwarder] onIncomingInterest face=262 interest=/A
1452987882.936480 DEBUG: [Forwarder] onContentStoreMiss interest=/A
1452987882.936608 DEBUG: [Forwarder] onOutgoingInterest face=261 interest=/A
1452987886.936662 DEBUG: [Forwarder] onInterestUnsatisfied interest=/A
1452987886.936768 DEBUG: [Forwarder] onInterestFinalize interest=/A unsatisfied
1452987886.937646 DEBUG: [Forwarder] onIncomingInterest face=262 interest=/A
1452987886.937789 DEBUG: [Forwarder] onContentStoreMiss interest=/A
1452987886.937868 DEBUG: [Forwarder] onOutgoingInterest face=261 interest=/A
1452987890.938052 DEBUG: [Forwarder] onInterestUnsatisfied interest=/A
1452987890.938162 DEBUG: [Forwarder] onInterestFinalize interest=/A unsatisfied
1452987890.938837 DEBUG: [Forwarder] onIncomingInterest face=262 interest=/A
1452987890.938981 DEBUG: [Forwarder] onContentStoreMiss interest=/A
1452987890.939082 DEBUG: [Forwarder] onOutgoingInterest face=261 interest=/A
1452987894.939253 DEBUG: [Forwarder] onInterestUnsatisfied interest=/A
1452987894.939450 DEBUG: [Forwarder] onInterestFinalize interest=/A unsatisfied
1452987894.940256 INFO: [Transport] [id=262,local=unix:///run/nfd.sock,remote=fd://32] setState UP -> FAILED
1452987894.940387 INFO: [Transport] [id=262,local=unix:///run/nfd.sock,remote=fd://32] setState FAILED -> CLOSED
1452987894.943703 INFO: [FaceTable] Removed face id=262 remote=fd://32 local=unix:///run/nfd.sock

ndnputchunks output:

shijunxiao@m0212:~$ date | ndnputchunks -v -p /A
Loading input ...
Created 1 chunks for prefix /A
%FD%00%00%01RL%D3%7E%9F
Data published with name: /A/%FD%00%00%01RL%D3%7E%9F
Interest: /A?ndn.MinSuffixComponents=2&ndn.MaxSuffixComponents=2&ndn.Nonce=4139122866
Interest: /A?ndn.MinSuffixComponents=2&ndn.MaxSuffixComponents=2&ndn.Nonce=2572553597
Interest: /A?ndn.MinSuffixComponents=2&ndn.MaxSuffixComponents=2&ndn.Nonce=1152382862
Interest: /A?ndn.MinSuffixComponents=2&ndn.MaxSuffixComponents=2&ndn.Nonce=3042496971
ERROR: error while receiving data from socket (End of file)

ndncatchunks output:

shijunxiao@m0212:~$ ndncatchunks -v /A
Timeout for Interest /A?ndn.MinSuffixComponents=2&ndn.MaxSuffixComponents=2&ndn.Nonce=4139122866
Timeout for Interest /A?ndn.MinSuffixComponents=2&ndn.MaxSuffixComponents=2&ndn.Nonce=2572553597
Timeout for Interest /A?ndn.MinSuffixComponents=2&ndn.MaxSuffixComponents=2&ndn.Nonce=1152382862
Timeout for Interest /A?ndn.MinSuffixComponents=2&ndn.MaxSuffixComponents=2&ndn.Nonce=3042496971
ERROR: Reached the maximum number of timeout retries (3) while retrieving data for /A
#24

Updated by Davide Pesavento over 5 years ago

Isn't that expected behavior? I thought we decided to use a "fixed" version discovery by default (i.e. no discovery), based on Alex's suggestions (notes 16 and 18), which means that a specific version must be included in the name given by the user on ndncatchunks command line. Your test should work if you run ndncatchunks with -d iterative.

Nevertheless, I see two improvements we can (should) make:

  1. Exit with an error when using "fixed" discovery and no version marker is found in the supplied name, instead of waiting for a timeout
  2. Briefly describe the "fixed" strategy in tools/chunks/README.md
#25

Updated by Junxiao Shi over 5 years ago

Isn't that expected behavior? I thought we decided to use a "fixed" version discovery by default (i.e. no discovery)

I forgot this. Yes, it works with -d iterative.

I also tested that when two ndnputchunks are publishing different versions, ndncatchunks -d iterative retrieves the later version.

Note: this requires multicast strategy; it doesn't work with best-route strategy due to lack of network Nack from first producer.

#26

Updated by Junxiao Shi over 5 years ago

  • Status changed from Code review to Closed

Also available in: Atom PDF