1 1.1 christos filter-rule = [ insert ] action in-out [ options ] [ tos ] [ ttl ] 2 1.1 christos [ proto ] [ ip ] [ group ] [ tag ] [ pps ] . 3 1.1 christos 4 1.1 christos insert = "@" decnumber . 5 1.1 christos action = block | "pass" | log | "count" | auth | call . 6 1.1 christos in-out = "in" | "out" . 7 1.1 christos options = [ log ] [ "quick" ] [ onif [ dup ] [ froute ] ] . 8 1.1 christos tos = "tos" decnumber | "tos" hexnumber . 9 1.1 christos ttl = "ttl" decnumber . 10 1.1 christos proto = "proto" protocol . 11 1.1 christos ip = srcdst [ flags ] [ with withopt ] [ icmp ] [ keep ] . 12 1.1 christos group = [ "head" decnumber ] [ "group" decnumber ] . 13 1.1 christos pps = "pps" decnumber . 14 1.1 christos 15 1.1 christos onif = "on" interface-name [ "out-via" interface-name ] . 16 1.1 christos block = "block" [ return-icmp[return-code] | "return-rst" ] . 17 1.1 christos auth = "auth" | "preauth" . 18 1.1 christos log = "log" [ "body" ] [ "first" ] [ "or-block" ] [ "level" loglevel ] . 19 1.1 christos tag = "tag" tagid . 20 1.1 christos call = "call" [ "now" ] function-name . 21 1.1 christos dup = "dup-to" interface-name[":"ipaddr] . 22 1.1 christos froute = "fastroute" | "to" interface-name . 23 1.1 christos protocol = "tcp/udp" | "udp" | "tcp" | "icmp" | decnumber . 24 1.1 christos srcdst = "all" | fromto . 25 1.1 christos fromto = "from" object "to" object . 26 1.1 christos 27 1.1 christos return-icmp = "return-icmp" | "return-icmp-as-dest" . 28 1.1 christos loglevel = facility"."priority | priority . 29 1.1 christos object = addr [ port-comp | port-range ] . 30 1.1 christos addr = "any" | nummask | host-name [ "mask" ipaddr | "mask" hexnumber ] . 31 1.1 christos port-comp = "port" compare port-num . 32 1.1 christos port-range = "port" port-num range port-num . 33 1.1 christos flags = "flags" flag { flag } [ "/" flag { flag } ] . 34 1.1 christos with = "with" | "and" . 35 1.1 christos icmp = "icmp-type" icmp-type [ "code" decnumber ] . 36 1.1 christos return-code = "("icmp-code")" . 37 1.1 christos keep = "keep" "state" [ "limit" number ] | "keep" "frags" . 38 1.1 christos 39 1.1 christos nummask = host-name [ "/" decnumber ] . 40 1.1 christos host-name = ipaddr | hostname | "any" . 41 1.1 christos ipaddr = host-num "." host-num "." host-num "." host-num . 42 1.1 christos host-num = digit [ digit [ digit ] ] . 43 1.1 christos port-num = service-name | decnumber . 44 1.1 christos 45 1.1 christos withopt = [ "not" | "no" ] opttype [ withopt ] . 46 1.1 christos opttype = "ipopts" | "short" | "nat" | "bad-src" | "lowttl" | "frag" | 47 1.1 christos "mbcast" | "opt" ipopts . 48 1.1 christos optname = ipopts [ "," optname ] . 49 1.1 christos ipopts = optlist | "sec-class" [ secname ] . 50 1.1 christos secname = seclvl [ "," secname ] . 51 1.1 christos seclvl = "unclass" | "confid" | "reserv-1" | "reserv-2" | "reserv-3" | 52 1.1 christos "reserv-4" | "secret" | "topsecret" . 53 1.1 christos icmp-type = "unreach" | "echo" | "echorep" | "squench" | "redir" | 54 1.1 christos "timex" | "paramprob" | "timest" | "timestrep" | "inforeq" | 55 1.1 christos "inforep" | "maskreq" | "maskrep" | "routerad" | 56 1.1 christos "routersol" | decnumber . 57 1.1 christos icmp-code = decumber | "net-unr" | "host-unr" | "proto-unr" | "port-unr" | 58 1.1 christos "needfrag" | "srcfail" | "net-unk" | "host-unk" | "isolate" | 59 1.1 christos "net-prohib" | "host-prohib" | "net-tos" | "host-tos" | 60 1.1 christos "filter-prohib" | "host-preced" | "cutoff-preced" . 61 1.1 christos optlist = "nop" | "rr" | "zsu" | "mtup" | "mtur" | "encode" | "ts" | "tr" | 62 1.1 christos "sec" | "lsrr" | "e-sec" | "cipso" | "satid" | "ssrr" | "addext" | 63 1.1 christos "visa" | "imitd" | "eip" | "finn" . 64 1.1 christos facility = "kern" | "user" | "mail" | "daemon" | "auth" | "syslog" | 65 1.1 christos "lpr" | "news" | "uucp" | "cron" | "ftp" | "authpriv" | 66 1.1 christos "audit" | "logalert" | "local0" | "local1" | "local2" | 67 1.1 christos "local3" | "local4" | "local5" | "local6" | "local7" . 68 1.1 christos priority = "emerg" | "alert" | "crit" | "err" | "warn" | "notice" | 69 1.1 christos "info" | "debug" . 70 1.1 christos 71 1.1 christos hexnumber = "0" "x" hexstring . 72 1.1 christos hexstring = hexdigit [ hexstring ] . 73 1.1 christos decnumber = digit [ decnumber ] . 74 1.1 christos 75 1.1 christos compare = "=" | "!=" | "<" | ">" | "<=" | ">=" | "eq" | "ne" | "lt" | "gt" | 76 1.1 christos "le" | "ge" . 77 1.1 christos range = "<>" | "><" . 78 1.1 christos hexdigit = digit | "a" | "b" | "c" | "d" | "e" | "f" . 79 1.1 christos digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" . 80 1.1 christos flag = "F" | "S" | "R" | "P" | "A" | "U" | "C" | "W" . 81