Conversation
--cell-kv only carried a CellID when an RRC SCell Info packet had been cached
*before* an ML1 serving measurement fired (the identity is joined onto the ML1
line). When the RRC packet arrives after — or the ML1 serving cadence is sparse —
the CellID/TAC/PLMN never make it into the output, even though the modem logged
the serving-cell identity.
Make identity capture order-independent by caching the latest ML1 serving signal
(per radio) and having the RRC SCell Info parser emit its own identity-bearing
serving-cell kv line joined to that signal:
- LTE parse_lte_ml1_scell_meas / NR ml1 serving cache {earfcn/nrarfcn, pci, rsrp[/rsrq/rssi]}.
- parse_lte_rrc_cell_info / parse_nr_rrc_scell_info, under --cell-kv, emit a
cell=scell line with the full identity (plmn/mcc/mnc/tac/cid/band/bwmhz) plus the
cached signal, or nothing when no signal is cached yet (avoids all-zero-metric
lines that downstream ingest drops; the ML1 join then fills the next measurement).
Net effect: whenever the modem logs an RRC SCell Info and any ML1 serving
measurement has occurred (in either order), a --cell-kv line with the CellID is
produced. Full suite 98 pass.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Owner
Author
|
Consolidated into fgsect#153 (single PR off master with --cell-kv, --meas-gsmtap, and this order-independent CellID emission). Closing here. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Makes
--cell-kvcapture the CellID reliably. Previously a CellID only appeared when an RRC SCell Info packet had been cached before an ML1 serving measurement fired — the identity is joined onto the ML1 line. If the RRC packet arrived after, or the ML1 serving cadence was sparse, the CellID/TAC/PLMN never reached the output even though the modem logged the serving-cell identity. (A real Mudi/RM520 walk exported 1185 rows with 0 CellIDs for exactly this reason.)What changed
Identity capture is now order-independent:
parse_lte_ml1_scell_measand the NR ML1 serving path cache the latest serving signal per radio ({earfcn/nrarfcn, pci, rsrp[/rsrq/rssi]}).parse_lte_rrc_cell_info/parse_nr_rrc_scell_info, under--cell-kv, emit their owncell=scellline carrying the full identity (plmn/mcc/mnc/tac/cid/band/bwmhz) joined to that cached signal — or nothing when no signal is cached yet (so no all-zero-metric line, which downstream ingest drops; the ML1 join then fills the next measurement instead).Net: whenever the modem logs an RRC SCell Info and any ML1 serving measurement has occurred (in either order), a
--cell-kvline with the CellID is produced.Example (decoded from real capture vectors)
Tests
New
TestCellIdFromRrccovers LTE/NR RRC→kv emission with a cached signal, the empty-when-no-signal case, and ML1 signal caching. Full suite: 98 passing.Deployment note
The device-side SCAT bundle must include this (and fgsect#150) for the CellID to flow — an older on-device bundle predating the identity join will still export empty CellIDs regardless of this change.
🤖 Generated with Claude Code