The routeflapper.conf configuration file is specified by this partial bnf description. The entire config file is case sensitive. All the keywords are lower case.
CONFIG := {FILE}+ FILE := "file" FILENAME "{" PATTERN+ "};" PATTERN := RESET | PATH | ANNOUNCE | WITHDRAW | IP RESET := "reset" REGEX "{" "}" ";" PATH := "path" REGEX "{" INDEXPATH "}" ";" ANNOUNCE := "announce" REGEX "{" INDEXVAL INDEXLEN "}" ";" WITHDRAW := "withdraw" REGEX "{" INDEXVAL INDEXLEN "}" ";" IP := "ip" REGEX "{" INDEXIP "}" ";" INDEXPATH := "index_path" REGEX-INTEGER-VALUE ";" INDEXVAL := "index_value" REGEX-INTEGER-VALUE ";" INDEXLEN := "index_length" REGEX-INTEGER-VALUE ";" INDEXIP := "index_ip" REGEX-INTEGER-VALUE ";"
file "/var/log/bgp" { reset "ADJCHANGE: neighbor .* Up" {}; path " rcvd UPDATE w.* path (([0-9]| )*[0-9])" { index_path 1; }; announce " rcvd (([0-9]|\.)*)/([0-9]*)$" { index_value 1; index_length 3; }; withdraw " rcvd UPDATE about (([0-9]|\.)*)/([0-9]*) -- withdrawn" { index_value 1; index_length 3; }; }; file "/var/log/maillog" { ip "NOQUEUE: connect from.* \[(.*)\]" { index_ip 1; }; };