v1.8.0: PPS as standard request/response packets; fix res-byte flag docs

- Split the PPS exchange into the two standard GSMTAP-SIM subtypes:
  0x02 (PPS_REQ, raw request bytes, span ss..es_req) and 0x03 (PPS_RSP,
  raw response bytes, span es_req..end), replacing the single 0x02 packet
  with concatenated request+response that deviated from libosmocore's
  gsmtap.h.  Wireshark now dissects both halves; simtrace2-pysniff needs
  no change (its importer already maps 0x03 to 'pps' and _decode_pps()
  parses the 0xFF-leading response frame).  PPS annotation/log unchanged.
- gsmtap_stream.py: GSMTAP_SIM_PPS_REQ/RSP constants; header field labels
  aligned with libosmocore's struct (signal_dbm/snr_db).
- Docs: GSMTAP event tables (EN/RU) updated, PPS deviation note removed;
  corrected the res-byte flag attribution -- upstream simtrace2 never
  sets res, so the GSMTAP_FLAG_BAD_FCS carriage is this decoder's own
  extension (semantics mirror simtrace2's USB data flags).
- Tests: assert the PPS subtype values; baseline regenerated (only the
  version line and test listing differed -- no decode-metric changes).
  68/68 unit tests.
This commit is contained in:
catarrh committed 2026-09-17 23:01:40 +03:00
1 parent c222eecb3c
commit e5a2b7c83b
7 files changed
+103 -54

No files matched your search

+8 -9
View File
@@ -84,7 +84,8 @@ GSMTAP pcap-файлы (включая PCAP, который этот декод
|----------|------|---------|
| 0x00 | APDU | сырые байты пакета T=0/T=1 |
| 0x01 | ATR | сырые байты ATR |
| 0x02 | PPS | запрос + ответ PPS, склеенные (отклонение от спеки, см. ниже) |
| 0x02 | Запрос PPS | сырые байты запроса PPS |
| 0x03 | Ответ PPS | сырые байты ответа PPS |
| 0x10 | Событие RST (кастомное) | `[direction, level, 0x00]` |
| 0x11 | Событие VCC (кастомное) | `[direction, level, 0x00]` |
@@ -94,18 +95,16 @@ GSMTAP pcap-файлы (включая PCAP, который этот декод
- VCC: `direction` 1 = питание подано (низкий→высокий), 0 = снято (высокий→низкий);
`level` = уровень линии после перехода.
0x00/0x01 совпадают с gsmtap.h из libosmocore: стандартные значения и
полезные нагрузки. 0x02 переиспользует значение `GSMTAP_SIM_PPS_REQ` из
спеки, но несёт запрос и ответ, склеенные в одном пакете; спека разделяет
PPS на `PPS_REQ` (0x02) / `PPS_RSP` (0x03), поэтому Wireshark разбирает
такие пакеты как «PPS request», а `PPS_RSP` (0x03) не отправляется
никогда. 0x10/0x11 — кастомные расширения, не определённые в gsmtap.h из
0x00–0x03 совпадают с gsmtap.h из libosmocore: стандартные значения и
полезные нагрузки (запрос и ответ PPS отправляются отдельными пакетами).
0x10/0x11 — кастомные расширения, не определённые в gsmtap.h из
libosmocore.
Расширения заголовка: флаги вроде `GSMTAP_FLAG_BAD_FCS` пишутся в байт
`res` заголовка, который официальный gsmtap.h помечает как зарезервированный
(RFU) — такое использование флагов следует конвенции simtrace2-sniff и не
является частью спецификации libosmocore.
(RFU). Это собственное расширение данного декодера (upstream simtrace2-sniff
никогда не заполняет `res`); семантика флагов повторяет флаги данных (data
flags) USB-протокола simtrace2 и не является частью спецификации libosmocore.
## Использование