Skip to main content

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):

  1. BGP Action
  2. BGP FlowSpec Action
  3. Custom Command

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.