J1939 connector (PGN routing + transport protocol)¶
A fifth concrete connector instantiating the framework’s contracts, layering
SAE J1939 on top of CAN. It reuses taktora-connector-can’s
CanInterfaceLike driver layer (Reuse the CAN driver layer;... (REQ_0899)) and adds a userspace
transport-protocol state machine, PGN-based routing, and J1939-81 address
claiming. This parent feature :satisfies: Connector framework (FEAT_0030); the
connector-wide requirements below :satisfies: it directly. The boundary
decision — reuse the CAN driver and own the dispatcher, rather than the kernel
CAN_J1939 socket family — is recorded in Reuse the CAN driver layer;... (ADR_0108); the two-tier
delivery model in Two-tier delivery; ETP over... (ADR_0109); full address-claim scope in
Full J1939-81 address claim... (ADR_0110).
A J1939 plugin and gateway that bridge SAE J1939 traffic — single-frame
PGNs, BAM and RTS/CTS transport-protocol messages, and ETP — between a
taktora-executor application and a CAN bus. The gateway reuses
|
The connector shall decode the 29-bit extended CAN identifier into
priority, PDU format (PDU1 destination-specific vs PDU2 broadcast),
PGN, source address, and destination address, and shall route
iceoryx2 channels by PGN with optional source-address and
destination-address filters ( |
|
The connector shall reassemble inbound and segment outbound BAM (Broadcast Announce Message) multi-packet messages — TP.CM (BAM) plus TP.DT — for payloads of 9–1785 bytes. |
The connector shall reassemble inbound and segment outbound RTS/CTS connection-mode multi-packet messages — TP.CM (RTS / CTS / EndOfMsgAck / Abort) plus TP.DT — for payloads of 9–1785 bytes, honouring the receiver’s CTS flow control. |
The connector shall transport ETP (Extended Transport Protocol)
messages over the large-payload slice channel (Large / variable-payload sl... (FEAT_0097)),
bounded by a configurable |
The connector shall enforce the J1939-21 transport-protocol timers
(Tr, Th, T1–T4) with their standard default values, configurable, and
shall surface every TP timeout or connection abort as a
|
The connector shall bound the number of concurrent inbound TP sessions per interface to a configurable maximum; an inbound session opened beyond that maximum shall be refused with a connection abort rather than unbounded session allocation (upholds Bounded global allocator (FEAT_0040)). |
The connector shall participate in J1939-81 address management for each owned interface: claim a configured source address using a 64-bit NAME, arbitrate by NAME priority on contention, fall back to the null address (254) as cannot-claim, respond to Request-for-Address-Claimed (PGN 59904), and honour Address-Commanded (PGN 65240). |
The connector shall map address-claim state onto |
The connector shall consume |