On Sat, Jul 29, 2023 at 10:17:38AM +1200, Brian E Carpenter wrote:
> On 27-Jul-23 01:44, Toerless Eckert wrote:
> > DNS-SD TXT RR's are a sequenze of zero limited strings "key1=value1" ...
> > "keyn=valuen"
> >
> > In my current grash/dsn-sd draft i have just proposed to encode this in
> > CBOR with as little as possible changes, e.g.:
> >
> > [ "key1=value1", ... "keyn=valuen" ]
>
> You have? That's not what I see in draft-eckert-anima-grasp-dnssd-05
I guess the draft is missing an example, but the definition:
*( &(kvpairs:7) => { *(tstr: any) },
is meant to be that... and now writing it, i am again showing my ignorance of
CDDL...
*( &(kvpairs:7) => [ *(tstr: any) ],
Sigh.. what's the difference...
> > Thinking that one needs to be able to parse this when using DNS-SD, so why
> > parse differently. But of course that logic was flawed, only e.g.: a
> > GRASP/DNS-SD proxy would need to be able to parse both encodings. And you
> > obviously want to use the maximum of CBOR and minimum or none of
> > application parsing.
>
> Exactly. And the way you use maps is well suited to any programming
> language that knows how to use JSON maps, and much easier than
> parsing the rather primitive formats in DNS records.
Right.
> > [ [ "key1", "value1" ], ... [ "keyn", "valuen" ] ]
>
> (N.B. That is lists, not maps. Not that it matters much.)
Right. Btw.: In DNS-SD, valueI is optional, and if left out, the assumed value
is "1",
that need to be in our encoding.
> > And given how DNS-SD also has the shortening option "key1" implying
> > "key1=1",
> > this could also be
> >
> > [ "key1", ... "keyn" ]
> >
> > If all the keys only had values 0 or 1. Which is what Esko proposed.
>
> You can define that the *absence* of a key means False, 0, or "" (empty
> string),
> *presence* of a key alone means True, and *presence* of [key, value] means
> a value. I'm sure that's parsable.
I thought the alternatives for each element would be:
[ [ "key1" ], ...
[ [ "key1", "value1" ], ...
[ [ "key1", [ "value1", ... "valueN" ], ...
The last one is kinda inofficial "," concatenated key1=value1,...,valueN
> But I still like maps.
I am lost right now about pro/cons... Need to find the 8" tape with my
CBOR/CDDL braindump ;-)
Cheers
Toerless
> Brian
> >
> > Chers
> > toerless
> >
> > On Tue, Jul 25, 2023 at 03:46:11PM +0200, Carsten Bormann wrote:
> > > On 25. Jul 2023, at 15:07, Michael Richardson <[email protected]>
> > > wrote:
> > > >
> > > > I have resisted suggestions that we put an array for the
> > > > objective-value, and
> > > > also that it have a string that needs to be parsed like
> > > > "mode=prm,foo=1,bar=2"...
> > >
> > > You give a good reason not to do this at all.
> > > But if you want to do this, do resist the urge to do a parsable string by
> > > all means.
> > >
> > > (I need to write that draft, CBOR anti-patterns :-) (*)
> > >
> > > Grüße, Carsten
> > >
> > > (*) Yes, anti-pattern drafts are now a thing:
> > > https://www.ietf.org/archive/id/draft-bormann-restatement-00.html
> > >
> > > _______________________________________________
> > > Anima mailing list
> > > [email protected]
> > > https://www.ietf.org/mailman/listinfo/anima
> >
> _______________________________________________
> Anima mailing list
> [email protected]
> https://www.ietf.org/mailman/listinfo/anima
--
---
[email protected]
_______________________________________________
Anima mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/anima