Subject: Re: [icnrg] [EXT] I-D Action: draft-irtf-icnrg-icnping-03.txt

From: Junxiao Shi <[email-masked]>
Date: Mon, 13 Dec 2021 10:00:23 -0500

Dear folks

I had a look at the NDN encoding for ICN Ping Protocol rev03.
It seems that the protocol partially assumes NDN packet format v0.2, and is
incompatible with the current NDN packet format.

As of 2019-May <https://redmine.named-data.net/issues/4853>, the NDN packet
encoding is written with IETF ABNF syntax.
However, ICN Ping still specifies its encoding with W3C EBNF syntax, which
could lead to confusion.

Section 5.1 defines that the Name of a Ping Echo Request should have a
"ping" suffix, so that it can be identified as a Ping Echo Request.
Since NDN packet format v0.3, name components that require special
processing should use a KeywordNameComponent (TLV-TYPE 0x20) rather than a
GenericNameComponent.
This helps to avoid conflicts with existing protocols, such as the ndnping
application
<https://github.com/named-data/ndn-tools/tree/585e18a5e3be4d2d33053dbad2223e5d986d65fa/tools/ping#ndnping-protocol>
.

Section 5.1 defines Ping Echo Request to be an Interest with MustBeFresh
"selector".
NDN packet format has eliminated the concept of selectors.
It's called "MustBeFresh element" now.

Section 5.1 mentions a "Parameters" element.
It's been renamed to "ApplicationParameters".
Also, the inclusion of an ApplicationParameters requires the inclusion of a
ParametersSha256DigestComponent somewhere in the Name (it does not have to
be the last component).
It's necessary to specify where this component should be placed.

The Parameters element is meant to contain PathSteering TLV.
As suggested below, it may make sense to move it to the NDNLPv2 header.

Section 5.2 defines Ping Echo Reply to be a Data packet with ContentType=0
and FreshnessPeriod=0.
Since ContentType defaults to 0 and FreshnessPeriod defaults to 0, neither
field is necessary.

Importantly, the NDN protocol specifies
<https://named-data.net/doc/NDN-packet-spec/current/data.html#freshnessperiod>
:

If the Data does not have a FreshnessPeriod or if it has a FreshnessPeriod
equal to zero, it MUST be immediately marked “non-fresh”.
If an Interest contains MustBeFresh element, a node MUST NOT return
“non-fresh” Data in response to this Interest.

This rule applies to not only the Content Store, but also the forwarding
pipelines.
Based on this rule, the Ping Echo Reply packet does not satisfy the Ping
Echo Request packet, making the ICN Ping incompatible with the current NDN
packet format.

Section 5.2 inserts a "PathSteering TLV" in the Data packet, which appears
before the Name element.
The TLV evolvability guidelines of the NDN protocol does not permit adding
new elements before the Name element.
New elements should be added later in the packet; to exclude an element
from the security envelope, it should appear after the SignatureValue
element.
In the case of PathSteering TLV that "might be modified in a hop-by-hop
fashion", it does not belong in the network layer, but should be added as a
link layer header in NDNLPv2 or another link layer protocol.

The "PathSteering TLV" cites draft-oran-icnrg-pathsteering, but that
document only defines a "Path label TLV".
Its TLV-TYPE number assignment is 0x09, but that number is a "critical"
TLV-TYPE number that would cause a forwarder that does not understand this
feature to drop the packet; this choice needs justification.
Moreover, 0x09 is marked as reserved
<https://named-data.net/doc/NDN-packet-spec/current/types.html> because it
conflicts with the former Selectors element in NDN packet format v0.2, so
that you may need to choose a different number.
You can then propose a change
<https://gerrit.named-data.net/admin/repos/NDN-TLV> to reserve the number
in NDN network layer protocol or edit this page
<https://redmine.named-data.net/projects/nfd/wiki/NDNLPv2> to reserve the
number in NDNLPv2.

Yours, Junxiao

On Mon, Oct 25, 2021 at 4:17 PM <[email-masked]> wrote:

> External Email
>
> A New Internet-Draft is available from the on-line Internet-Drafts
> directories.
> This draft is a work item of the Information-Centric Networking RG of the
> IRTF.
>
>         Title           : ICN Ping Protocol Specification
>         Authors         : Spyridon Mastorakis
>                           Jim Gibson
>                           Ilya Moiseenko
>                           Ralph Droms
>                           Dave Oran
>         Filename        : draft-irtf-icnrg-icnping-03.txt
>         Pages           : 20
>         Date            : 2021-10-25
>
> Abstract:
>    This document presents the design of an ICN Ping protocol.  It
>    includes the operations of both the client and the forwarder.
>
>
> The IETF datatracker status page for this draft is:
> https://datatracker.ietf.org/doc/draft-irtf-icnrg-icnping/
>
> There is also an HTML version available at:
> https://www.ietf.org/archive/id/draft-irtf-icnrg-icnping-03.html
>
> A diff from the previous version is available at:
> https://www.ietf.org/rfcdiff?url2=draft-irtf-icnrg-icnping-03
>
>
> Internet-Drafts are also available by anonymous FTP at:
> ftp://ftp.ietf.org/internet-drafts/
>
>
> _______________________________________________
> icnrg mailing list
> [email-masked]
> https://www.irtf.org/mailman/listinfo/icnrg
>
>

---

From: "David R. Oran" <[email-masked]>
Date: Mon, 13 Dec 2021 10:40:16 -0500

Hey, thanks for the quick and thorough review! We’ll likely need 
corresponding changes in the traceroute draft as well.

If may be useful, if we have time over the holidays, to issue an interim 
revised draft with the changes you note, so we don’t have to wait 
until the last call closes to work these out.

I’ll talk to the co-authors and see.

Thanks again!

On 13 Dec 2021, at 10:00, Junxiao Shi wrote:

> As of 2019-May <https://redmine.named-data.net/issues/4853> , the NDN 
> packet

DaveO