On Sat, Feb 18, 2017 at 02:10:43PM -0600, Alan Tull wrote: > On Sat, Feb 18, 2017 at 6:45 AM, Nadathur, Sundar > <sundar.nadat...@intel.com> wrote: > > > Hi all, > > Interesting discussion. The discussion so far has brought out many > > concerns such as OS independence. There is an existing format, well-known > > to developers, with widespread support, and which is quite extensible: > > Type-Length-Value triples. > > > > To elaborate, a TLV-based format has many advantages: > > * It is highly extensible in many ways > > -- You can express structures and arrays using TLVs. Our needs right now > > may seem limited but requirements grow over time. > > -- The space of Type values can be decomposed into standard pre-defined > > values that are in upstreamed code, and possibly experimental or > > feature-specific values. > > -- Forward compatibility: We can write parsers that can skip unexpected > > type values, thus allowing old parsers to work with new additions. With > > some tweaks, old parsers can also reject unexpected values in some ranges > > while accepting them in other ranges. > > * It is OS-independent. > > * It can be easily parsed, in kernel or user space.
Are there other users of the format? I have to admit I didn't look very long, but couldn't find any libs / existing code at a first glance. > > * It can be validated, in terms of Type values, acceptable lengths, etc. > > > > It is not directly human-readable but that can be easily addressed with a > > tool that parses TLVs. > > > > Compared to some other proposals: > > * Compared to DTs, TLVs are OS-independent. That's just alternative facts here. Just because Linux uses fdt for devicetree blobs it is *not* OS dependent. There are several (see last email) non-Linux users of fdt / libfdt. Thanks, Moritz