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;
};
};