Project

General

Profile

Actions

Task #3396

closed

Developer Guide: LinkService

Added by Junxiao Shi almost 9 years ago. Updated over 8 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Docs
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
6.00 h

Description

In NFD Developer Guide face system section, add details about:

  • GenericLinkService
  • how to develop a new link service
  • DummyReceiveLinkService (in testing section)

Related issues 1 (0 open1 closed)

Blocked by NFD - Feature #3173: Developer Guide: Face=LinkService+Transport and GenericLinkServiceClosedJunxiao Shi

Actions
Actions #1

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.

Actions #2

Updated by Junxiao Shi almost 9 years ago

  • Blocked by Feature #3173: Developer Guide: Face=LinkService+Transport and GenericLinkService added
Actions #3

Updated by Eric Newberry almost 9 years ago

  • Status changed from New to In Progress
Actions #4

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.

Actions #5

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?
Actions #6

Updated by Eric Newberry over 8 years ago

Changes related to note 5 have been pushed.

Actions #7

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 and TcpTransport 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 about enableLocalControl 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 and Transport. Then the reassembler description can reference that.
Actions #8

Updated by Eric Newberry over 8 years ago

  • % Done changed from 90 to 100

Revisions based upon note 7 have been pushed.

Actions #9

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.
Actions #10

Updated by Eric Newberry over 8 years ago

Revisions based upon note 9 have been pushed.

Actions #11

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?

Actions #12

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.

Actions #13

Updated by Eric Newberry over 8 years ago

Revisions based upon note 12 have been pushed.

Actions #14

Updated by Junxiao Shi over 8 years ago

  • Status changed from Code review to Closed

Text at nfd-docs:commit:d77bef6faf22845d1dbbfafc20dd878f040ce5de looks good.

Actions

Also available in: Atom PDF