Skip to content

Policy engine

The policy engine decides what happens to every message: whether it is forwarded, where to, and whether it is dropped. Rules are per interface and per direction, and they are evaluated in priority order.

An access rule

FieldMeaning
interface_idwhich interface this rule belongs to
directioningress or egress; a rule applies to one, never both
prioritylower numbers are evaluated first, default 100
actionforward or drop
forward_tothe destination interface when forwarding
filterswhat the message must match
schedule_typewhen the rule is in force at all
qos_leveldelivery quality for the forwarded copy
rate_limit_per_minceiling on how often this rule may fire
enabledoff without deleting it

Object groups

filter_node_group, filter_sender_group and filter_portnum_group point at object groups: named, reusable sets of nodes, senders or port numbers. Define the set once and reference it from every rule that needs it, rather than repeating a list in each and having them drift apart.

Direction is not symmetric

A rule is ingress or egress, never both, and the same interface usually needs different rules in each direction. What you accept from a mesh is not what you are willing to send back out over a satellite link that costs money per message.

Scheduling

A rule can be limited to a time window. The obvious use is expensive bearers: forward telemetry over satellite during working hours and hold it otherwise, without disabling the rule by hand twice a day.

Rate limits

rate_limit_per_min bounds how often a single rule fires. It exists because a chatty mesh node can turn one enthusiastic sensor into a satellite bill. A rate limit on a rule is a spend control, not a performance control.

Made by MeshSat