Actions
When you have a workflow configured, you also associate the set of actions that you'd like to happen once that workflow is triggered. Director supports three different actions (each with an IPv4 and IPv6 variant):
Each action must be uniquely identifiable in the TOML based on their name:
# A BGP IPv4 Action named "BgpExample"
[actions.BgpExample]
type = "bgp-v4"
# Use this type for IPv6 instead
# type = "bgp-v6"
# ...more config here...
# A BGP FlowSpec IPv4 Action named "FlowSpecExample"
[actions.FlowSpecExample]
type = "bgp-flowspec-v4"
# Use this type for IPv6 instead
# type = "bgp-flowspec-v6"
# ...more config here...
# A Custom Command, used for IPv4 addresses, named "CustomScript"
[actions.CustomScript]
type = "command-v4"
# Use this type for IPv6 instead
# type = "command-v6"
# ...more config here...
Each type of action has configuration specific to it, but any action can be marked using no-op to notify and log the configured action, but not execute it (helpful for testing and debugging).
Action Suppression
Depending on configuration, an action might be computed with a prefix outside of your address space. This could be the result of large aggregate values for the various BGP actions, or from live traffic analysis for an interface-workflow.
Any prefix that would be used by an action is now checked against the Zone subnets configured in rWeb. The Zone subnets are aggregated into the appropriate supernets and used to check the action's prefix(es). If a prefix is unconfigured or only partially overlaps the configured address space, the action will be suppressed (won't be started). If the prefix is contained within any computed supernet it will proceed as normal. If you are expecting actions to be started but it is being blocked by this mechanism, you can check if this is happening while ssh'd onto Director:
curl localhost:9090
This will query the various metrics tracked by Director. If suppressions are happening, you'll see a result like the following:
# TYPE action_suppresions counter
action_suppresions 12
If no suppressions have happened, this counter value will be absent.