Files
Will Greenberg ec30a9557c bump to v10.2
2026-02-24 14:19:08 -08:00
..
2025-06-28 00:13:15 +02:00
2026-02-24 14:19:08 -08:00

Autogenerated telcom packet parsing

This crate contains ASN.1 specs for various telcom message payloads, as well as autogenerated Rust code for parsing these messages. We're using hampi as a parser generator, and it seems 3GPP protocols are encoded in the unaligned Packed Encoding Rules (or uPER) codec.

Generating the parser

To install the hampi compiler, run:

> cargo install asn1-compiler

To generate the parser for LTE RRC, run:

> rs-asn1c --codec uper --module src/lte_rrc.rs -- specs/EUTRA* specs/PC5-RRC-Definitions.asn

Sourcing the ASN.1 files

3GPP, who develops the standards for 4G (and all the other G's) publishes ASN.1 specs for their protocols in these horrific Microsoft Word docs (e.g. here). The ASN.1 blocks are denoted by --ASN1START and --ASN1STOP text, so extracting them automatically is possible using a script like hampi's. Instead of doing this ourselves, we just sourced ours from these.

TODO

  • implement proof of concept binary using this to parse QMDL, summarize the packets