131183Speterline ::= iface | arp | send | defrouter | ipv4line . 231183Speter 331183Speteriface ::= ifhdr "{" ifaceopts "}" ";" . 431183Speterifhdr ::= "interface" | "iface" . 531183Speterifaceopts ::= "ifname" name | "mtu" mtu | "v4addr" ipaddr | 631183Speter "eaddr" eaddr . 731183Speter 831183Spetersend ::= "send" ";" | "send" "{" sendbodyopts "}" ";" . 931183Spetersendbodyopts ::= sendbody [ sendbodyopts ] . 1031183Spetersendbody ::= "ifname" name | "via" ipaddr . 1131183Speter 1231183Speterdefrouter ::= "router" ipaddr . 1331183Speter 1431183Speterarp ::= "arp" "{" arpbodyopts "}" ";" . 1531183Speterarpbodyopts ::= arpbody [ arpbodyopts ] . 1631183Speterarpbody ::= "v4addr" ipaddr | "eaddr" eaddr . 1731183Speter 1831183Speterbodyline ::= ipv4line | tcpline | udpline | icmpline | dataline . 1931183Speter 2031183Speteripv4line ::= "ipv4" "{" ipv4bodyopts "}" ";" . 2131183Speteripv4bodyopts ::= ipv4body [ ipv4bodyopts ] | bodyline . 2231183Speteripv4body ::= "proto" protocol | "src" ipaddr | "dst" ipaddr | 2331183Speter "off" number | "v" number | "hl" number| "id" number | 2431183Speter "ttl" number | "tos" number | "sum" number | "len" number | 2531183Speter "opt" "{" ipv4optlist "}" ";" . 2631183Speteripv4optlist ::= ipv4option [ ipv4optlist ] . 2731183Speteripv4optlist = "nop" | "rr" | "zsu" | "mtup" | "mtur" | "encode" | "ts" | 2831183Speter "tr" | "sec" | "lsrr" | "e-sec" | "cipso" | "satid" | 2931183Speter "ssrr" | "addext" | "visa" | "imitd" | "eip" | "finn" | 3031183Speter "secclass" ipv4secclass. 3131183Speteripv4secclass := "unclass" | "confid" | "reserv-1" | "reserv-2" | 3231183Speter "reserv-3" | "reserv-4" | "secret" | "topsecret" . 3331183Speter 3431183Spetertcpline ::= "tcp" "{" tcpbodyopts "}" ";" . 3531183Spetertcpbodyopts ::= tcpbody [ tcpbodyopts ] | bodyline . 3631183Spetertcpbody ::= "sport" port | "dport" port | "seq" number | "ack" number | 3731183Speter "off" number | "urp" number | "win" number | "sum" number | 3831183Speter "flags" tcpflags | data . 3931183Speter 4031183Speterudpline ::= "udp" "{" udpbodyopts "}" ";" . 4131183Speterudpbodyopts ::= udpbody [ udpbodyopts ] | bodyline . 4231183Speterudpbody ::= "sport" port | "dport" port | "len" number | "sum" number | 4331183Speter data . 4431183Speter 4531183Spetericmpline ::= "icmp" "{" icmpbodyopts "}" ";" . 4631183Spetericmpbodyopts ::= icmpbody [ icmpbodyopts ] | bodyline . 4731183Spetericmpbody ::= "type" icmptype [ "code" icmpcode ] . 4831183Spetericmptype ::= "echorep" | "echorep" "{" echoopts "}" ";" | "unreach" | 4931183Speter "unreach" "{" unreachtype "}" ";" | "squench" | "redir" | 5031183Speter "redir" "{" redirtype "}" ";" | "echo" "{" echoopts "}" ";" | 5131183Speter "echo" | "routerad" | "routersol" | "timex" | 5231183Speter "timex" "{" timextype "}" ";" | "paramprob" | 5331183Speter "paramprob" "{" parapptype "}" ";" | "timest" | "timestrep" | 5431183Speter "inforeq" | "inforep" | "maskreq" | "maskrep" . 5531183Speter 5631183Speterechoopts ::= echoopts [ icmpechoopts ] . 5731183Speterunreachtype ::= "net-unr" | "host-unr" | "proto-unr" | "port-unr" | 5831183Speter "needfrag" | "srcfail" | "net-unk" | "host-unk" | "isolate" | 5931183Speter "net-prohib" | "host-prohib" | "net-tos" | "host-tos" | 6031183Speter "filter-prohib" | "host-preced" | "cutoff-preced" . 6131183Speterredirtype ::= "net-redir" | "host-redir" | "tos-net-redir" | 6231183Speter "tos-host-redir" . 6331183Spetertimextype ::= "intrans" | "reass" . 6431183Speterparamptype ::= "optabsent" . 6531183Speter 6631183Speterdata ::= "data" "{" databodyopts "}" ";" . 6731183Speterdatabodyopts ::= "len" number | "value" string | "file" filename . 6831183Speter 6931183Spetericmpechoopts ::= "icmpseq" number | "icmpid" number . 70