0.14.x → 0.15.x¶
No structural change: no field was renamed, moved, added or removed, and every 0.14 workspace
keeps its layout. What changed is that a set of constraints the model always intended is now
declared on the fields themselves — which makes them visible in the JSON Schema exported from
FLYNCModel, and makes a few previously-tolerated values fail
validation.
Breaking — YAML schema¶
Empty identifiers and references are rejected¶
Required identifier and reference strings now declare min_length=1. An empty value was
previously accepted and only surfaced further along as a confusing reference error (an empty
pdu_ref reported as unknown PDU ''), or silently produced an unnamed object.
Affected are the required name, id, label, group, service, profile_id,
ecu_name, controller_name, interface_name, bus_name and *_ref
(pdu_ref, bus_ref, socket_ref, frame_ref) fields across every domain.
# no longer valid
- name: ""
pdu_ref: ""
Optional fields are unaffected: leaving one out, or setting it to null where the model
allows that, behaves exactly as before.
Negative values are rejected on quantities that cannot be negative¶
ge=0 was added to:
MACsec MKA timers —
hello_time,bounded_hello_time,life_time,sak_retire_time(matchingsak_rekey_time, which already declared it),PTP time-receiver timeouts —
sync_timeout,sync_followup_timeout,HTB shaping —
classid,rate,ceil,priority, andHTBFilter.filter_priority,
Container PDU header field widths are capped at 32 bits¶
ContainerPDUHeader.id_length_bits and ContainerPDUHeader.length_field_bits now
declare le=32 in addition to the existing multiple_of=8. Widths above 32 bits were
previously accepted although no supported container format uses one.
header:
id_length_bits: 40 # no longer valid, must be 0, 8, 16, 24 or 32
length_field_bits: 64 # no longer valid, must be 0, 8, 16, 24 or 32
Additive — YAML schema¶
New optional instrumentation overlay¶
The optional instrumentation/ folder (flync_4_instrumentation) wraps the
measurement points under an Instrumentation container on the root model:
flync_model.instrumentation is None without the folder, otherwise an
Instrumentation whose measurement_points load from
instrumentation/measurement_points.flync.yaml. Each measurement point is identified by
its ASAM CMP / TECMP interface ids and taps exactly one medium:
type: ethernet_ports— one or two ECU ports of a point-to-point Ethernet link, oneinterface_idper port (two ports must be the two ends of the same connection),type: ethernet_bus— one interface id for anethernet_multidropsegment, by connection id,type: can_bus— one interface id plus thepayload_typescaptured on the bus (can_fdis required exactly onfd_enabledbuses),type: lin_bus— one interface id for a LIN bus.
name and every interface id are unique across the overlay, and flync_model.instrumentation
is an Instrumentation instance carrying .measurement_points. No 0.14 workspace has the
folder, so workspaces keep their layout; adding the overlay is purely optional.