This information belongs in manual pages on the system. On GNU/Linux operating systems, that's section 7; on illumos and SVR4 based systems, that'd be section 5.
Honest question: Is there an audience for this besides network engineers?
For anything else, I'd prefer either a human-readable text-based protocol or something like Protobuf that generates (de)serializing code from a schema definition.
Absolutely. I've had to implement protocols from a spec using various guides that had really bad diagrams of how the data is laid out. This tool could have made them a lot better. And as others have pointed out its extremely useful for binary file type diagrams.
As far as I can tell, it only deals with fixed width fields, and nothing of the detail inside them. No, notion, for example, of whether a field is big/little endian, protocols with delimited fields, variable length protocols with "length" followed by "field", etc.
Nice, I thought for a moment I could do SoC register diagrams with it as well but not so much:
./protocol "reserved:2,PLLSAI_RDY:1,PLLSAI_ON:1,PLI2S_RDY:1,PLL_RDY:1,PLL_ON:1,Reserved:4,CSS_ON:1,HSE_BYP:1,HSE_RDY:1,HSE_ON:1,HSICAL:8,HSITRIM:5,Reserved:1,HSI_RDY:1,HSI_ON:1"
Be careful when setting custom line widths, in the past i've run into situations where the last row of fields gets cutoff, depending on the line width.
20 comments
[ 0.26 ms ] story [ 59.2 ms ] threadI'll take it that's not Scream Tracker 3 (1994), Seattle's Sound Transit 3 ballot measure, or the New Jersey tax form, right?
For anything else, I'd prefer either a human-readable text-based protocol or something like Protobuf that generates (de)serializing code from a schema definition.
http://blockdiag.com/en/nwdiag/index.html
It would be a lot better if it could read from an established, broad, well maintained database like Wireshark (formerly ethereal).
http://asciiflow.com/
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |re.|P|P|P|P|P|Reserv.|C|H|H|H| HSICAL | HSITRIM |R|H|H| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Let me fix it: