Asterix data format is a complex family of asterix categories,
where each individual category exists in multiple editions.
As a result of many variants, the epan/dissectors/packet-asterix.c
is one of the largest dissectors.
So far, the asterix dissector had been maintained manually, where the
generic decoding routines and category/edition specific definitions
were entangled in the same file (packet-asterix.c).
This commit preserves the overall dissector structure, but makes
it easy to update the dissector with new categories or editions as
they become available (via the update script from this commit).
See tools/asterix/README.md file for dissector update procedure.
This commit includes:
- tools/asterix/packet-asterix-template.c
Extraction of generic asterix decoding routines and
common data structures.
- tools/asterix/update-specs.py
Update script, to render the template with up-to-date asterix
specs files. The asterix specs files themselves are maintained in
a separate repository.
- epan/dissectors/packet-asterix.c
Automatically generated dissector for asterix data format.
Although generated, this file needs to remain in the repository,
to be able to build the project in a reproducible way.
The generated asterix dissector was additionally tested with:
- ./tools/check_typed_item_calls.py --mask
- ./tools/fuzz-test.sh
Sync with asterix-specs #cef694825c
Detected by ./tools/check_typed_item_calls.py --mask
Error: epan/dissectors/packet-asterix.c filter= asterix.021_161_TN 0x0fff with len is 4 but type FT_UINT8 indicates max of 2 and extra digits are non-zero (0f)
Error: epan/dissectors/packet-capwap.c filter= capwap.control.message_element.ieee80211_station_session_key.flags_a 0x2000 with len is 4 but type FT_BOOLEAN indicates max of 1 and extra digits are non-zero (200)
Error: epan/dissectors/packet-capwap.c filter= capwap.control.message_element.ieee80211_station_session_key.flags_c 0x1000 with len is 4 but type FT_BOOLEAN indicates max of 1 and extra digits are non-zero (100)
Error: epan/dissectors/packet-cfdp.c filter= cfdp.trans_stat_2_b 0x6000 with len is 4 but type FT_UINT8 indicates max of 2 and extra digits are non-zero (60)
Error: epan/dissectors/packet-cfdp.c filter= cfdp.suspension_ind_b 0x8000 with len is 4 but type FT_UINT8 indicates max of 2 and extra digits are non-zero (80)
Error: epan/dissectors/packet-ixveriwave.c filter= ixveriwave.tx.factorydebug 0x7f80 with len is 4 but type FT_UINT8 indicates max of 2 and extra digits are non-zero (7f)
Celcius -> Celsius.
ammendment, framenun and untunelled (with one 'n') are in wireshark_words.txt
but do not seem to be present in our codebase anymore (and are not
correctly-spelled words), so AFAIK they can be removed from the list.
Added a handful of words which don't seem to be in the dictionary on my host
but are real words and are in the codebase.
Removed two contractions which are now handled within tools/check_spelling.py .
Improve script by ignoring common contractions, dealing with
e.g. \n within strings, and finding multiple concatenated words even
when no camelCase is used.
Also includes some actual spelling fixes.
- After bug 16662 was reported it was discovered that Category 001
does not have all fields decoded, because at the beginning not
all fields were added due to lack of sample data. Later, for
other categories all fields were decoded, while 001 was left out.
Missing fields for Category 001 are added now.
Change-Id: I3711004e742dbdaa7f785b110c62e420280e71a4
Reviewed-on: https://code.wireshark.org/review/37652
Reviewed-by: Jaap Keuter <jaap.keuter@xs4all.nl>
Petri-Dish: Jaap Keuter <jaap.keuter@xs4all.nl>
Tested-by: Petri Dish Buildbot
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
- An error is corrected, where hf_019_010 is used instead
of hf_011_010.
- An error is corrected for field names in 011_290_01 PSR.
- An error is corrected for field name in 011_610 Bank number.
Change-Id: I8d0bd7a3f6baad4e94b4d09538dbf1b792893491
Reviewed-on: https://code.wireshark.org/review/37692
Petri-Dish: Jaap Keuter <jaap.keuter@xs4all.nl>
Reviewed-by: Jaap Keuter <jaap.keuter@xs4all.nl>
I002/070 dissection is broken in two ways
- According to spec the name is "Plot Count Values"
- The bitfield for IDENT is interpreted incorrectly
Bug: 16663
Change-Id: I224a53bcecf11a3cbc98bfaa3533caf51bea21ec
Reviewed-on: https://code.wireshark.org/review/37615
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
1. Add missing sparebits in I010_020 and I010_070
2. Correct scaling factor for I010_042 to 1 m instead of 0.5
Thanks to Marko Hrastovec <marko.hrastovec@gmail.com> for the suggestions.
Change-Id: I22f360f9b687c4b38b36bb2d5dd81db36536497c
Reviewed-on: https://code.wireshark.org/review/36586
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Jaap Keuter <jaap.keuter@xs4all.nl>
Add support to dissect ASTERIX CAT010 Version 1.10
Change-Id: I82f59555e75c03fc4bd2819b2455f7fd6fa08384
Reviewed-on: https://code.wireshark.org/review/36560
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Jaap Keuter <jaap.keuter@xs4all.nl>
Added ability to decode CAT021 version 0.23 and version 0.26 ASTERIX
messages
Change-Id: I242ae3055f0af805e3a9eb126494d545702f836f
Reviewed-on: https://code.wireshark.org/review/34343
Reviewed-by: Ivan Quach <ivan.quach@aireon.com>
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Change all wireshark.org URLs to use https.
Fix some broken links while we're at it.
Change-Id: I161bf8eeca43b8027605acea666032da86f5ea1c
Reviewed-on: https://code.wireshark.org/review/34089
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Generic fixes
- subfields with small number of bits that belong to large
bit fields are not being decoded correctly (they all become zero).
Generic update
- removed ett_[X] entries that were never being used
asterix bugfixes
- asterix.SAC bitmask not aligned
- asterix.SIC bitmask not aligned
I019 bugfixes
- I019/552 bitmask not aligned
I020 bugfixes
- I020/042 incorrect filter
- I020/170 too many spare bits
- I020/170 incorrect filter
- I020/230 incorrect filter
- I020/500#01.DOPy incorrect filter
- I020/500#03 incorrect filter
- I020/RE sub field names not in line with other CATs
- I020/RE.GVV.TA is signed (should be unsigned)
- I020/RE.GVA.TASD is signed (should be unsigned)
- I020/RE.PA#02 incorrect filter
- I020/RE.DA#04 incorrect filter
I021 bugfixes
- I021/110#01 is not a FIXED size field (it is an FX field)
- I021/260 bitmask not aligned
- I021/RE.MES#02 bitmask not aligned
- I021/RE.MES#03 bitmask not aligned
- I021/RE.MES#06 bitmask not aligned
I034 bugfixes
- I034/050 subfield indexes are missing
- I034/050#04 bitmask not aligned
- I034/060 subfield indexes are missing
I048 bugfixes
- I048/050 bitmask not aligned
- I048/060 bitmask not aligned
- I048/070 bitmask not aligned
- I048/080 bitmask not aligned
- I048/100 bitmask not aligned
- I048/120 bitmask not aligned
- I048/230 bitmask not aligned
- I048/RE.MD5 subfield indexes are followed by a comma
- I048/RE.MD5#02 bitmask not aligned
- I048/RE.MD5#05 bitmask not aligned
- I048/RE.M5N subfield indexes are followed by a comma
- I048/RE.M5N#02 bitmask not aligned
- I048/RE.M5N#05 bitmask not aligned
- I048/RE.RPC subfield indexes are followed by a comma
I062 bugfixes
- I062/060 bitmask not aligned
- I062/080.DUPF incorrect filter
- I062/110#02 bitmask not aligned
- I062/340#05 bitmask not aligned
- I062/380#10 bitmask not aligned
- I062/380#11 bitmask not aligned
- I062/390#03 bitmask not aligned
- I062/390#09.RWY is now a string instead of 3 different fields
- I062/390#12 bitmask not aligned
- I062/390#17 bitmask not aligned
- I062/510 bitmask not aligned
- I062/RE.CST bitmask not aligned
Change-Id: Ieefb53a10728205f2cefac718ac8668df29f1f8a
Reviewed-on: https://code.wireshark.org/review/32300
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
The callsign was being truncated to 7 letters.
This affects the following fields:
- I004/100#01.AN
- I004/170#08.MS1
- I004/170#08.MS2
- I025/020.SD
- asterix.AI, which is included in:
-- I021/170
-- I048/240
-- I062/245
-- I062/380#02
-- I062/380#03_v0_17
Change-Id: Idbbb3891d96e906053fc1f0c447e37bae87d207a
Reviewed-on: https://code.wireshark.org/review/31230
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Michael Mann <mmann78@netscape.net>
The third extension is not decoded correctly because bad description of the second extension.
Spare bits 8 and 7 were missing in I021_090_PARTS[] structure.
Bug: 15076
Change-Id: I68b644b15177016e075c87004281b76b5c6f19e2
Reviewed-on: https://code.wireshark.org/review/29335
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
The altitude value presented is the value converted into feet.
Instead, as the label suggests, the value should be presented
as a flight level. Change the conversion as such.
Bug: 15030
Change-Id: I131f6b586c6b1f59090f93862ea13b117403c502
Signed-off-by: Jaap Keuter <jaap.keuter@xs4all.nl>
Reviewed-on: https://code.wireshark.org/review/28961
Reviewed-by: Marko Hrastovec <marko.hrastovec@gmail.com>
Tested-by: Petri Dish Buildbot
Define DIAG_OFF_PEDANTIC and DIAG_ON_PEDANTIC, and have it do nothing on
Clang prior to 4.0.
Change-Id: Ic6b2e607659db66f3210401024bf3f2239665506
Reviewed-on: https://code.wireshark.org/review/27649
Petri-Dish: Guy Harris <guy@alum.mit.edu>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot
Reviewed-by: Guy Harris <guy@alum.mit.edu>