← All compilation units

Flyology.Process_Generations.Messages

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.