2.6 KiB
Native AB transport gate results
ab_server suites (T17)
Every ab_server integration test now runs once per transport (TransportMatrix in each integration
project). Run 2026-10-07 against 10.100.0.35, one compose profile at a time
(AbCip /opt/otopcua-abcip, AB_SERVER_COMPOSE_PROFILE=<p>; AbLegacy ~/otopcua-ablegacy,
AB_LEGACY_COMPOSE_PROFILE=<p>); every stack was brought down afterwards.
- Image:
otopcua-ab-server:libplctag-release(sha256:19e814747d85…, built 2026-08-01; ab_server from libplctagv2.7.0+ patches 0001/0002). Host compose files md5-identical to the repo's. - Commit: fixes
82d011c7+2171fc8c, test matrix8c68694d.
Counts are pass / fail / skip for the transport-parameterised rows only. Each AbCip run also passed the
6 transport-independent AbServerProfileTests. The AbCip skips are the 3 Emulate-tier tests
(AB_SERVER_PROFILE=emulate only). The AbLegacy skips are Slc500_write_then_read…, which skips itself
on both transports when the slc500 port (:44819) is down.
| Profile | Libplctag | Native | Native ⊇ Libplctag |
|---|---|---|---|
| controllogix | 1 / 0 / 3 | 1 / 0 / 3 | yes |
| compactlogix | 1 / 0 / 3 | 1 / 0 / 3 | yes |
| micro800 | 0 / 1 / 3 | 1 / 0 / 3 | yes (libplctag fails, see below) |
| guardlogix | 1 / 0 / 3 | 1 / 0 / 3 | yes |
| slc500 | 2 / 0 / 0 | 2 / 0 / 0 | yes |
| micrologix | 1 / 0 / 1 | 1 / 0 / 1 | yes |
| plc5 | 1 / 0 / 1 | 1 / 0 / 1 | yes |
Native-only failures found and fixed:
82d011c7(controllogix): RegisterSession carried a non-zero sender context, and ab_server rejects that with encapsulation status 1. Every native session failed.2171fc8c(slc500): ab_server answers Execute PCCC with a fixed requestor id (07 3D F3 45 43 50 21), so the requestor-echo check rejected every native PCCC reply. Native now sends libplctag's identity.
Skips added: none. The PLC-5 integration test only reads N7, so the PLC-5 Unsupported paths (non-N reads, all writes) and status-bit sub-element writes are never exercised by the suite.
micro800: the smoke test used to send /1,0 for every family, and both transports failed against
--plc=Micro800. It now uses an empty path for Micro800. With the empty path, native passes. libplctag
still fails with BadCommunicationError, because the driver's libplctag runtime passes Path = "" and
libplctag answers that with ErrorBadData. A null path works (checked with the capture client). That
defect is pre-existing and libplctag-side; it is recorded, not fixed, here.
Differential vs ab_server (T18)
(pending)
AdminUI /run (T19)
(pending)
Real press (T21)
(pending)
Latency (T21)
(pending)