fix(modem-provision): heal stale Telit CGDCONT attach context (v0.3.3) - #54
Merged
Merged
Conversation
The Telit ECM provisioner returned Done the moment ECM was bound and never checked the attach APN. A recycled Telit carrying a stale CGDCONT CID1 (e.g. internet.cxn baked in from a prior deployment, now with a Kore SIM) binds ECM to the wrong APN and the PDN stays dead through every reboot — the mirror of the Quectel cause-55/33 trap. Bench-proven on a Telit 2026-07-31: a bad context survived a 0.3.2 boot, and 0.3.3 heals it (internet.cxn -> super) at boot, before ModemManager, restoring cellular. Lift the carrier->APN logic and the CGDCONT-rewrite routine out of QuectelEC25 into the base Modem (provisionAttachApn, chooseApn, isTelenor*, parsers, publishApn); both drivers now share one attach-APN heal, the only family difference being the ICCID query (AT+QCCID vs AT#CCID) via a new iccidQueryCmd() virtual and a prefix-agnostic parseIccid. Telit runs the heal as Stage 3 after the ECM bind. Split at_commands.h into at:: (3GPP-standard) + at::quectel:: / at::telit:: vendor namespaces so a cross-vendor command is a visible red flag. Add recycled-context tests (both directions, correct-context no-op, dry-run, Telit #CCID parse). 86 checks, 0 failures. Bump ctt-modem-provision 0.3.2 -> 0.3.3. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
The Telit ECM provisioner returned Done the moment ECM was bound and never checked the attach APN. A recycled Telit carrying a stale CGDCONT CID1 (e.g. internet.cxn baked in from a prior deployment, now with a Kore SIM) binds ECM to the wrong APN and the PDN stays dead through every reboot — the mirror of the Quectel cause-55/33 trap. Bench-proven on a Telit 2026-07-31: a bad context survived a 0.3.2 boot, and 0.3.3 heals it (internet.cxn -> super) at boot, before ModemManager, restoring cellular.
Lift the carrier->APN logic and the CGDCONT-rewrite routine out of QuectelEC25 into the base Modem (provisionAttachApn, chooseApn, isTelenor*, parsers, publishApn); both drivers now share one attach-APN heal, the only family difference being the ICCID query (AT+QCCID vs AT#CCID) via a new iccidQueryCmd() virtual and a prefix-agnostic parseIccid. Telit runs the heal as Stage 3 after the ECM bind. Split at_commands.h into at:: (3GPP-standard)
Add recycled-context tests (both directions, correct-context no-op, dry-run, Telit #CCID parse). 86 checks, 0 failures. Bump ctt-modem-provision 0.3.2 -> 0.3.3.