Task #3396
closedDeveloper Guide: LinkService
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 10 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 10 years ago
      
    
    - Blocked by Feature #3173: Developer Guide: Face=LinkService+Transport and GenericLinkService added
 
      
      Updated by Eric Newberry over 9 years ago
      
    
    - Status changed from New to In Progress
 
      
      Updated by Eric Newberry over 9 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 9 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 
GenericLinkServiceuses 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 9 years ago
      
    
    Changes related to note 5 have been pushed.
      
      Updated by Junxiao Shi over 9 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 
UnixStreamTransportandTcpTransporton 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 aboutenableLocalControlcommand 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 
LinkServiceandTransport. Then the reassembler description can reference that. 
      
      Updated by Eric Newberry over 9 years ago
      
    
    - % Done changed from 90 to 100
 
Revisions based upon note 7 have been pushed.
      
      Updated by Junxiao Shi over 9 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 
enableLocalControlcommand 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 9 years ago
      
    
    Revisions based upon note 9 have been pushed.
      
      Updated by Eric Newberry over 9 years ago
      
    
    Junxiao Shi wrote:
- In "Face Manager" section, update the text about
 enableLocalControlcommand 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 9 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 9 years ago
      
    
    Revisions based upon note 12 have been pushed.
      
      Updated by Junxiao Shi over 9 years ago
      
    
    - Status changed from Code review to Closed
 
Text at nfd-docs:commit:d77bef6faf22845d1dbbfafc20dd878f040ce5de looks good.