Description
Fixed application-independent payloads carried inside control frames. Enumeration positions and Ada record layouts never cross the wire.
Compensation_Length
Compensation_Length : constant Protocol.Payload_Length := 1;
Wire size of a compensation-result payload.
Decode_Compensation
procedure Decode_Compensation
(Payload : Protocol.Payload_Buffer;
Length : Protocol.Payload_Length;
Item : out Compensation_Result;
Result : out Decode_Result)
Decode one compensation outcome without raising for malformed bytes.
Parameters
- Payload
Source payload buffer
- Length
Significant source bytes
- Item
Decoded outcome, or a harmless initialized value on failure
- Result
Decode classification
Decode_Provision
procedure Decode_Provision
(Payload : Protocol.Payload_Buffer;
Length : Protocol.Payload_Length;
Item : out Provisioning_Data;
Result : out Decode_Result)
Decode one provisioning payload without raising for malformed bytes.
Parameters
- Payload
Source payload buffer
- Length
Significant source bytes
- Item
Decoded data, or a harmless initialized value on failure
- Result
Decode classification
Decode_Result
type Decode_Result is (Decoded, Wrong_Length, Invalid_Value, Nonzero_Reserved);
Fail-closed payload decode classification.
Enumeration literals
- Decoded
Payload is valid
- Wrong_Length
Payload length does not match its message kind
- Invalid_Value
A field has no valid application representation
- Nonzero_Reserved
Reserved payload bytes are not zero
Decode_Topology_Proof
procedure Decode_Topology_Proof
(Payload : Protocol.Payload_Buffer;
Length : Protocol.Payload_Length;
Item : out Topology_Proof;
Result : out Decode_Result)
Decode topology evidence without raising for malformed bytes.
Parameters
- Payload
Source payload buffer
- Length
Significant source bytes
- Item
Decoded proof, or a harmless initialized value on failure
- Result
Decode classification
Encode_Compensation
procedure Encode_Compensation (Item : Compensation_Result; Payload : out Protocol.Payload_Buffer)
Encode one compensation outcome.
Parameters
- Item
Compensation outcome to encode
- Payload
Destination payload buffer
Encode_Provision
procedure Encode_Provision (Item : Provisioning_Data; Payload : out Protocol.Payload_Buffer)
Encode provisioning data and zero the unused payload suffix.
Parameters
- Item
Provisioning data to encode
- Payload
Destination payload buffer
Encode_Topology_Proof
procedure Encode_Topology_Proof (Item : Topology_Proof; Payload : out Protocol.Payload_Buffer)
Encode topology evidence and zero the unused payload suffix.
Parameters
- Item
Topology evidence to encode
- Payload
Destination payload buffer
Nonzero_U64
subtype Nonzero_U64 is Interfaces.Unsigned_64 range 1 .. Interfaces.Unsigned_64'Last;
Nonzero identifier represented in fixed-width payloads.
Provision_Length
Provision_Length : constant Protocol.Payload_Length := 64;
Wire size of a provisioning payload.
Provisioning_Data
type Provisioning_Data is record
Application_Signature : Nonzero_U64;
Topology_Schema : Nonzero_U64;
Topology_Epoch : Nonzero_U64;
Digest : Topology_Digest;
Role : Candidate_Role;
end record;
Desired topology and candidate role supplied before activation.
Record fields
- Application_Signature
Application protocol identity
- Topology_Schema
Application topology schema identity
- Topology_Epoch
Desired deployment topology epoch
- Digest
Digest of the desired topology
- Role
Candidate effect and admission role
Topology_Digest
type Topology_Digest is array (Natural range 0 .. 31) of Protocol.Octet;
Stable digest of the desired application topology.
Topology_Proof
type Topology_Proof is record
Epoch : Nonzero_U64;
Digest : Topology_Digest;
end record;
Candidate evidence that its reconstructed topology matches provision.
Record fields
- Epoch
Reconstructed topology epoch
- Digest
Reconstructed topology digest
Topology_Proof_Length
Topology_Proof_Length : constant Protocol.Payload_Length := 40;
Wire size of a topology-proof payload.