-
Notifications
You must be signed in to change notification settings - Fork 0
Configuration Reference
AISMixer loads the active runtime configuration from /etc/aismixer/config.yaml when it exists, otherwise from config.yaml in the current working directory.
For startup and deployment behavior around this lookup order, see Operations and Deployment.
The files under examples/ in the main repository are inactive examples. They are not loaded unless an operator copies or adapts them. A direct routing update file, such as examples/routing-update.yaml, is not a full config; it is input for aismixerctl replace --file.
Main repository examples:
- examples/config-routing.yaml
- examples/config-routing-control.yaml
- examples/routing-update.yaml
- examples README
| Key | Purpose |
|---|---|
station_id |
Preferred emitted TAG s source label when non-empty. This is separate from routing source_id. |
debug |
Enables debug printing in the running service. |
sec_inputs |
Configures UDPSEC listener sockets. |
udp_inputs |
Configures plain UDP listener sockets. |
forwarders |
Configures UDP egress destinations. |
udp_alias_map_file |
Optional path to an IP-to-alias map for UDP ingress identity and TAG aliasing. |
g_preserve_ingress_gid |
When true and ingress TAG g has a valid numeric group ID, use that group ID in output TAG g. |
g_id_digits |
Number of digits for generated numeric TAG g group IDs. |
g_always_tag_single |
When true, emit TAG g for single-sentence output as 1-1-<gid>. |
c_preserve_ingress_c |
When true and ingress TAG c is valid, use that timestamp in output. |
routing |
Optional static routing table loaded at startup. |
control |
Optional control-plane configuration. The currently supported nested section is control.unix. |
udp_inputs entries configure plain UDP listeners:
udp_inputs:
- id: roof_receiver
listen_ip: "0.0.0.0"
listen_port: 17778When id is present and non-empty, the UDP routing source ID becomes udp:<id>. Without an id, AISMixer may use a mapped alias from udp_alias_map_file, then falls back to udp:<remote-ip>.
sec_inputs entries configure UDPSEC listeners:
sec_inputs:
- id: secure_listener_alias
listen_ip: "::"
listen_port: 29999UDPSEC routing source IDs come from authenticated station identities, for example udpsec:rPiAIS002. sec_inputs[].id may affect emitted TAG s aliasing when station_id is empty, but it does not replace the authenticated routing source ID.
forwarders entries configure UDP egress destinations:
forwarders:
- id: aishub
host: 192.0.2.20
port: 10110Named UDP forwarders create target IDs such as udp:aishub. Routes can reference only available named target IDs. Unnamed forwarders are valid for legacy broadcast mode but cannot be route targets.
Only UDP egress targets are currently implemented.
routing enables routing mode when it contains valid zones and routes.
routing:
zones:
fixed_udp:
include:
- udp:roof_receiver
routes:
- name: fixed_to_aishub
from_zone: fixed_udp
to:
- udp:aishub| Field | Purpose |
|---|---|
zones |
Mapping of zone names to exactly one set expression. |
routes |
Ordered list of route declarations. |
name |
Operator-readable route name returned in status. |
from_zone |
Name of the logical zone matched by the route. |
to |
List of target IDs that must exist as named egress adapters. |
Zone expressions are include, union, intersection, and difference. See Routing Model.
control.unix is strict. Unknown fields are rejected. If control.unix is present, enabled is required.
control:
unix:
enabled: true
socket_path: /run/aismixer/control.sock
socket_mode: "0660"
max_request_bytes: 1048576| Field | Purpose |
|---|---|
enabled |
Must be true to start the Unix control server. false disables it. |
socket_path |
Filesystem path for the Unix-domain socket. Required when enabled. |
socket_mode |
Octal socket permission mode, defaulting to 0660 when omitted. |
max_request_bytes |
Maximum accepted request frame size, defaulting to 1048576 when omitted. |
The socket parent directory must already exist. Runtime routing changes made through this socket are process-local and non-persistent.