1145510Sdarrenripmap :: = mapblock | redir | map .
2145510Sdarrenr
3145510Sdarrenrmap ::= mapit ifname ipmask "->" ipmask [ mapport | mapicmpid ] .
4145510Sdarrenrmap ::= mapit ifname fromto "->" ipmask [ mapport | mapicmpid ] .
5145510Sdarrenrmapblock ::= "map-block" ifname ipmask "->" ipmask [ ports ] .
6145510Sdarrenrredir ::= "rdr" ifname ipmask dport "->" ip [ "," ip ] [ ports ] options .
7145510Sdarrenr
8145510Sdarrenrdport ::= "port" portnum [ "-" portnum ] .
9145510Sdarrenrports ::= "ports" numports | "auto" .
10145510Sdarrenrmapit ::= "map" | "bimap" .
11145510Sdarrenrfromto ::= "from" object "to" object .
12145510Sdarrenripmask ::= ip "/" bits | ip "/" mask | ip "netmask" mask .
13145510Sdarrenrmapport ::= "portmap" tcpudp portnumber ":" portnumber .
14145510Sdarrenrmapicmpid ::= "icmpidmap" icmp idnumber ":" idnumber .
15145510Sdarrenroptions ::= [ tcpudp ] [ rr ] .
16145510Sdarrenr
17145510Sdarrenrobject  = addr [ port-comp | port-range ] .
18145510Sdarrenraddr    = "any" | nummask | host-name [ "mask" ipaddr | "mask" hexnumber ] .
19145510Sdarrenrport-comp = "port" compare port-num .
20145510Sdarrenrport-range = "port" port-num range port-num .
21145510Sdarrenr
22145510Sdarrenrrr ::= "round-robin" .
23145510Sdarrenrtcpudp ::= "tcp" | "udp" | "tcp/udp" .
24145510Sdarrenrportnumber ::= number { numbers } | "auto" .
25145510Sdarrenridnumber ::= number { numbers } .
26145510Sdarrenrifname ::= 'A' - 'Z' { 'A' - 'Z' } numbers .
27145510Sdarrenr
28145510Sdarrenrnumbers ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' .
29