On Sun, May 11, 2025 at 06:20:34PM +0200, Carsten Bormann wrote:
> 
> > These are reasonable points.
> > CoAP has congestion control, retransmissions, block-mode,... which are all
> > the things that TCP was doing for us.  Re-inventing that would be silly.
> > So either all CoAP, or no-CoAP.
> > 
> >> 2.2  However, i very much would like to re-use the CoAP "messaging model", 
> >> aka:
> >> how messages over UDP are made reliable and in a limited fashion 
> >> flow-controlled.
> 
> Here we are.
> 
> I would assume that whatever “mini-CoAP” you start to design will grow 
> features over time until it is indistinguishable from CoAP, except just 
> different, looking like a bad example of NIH in the end.
> 

That's exactly not the goal. To me, CoAP has two layers, a message layer with 
reliability
(retransmission) and (limited) CC, and a "transaction layer" where all the 
glory/gory of
CoAPs Code point behavior and exchanges happens. Which would be terribly 
drailing for GRASP
which effectively has exactly it's own transaction layer.

Alas, CoAP is not cleanly defined separating out these sub-layers.

If CoAP would give cGRASP let's say even just one CoAP "Code" Class value 
(e.g.: "Other"), which does
not inherit the pre-defined 0, 2, 4 or 5 (Class) value semantics, then it seems 
to me as if
we could simply inherit/re-use the CoAP message layer. But i fear that would 
greate
a precedent that might not scale. Although it should scale, because the 
semantics of the
transaction layer could be derived from the responder UDP port number and 
therefore allow to
encode into the 5 bit "detail" of the Code multiple times differently (so 
arbitrary protocols
with their own transaction layers could re-use CoAP message layer).

But if that simple integration / re-use would not work, then it's down to IMHO 
Clone & re-use *sigh*.

> (From my IRTF perspective: When we designed CoAP, we didn’t have CBOR or CDDL 
> available to us, so I think it would be an interesting research project to 
> invent a CoAPng (next generation) that does use CBOR and CDDL.
> I’m just not so sure that this is what ANIMA wants to do.)

Yes, interresting research project, even a good IETF project. But remember that
GRASP is not using the typical REST transaction semantic, but has it's own
transactions which are in our (ANIMA) opinion better suited for M2M 
communications.
So it's a different project, not cGRASP!

I actually have no strong opinion for the industry, about whether or not the 
GRASP transaction semantic
is preferrable over e.g.: GET/POST, but personally, i find GET/POST for 
peer-to-peer
communications terribly convoluted given how it was invented clearly for 
client-server.
In draft-eckert-anima-acp-free-ani i specially wrote that no developer of M2M 
communication
for network automation should be forced to use a particular approach: Those are 
all offers,
and the software (Autonomic Service Agents) should just pick whatever suits 
them best. And
given how much pre-existing software there likely is for the GET/POST paradigm, 
and how little
for the new ANIMA transaction methods, it is easy to see where a lot of this 
may go.

However: i am primarily interest in GRASPs ability for hop-by-hop 
flooding/search,
with the FLOOD/DISCOVERY primitives for which no other IETF or even non-IETF 
protocol offers
an alternative. And as i tried to lay out in my prior email, the best way to do 
this FLOOD/DISCOVERY
(without a manually-to-be-engineered redundant set of servers!) does actually 
reach down
into retransmission buffer re-use across multiple peers. So if we where to 
re-use a software
stack to provide both CoAP and cGRASP over CoAP message layer, then we would 
also need to
explain sufficiently how to have an API into the CoAP message layer to allow 
for such buffer
sharing across multiple CoAP message layer connections.
> 
> I would expect that building a cGRASP around CoAP would have a little more 
> design freedom than your garden-variety CoAP application.
> E.g., using a different port number might work around BCP190 (so no need to 
> have /.well-known/coap-grasp in every message).

Pigyy-Backing GRASP transaction on top of GET/PUT/... is the totally 
unnecessary pain
and "who the heck is supposed to analyze what this gives us". Its just a tad 
less
useless than IP over HTTP.

> The examples in Section 5 all use non-confirmable messages and then seem to 
> hobble together confirmable messages and separate responses by adding options.
> Maybe the CoAP mechanisms are better for this; they have certainly received 
> more design attention than what is sketched in Section 3.

What value would cGRASP get out of riding on top of CoAP complete (transaction 
layer) >
The only benefit i see is for CORE WG not having to have the pain of allowing 
someone
to share the CoAP message layer by allocing appropriate Code points and 
explaining
how that works. 

> In any case, this is a non-trivial design effort, and it seems to me this is 
> still a bit remote from a clear direction that the WG wants to work under, so 
> I think this is the time for formative contributions as opposed to already 
> adopting one (or, essentially, two) of them.

QUIC exctracted all the relevant pieces of TCP and reformulated it on top of 
UDP.
That's likely what i was proposing to do with the CoAP message layer as ANIMAs 
best way forward without being stuck in potentially endless discussions with 
CoAP WG.
Would i prefer a clean share of CoAP message layer - sure. Would i want to start
thinking about the implication os using the CoAP GET/POST/... transaction 
layers ?
Not unless someone explains to me that there is actual technical benefits for 
cGRASP in it...

Does this make sense ?

Cheers
    Toerless
> 
> Grüße, Carsten
> 

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

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

Reply via email to