Glossary

Protocol vocabulary — node, category, command, response, priority, sequence number, PDU and the rest — is defined in the Protocol Specification §2, and the constants and enumerations are tabulated in §5, §6 and §10 of the same document. Segmentation frame types and timing parameters are in §4.1.

This glossary covers only the vocabulary this booklet adds: the implementation patterns the design is built from, and the terms used to classify behaviour.

Design and implementation vocabulary

Term Meaning
Binding The association of one message identifier with one member function of the category that handles it. The unit of dispatch inside a category (Chapter 5)
Bounded container A container with a compile-time maximum, used everywhere a growing container would be. Reaching the maximum is a defined outcome, never an allocation
Channel A pair of identifiers — one for data, one for the flow control that answers it — with one sender and one receiver (Chapter 8)
Completion A function handed to an observer so it can report the outcome later, without the notifying component holding state across the gap (Chapter 9)
Design limit A deliberate simplification whose cost is stated rather than hidden. Used as a marker throughout Chapter 10
EMIL embedded-infra-lib, the infrastructure library supplying the bounded containers, timers, callbacks and observer pattern
Eviction Reclaiming the least recently claimed slot of a full fixed-size table, in rotation, rather than refusing the newcomer (Chapter 7)
Latent Behaviour that is correct today but depends on an assumption a driver or an integrator could break. Used as a marker throughout Chapter 10
Reference, not ownership The composition rule: components borrow their collaborators, and the application owns everything (Chapter 2)
Reserve and give back Taking the next sequence number before the frame is sent, undoing that exactly if the send is refused, and giving the number back if the frame never leaves the node (Chapter 7)
Silence guard A timer restarted by activity, so the action it guards happens only after real inactivity. How both heartbeats work (Chapter 6)
Sticky validity Payload composition and consumption poison themselves on the first out-of-range access, so a caller checks once rather than per field (Chapter 4)
Tumbling window A counting window that resets wholesale on a timer, as opposed to a sliding one. Why a burst can cross a boundary at twice the limit (Chapter 10, §7.2)
WithStorage The pattern in which an implementation is non-template and borrows its storage, while a nested alias owns that storage and carries the size. Described in Architecture and Design Decisions §10.1

Roles

Term Meaning
Acknowledger The role, played by the server protocol object, through which a category has an acknowledgement sent on its behalf — because an acknowledgement belongs to the system category, and no category speaks for another (Chapter 5)
Frame transport The single outbound queue per node, owned by the protocol object and lent to every category (Chapter 4)
Sequence source The role, played by the client protocol object, through which a client category obtains sequence numbers without depending on the client library (Chapter 5)
Observer The application-side implementation of a category’s or protocol object’s event interface. Exactly one per subject, bound for its own lifetime

Segmentation abort reasons

Every abandoned transfer reports exactly one of these through the transport’s abort callback, and the channel stays open on all of them (Chapter 8).

Reason Raised when
N_As timeout The sender handed a single or consecutive frame to the transport and was not told it was sent within N_As
N_Bs timeout The sender waited a full N_Bs for the flow control answering its first frame or its last block, and none arrived
N_Cr timeout The receiver waited a full N_Cr for the next consecutive frame of a transfer already in progress
Overflow The peer declared its buffer too small for the announced length, or this receiver found the announced length too large for its own buffer
Unexpected frame A frame that ends the transfer in progress: an out-of-sequence consecutive frame, a valid single or first frame interrupting a reception, or a flow control frame too short to decode or carrying a reserved flow status
Wait limit exceeded The peer asked the sender to wait more consecutive times than N_WFTmax allows
Send failed The transmit path refused the frame — typically a full outbound queue. A local, transient condition, distinct from anything the peer did