38a5b44d61
Do not mix wire size, a protocol property, with fvalue length, a property of certain types of objects (sequences). Rename ftype_length() to ftype_wire_size(). Do not return wire_size with fvalue_length() (use ftype_wire_size() instead). Make the semantic check reject taking the len() of objects that are not arrays or lists. If the (fixed) len() of a number is somehow useful we can add a different function for that. |
||
---|---|---|
.. | ||
packet-asterix-template.c | ||
README.md | ||
update-specs.py |
Asterix parser generator
Asterix is a set of standards, where each standard is defined as so called asterix category. In addition, each asterix category is potentially released in number of editions. There is no guarantie about backward compatibility between the editions.
The structured version of asterix specifications is maintained in a separate project: https://zoranbosnjak.github.io/asterix-specs/specs.html
The purpose of this directory is to convert from structured
specifications (json format) to the epan/dissectors/packet-asterix.c
file,
which is the actual asterix parser for this project.
It is important NOT to edit epan/dissectors/packet-asterix.c
file
manually, since this file is automatically generated.
Manual update procedure
To sync with the upstream asterix specifications, run:
# show current upstream git revision (for reference)
export ASTERIX_SPECS_REV=$(./tools/asterix/update-specs.py --reference)
echo $ASTERIX_SPECS_REV
# update asterix decoder
./tools/asterix/update-specs.py > epan/dissectors/packet-asterix.c
git add epan/dissectors/packet-asterix.c
# inspect change, rebuild project, test...
# commit change, with reference to upstream version
git commit -m "asterix: Sync with asterix-specs #$ASTERIX_SPECS_REV"
Automatic update procedure
To integrate asterix updates to a periodic (GitLab CI) job, use --update
option.
For example:
...
# Asterix categories.
- ./tools/asterix/update-specs.py --update || echo "asterix failed." >> commit-message.txt
- COMMIT_FILES+=("epan/dissectors/packet-asterix.c")
...