Native AbCip runtime: STRING capacity, mistype churn, malformed-name device backoff #570

Closed
opened 2026-10-07 19:02:14 -04:00 by dohertj2 · 1 comment
Owner

Context: native .NET Allen-Bradley transport work (plan docs/plans/2026-10-07-native-ab-transport.md, branch feat/native-ab-transport, not yet merged). Parked as a Minor during per-task review — none of these block the plan.

Native AbCip tag runtime (NativeAbCipTagRuntime) follow-ups:

  • STRING capacity counts the alignment pad (84 vs the true 82).
  • A mistyped tag causes evict/re-create churn (throttled, but repeated).
  • A malformed tag name throws raw and puts the whole device into backoff — identical to libplctag (ErrorBadParam → BadConnection), but a per-tag BadConfigurationError would avoid blacking out healthy tags on the same device.
  • REAL decode over a 0xD4 (LWORD) type code is not checked.
Context: native .NET Allen-Bradley transport work (plan `docs/plans/2026-10-07-native-ab-transport.md`, branch `feat/native-ab-transport`, not yet merged). Parked as a Minor during per-task review — none of these block the plan. Native AbCip tag runtime (`NativeAbCipTagRuntime`) follow-ups: - [ ] STRING capacity counts the alignment pad (84 vs the true 82). - [ ] A mistyped tag causes evict/re-create churn (throttled, but repeated). - [ ] A malformed tag name throws raw and puts the whole device into backoff — identical to libplctag (`ErrorBadParam` → `BadConnection`), but a per-tag `BadConfigurationError` would avoid blacking out healthy tags on the same device. - [ ] REAL decode over a 0xD4 (LWORD) type code is not checked.
dohertj2 added the driver/abcip label 2026-10-07 19:02:14 -04:00
Author
Owner

Fixed: STRING capacity 82; existence-read type refusal no longer churns runtime/connection; malformed tag names → per-tag BadConfigurationError without device backoff or health change; 0xD1/0xD2/0xD4 type-checked by width. Residual: on the libplctag transport a name libplctag rejects still backs the device off (adapter unchanged). (merge 501f6ea4 on master, pushed 2026-10-08)

Fixed: STRING capacity 82; existence-read type refusal no longer churns runtime/connection; malformed tag names → per-tag BadConfigurationError without device backoff or health change; 0xD1/0xD2/0xD4 type-checked by width. Residual: on the libplctag transport a name libplctag rejects still backs the device off (adapter unchanged). (merge `501f6ea4` on master, pushed 2026-10-08)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dohertj2/lmxopcua#570