Task #3396
closedDeveloper Guide: LinkService
Added by Junxiao Shi almost 9 years ago. Updated over 8 years ago.
100%
Description
In NFD Developer Guide face system section, add details about:
GenericLinkService
- how to develop a new link service
DummyReceiveLinkService
(in testing section)
Updated by Junxiao Shi almost 9 years ago
- Description updated (diff)
- Assignee set to Eric Newberry
- Estimated time set to 6.00 h
I've added specific writing tasks in nfd-docs:commit:ba9ab47e4d730ec7b9686306ac0b26a126313a3e labelled "TODO#3396".
Find them with grep 'TODO\\#3396' *.tex
.
If you create any figures with non-LaTeX tool, their source files (such as PowerPoint, Visio, etc) should be committed into slides/
directory of nfd-docs repository.
Updated by Junxiao Shi almost 9 years ago
- Blocked by Feature #3173: Developer Guide: Face=LinkService+Transport and GenericLinkService added
Updated by Eric Newberry almost 9 years ago
- Status changed from New to In Progress
Updated by Eric Newberry over 8 years ago
- Status changed from In Progress to Code review
- % Done changed from 0 to 90
Changes have been pushed, except for the justification for no Ethernet unicast.
Updated by Junxiao Shi over 8 years ago
Review of Face section at nfd-docs:commit:f936e1c8fa281ba395972a861a4ad3e90c797307.
"Generic Link Service" section:
- "Interests, Data, and Nack are now encapsulated in an LpPacket" implies one LpPacket can contain multiple network layer packets, which is permissible by protocol but not supported in
GenericLinkService
. - IncomingFaceId field can be attached to any LpPacket, not just Interest and Data.
- The detailed discussion about fragmentation and reassembly should go into a subsection.
- "NDNLPv2 uses indexed fragmentation" is inaccurate. NDNLPv2 supports indexed fragmentation among other potential fragmentation schemes, while
GenericLinkService
uses indexed fragmentation. - The timeout mechanism in reassembler should be discussed.
- How does the reassembler deal with multiple senders on a multi-access link?
Updated by Eric Newberry over 8 years ago
Changes related to note 5 have been pushed.
Updated by Junxiao Shi over 8 years ago
Review of Face section at nfd-docs:commit:e5421bb278f4fa6c5ed628b584fe64697ce7f9e9.
"Generic Link Service" section:
- "Transport" and "Link Service" should not be capitalized everywhere, if not referring to the base class.
- "Generic Link Service" is fine.
"What services are enabled depends upon the type of Transport" table:
- Rows should be ordered same as "Transport" subsections.
- NextHopFaceId-CachePolicy-IncomingFaceId should be categorized as a single "local fields" feature.
- "local fields" can be enabled for
UnixStreamTransport
andTcpTransport
on loopback address (more precisely, any transport with Scope=local) through a management command. In this table or the accompanying text, reference "Face Manager" section. In "Face Manager" section, update the text aboutenableLocalControl
command to reflect what it does in NFD 0.4.0. - Fragmentation is necessary for unicast UDP and multicast UDP transports, because they have limited MTU.
"Packet Fragmentation and Reassembly in the Generic Link Service" section:
- This should be a subsection nested under "Generic Link Service" section.
- At the first occurrence of "indexed fragmentation", reference the introduction of this feature in NDNLP section.
- Before going into "The fragmenter returns a vector", introduce that the sender has a fragmenter and the receiver has a reassembler.
- Explain what is "remote endpoint id".
It should go into "Face - internal structure" paragraph, and describe the send/receive APIs between
LinkService
andTransport
. Then the reassembler description can reference that.
Updated by Eric Newberry over 8 years ago
- % Done changed from 90 to 100
Revisions based upon note 7 have been pushed.
Updated by Junxiao Shi over 8 years ago
Review of Face section at nfd-docs:commit:8c2ceec3492e9f7105569cd0e7dbb036885992a1.
"What services are enabled depends upon the type of Transport" table:
- In "Face Manager" section, update the text about
enableLocalControl
command to reflect what it does in NFD 0.4.0.
"Packet Fragmentation and Reassembly in the Generic Link Service" paragraph:
- Add a section reference to "(see Face - internal structure)".
"Developing a New Link Service" section:
- "sending outgoing and decoding incoming Interest .." is asymmetric. Change "sending" to "encoding".
- Encoding outgoing packets and decoding incoming packets are the only required tasks of a link service.
- "assigning Sequence numbers to packets" is not a required task for every link service. It's only required by NDNLPv2.
- "encoding and decoding local fields" is not a required task for every link service.
Updated by Eric Newberry over 8 years ago
Revisions based upon note 9 have been pushed.
Updated by Eric Newberry over 8 years ago
Junxiao Shi wrote:
- In "Face Manager" section, update the text about
enableLocalControl
command to reflect what it does in NFD 0.4.0.
I updated this section in the last revision (note 8). What exactly should be changed here?
Updated by Junxiao Shi over 8 years ago
Reply to note-11:
This refers to "Management - Managers - Face Manager" section.
It still contains "LocalControlHeader" which is deprecated.
Updated by Eric Newberry over 8 years ago
Revisions based upon note 12 have been pushed.
Updated by Junxiao Shi over 8 years ago
- Status changed from Code review to Closed
Text at nfd-docs:commit:d77bef6faf22845d1dbbfafc20dd878f040ce5de looks good.