You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SD objects are injected at logger creation, following the existing config injection
pattern. Each SD object owns its own state — e.g. the sequenceId object owns an
atomic counter. SD is formatted once per message at Log time.
Per-instance SD (timeQuality, origin) is pre-formatted at Create and stamped into
every message. sequenceId increments its counter on each format call.
In future, the sequenceId counter may need to be initialisable from stored data
to support persistent buffering (E05).
BDD woven into each story. S07.01 drives the SD serialisation infrastructure.
S07.02–S07.03 are incremental additions. S07.04 hardens escaping and character validation.
S07.05 adds optional origin parameters deferred from S07.03.
S07.06 adds the remaining meta parameters (sysUpTime, language) to complete RFC 5424 IANA SD coverage — open for refinement before pulling in.
Research: standards context
IEC 62443 does not name RFC 5424 SD-IDs directly, but its requirements create
strong implied needs at SL 2+:
Standard IANA-registered structured data per RFC 5424, targeting IEC 62443 SL 2
compliance. Replaces the hardcoded NILVALUE
-with real SD-ELEMENTs.RFC: https://datatracker.ietf.org/doc/html/rfc5424 (sections 6.3, 7.1–7.3, 9)
Design
SD objects are injected at logger creation, following the existing config injection
pattern. Each SD object owns its own state — e.g. the sequenceId object owns an
atomic counter. SD is formatted once per message at Log time.
Per-instance SD (timeQuality, origin) is pre-formatted at Create and stamped into
every message. sequenceId increments its counter on each format call.
In future, the sequenceId counter may need to be initialisable from stored data
to support persistent buffering (E05).
Stories
-",\,]escaping, PRINTUSASCII enforcement on SD-ID/SD-PARAM namesBDD woven into each story. S07.01 drives the SD serialisation infrastructure.
S07.02–S07.03 are incremental additions. S07.04 hardens escaping and character validation.
S07.05 adds optional origin parameters deferred from S07.03.
S07.06 adds the remaining meta parameters (sysUpTime, language) to complete RFC 5424 IANA SD coverage — open for refinement before pulling in.
Research: standards context
IEC 62443 does not name RFC 5424 SD-IDs directly, but its requirements create
strong implied needs at SL 2+:
meta.sequenceIdtimeQualityoriginIANA-registered SD-ID details
timeQuality (RFC 5424 §7.1):
tzKnown(0/1),isSynced(0/1),syncAccuracy(microseconds). Per-instance — clock properties are system-level.origin (RFC 5424 §7.2):
ip,enterpriseId,software,swVersion.Per-instance — fixed for the lifetime of a logger.
meta (RFC 5424 §7.3):
sequenceId(monotonic counter),sysUpTime,language. sequenceId is per-message; others are per-instance.Out of scope