Task #1910
closedfaces/create: require canonical FaceUri
100%
Description
Allow only canonical FaceUri in faces/create
command: require specifying either IPv4 or IPv6, permit IP address only (no DNS resolution).
NFD Developer Guide should be updated as part of this Task to reflect this change.
Updated by Junxiao Shi over 10 years ago
- Blocked by Task #1909: nfdc: ensure FaceUri is in canonical form added
Updated by Junxiao Shi over 10 years ago
- Blocked by Task #1911: Create face with canonical FaceUri added
Updated by Junxiao Shi over 10 years ago
- Blocks Bug #1839: faces/create commands fail if sent in a batch added
Updated by Lan Wang over 10 years ago
what should happen when a hostname resolves to multiple IP addresses? also may be a mix of ipv4 and ipv6 addresses. John DeHart had this problem on the lip6 node.
Updated by Junxiao Shi over 10 years ago
The client must decide which IP to use prior to sending faces/create
command.
The client may opt to send the command for one IP first. If face creation fails, the client can then send another command for a different IP.
Updated by Junxiao Shi over 10 years ago
- Description updated (diff)
- Estimated time changed from 2.00 h to 2.50 h
Updated by Junxiao Shi about 10 years ago
- Blocks Task #2207: Eliminate TcpResolver and UdpResolver added
Updated by Junxiao Shi about 10 years ago
Updated by Chengyu Fan about 10 years ago
Not sure I understand this task correctly...
This task requires the controller to verify if the FaceUri is canonical. So this job should be done in the ndn-cxx.
Also please let me know how to update NFD Developer Guide?
Updated by Junxiao Shi about 10 years ago
This task requires the controller to verify if the FaceUri is canonical. So this job should be done in the ndn-cxx.
NO. This Task is to modify FaceManager
so that non-canonical FaceUri is rejected with code 400.
Also please let me know how to update NFD Developer Guide?
See #1611.
Updated by Chengyu Fan about 10 years ago
- % Done changed from 0 to 70
part of this Task is to update the NFD developer guide.
Code is submitted for review.
Updated by Chengyu Fan about 10 years ago
- Status changed from New to Code review
- % Done changed from 70 to 100
Updated by Chengyu Fan about 10 years ago
NFD Developer Guide is already updated and committed to git@git.irl.cs.ucla.edu:papers/nfd-docs.git
, need feedback.
Updated by Junxiao Shi about 10 years ago
nfd-docs commit is not correctly uploaded. HEAD is at 4e440922c6a2e56d9892f16321c2cd34f58c28a1 updated on Nov 19.
Updated by Chengyu Fan about 10 years ago
Sorry about incorrect submission.
Please tell me what command I should use to commit the updates: git push
, git push origin HEAD:refs/for/master
, or other command?
Updated by Junxiao Shi about 10 years ago
nfd-docs is a regular git repository, so git push origin master
should be used for uploading.
Updated by Junxiao Shi about 10 years ago
- Status changed from Code review to Closed
Verified nfd-docs.
Updated by Junxiao Shi over 9 years ago
Since someone is asking, I'll explain the rationale of requiring canonical FaceUri in faces/create
: canonization is not the responsibility of NFD.
- NFD's responsibility is to forward NDN packets in NDN network.
- A major part of FaceUri canonization is performing a DNS lookup.
- DNS resolution is performed in IP network, and it can sometimes get messy and complex.
- DNS resolution routines in standard libraries are blocking; calling a blocking function in single-threaded NFD is bad. Third party libraries can offer non-blocking DNS resolution, but they increase the complexity of NFD.
In addition, face query operation (see FaceMgmt) requires canonical FaceUris.
- It's difficult or even impossible to compare two non-canonical FaceUris.
- Performing FaceUri canonization incurs all problems above.
- The same non-canonical FaceUri may resolve to different canonical FaceUris overtime, eg. due to DNS round-robin.
Requiring canonical FaceUri makes NFD simpler, and moves the complexity of DNS resolution to the client.