J1939 connector + large-payload slice channel¶
Verification artefacts for the J1939 connector (J1939 connector (PGN routin... (FEAT_0098)) and the
large / variable-payload slice channel (Large / variable-payload sl... (FEAT_0097)) that backs J1939
ETP. Layer-1 (pure-logic) cases use MockJ1939Interface (built on
MockCanInterface) and exercise the full transport-protocol and
address-claim state machines deterministically on any host OS; layer-2 cases
gated on socketcan-integration require a Linux host with the vcan
kernel module loaded.
Large-payload slice channel (FEAT_0097)¶
Publish several messages of differing lengths through a
|
Configure a small |
J1939 connector (FEAT_0098)¶
Feed crafted 29-bit identifiers (PDU1 destination-specific and PDU2
broadcast) through |
Assert |
Layer-1 end-to-end: segment a 9–1785-byte payload outbound into TP.CM (BAM) + TP.DT frames and reassemble an injected BAM sequence inbound; assert the reassembled payload matches and is delivered on the matching PGN channel. |
Drive a full RTS → CTS → TP.DT → EndOfMsgAck exchange through the mock, including the receiver’s CTS flow control across multiple windows; assert correct reassembly and that an Abort surfaces as a health event. |
Transfer an ETP message larger than 1785 bytes; assert it round-trips
over the slice channel (Large / variable-payload sl... (FEAT_0097)) and that a session announcing
a size above |
Open a TP session and withhold the expected next frame past the
relevant J1939-21 timer (e.g. T1); assert the session aborts on the
timer and emits a |
Configure a small max-concurrent-sessions limit and open one more inbound session than allowed; assert the excess session is refused with a connection abort and no unbounded allocation occurs. |
Inject a competing Address Claimed for the same SA with a higher-priority NAME; assert the connector cedes (cannot-claim → null address 254), responds to Request-for-Address-Claimed, and honours an Address-Commanded message. |
Assert the interface reports |
Confirm |