A second example focused on DFDL with parity calculations in a GPS format has also been "mocked up"
https://github.com/DFDLSchemas/gps-sps/pull/1 Please review and comment on this pull request also. The GPS spec this is based on is in the repository also in the doc directory. Thank you ________________________________ From: Beckerle, Mike Sent: Friday, July 30, 2021 2:29 PM To: dev@daffodil.apache.org <dev@daffodil.apache.org> Subject: Please review mock up idea for checksum calculations in DFDL I would like comments on the layering enhancement to enable checksum computations in DFDL schemas. This is a high-priority feature for Daffodil's next release 3.2.0, especially for cybersecurity applications of Daffodil, which I know a number of us are involved in. I've produced a mock-up of how it would look, with lots of annotations in a WIP pull request on the ethernetIP DFDL schema. I only did the mock-up for the IPV4 element, so look at that element in the ethernetIP.dfdl.xsd. (UDP and TCP packets have their own additional checksums - I didn't mock up those, just IPV4) This is at https://github.com/DFDLSchemas/ethernetIP/pull/1 This doesn't run, it's just an initial mock-up of the ideas for checksum/CRC/parity recomputation capability as a further simple extension of the existing DFDL layering extension. The layering extension itself is described here: https://cwiki.apache.org/confluence/display/DAFFODIL/Proposal%3A+Data+Layering+for+Base64%2C+Line-Folding%2C+Compression%2C+Etc I did notice that none of the published DFDLSchemas actually use the layering transforms that we've built into Daffodil. There are some non-public DFDL schemas that do use this extension to do line-folding transformations. There are, however, tests showing the DFDL layering extension in daffodil's code base. See https://github.com/apache/daffodil/blob/master/daffodil-test/src/test/resources/org/apache/daffodil/layers/layers.tdml and search for dfdlx:layerTransform property. The mock-up effectively proposes allowing layer transforms to read and write DFDL variables, as a means of them accepting input parameters, and as the means of them computing and returning output results. I plan to do a couple other mock-ups of a check-digit calculation, and some parity bit computations, but this IPV4 is enough to get the gist of the idea. I'd appreciate feedback on this, which you can do on the pull request in the usual github code review manner. -mikeb Mike Beckerle | Principal Engineer [cid:2b10f593-ca11-4030-8f7b-3db1a1024055] mbecke...@owlcyberdefense.com<mailto:bhum...@owlcyberdefense.com> P +1-781-330-0412