Small fixes and clarifications
Change-Id: Ieb5669d21b9bb53c4c749271f25792e394130b26
diff --git a/data.rst b/data.rst
index d263276..e7ab23a 100644
--- a/data.rst
+++ b/data.rst
@@ -32,14 +32,14 @@
FreshnessPeriod?
FinalBlockId?
-Compared with CCNx, four fields are removed: PublisherPublicKeyDigest, ExtOpt, Timestamp, and FinalBlockID for the following reasons.
+Compared with CCNx, four fields are removed: PublisherPublicKeyDigest, ExtOpt, and Timestamp for the following reasons.
- PublisherPublicKeyDigest is supposed to be used in selecting data packets signed by a particular key.
We replace PublisherPublicKeyDigest with KeyLocator, which is part of the Signature block (see :ref:`Signature Section <Signature>`), due to the following consideration.
- First, it requires data consumer to acquire a *valid* public key, as opposed to the key locator, before sending Interest out.
+ First, PublisherPublicKeyDigest requires data consumer to acquire a *valid* public key, as opposed to the key locator, before sending the Interest out.
Second, if a router is to verify the content objects, it must have other means to locate the keys first.
- Further, it may require publishers to maintain their public keys and certificates by their public key digests instead of names.
+ Further, PublisherPublicKeyDigest may require publishers to maintain their public keys and certificates by their public key digests instead of names.
- ExtOpt was intended for extending XML-based ccnb format. Since we are now using TLV, ExtOpt is no longer needed.
@@ -55,7 +55,7 @@
ContentType ::= CONTENT-TYPE-TYPE TLV-LENGTH
nonNegativeInteger
-Three ContentTypes are currently defined: default (=0), LINK (=1), and KEY (=2). The **default** type of content is a BLOB (=0), which is the actual data bits identified by the data name. The \textbf{LINK} type of content is another name which identifies the actual data content. The ``KEY`` type of content is a public key.
+Three ContentTypes are currently defined: default (=0), LINK (=1), and KEY (=2). The **default** type of content is a BLOB (=0), which is the actual data bits identified by the data name. The **LINK** type of content is another name which identifies the actual data content. The ``KEY`` type of content is a public key.
Compared with CCNx, three types, ENCR, GONE, and NACK are removed.
ENCR means the content is encrypted, and since the network layer should not care whether content is encrypted or not, this type is not needed.
@@ -73,6 +73,8 @@
The optional FreshnessPeriod indicates how long a node should wait after the arrival of this data before marking it as stale. The encoded value is number of milliseconds. Note that the stale data is still valid data; the expiration of FreshnessPeriod only means that the producer may have produced newer data.
+When FreshnessPeriod is omitted, the Data packet cannot be marked stale.
+
Each content store associates every piece of Data with a staleness bit.
The initial setting of this bit for newly-arrived content is "not stale". If the Data carries FreshnessPeriod, then after the Data has been residing in the content store for FreshnessPeriod, it will be marked as stale. This is per object staleness and local to the NDN node. Another possible way to set the staleness bit of a local content is for a local client to send a command to the local NDN daemon.
diff --git a/interest.rst b/interest.rst
index 4329242..e80a1e1 100644
--- a/interest.rst
+++ b/interest.rst
@@ -14,7 +14,7 @@
Scope?
InterestLifetime?
-``Name`` and ``Nonce`` are the only two two required elements in an Interest packet.
+``Name`` and ``Nonce`` are the only two required elements in an Interest packet.
Selectors are optional elements that further qualify Data that may match the Interest.
They are used for discovering and selecting the Data that matches best to what the application wants. Selectors are placed right after the Name to facilitate implementations that may use continuous memory block of Name and Selectors TLVs together as the index for PIT lookup. By using a TLV to group all the Selectors, an implementation can easily skip them to find Nonce, which is used together with Name to identify looping Interests.
If Selectors TLV is present in the Interest, it MUST contain at least one selector.
diff --git a/signature.rst b/signature.rst
index ad9defc..47cf123 100644
--- a/signature.rst
+++ b/signature.rst
@@ -10,6 +10,8 @@
2. ``SignatureValue`` is **excluded** from signature calculation and represent actual bits of the signature and any other supporting signature material.
+The reason for separating the signature into two separate TLV blocks is to allow efficient signing of a contiguous memory block (e.g., for Data packet this block starts from Name TLV and ends with SignatureInfo TLV).
+
::
Signature ::= SignatureInfo
@@ -65,7 +67,7 @@
KeyLocator
~~~~~~~~~~
-A ``KeyLocator`` specifies either a name that points to another Data packet containing certificate or public key or ``KeyDigest`` to identify the public key within a specific trust model (the trust model definition is outside the scope of the current specification).
+A ``KeyLocator`` specifies either ``Name`` that points to another Data packet containing certificate or public key or ``KeyDigest`` to identify the public key within a specific trust model (the trust model definition is outside the scope of the current specification).
Note that although ``KeyLocator`` is defined as an optional field in ``SignatureInfo`` block, some signature types may require presence of it and some require ``KeyLocator`` absence.
::
diff --git a/types.rst b/types.rst
index 082b947..bc4ffa4 100644
--- a/types.rst
+++ b/types.rst
@@ -83,15 +83,17 @@
| 0-4, 30-79 | Reserved for future assignments (1-byte encoding) |
+----------------+-----------------------------------------------------------+
| 80-100 | Reserved for assignments related to local link data |
-| | processing (`NDNLP header`_, `LocalControlHeader`_, etc.) |
+| | processing, e.g., `NDNLP header`_, `LocalControlHeader`_, |
+| | etc. (1-byte encoding) |
+----------------+-----------------------------------------------------------+
| 101-127 | Reserved for assignments related to forwarding daemon |
+| | (1-byte encoding) |
+----------------+-----------------------------------------------------------+
| 128-252 | For application use (1-byte encoding) |
+----------------+-----------------------------------------------------------+
| 253-32767 | Reserved for future assignments (3-byte encoding) |
+----------------+-----------------------------------------------------------+
-| >32767 | For application use (3-byte encoding) |
+| >32767 | For application use (3+-byte encoding) |
+----------------+-----------------------------------------------------------+
.. _NDNLP header: http://redmine.named-data.net/projects/nfd/wiki/NDNLP-TLV