On Mon, May 19, 2025 at 7:51 AM Eliot Lear <l...@lear.ch> wrote:

> Hiya,
> On 19.05.2025 16:44, Paul Kyzivat wrote:
>
>
> No one formal language is going to meet all needs.
>
> I think that's a good take away from this discussion.  What's the take
> away for this group?  In my view, it is better that tooling handle what it
> can handle at the highest layer it can process stuff.  That will lay the
> ground for better consistency across the series, in terms of use of colors,
> sizing, fonts, etc.
>
> A good example of where to have another food fight: should we support UML
> as a high level description or should we incorporate mermaid?  Alexa points
> out draw.io is dropping support for the former in favor of the latter.
> But we need something that can do appropriate generation into ASCII still.
> Anyone tried that with Mermaid?
>
> And I'm dying to see what people are doing with Markdown and math...
>
Thanks Eliot for trying to help pull us up a level.

I think there are a number of questions being grouped together
here. The first is around how much we should be specifying protocols
in formal languages, whether ABNF or bit-wise languages like in TLS or
QUIC. The second is what tooling we should be providing/requiring for
generating rich images in RFCs.

Where these two questions intersect is when those rich images are part
of the formal specification of the protocol, as in bit diagrams.
To try to sharpen this point, consider the QUIC initial packet:

   Initial Packet {
     Header Form (1) = 1,
     Fixed Bit (1) = 1,
     Long Packet Type (2) = 0,
     Reserved Bits (2),
     Packet Number Length (2),
     Version (32),
     Destination Connection ID Length (8),
     Destination Connection ID (0..160),
     Source Connection ID Length (8),
     Source Connection ID (0..160),
     Token Length (i),
     Token (..),
     Length (i),
     Packet Number (8..32),
     Packet Payload (8..),
   }

This is equivalent to a bit diagram and in many pre-QUIC
specifications, that's what it would have been. The IETF could, if it
wanted, require that specifications contain this kind of formal
description of PDUs. This does not preclude the existence of bit
diagrams or even make them difficult to provide: one could readily
write a tool to draw a bit diagram based on this input and I'm sure
many people have done so for similar languages (and most likely for
this one!), so that the bit diagrams were automatically produced as
part of the RFC production process. On the other side of the spectrum,
nothing prevents authors from writing their bit diagrams in some DSL
and then compiling them to ASCII and cutting-and-pasting them into the
markdown, or anything in between.


A similar situation exists for UML or Mermaid diagrams, where we have
some DSL which then is compiled down to a diagram (the same for LaTeX
math notation). There are a number of possible options, including the
following.

1. Say nothing and tell people they can embed compiled diagrams.
2. Support a specific set of DSLs which are handled automatically
   but allow people to paste in their own stuff.
3. Require that anything visual also have *some* DSL source.
4. (3) but require specific DSLs.

I'm still figuring out what I think about this--and perhaps others may
be too--but I suspect that the right answer is to try to provide
first-class support for a single set of DSLs for each use case but at
present not require anything. To try to break down the use cases a
bit, we might have something like:

- Math: LaTeX?
- Ladder diagrams: Mermaid? UML?
- State machine diagrams: ???
- Bit diagrams: Maybe something derived from QUIC?

On this last point, I'm definitely not saying that we should require
QUIC-style language for all protocols; that would not be appropriate
and one size doesn't fit all. At most the idea here would be that if
you are going to do a bit diagram you should also provide some
DSL-type form.

Like I said, I'm still trying to figure out what I think, but perhaps
this will help others form their own opinions, even if only because
they violently disagree!

-Ekr
_______________________________________________
rfc-interest mailing list -- rfc-interest@rfc-editor.org
To unsubscribe send an email to rfc-interest-le...@rfc-editor.org

Reply via email to