blob: f72e0aec94710d7495de0cd945a2cf42b0364c45 [file] [log] [blame]
Alexander Afanasyeva6fc7272014-06-13 11:58:06 -07001Changes
2=======
3
spirosmastorakis988e7412016-10-27 14:01:59 -07004Since version 0.2
5-----------------
6
7- Add definition of Link Object
8
9- **Interest**
10
Eric Newberry1c799952017-05-20 20:56:16 -070011 + Add default of leftmost child if ChildSelector field not present
Junxiao Shicfc5d212017-06-02 17:48:51 +000012 + Add specification of ForwardingHint field
spirosmastorakis988e7412016-10-27 14:01:59 -070013
Eric Newberry56519862017-02-13 13:26:19 -070014- **Data**
15
16 + Updated Content Store semantics for Data packets that do not carry FreshnessPeriod.
17
spirosmastorakis988e7412016-10-27 14:01:59 -070018************************************************************
19
Junxiao Shia0d36822014-09-21 11:32:09 -070020Since version 0.1.1
21-------------------
22
23- **Name**
24
25 + Allow zero-length name component
Alexander Afanasyev4b8be212014-10-06 10:55:04 -070026 + Require implicit digest to be specified using ``ImplicitSha256Digest`` name component
Junxiao Shia0d36822014-09-21 11:32:09 -070027
Alexander Afanasyev948affe2016-09-13 13:15:29 -070028- **Signature**
29
30 + Add spec for ``SignatureHmacWithSha256``
31
Junxiao Shidef7fc52015-06-10 13:29:21 -070032- **Interest**
33
34 + Delete deprecated ``Scope`` guider
Alexander Afanasyev948affe2016-09-13 13:15:29 -070035 + Restrict Interest to have name with at least one name component
36
37- **Data**
38
39 + Redirect ContentType number assignments to the `wiki page <https://redmine.named-data.net/projects/ndn-tlv/wiki/ContentType>`__
Junxiao Shidef7fc52015-06-10 13:29:21 -070040
Junxiao Shi4406fdd2015-06-10 13:28:10 -070041- **TLV-TYPE**
42
43 + Reserve 800-1000 range for link protocol
44
spirosmastorakis988e7412016-10-27 14:01:59 -070045************************************************************
46
Alexander Afanasyeva6fc7272014-06-13 11:58:06 -070047Since version 0.1
48-----------------
49
50- **Signature**
51
Alexander Afanasyev4b896112014-06-23 21:47:15 -070052 + New ``SignatureSha256WithEcdsa`` signature type for Elliptic Curve Digital Signature Algorithm (ECDSA).
Alexander Afanasyevf3e5e852014-06-13 22:44:02 -070053 + ``KeyLocatorDigest`` renamed to ``KeyDigest``. The specification now explicitly allows KeyDigest to be a SHA256 of any type of the key.
Alexander Afanasyev4b896112014-06-23 21:47:15 -070054 + ``KeyLocator`` field is now defined to be optionally present in generic ``SignatureInfo`` block.
55 ``SignatureSha256WithRsa`` and ``SignatureSha256WithEcdsa`` still require ``KeyLocator`` to be always present.
Alexander Afanasyeva6fc7272014-06-13 11:58:06 -070056
spirosmastorakis988e7412016-10-27 14:01:59 -070057************************************************************
58
Alexander Afanasyeva6fc7272014-06-13 11:58:06 -070059Since CCNx 0.7.2
60----------------
61
62- **General**
63
64 + XML-based ccnb packet encoding is replaced by TLV encoding
65
66- **Name**
67
68 + The name encoding is changed from binary XML to TLV format
69 + The discussions on naming conventions and the use of special markers inside NameComponents are removed from packet specification, and will be covered by a separate technical document
70 + Deprecated zero-length name component
71
72- **Interest Packet**
73
74 + ``Nonce`` is changed from optional to required
75 + ``PublisherPublicKeyDigest`` is replaced by ``PublisherPublicKeyLocator``
76 + ``AnswerOriginKind`` is simplified from 4bits to a 1-bit ``MustBeFresh``
77 + ``FaceID`` has been removed
78 + ``InterestLifetime`` changes the unit to the number of milliseconds
79 + Removed Bloom Filter from Exclude
80 + Changed default semantics of staleness
81
82 Specifically, NDN-TLV Interest without any selectors will bring any data that matches the name, and only when ``MustBeFresh`` selector is enabled it will try to honor freshness, specified in Data packets.
83 With Binary XML encoded Interests, the default behavior was to bring "fresh" data and return "stale" data only when ``AnswerOriginKind`` was set to 3.
84
85 Application developers must be aware of this change, reexamine the Interest expression code, and enable ``MustBeFresh`` selector when necessary.
86
87- **Data Packet**
88
89 + The structure of Data packet is changed:
90
91 * ``Name``, ``MetaInfo``, ``Content``, ``Signature{SignatureInfo, SignatureValue}``
92
93 + ``SignedInfo`` is renamed to ``MetaInfo`` and its content is changed
94 + ``PublisherPublicKeyDigest`` and ``ExtOpt`` are removed.
95 + ``Timestamp`` is removed
96 + ``KeyLocator`` is moved to be inside the ``Signature`` (``SignatureInfo``) block
97 + Three content types, ENCR, GONE, and NACK are removed
98 + ``FreshnessSeconds`` is renamed to ``FreshnessPeriod`` and is expressed in units of milliseconds
99
100- **Signature**
101
102 + ``Signature`` is moved to the end of Data packet.
103 + ``KeyLocator`` is moved to be a part of the ``SignatureInfo`` block, if it is applicable for the specific signature type.
104
105 The rationale for the move is to make Signature (sequence of ``SignatureInfo`` and ``SignatureValue`` TLVs) self-contained and self-sufficient.
106
107 + Signature type (or signing method information) is expressed as an assigned integer value (with no assumed default), rather than OID.
108 + Added support for hash-only "signature"
109 + The current specification does not define Merkle Hash Tree Aggregated Signatures, but it is expected that such (or similar) signatures will be defined in future version of this specification