Update definitions of ForwardingHint and LinkObject
Change-Id: Ic734fff39f2afd393ebeddd61eff5053c243633f
Refs: #5178
diff --git a/changelog.rst b/changelog.rst
index bba8cce..ca0a61e 100644
--- a/changelog.rst
+++ b/changelog.rst
@@ -17,12 +17,17 @@
+ Add optional ``HopLimit`` element
+ Add optional ``ApplicationParameters`` element
+ Define a new specification for Signed Interest using two new elements: ``InterestSignatureInfo`` and ``InterestSignatureValue``
+ + Redefine the contents of the ``ForwardingHint`` (remove numerical preference and nesting inside the ``Delegation`` TLV)
- **Data**
+ Make ``MetaInfo`` and ``Content`` elements optional
+ Change semantics of omitted (or set to zero) ``FreshnessPeriod`` element: it cannot be used to satisfy Interests with ``MustBeFresh``
+- **LinkObject**
+
+ + The content is now just a list of names (remove numerical preference)
+
- **Name**
+ Lift restriction on name component types, allowing types in the range 1-65535
diff --git a/interest.rst b/interest.rst
index 8a164ac..f7f366c 100644
--- a/interest.rst
+++ b/interest.rst
@@ -68,10 +68,10 @@
::
- ForwardingHint = FORWARDING-HINT-TYPE TLV-LENGTH 1*Delegation
+ ForwardingHint = FORWARDING-HINT-TYPE TLV-LENGTH 1*Name
-The ForwardingHint element contains a list of name delegations, as defined in :ref:`link` section.
-Each delegation implies that the requested Data packet can be retrieved by forwarding the Interest along the delegation path.
+The ForwardingHint element contains a list of Names ("delegations").
+Presence of the forwarding hint implies that Data can be retrieved by forwarding the Interest over path(s) pointed by the listed Names.
Specifics of the forwarding logic for Interests with ``ForwardingHint`` will be defined in a separated document.
.. _Nonce:
diff --git a/link.rst b/link.rst
index d792c5a..24c022e 100644
--- a/link.rst
+++ b/link.rst
@@ -11,35 +11,12 @@
LinkContent
Signature
- LinkContent = CONTENT-TYPE TLV-LENGTH 1*Delegation
-
- Delegation = LINK-DELEGATION-TYPE TLV-LENGTH Preference Name
-
- Preference = LINK-PREFERENCE-TYPE TLV-LENGTH NonNegativeInteger
+ LinkContent = CONTENT-TYPE TLV-LENGTH 1*Name
-Link Object is a data packet, whose content contains a list of one or more name delegations: a pair of name and the associate priority.
-The LinkObject can be used to derive the ``ForwardingHint`` guider of an Interest packet.
+Link Object is a data packet, whose content is a list of one or more names (formerly known as "delegations").
+The LinkObject can be used to derive the ``ForwardingHint`` of an Interest packet.
-The list of delegations in ``LinkContent`` SHOULD be ordered by preference value in ascending order (i.e., the lowest value first).
+The list of Names in ``LinkContent`` SHOULD be ordered by the producer's preference, with the most preferred by the producer listed first.
-In a LinkContent, each Delegation SHOULD have a distinct Name.
-
-
-..
- Let’s assume that we have files that are published under /net/ndnsim, but are hosted under /att/user/alex/net/ndnsim and /verizon/user/alex/net/ndnsim. The structure of the Link would be the following:
-
-
- +-----------------+---------------------------------------------+--------------------------------------------------------------+
- | Link Field | Value | Description of the value |
- +=================+=============================================+==============================================================+
- | Name | /net/ndnsim/LINK | Name of the link (as a convention, the last NameComponent |
- | | | MAY be "LINK") |
- +-----------------+---------------------------------------------+--------------------------------------------------------------+
- | MetaInfo | ContentType = LINK | Field that identifies the actual data content |
- +-----------------+---------------------------------------------+--------------------------------------------------------------+
- | Content | (/verizon/user/alex/net/ndnsim, 10) | Content in the form of (alias, preference) pairs |
- | | (/att/user/alex/net/ndnsim, 100) | |
- +-----------------+---------------------------------------------+--------------------------------------------------------------+
- | Signature | Varying | Signed by the publisher of the Link |
- +-----------------+---------------------------------------------+--------------------------------------------------------------+
+In a LinkContent, each listed Name SHOULD be distinct.
diff --git a/types.rst b/types.rst
index 91f2519..ed6c2e4 100644
--- a/types.rst
+++ b/types.rst
@@ -89,12 +89,6 @@
+---------------------------------------------+--------------------+-----------------+
| SignatureSeqNum | 42 (non-critical) | 0x2a |
+---------------------------------------------+--------------------+-----------------+
-| **Link Object** |
-+---------------------------------------------+--------------------+-----------------+
-| Delegation | 31 | 0x1f |
-+---------------------------------------------+--------------------+-----------------+
-| Preference | 30 | 0x1e |
-+---------------------------------------------+--------------------+-----------------+
| |Certificate|_ |
+---------------------------------------------+--------------------+-----------------+
| ValidityPeriod | 253 | 0xfd |