Hi Toerless,

Thanks for all your advices! Here are some my responses.


1. The structure issue

The structure of the draft will be adjusted to better distinguish the different 
types of changes from GRASP to cGRASP.



2. Choice between CoAP and UDP

The reliability mechanism of cGRASP is indeed inspired by CoAP. The 
"exponential backoff in retransmission" and "values for default 
parameters" have been described in "3.2. Retransmission and retransmission 
timeout" and "4.4.  cGRASP constants" separately. 



The proposal of CoAP-based cGRASP is due to CoAP's mature ecosystem in IoT 
where CoAP may be preferred (e.g., the IoT nodes attached to the campus or 
entrepreneur networks, where CoAP has already been installed and 
used. Both the UDP-based and CoAP-based cGRASP are optional for 
nodes,  up to their implemented protocol or preference.



3. New section for cGRASP relays

-03 version doesn't give much thoughts to cGRASP relay and defaults cGRASP 
relay to be the same as defined in RFC8990. The cGRASP relay will be 
reconsidered, and flooding mechanisms of  ISIS/OSPF will  be referred 
to.
   And, could you give more details about "The big benefit of cGRASP 
is lightweight, hop-by-hop  reliable flooding"?





4.  Restructure the "non-IP considerations" under a new section for 
"link-local" GRASP

The "non-IP considerations" originally aims to discuss how to enable cGRASP to 
work on a non-IP network. Your advice that "all the considerations for BLE 
without IP have to stay within a single L2 network" is reasonable and will be 
carefully considered.







 
------------------ Original ------------------
From: &nbsp;"Toerless Eckert"<t...@cs.fau.de&gt;;
Date: &nbsp;Fri, May 9, 2025 11:56 PM
To: &nbsp;"anima"<anima@ietf.org&gt;; 
Cc: &nbsp;"anima-chairs"<anima-cha...@ietf.org&gt;; 
"mjethanandani"<mjethanand...@gmail.com&gt;; 
Subject: &nbsp;[Anima] Re: Adoption call for constrained GRASP ( 
draft-zhu-anima-lightweight-grasp )

&nbsp;

[WG chair hat off - to chime in with my own opinions]

Thanks a lot for the work to the authors so far. I think constrained GRASP is 
very important
for ANIMA not only to allow a complete "TCP-free" constrained ANI with an ACP
not relying on TCP, but also for ASA to ASA communications on constrained 
devices
without the need for TCP stack. And:

For me, reliable flooding of information (such as service announcements) or
discovery (flooding of discovery) is the biggest benefit of GRASP that no other
existing IETF protocol can provide (they all rely on servers or multicast, and
multicast across router hops is difficult). So i am particularily excited that
flooding could be done a lot better with cGRASP than GRASP due to the absence 
of TCP
(i'll describe details later).

In general i think there is a good amount of work that needs to be done to get 
the draft
into the shape i would like to see it in, but if we can agree on the goals, 
then i would
rather like to see that work done as an adopted WG draft than as an individual 
document
(as i already wrote in the adoption call email).

How level what i would like to see:

1. Structure: There needs to be a better distinction between the different type 
of changes
from GRASP to cGRASP:

1.1. The additional information carried in a cGRASP message not in a GRASP 
message
&nbsp;&nbsp; &nbsp; so that it can run over UDP. Aka "Nonce", Acknowledgment 
info and the like
1.2. New / changed information elements not related to 1.1, aka: in the GRASP
&nbsp;&nbsp; &nbsp; header as it would be even if running over TCP. Those 
information element
&nbsp;&nbsp; &nbsp; changes could be because there where bugs or the like in 
RFC8995 or for other
&nbsp;&nbsp; &nbsp; reasons.
1.3&nbsp; Elements removed from the RFC8995 GRASP headers (if any), e.g.: for 
optimization.

2. Choice between CoAP and UDP:

&nbsp;&nbsp; I think it would be great to agree on the relationship between 
cGRASP and CoAP.
&nbsp;&nbsp; Here is my opinion:

2.1. I don't think we should ever use CoAP. I just can't see how CoAP overall 
would be
&nbsp;&nbsp; &nbsp; anything but a pain and duplication of effort. 
Unfortunately, CoAP is not modularily
&nbsp;&nbsp; &nbsp; defined with multiple layers, so we would always need to 
put cGRASP inside of a
&nbsp;&nbsp; &nbsp; CoAP header, and that involves using some CoAP Method 
Codes, where we then either
&nbsp;&nbsp; &nbsp; need to also add (unnecessary) URI fields into the packet, 
or have useless struggles
&nbsp;&nbsp; &nbsp; with the CoAP folks to get our GRASP message type(s) be 
recognized as new Code's
&nbsp;&nbsp; &nbsp; for CoAP. And extending CoAP with multiple GRASP message 
types really does not sound
&nbsp;&nbsp; &nbsp; like a good method. What if the next protocol like GRASP 
wants to use CoAP reliability...
&nbsp;&nbsp; &nbsp; But (c)GRASP is just not request/reply based, so the 
existing CoAP Code points are
&nbsp;&nbsp; &nbsp; just unnecessarily complex for cGRASP also from that point.

2.2&nbsp; However, i very much would like to re-use the CoAP "messaging model", 
aka:
&nbsp;&nbsp; &nbsp; how messages over UDP are made reliable and in a limited 
fashion flow-controlled.
&nbsp;&nbsp; &nbsp; I think the spirit of cGRASP reliability already does this, 
but it neither says
&nbsp;&nbsp; &nbsp; so explicitly, nor is it consistent in terminology (e.g.: 
Nonce in cGRASP instead of
&nbsp;&nbsp; &nbsp; Message ID in CoAP), nor in functionality. Aka: no 
specification of exponential
&nbsp;&nbsp; &nbsp; backoff in retransmission, values for default parameters, 
no specification of
&nbsp;&nbsp; &nbsp; the congestion control with NSTART or the like.

&nbsp;&nbsp; &nbsp; Motivation: The biggest challenge of cGRASP will be to 
prove to WIT IESG review that we
&nbsp;&nbsp; &nbsp; have a working reliability mechanism with flow-control 
sufficient for the target
&nbsp;&nbsp; &nbsp; deployment targets. And given how we do not want to 
re-invent the wheel, i think
&nbsp;&nbsp; &nbsp; the easiest way to get through this and feel confident 
about what we do is to simply
&nbsp;&nbsp; &nbsp; use CoAPs model. We just need to extract the relevant 
functionality from the CoAP
&nbsp;&nbsp; &nbsp; RFC (which alas is not written too modular).

&nbsp;&nbsp; &nbsp; I think CoAP is exactly the right protocol to steal/get 
this reliability/flow-control layer
&nbsp;&nbsp; &nbsp; from, as it is the most widely deployed, IETF specified 
protocol, over UDP AFAIK.

&nbsp;&nbsp; &nbsp; Ultimately this also means the transport layer for cGRASP 
is a good amount of textual
&nbsp;&nbsp; &nbsp; spec work more - but NO actual functional novelty that we 
would have to verify,
&nbsp;&nbsp; &nbsp; prove and optimize. Just extracting/copying the right text!

3. I think we do need a section for cGRASP relays:

&nbsp;&nbsp; GRASP relay, every message needs potentially be copied and 
buffered separately to every
&nbsp;&nbsp; GRASP neighbor, and if there is even short term congestion, then 
those TCP buffers can
&nbsp;&nbsp; become large.

&nbsp;&nbsp; On a cGRASP relay, reliability and flooding are joint in a single 
protocol layer.
&nbsp;&nbsp; Hence a cGRASP relay can simply keep each message to be floowed in 
a single buffer,
&nbsp;&nbsp; generate a Nonce (aka: CoAP transport Message ID) for it and then 
just keep the list
&nbsp;&nbsp; of cGRASP neighbors from which it has not received an 
acknowledgemenet for it.
&nbsp;&nbsp; In addition, also the flooding can easily be optimized: In 
redundant networks and using
&nbsp;&nbsp; TCP, a message may need to be resent unnecessarily because it is 
in a TCP buffer,
&nbsp;&nbsp; but the same message was already received by the peer from another 
redundant path and
&nbsp;&nbsp; is being sent back. With cGRASP integrating reliability and 
flooding, it is easy to
&nbsp;&nbsp; discover this situation: find received message by session-id. If 
we already have it,
&nbsp;&nbsp; we mark the peer from which we received it as alreasdy having the 
message and cancel
&nbsp;&nbsp; any outstanding retransmissions.

&nbsp;&nbsp; When we start to go into this direction, we are btw. getting very 
much into IGP territory,
&nbsp;&nbsp; where ISIS and OSPF are very much beloved to flood all type of 
"not-necessarily-core-routing"
&nbsp;&nbsp; related information - and both protocols struggle in whether or 
how much of such
&nbsp;&nbsp; extraneous information they may want to flood. cGRASP could become 
an interesting alternative.
&nbsp;&nbsp; The flooding in ISIS/OSPF has two more optimizations to make them 
more scalable which we
&nbsp;&nbsp; could IMHO also add if we wanted).

&nbsp;&nbsp; Also textual note: the -03 version says that we MUST NOT make 
flood sync messages reliable,
&nbsp;&nbsp; but of course the opposite is true. _The_ big benefit of cGRASP is 
lightweight, hop-by-hop
&nbsp;&nbsp; reliable flooding.

4. I would restructure the "non-IP considerations" under a new section for 
&nbsp;&nbsp; "link-local" GRASP, describing all options of cGRASP without the 
presence of
&nbsp;&nbsp; any GRASP relay (aka: DULL plus cGRASP unicast link-local), and 
then include the
&nbsp;&nbsp; option for non-IP encapsulations in that.&nbsp; Because that's 
ultimately the limiting
&nbsp;&nbsp; characteristics:

&nbsp;&nbsp; - We could use GRASP relays to forward cGRASP messages between 
multiple non-IP
&nbsp;&nbsp; &nbsp; networks (mesh of BLE or the like), but because we do not 
want to re-invent
&nbsp;&nbsp; &nbsp; unicast forwarding, but we do need unicast end-to-end 
connectivity, this solution
&nbsp;&nbsp; &nbsp; will not fly. So all the considerations for BLE without IP 
have to stay within a single
&nbsp;&nbsp; &nbsp; L2 network.

Cheers
&nbsp; &nbsp; Toerless

On Fri, May 09, 2025 at 05:52:59PM +0200, Toerless Eckert wrote:
&gt; Dear ANIMA WG enthusiasts
&gt; 
&gt; This email starts a three-week adoption call for drafts
&gt; 
&gt; &nbsp; &nbsp; draft-zhu-anima-lightweight-grasp
&gt; 
&gt; The timeline is longer than the usual two weeks because we have other 
drafts
&gt; up for adoption call in parallel.
&gt; 
&gt; [ Note that the file name only includes "lightweight" to make the revision 
history easier,
&gt; &nbsp; the text already calls it constrained GRASP (cGRASP). It 
would/should be renamed
&gt; &nbsp; to "constrained" during adoption. ]
&gt; 
&gt; This draft has undergone already several rounds of improvements and good
&gt; discussions on the list and during WG meetings. However, investing more 
substantial
&gt; work into this effort would be much better spent if it was clear that the 
WG
&gt; agrees to carry this effort through, and hence this adoption call.
&gt; 
&gt; Constrained GRASP is a necessarily element for implementation of an ANIMA 
ANI on
&gt; constrained devices without requirements for TCP. It even more so would be 
required
&gt; by ASA on devices without TCP. This includes potentially even
&gt; devices without IP, such as in BLE networks.
&gt; 
&gt; Constrained GRASP could have benefits also for non-constrained 
environements -
&gt; it could eliminate the need for different protocol approaches for 
constrained/unconstrained
&gt; ANI environments.
&gt; 
&gt; Also, cGRASP could provide in-network flooding that could aleviate the 
need to encumber
&gt; IGP protocols with additional, non-routing related information that needs 
to be flooded.
&gt; 
&gt; So, please review, provide feedback, also if you are interested to help
&gt; as author or contributor. 
&gt; 
&gt; And as always: If you don't like something, please explain. 
&gt; 
&gt; ---
&gt; Toerless Eckert (for the chairs)
&gt; 

-- 
---
t...@cs.fau.de

_______________________________________________
Anima mailing list -- anima@ietf.org
To unsubscribe send an email to anima-le...@ietf.org
_______________________________________________
Anima mailing list -- anima@ietf.org
To unsubscribe send an email to anima-le...@ietf.org

Reply via email to