summaryrefslogtreecommitdiff
path: root/ipf/regress
diff options
context:
space:
mode:
Diffstat (limited to 'ipf/regress')
-rw-r--r--ipf/regress/Makefile206
-rw-r--r--ipf/regress/bpf-f14
-rw-r--r--ipf/regress/bpf14
-rw-r--r--ipf/regress/f14
-rw-r--r--ipf/regress/f1018
-rw-r--r--ipf/regress/f117
-rw-r--r--ipf/regress/f126
-rw-r--r--ipf/regress/f139
-rw-r--r--ipf/regress/f148
-rw-r--r--ipf/regress/f158
-rw-r--r--ipf/regress/f1610
-rw-r--r--ipf/regress/f174
-rw-r--r--ipf/regress/f184
-rw-r--r--ipf/regress/f192
-rw-r--r--ipf/regress/f26
-rw-r--r--ipf/regress/f204
-rw-r--r--ipf/regress/f212
-rw-r--r--ipf/regress/f222
-rw-r--r--ipf/regress/f241
-rw-r--r--ipf/regress/f251
-rw-r--r--ipf/regress/f266
-rw-r--r--ipf/regress/f276
-rw-r--r--ipf/regress/f28.ipf2
-rw-r--r--ipf/regress/f28.pool2
-rw-r--r--ipf/regress/f29.ipf2
-rw-r--r--ipf/regress/f29.pool2
-rw-r--r--ipf/regress/f38
-rw-r--r--ipf/regress/f304
-rw-r--r--ipf/regress/f48
-rw-r--r--ipf/regress/f548
-rw-r--r--ipf/regress/f648
-rw-r--r--ipf/regress/f79
-rw-r--r--ipf/regress/f86
-rw-r--r--ipf/regress/f918
-rw-r--r--ipf/regress/i118
-rw-r--r--ipf/regress/i105
-rw-r--r--ipf/regress/i1112
-rw-r--r--ipf/regress/i1210
-rw-r--r--ipf/regress/i138
-rw-r--r--ipf/regress/i1415
-rw-r--r--ipf/regress/i154
-rw-r--r--ipf/regress/i163
-rw-r--r--ipf/regress/i1713
-rw-r--r--ipf/regress/i183
-rw-r--r--ipf/regress/i1922
-rw-r--r--ipf/regress/i29
-rw-r--r--ipf/regress/i204
-rw-r--r--ipf/regress/i217
-rw-r--r--ipf/regress/i225
-rw-r--r--ipf/regress/i231
-rw-r--r--ipf/regress/i314
-rw-r--r--ipf/regress/i49
-rw-r--r--ipf/regress/i59
-rw-r--r--ipf/regress/i612
-rw-r--r--ipf/regress/i714
-rw-r--r--ipf/regress/i862
-rw-r--r--ipf/regress/i917
-rw-r--r--ipf/regress/in131
-rw-r--r--ipf/regress/in1003
-rw-r--r--ipf/regress/in100_63
-rw-r--r--ipf/regress/in1014
-rw-r--r--ipf/regress/in101_64
-rw-r--r--ipf/regress/in1025
-rw-r--r--ipf/regress/in102_65
-rw-r--r--ipf/regress/in1_629
-rw-r--r--ipf/regress/in271
-rw-r--r--ipf/regress/in2_671
-rw-r--r--ipf/regress/in35
-rw-r--r--ipf/regress/in3_65
-rw-r--r--ipf/regress/in45
-rw-r--r--ipf/regress/in4_65
-rw-r--r--ipf/regress/in524
-rw-r--r--ipf/regress/in5_624
-rw-r--r--ipf/regress/in68
-rw-r--r--ipf/regress/in6_68
-rw-r--r--ipf/regress/in71
-rw-r--r--ipf/regress/in8_66
-rw-r--r--ipf/regress/ip178
-rw-r--r--ipf/regress/ip22
-rw-r--r--ipf/regress/ip314
-rw-r--r--ipf/regress/ipv6.11
-rw-r--r--ipf/regress/ipv6.23
-rw-r--r--ipf/regress/ipv6.31
-rw-r--r--ipf/regress/ipv6.43
-rw-r--r--ipf/regress/ipv6.52
-rw-r--r--ipf/regress/ipv6.62
-rw-r--r--ipf/regress/l16
-rw-r--r--ipf/regress/n13
-rw-r--r--ipf/regress/n103
-rw-r--r--ipf/regress/n1001
-rw-r--r--ipf/regress/n1011
-rw-r--r--ipf/regress/n1021
-rw-r--r--ipf/regress/n1031
-rw-r--r--ipf/regress/n1041
-rw-r--r--ipf/regress/n1051
-rw-r--r--ipf/regress/n1061
-rw-r--r--ipf/regress/n10_63
-rw-r--r--ipf/regress/n113
-rw-r--r--ipf/regress/n11_63
-rw-r--r--ipf/regress/n121
-rw-r--r--ipf/regress/n12_61
-rw-r--r--ipf/regress/n131
-rw-r--r--ipf/regress/n13_61
-rw-r--r--ipf/regress/n141
-rw-r--r--ipf/regress/n14_61
-rw-r--r--ipf/regress/n152
-rw-r--r--ipf/regress/n15_62
-rw-r--r--ipf/regress/n161
-rw-r--r--ipf/regress/n16_61
-rw-r--r--ipf/regress/n171
-rw-r--r--ipf/regress/n183
-rw-r--r--ipf/regress/n1_63
-rw-r--r--ipf/regress/n24
-rw-r--r--ipf/regress/n2001
-rw-r--r--ipf/regress/n2_64
-rw-r--r--ipf/regress/n32
-rw-r--r--ipf/regress/n46
-rw-r--r--ipf/regress/n4_66
-rw-r--r--ipf/regress/n56
-rw-r--r--ipf/regress/n5_66
-rw-r--r--ipf/regress/n65
-rw-r--r--ipf/regress/n6_65
-rw-r--r--ipf/regress/n73
-rw-r--r--ipf/regress/n7_63
-rw-r--r--ipf/regress/n81
-rw-r--r--ipf/regress/n8_61
-rw-r--r--ipf/regress/n91
-rw-r--r--ipf/regress/n9_61
-rw-r--r--ipf/regress/ni1.ipf4
-rw-r--r--ipf/regress/ni1.nat3
-rw-r--r--ipf/regress/ni10.ipf4
-rw-r--r--ipf/regress/ni10.nat1
-rw-r--r--ipf/regress/ni11.ipf4
-rw-r--r--ipf/regress/ni11.nat1
-rw-r--r--ipf/regress/ni12.ipf4
-rw-r--r--ipf/regress/ni12.nat1
-rw-r--r--ipf/regress/ni13.ipf3
-rw-r--r--ipf/regress/ni13.nat1
-rw-r--r--ipf/regress/ni14.ipf3
-rw-r--r--ipf/regress/ni14.nat1
-rw-r--r--ipf/regress/ni15.ipf3
-rw-r--r--ipf/regress/ni15.nat1
-rw-r--r--ipf/regress/ni16.ipf3
-rw-r--r--ipf/regress/ni16.nat1
-rw-r--r--ipf/regress/ni17.ipf0
-rw-r--r--ipf/regress/ni17.nat4
-rw-r--r--ipf/regress/ni18.ipf0
-rw-r--r--ipf/regress/ni18.nat4
-rw-r--r--ipf/regress/ni19.ipf3
-rw-r--r--ipf/regress/ni19.nat1
-rw-r--r--ipf/regress/ni2.ipf1
-rw-r--r--ipf/regress/ni2.nat1
-rw-r--r--ipf/regress/ni20.ipf3
-rw-r--r--ipf/regress/ni20.nat1
-rw-r--r--ipf/regress/ni21.ipf1
-rw-r--r--ipf/regress/ni21.nat1
-rw-r--r--ipf/regress/ni23.ipf3
-rw-r--r--ipf/regress/ni23.nat2
-rw-r--r--ipf/regress/ni3.ipf4
-rw-r--r--ipf/regress/ni3.nat1
-rw-r--r--ipf/regress/ni4.ipf4
-rw-r--r--ipf/regress/ni4.nat1
-rw-r--r--ipf/regress/ni5.ipf3
-rw-r--r--ipf/regress/ni5.nat1
-rw-r--r--ipf/regress/ni6.ipf9
-rw-r--r--ipf/regress/ni6.nat3
-rw-r--r--ipf/regress/ni7.ipf4
-rw-r--r--ipf/regress/ni7.nat1
-rw-r--r--ipf/regress/ni8.ipf1
-rw-r--r--ipf/regress/ni8.nat1
-rw-r--r--ipf/regress/ni9.ipf1
-rw-r--r--ipf/regress/ni9.nat1
-rw-r--r--ipf/regress/p1.ipf1
-rw-r--r--ipf/regress/p1.pool2
-rw-r--r--ipf/regress/p10.nat1
-rw-r--r--ipf/regress/p10.pool2
-rw-r--r--ipf/regress/p11.nat1
-rw-r--r--ipf/regress/p11.pool2
-rw-r--r--ipf/regress/p12.nat1
-rw-r--r--ipf/regress/p12.pool2
-rw-r--r--ipf/regress/p13.ipf1
-rw-r--r--ipf/regress/p13.pool2
-rw-r--r--ipf/regress/p2.ipf2
-rw-r--r--ipf/regress/p3.ipf6
-rw-r--r--ipf/regress/p3.pool4
-rw-r--r--ipf/regress/p4.nat1
-rw-r--r--ipf/regress/p4.pool2
-rw-r--r--ipf/regress/p5.ipf1
-rw-r--r--ipf/regress/p5.pool2
-rw-r--r--ipf/regress/p6.ipf1
-rw-r--r--ipf/regress/p6.pool1
-rw-r--r--ipf/regress/p6.whois241
-rw-r--r--ipf/regress/p7.nat1
-rw-r--r--ipf/regress/p7.pool2
-rw-r--r--ipf/regress/p9.nat1
-rw-r--r--ipf/regress/p9.pool2
196 files changed, 1660 insertions, 0 deletions
diff --git a/ipf/regress/Makefile b/ipf/regress/Makefile
new file mode 100644
index 000000000000..22e1fe61082d
--- /dev/null
+++ b/ipf/regress/Makefile
@@ -0,0 +1,206 @@
+# $NetBSD: Makefile,v 1.8 2014/07/12 14:37:49 darrenr Exp $
+
+TESTSDIR= ${TESTSBASE}/ipf
+ATFFILE= no
+
+FILESDIR= ${TESTSDIR}/regress
+FILES=\
+bpf-f1 \
+bpf1 \
+f1 \
+f10 \
+f11 \
+f12 \
+f13 \
+f14 \
+f15 \
+f16 \
+f17 \
+f18 \
+f19 \
+f2 \
+f20 \
+f21 \
+f22 \
+f24 \
+f25 \
+f26 \
+f27 \
+f28.ipf \
+f28.pool \
+f29.ipf \
+f29.pool \
+f3 \
+f30 \
+f4 \
+f5 \
+f6 \
+f7 \
+f8 \
+f9 \
+i1 \
+i10 \
+i11 \
+i12 \
+i13 \
+i14 \
+i15 \
+i16 \
+i17 \
+i18 \
+i19 \
+i2 \
+i20 \
+i21 \
+i22 \
+i23 \
+i3 \
+i4 \
+i5 \
+i6 \
+i7 \
+i8 \
+i9 \
+in1 \
+in1_6 \
+in100 \
+in100_6 \
+in101 \
+in101_6 \
+in102 \
+in102_6 \
+in2 \
+in2_6 \
+in3 \
+in3_6 \
+in4 \
+in4_6 \
+in5 \
+in5_6 \
+in6 \
+in6_6 \
+in7 \
+in8_6 \
+ip1 \
+ip2 \
+ip3 \
+ipv6.1 \
+ipv6.2 \
+ipv6.3 \
+ipv6.4 \
+ipv6.5 \
+ipv6.6 \
+l1 \
+n1 \
+n10 \
+n100 \
+n101 \
+n102 \
+n103 \
+n104 \
+n105 \
+n106 \
+n10_6 \
+n11 \
+n11_6 \
+n12 \
+n12_6 \
+n13 \
+n13_6 \
+n14 \
+n14_6 \
+n15 \
+n15_6 \
+n16 \
+n16_6 \
+n17 \
+n18 \
+n1_6 \
+n2 \
+n200 \
+n2_6 \
+n3 \
+n4 \
+n4_6 \
+n5 \
+n5_6 \
+n6 \
+n6_6 \
+n7 \
+n7_6 \
+n8 \
+n8_6 \
+n9 \
+n9_6 \
+ni1.ipf \
+ni1.nat \
+ni10.ipf \
+ni10.nat \
+ni11.ipf \
+ni11.nat \
+ni12.ipf \
+ni12.nat \
+ni13.ipf \
+ni13.nat \
+ni14.ipf \
+ni14.nat \
+ni15.ipf \
+ni15.nat \
+ni16.ipf \
+ni16.nat \
+ni17.ipf \
+ni17.nat \
+ni18.ipf \
+ni18.nat \
+ni19.ipf \
+ni19.nat \
+ni2.ipf \
+ni2.nat \
+ni20.ipf \
+ni20.nat \
+ni21.ipf \
+ni21.nat \
+ni23.ipf \
+ni23.nat \
+ni3.ipf \
+ni3.nat \
+ni4.ipf \
+ni4.nat \
+ni5.ipf \
+ni5.nat \
+ni6.ipf \
+ni6.nat \
+ni7.ipf \
+ni7.nat \
+ni8.ipf \
+ni8.nat \
+ni9.ipf \
+ni9.nat \
+p1.ipf \
+p1.pool \
+p10.nat \
+p10.pool \
+p11.nat \
+p11.pool \
+p12.nat \
+p12.pool \
+p13.ipf \
+p13.pool \
+p2.ipf \
+p3.ipf \
+p3.pool \
+p4.nat \
+p4.pool \
+p5.ipf \
+p5.pool \
+p6.ipf \
+p6.pool \
+p6.whois \
+p7.nat \
+p7.pool \
+p9.nat \
+p9.pool
+
+.include <bsd.test.mk>
+.include <bsd.files.mk>
+.include <bsd.prog.mk>
diff --git a/ipf/regress/bpf-f1 b/ipf/regress/bpf-f1
new file mode 100644
index 000000000000..2c8028311a7e
--- /dev/null
+++ b/ipf/regress/bpf-f1
@@ -0,0 +1,4 @@
+pass in bpf-v4 { "0x20 0 0 0xc 0x15 0 0x1 0x1010101 0x6 0 0 0x60 0x6 0 0 0" }
+pass out bpf-v4 { "0x20 0 0 0xc 0x15 0 0x1 0x1010101 0x6 0 0 0x60 0x6 0 0 0" }
+pass in bpf-v4 { "0x20 0 0 0x10 0x15 0 0x1 0x1010101 0x6 0 0 0x60 0x6 0 0 0" }
+pass out bpf-v4 { "0x20 0 0 0x10 0x15 0 0x1 0x1010101 0x6 0 0 0x60 0x6 0 0 0" }
diff --git a/ipf/regress/bpf1 b/ipf/regress/bpf1
new file mode 100644
index 000000000000..5d83b77ed3ce
--- /dev/null
+++ b/ipf/regress/bpf1
@@ -0,0 +1,4 @@
+pass in bpf-v4 { "0x20 0 0 0xc 0x15 0 0x1 0x1010101 0x6 0 0 0x60 0x6 0 0 0" }
+pass out bpf-v4 { "src host 1.1.1.1" }
+pass in bpf-v4 { "0x20 0 0 0x10 0x15 0 0x1 0x1010101 0x6 0 0 0x60 0x6 0 0 0" }
+pass out bpf-v4 { "dst host 1.1.1.1" }
diff --git a/ipf/regress/f1 b/ipf/regress/f1
new file mode 100644
index 000000000000..6a2ede9e31c0
--- /dev/null
+++ b/ipf/regress/f1
@@ -0,0 +1,4 @@
+block in all
+pass in all
+block out all
+pass out all
diff --git a/ipf/regress/f10 b/ipf/regress/f10
new file mode 100644
index 000000000000..355298308e72
--- /dev/null
+++ b/ipf/regress/f10
@@ -0,0 +1,18 @@
+block in from any to any with not ipopts
+pass in from any to any with not opt sec-class topsecret
+block in from any to any with not opt ssrr,sec-class topsecret
+pass in from any to any with not opt ssrr,sec-class topsecret
+block in from any to any with not opt ts,sec-class topsecret
+pass in from any to any with not opt ts,sec-class topsecret
+block in from any to any with not opt sec-class secret
+pass in from any to any with not opt sec-class secret
+block in from any to any with not opt lsrr,ssrr
+pass in from any to any with not opt lsrr,ssrr
+pass in from any to any with not ipopts
+block in from any to any with not opt lsrr
+pass in from any to any with not opt lsrr
+block in from any to any with not opt ssrr,ts
+pass in from any to any with not opt ssrr,ts
+block in from any to any with not opt rr
+pass in from any to any with not opt rr
+block in from any to any with not opt sec-class topsecret
diff --git a/ipf/regress/f11 b/ipf/regress/f11
new file mode 100644
index 000000000000..a71e528c2215
--- /dev/null
+++ b/ipf/regress/f11
@@ -0,0 +1,7 @@
+pass in proto tcp from any to any port = 23 flags S/SA keep state
+block in proto tcp from any to any port = 23 flags S/SA keep state
+pass in proto udp from any to any port = 53 keep frags
+block in proto udp from any to any port = 53 keep frags
+pass in proto udp from any to any port = 53 keep state
+block in proto udp from any to any port = 53 keep state
+pass in on e0 proto tcp from any to any port = 25 keep state
diff --git a/ipf/regress/f12 b/ipf/regress/f12
new file mode 100644
index 000000000000..c29f839aa502
--- /dev/null
+++ b/ipf/regress/f12
@@ -0,0 +1,6 @@
+pass in proto tcp from any port > 1024 to any port = 25 with not short
+pass in proto tcp from any port > 1024 to any port = 25
+block in proto tcp from any to any with short
+block in proto tcp from any to any with frag
+pass in proto udp from any port = 53 to any port = 53
+block in proto udp from any port = 53 to any port = 53 with not short
diff --git a/ipf/regress/f13 b/ipf/regress/f13
new file mode 100644
index 000000000000..393a65e9eff0
--- /dev/null
+++ b/ipf/regress/f13
@@ -0,0 +1,9 @@
+pass in proto tcp from any to any port = 25 flags S/SA keep frags
+block in proto tcp from any to any port = 25 flags S/SA keep frags
+pass in proto udp from any to any port = 53 keep frags
+block in proto udp from any to any port = 53 keep frags
+pass in proto tcp from any to any port = 25 flags S/SA keep state keep frags
+block in proto tcp from any to any port = 25 flags S/SA keep state keep frags
+pass in proto udp from any to any port = 53 keep frags(strict)
+pass in proto tcp from any to any port = 25 keep state(strict)
+pass in proto tcp from any to any port = 25 keep state(loose)
diff --git a/ipf/regress/f14 b/ipf/regress/f14
new file mode 100644
index 000000000000..06ab51995ea2
--- /dev/null
+++ b/ipf/regress/f14
@@ -0,0 +1,8 @@
+block in from !1.1.1.1 to any
+pass in from 1.1.1.1 to !any
+block in from 1.1.1.0/24 to !any
+pass in from !1.1.1.0/24 to any
+block in from !1.1.0.0/16 to any
+pass in from 1.1.0.0/16 to !1.2.0.0/16
+block in from any to !127.0.0.0/8
+pass in from !any to any
diff --git a/ipf/regress/f15 b/ipf/regress/f15
new file mode 100644
index 000000000000..16185e1f3685
--- /dev/null
+++ b/ipf/regress/f15
@@ -0,0 +1,8 @@
+block in log quick on hme0 from any to 195.134.65.0/25 head 10
+block return-rst in log quick proto tcp all flags S head 100 group 10
+pass in quick proto tcp from any to any port = 22 keep state group 100
+pass in quick proto tcp from any to any port = 23 keep state group 100
+pass in quick proto tcp from any to any port = 21 keep state group 100
+block return-icmp in quick proto udp all keep state head 110 group 10
+pass in quick proto udp from any to any port = 53 keep state group 110
+block in log quick on hme0 from any to any
diff --git a/ipf/regress/f16 b/ipf/regress/f16
new file mode 100644
index 000000000000..920ad8c958d2
--- /dev/null
+++ b/ipf/regress/f16
@@ -0,0 +1,10 @@
+pass in all
+skip 2 in proto tcp all
+block in quick proto tcp all
+skip 4 in proto udp all
+block in quick proto udp all
+pass in quick proto tcp from any to 1.1.1.1
+pass in quick proto tcp from any to 1.1.1.2 port = 22
+block in quick proto udp from any to any port = 53
+pass in quick proto udp from any to any port = 53
+block in all
diff --git a/ipf/regress/f17 b/ipf/regress/f17
new file mode 100644
index 000000000000..9a75ae3c1b54
--- /dev/null
+++ b/ipf/regress/f17
@@ -0,0 +1,4 @@
+block in all
+block out all
+pass out quick on ppp0 proto tcp all flags S keep state
+block return-rst in quick proto tcp all
diff --git a/ipf/regress/f18 b/ipf/regress/f18
new file mode 100644
index 000000000000..acba2b33a813
--- /dev/null
+++ b/ipf/regress/f18
@@ -0,0 +1,4 @@
+pass in from 1.1.1.1 to any
+pass out from 2.2.2.2 to any
+count in from 1.1.1.1 to 3.3.3.3
+count out from 2.2.2.2 to 4.4.4.4
diff --git a/ipf/regress/f19 b/ipf/regress/f19
new file mode 100644
index 000000000000..d7770b8a43e8
--- /dev/null
+++ b/ipf/regress/f19
@@ -0,0 +1,2 @@
+pass in quick proto tcp all flags S keep state
+pass in quick proto tcp all flags S keep state(limit 1)
diff --git a/ipf/regress/f2 b/ipf/regress/f2
new file mode 100644
index 000000000000..e2f02a46e283
--- /dev/null
+++ b/ipf/regress/f2
@@ -0,0 +1,6 @@
+block in proto tcp from any to any
+pass in proto tcp from any to any
+block in proto udp from any to any
+pass in proto udp from any to any
+block in proto icmp from any to any
+pass in proto icmp from any to any
diff --git a/ipf/regress/f20 b/ipf/regress/f20
new file mode 100644
index 000000000000..279523e4a9f5
--- /dev/null
+++ b/ipf/regress/f20
@@ -0,0 +1,4 @@
+block out quick on de0 head 100
+skip 1 out group 100
+block out quick group 100
+pass out quick group 100
diff --git a/ipf/regress/f21 b/ipf/regress/f21
new file mode 100644
index 000000000000..26ffa87f2386
--- /dev/null
+++ b/ipf/regress/f21
@@ -0,0 +1,2 @@
+pass out proto tcp all flags S keep state(icmp-head icmpredir)
+block in proto icmp all icmp-type redir group icmpredir
diff --git a/ipf/regress/f22 b/ipf/regress/f22
new file mode 100644
index 000000000000..10765db18f06
--- /dev/null
+++ b/ipf/regress/f22
@@ -0,0 +1,2 @@
+pass in proto tcp all flags S keep state(icmp-head icmpredir)
+block out proto icmp all icmp-type redir group icmpredir
diff --git a/ipf/regress/f24 b/ipf/regress/f24
new file mode 100644
index 000000000000..5cb3bab6b8a1
--- /dev/null
+++ b/ipf/regress/f24
@@ -0,0 +1 @@
+pass out quick proto udp all keep state keep frags
diff --git a/ipf/regress/f25 b/ipf/regress/f25
new file mode 100644
index 000000000000..c018b498dd3a
--- /dev/null
+++ b/ipf/regress/f25
@@ -0,0 +1 @@
+pass in on hme0 proto udp all with mcast keep state
diff --git a/ipf/regress/f26 b/ipf/regress/f26
new file mode 100644
index 000000000000..22357a475cae
--- /dev/null
+++ b/ipf/regress/f26
@@ -0,0 +1,6 @@
+pass in quick proto tcp from 1.1.1.0/24 to any port = 22 flags S keep state(max-srcs 3)
+pass in quick proto tcp from 1.1.1.0/24 to any port = 22 flags S keep state(max-srcs 3, max-per-src 1/32)
+pass in quick proto tcp from 1.1.1.0/24 to any port = 22 flags S keep state(max-srcs 3, max-per-src 1/16)
+pass in quick proto tcp all flags S keep state(max-srcs 3)
+pass in quick proto tcp all flags S keep state(max-srcs 3, max-per-src 1/32)
+pass in quick proto tcp all flags S keep state(max-srcs 3, max-per-src 1/16)
diff --git a/ipf/regress/f27 b/ipf/regress/f27
new file mode 100644
index 000000000000..22357a475cae
--- /dev/null
+++ b/ipf/regress/f27
@@ -0,0 +1,6 @@
+pass in quick proto tcp from 1.1.1.0/24 to any port = 22 flags S keep state(max-srcs 3)
+pass in quick proto tcp from 1.1.1.0/24 to any port = 22 flags S keep state(max-srcs 3, max-per-src 1/32)
+pass in quick proto tcp from 1.1.1.0/24 to any port = 22 flags S keep state(max-srcs 3, max-per-src 1/16)
+pass in quick proto tcp all flags S keep state(max-srcs 3)
+pass in quick proto tcp all flags S keep state(max-srcs 3, max-per-src 1/32)
+pass in quick proto tcp all flags S keep state(max-srcs 3, max-per-src 1/16)
diff --git a/ipf/regress/f28.ipf b/ipf/regress/f28.ipf
new file mode 100644
index 000000000000..ca427715ac10
--- /dev/null
+++ b/ipf/regress/f28.ipf
@@ -0,0 +1,2 @@
+block in all
+pass in on nic0 to dstlist/spread from 4.4.0.0/16 to any
diff --git a/ipf/regress/f28.pool b/ipf/regress/f28.pool
new file mode 100644
index 000000000000..499b60344662
--- /dev/null
+++ b/ipf/regress/f28.pool
@@ -0,0 +1,2 @@
+pool ipf/dstlist (name spread; policy round-robin;)
+ { nic0:1.1.0.2; nic1:1.1.1.2; nic2:1.1.2.2; nic3:1.1.3.2; };
diff --git a/ipf/regress/f29.ipf b/ipf/regress/f29.ipf
new file mode 100644
index 000000000000..e4634cc1fa4d
--- /dev/null
+++ b/ipf/regress/f29.ipf
@@ -0,0 +1,2 @@
+block in all
+pass in on nic0 to dstlist/spread from 4.4.0.0/16 to any keep state
diff --git a/ipf/regress/f29.pool b/ipf/regress/f29.pool
new file mode 100644
index 000000000000..499b60344662
--- /dev/null
+++ b/ipf/regress/f29.pool
@@ -0,0 +1,2 @@
+pool ipf/dstlist (name spread; policy round-robin;)
+ { nic0:1.1.0.2; nic1:1.1.1.2; nic2:1.1.2.2; nic3:1.1.3.2; };
diff --git a/ipf/regress/f3 b/ipf/regress/f3
new file mode 100644
index 000000000000..ee80729cfc9b
--- /dev/null
+++ b/ipf/regress/f3
@@ -0,0 +1,8 @@
+block in from 1.1.1.1 to any
+pass in from 1.1.1.1 to any
+block in from 1.1.1.1/24 to any
+pass in from 1.1.1.1/24 to any
+block in from 1.1.1.1/16 to any
+pass in from 1.1.1.1/16 to any
+block in from 1.1.1.1/0 to any
+pass in from 1.1.1.1/0 to any
diff --git a/ipf/regress/f30 b/ipf/regress/f30
new file mode 100644
index 000000000000..84a8970eb860
--- /dev/null
+++ b/ipf/regress/f30
@@ -0,0 +1,4 @@
+pass in on hme0 proto udp all with not ipopts keep state
+pass in on hme0 proto udp all with ipopts keep state
+pass in on hme0 proto tcp all flags S with opt rr keep state
+pass in on hme0 proto tcp all flags S with opt sec-class secret keep state
diff --git a/ipf/regress/f4 b/ipf/regress/f4
new file mode 100644
index 000000000000..bc8af2f0cae2
--- /dev/null
+++ b/ipf/regress/f4
@@ -0,0 +1,8 @@
+block in from any to 1.1.1.1
+pass in from any to 1.1.1.1
+block in from any to 1.1.1.1/24
+pass in from any to 1.1.1.1/24
+block in from any to 1.1.1.1/16
+pass in from any to 1.1.1.1/16
+block in from any to 1.1.1.1/0
+pass in from any to 1.1.1.1/0
diff --git a/ipf/regress/f5 b/ipf/regress/f5
new file mode 100644
index 000000000000..998eabd4b10b
--- /dev/null
+++ b/ipf/regress/f5
@@ -0,0 +1,48 @@
+block in proto tcp from any port = 23 to any
+block in proto udp from any port = 23 to any
+block in proto tcp/udp from any port = 23 to any
+pass in proto tcp from any port <= 1023 to any
+pass in proto udp from any port <= 1023 to any
+pass in proto tcp/udp from any port <= 1023 to any
+block in proto tcp from any port >= 1024 to any
+block in proto udp from any port >= 1024 to any
+block in proto tcp/udp from any port >= 1024 to any
+pass in proto tcp from any port >= 1024 to any
+pass in proto udp from any port >= 1024 to any
+pass in proto tcp/udp from any port >= 1024 to any
+block in proto tcp from any port 0 >< 512 to any
+block in proto udp from any port 0 >< 512 to any
+block in proto tcp/udp from any port 0 >< 512 to any
+pass in proto tcp from any port 0 >< 512 to any
+pass in proto udp from any port 0 >< 512 to any
+pass in proto tcp/udp from any port 0 >< 512 to any
+block in proto tcp from any port 6000 <> 6009 to any
+block in proto udp from any port 6000 <> 6009 to any
+block in proto tcp/udp from any port 6000 <> 6009 to any
+pass in proto tcp from any port 6000 <> 6009 to any
+pass in proto udp from any port 6000 <> 6009 to any
+pass in proto tcp/udp from any port 6000 <> 6009 to any
+pass in proto tcp from any port = 23 to any
+pass in proto udp from any port = 23 to any
+pass in proto tcp/udp from any port = 23 to any
+block in proto tcp from any port != 21 to any
+block in proto udp from any port != 21 to any
+block in proto tcp/udp from any port != 21 to any
+pass in proto tcp from any port != 21 to any
+pass in proto udp from any port != 21 to any
+pass in proto tcp/udp from any port != 21 to any
+block in proto tcp from any port < 1024 to any
+block in proto udp from any port < 1024 to any
+block in proto tcp/udp from any port < 1024 to any
+pass in proto tcp from any port < 1024 to any
+pass in proto udp from any port < 1024 to any
+pass in proto tcp/udp from any port < 1024 to any
+block in proto tcp from any port > 1023 to any
+block in proto udp from any port > 1023 to any
+block in proto tcp/udp from any port > 1023 to any
+pass in proto tcp from any port > 1023 to any
+pass in proto udp from any port > 1023 to any
+pass in proto tcp/udp from any port > 1023 to any
+block in proto tcp from any port <= 1023 to any
+block in proto udp from any port <= 1023 to any
+block in proto tcp/udp from any port <= 1023 to any
diff --git a/ipf/regress/f6 b/ipf/regress/f6
new file mode 100644
index 000000000000..291f09adcdbc
--- /dev/null
+++ b/ipf/regress/f6
@@ -0,0 +1,48 @@
+block in proto tcp from any to any port = 23
+block in proto udp from any to any port = 23
+block in proto tcp/udp from any to any port = 23
+pass in proto tcp from any to any port <= 1023
+pass in proto udp from any to any port <= 1023
+pass in proto tcp/udp from any to any port <= 1023
+block in proto tcp from any to any port >= 1024
+block in proto udp from any to any port >= 1024
+block in proto tcp/udp from any to any port >= 1024
+pass in proto tcp from any to any port >= 1024
+pass in proto udp from any to any port >= 1024
+pass in proto tcp/udp from any to any port >= 1024
+block in proto tcp from any to any port 0 >< 512
+block in proto udp from any to any port 0 >< 512
+block in proto tcp/udp from any to any port 0 >< 512
+pass in proto tcp from any to any port 0 >< 512
+pass in proto udp from any to any port 0 >< 512
+pass in proto tcp/udp from any to any port 0 >< 512
+block in proto tcp from any to any port 6000 <> 6009
+block in proto udp from any to any port 6000 <> 6009
+block in proto tcp/udp from any to any port 6000 <> 6009
+pass in proto tcp from any to any port 6000 <> 6009
+pass in proto udp from any to any port 6000 <> 6009
+pass in proto tcp/udp from any to any port 6000 <> 6009
+pass in proto tcp from any to any port = 23
+pass in proto udp from any to any port = 23
+pass in proto tcp/udp from any to any port = 23
+block in proto tcp from any to any port != 21
+block in proto udp from any to any port != 21
+block in proto tcp/udp from any to any port != 21
+pass in proto tcp from any to any port != 21
+pass in proto udp from any to any port != 21
+pass in proto tcp/udp from any to any port != 21
+block in proto tcp from any to any port < 1024
+block in proto udp from any to any port < 1024
+block in proto tcp/udp from any to any port < 1024
+pass in proto tcp from any to any port < 1024
+pass in proto udp from any to any port < 1024
+pass in proto tcp/udp from any to any port < 1024
+block in proto tcp from any to any port > 1023
+block in proto udp from any to any port > 1023
+block in proto tcp/udp from any to any port > 1023
+pass in proto tcp from any to any port > 1023
+pass in proto udp from any to any port > 1023
+pass in proto tcp/udp from any to any port > 1023
+block in proto tcp from any to any port <= 1023
+block in proto udp from any to any port <= 1023
+block in proto tcp/udp from any to any port <= 1023
diff --git a/ipf/regress/f7 b/ipf/regress/f7
new file mode 100644
index 000000000000..be1b969c8ec2
--- /dev/null
+++ b/ipf/regress/f7
@@ -0,0 +1,9 @@
+block in proto icmp from any to any icmp-type echo
+pass in proto icmp from any to any icmp-type echo
+block in proto icmp from any to any icmp-type unreach code 3
+pass in proto icmp from any to any icmp-type unreach code 3
+block in proto icmp from any to any icmp-type echorep
+pass in proto icmp from any to any icmp-type echorep
+pass in proto icmp all icmp-type maskreq keep state
+pass in proto icmp all icmp-type timest keep state
+pass in proto icmp all icmp-type inforeq keep state
diff --git a/ipf/regress/f8 b/ipf/regress/f8
new file mode 100644
index 000000000000..0f28fd261148
--- /dev/null
+++ b/ipf/regress/f8
@@ -0,0 +1,6 @@
+block in proto tcp from any to any flags S
+pass in proto tcp from any to any flags S
+block in proto tcp from any to any flags S/SA
+pass in proto tcp from any to any flags S/SA
+block in proto tcp from any to any flags S/APU
+pass in proto tcp from any to any flags S/APU
diff --git a/ipf/regress/f9 b/ipf/regress/f9
new file mode 100644
index 000000000000..17bc96737877
--- /dev/null
+++ b/ipf/regress/f9
@@ -0,0 +1,18 @@
+block in from any to any with ipopts
+pass in from any to any with opt sec-class topsecret
+block in from any to any with opt ssrr,sec-class topsecret
+pass in from any to any with opt ssrr,sec-class topsecret
+block in from any to any with opt ts,sec-class topsecret
+pass in from any to any with opt ts,sec-class topsecret
+block in from any to any with opt sec-class secret
+pass in from any to any with opt sec-class secret
+block in from any to any with opt lsrr,ssrr
+pass in from any to any with opt lsrr,ssrr
+pass in from any to any with ipopts
+block in from any to any with opt lsrr
+pass in from any to any with opt lsrr
+block in from any to any with opt ssrr,ts
+pass in from any to any with opt ssrr,ts
+block in from any to any with opt rr
+pass in from any to any with opt rr
+block in from any to any with opt sec-class topsecret
diff --git a/ipf/regress/i1 b/ipf/regress/i1
new file mode 100644
index 000000000000..0fd2c6e0c39a
--- /dev/null
+++ b/ipf/regress/i1
@@ -0,0 +1,18 @@
+pass in all
+block out \
+all
+log in all
+log body in all
+count in from any to any
+pass in from !any to any pps 10
+block in from any to !any
+pass in on ed0 from localhost to localhost
+pass in on ed0,vx0 from localhost to localhost
+block in log first on lo0 from any to any
+pass in log body or-block quick from any to any
+block return-rst in quick on le0 proto tcp from any to any
+block return-icmp in on qe0 from any to any
+block return-icmp(1) in on qe0 from any to any
+block return-icmp-as-dest in on le0 from any to any
+block return-icmp-as-dest(port-unr) in on qe0 from any to any
+pass out on longNICname0 from test.host.dots to test\.host.dots
diff --git a/ipf/regress/i10 b/ipf/regress/i10
new file mode 100644
index 000000000000..640ac84ad2af
--- /dev/null
+++ b/ipf/regress/i10
@@ -0,0 +1,5 @@
+pass in from localhost to localhost with opt sec
+pass in from localhost to localhost with opt lsrr not opt sec
+block in from any to any with not opt sec-class topsecret
+block in from any to any with not opt sec-class topsecret,secret
+pass in from any to any with opt sec-class topsecret,confid not opt sec-class unclass
diff --git a/ipf/regress/i11 b/ipf/regress/i11
new file mode 100644
index 000000000000..ca65da313b0b
--- /dev/null
+++ b/ipf/regress/i11
@@ -0,0 +1,12 @@
+pass in on ed0 proto tcp from localhost to localhost port = telnet keep state
+block in log first on lo0 proto tcp/udp from any to any port = echo keep state
+pass in proto udp from localhost to localhost port = 20499 keep frag
+pass in proto udp from localhost to localhost port = 2049 keep frag(strict)
+pass in proto udp from localhost to localhost port = 53 keep state keep frags
+pass in on ed0 out-via vx0 proto udp from any to any keep state
+pass out on ppp0 in-via le0 proto tcp from any to any keep state
+pass in on ed0,vx0 out-via vx0,ed0 proto udp from any to any keep state
+pass in proto tcp from any port gt 1024 to localhost port eq 1024 keep state
+pass in proto tcp all flags S keep state(strict,newisn,no-icmp-err,limit 101,age 600)
+pass in proto tcp all flags S keep state(loose,newisn,no-icmp-err,limit 101,age 600)
+pass in proto udp all keep state(age 10/20,sync)
diff --git a/ipf/regress/i12 b/ipf/regress/i12
new file mode 100644
index 000000000000..f42c2d522b5d
--- /dev/null
+++ b/ipf/regress/i12
@@ -0,0 +1,10 @@
+pass in from 1.1.1.1/32 to 2.2.2.2/32
+pass in from {2.2.2.2/24,3.3.3.3/32} to 4.4.4.4/32
+pass in from {2.2.2.2/24,3.3.3.3/32} to {5.5.5.5/32,6.6.6.6/32}
+pass in from {2.2.2.2/24,3.3.3.3/32} to {5.5.5.5/32,6.6.6.6/32} port = {22,25}
+pass in proto tcp from {2.2.2.2/24,3.3.3.3/32} port = {53,9} to {5.5.5.5/32,6.6.6.6/32}
+pass in proto udp from {2.2.2.2/24,3.3.3.3/32} to {5.5.5.5/32,6.6.6.6/32} port = {53,9}
+pass in from 10.10.10.10 to 11.11.11.11
+pass in from pool/101 to hash/202
+pass in from hash/303 to pool/404
+pass in from pool=(!1.1.1.1,2.2.2.2,!2.2.0.0/16) to pool = ( 1.1.0.0/16 )
diff --git a/ipf/regress/i13 b/ipf/regress/i13
new file mode 100644
index 000000000000..3ba343d1669b
--- /dev/null
+++ b/ipf/regress/i13
@@ -0,0 +1,8 @@
+a=any;
+b="from $a";
+c='to $a';
+d=block;
+e="pass in";
+$d in $b $c
+f=" $b $c";
+$e${f}
diff --git a/ipf/regress/i14 b/ipf/regress/i14
new file mode 100644
index 000000000000..6788af676089
--- /dev/null
+++ b/ipf/regress/i14
@@ -0,0 +1,15 @@
+block in on eri0 all head 1
+pass in on eri0 proto icmp all group 1
+pass out on ed0 all head 1000000
+block out on ed0 proto udp all group 1000000
+block in on vm0 proto tcp/udp all head 101
+pass in from 1.1.1.1 to 2.2.2.2 group 101
+pass in proto tcp from 1.0.0.1 to 2.0.0.2 group 101
+pass in proto udp from 2.0.0.2 to 3.0.0.3 group 101
+block in on vm0 proto tcp/udp all head vm0-group
+pass in from 1.1.1.1 to 2.2.2.2 group vm0-group
+block in on vm0 proto tcp/udp all head vm0-group
+pass in from 1.1.1.1 to 2.2.2.2 group vm0-group
+pass in from 8f:: to f8::
+block in inet6 proto udp
+block in inet6
diff --git a/ipf/regress/i15 b/ipf/regress/i15
new file mode 100644
index 000000000000..0e6b0d12cd59
--- /dev/null
+++ b/ipf/regress/i15
@@ -0,0 +1,4 @@
+pass out on fxp0 all set-tag(log=100)
+pass out on fxp0 all set-tag(nat=foo)
+pass out on fxp0 all set-tag(log=100, nat=200)
+pass out on fxp0 all set-tag(log=2147483648, nat=overtherainbowisapotof)
diff --git a/ipf/regress/i16 b/ipf/regress/i16
new file mode 100644
index 000000000000..5c9144a99257
--- /dev/null
+++ b/ipf/regress/i16
@@ -0,0 +1,3 @@
+0 block out all
+100 pass in all
+10101 pass out proto tcp all
diff --git a/ipf/regress/i17 b/ipf/regress/i17
new file mode 100644
index 000000000000..139b86a8d84a
--- /dev/null
+++ b/ipf/regress/i17
@@ -0,0 +1,13 @@
+100 pass in all
+200 pass in proto tcp all
+110 pass in proto udp all
+110 pass in from localhost to any
+pass in all
+pass in from localhost to any
+@0 100 pass in from localhost to any
+@1 pass in from any to localhost
+@0 pass in from 1.1.1.1 to any
+@1 110 pass in from 2.2.2.2 to any
+@2 pass in from 3.3.3.3 to any
+call srcgrpmap/100 out from 10.1.0.0/16 to any
+call now dstgrpmap/200 in from 10.2.0.0/16 to any
diff --git a/ipf/regress/i18 b/ipf/regress/i18
new file mode 100644
index 000000000000..b55b11a01fe8
--- /dev/null
+++ b/ipf/regress/i18
@@ -0,0 +1,3 @@
+pass in tos {80,0x80} all
+pass out tos {0x80,80} all
+block in ttl {0,1,2,3,4,5,6} all
diff --git a/ipf/regress/i19 b/ipf/regress/i19
new file mode 100644
index 000000000000..a09fd56c5104
--- /dev/null
+++ b/ipf/regress/i19
@@ -0,0 +1,22 @@
+block in quick log level user.debug proto icmp all
+block in quick log level mail.info proto icmp all
+block in quick log level daemon.notice proto icmp all
+block in quick log level auth.warn proto icmp all
+block in quick log level syslog.err proto icmp all
+block in quick log level lpr.crit proto icmp all
+block in quick log level news.alert proto icmp all
+block in quick log level uucp.emerg proto icmp all
+block in quick log level cron.debug proto icmp all
+block in quick log level ftp.info proto icmp all
+block in quick log level authpriv.notice proto icmp all
+block in quick log level logalert.warn proto icmp all
+block in quick log level local0.err proto icmp all
+block in quick log level local1.crit proto icmp all
+block in quick log level local2.alert proto icmp all
+block in quick log level local3.emerg proto icmp all
+block in quick log level local4.debug proto icmp all
+block in quick log level local5.info proto icmp all
+block in quick log level local6.notice proto icmp all
+block in quick log level local7.warn proto icmp all
+block in quick log level kern.err proto icmp all
+block in quick log level security.emerg proto icmp all
diff --git a/ipf/regress/i2 b/ipf/regress/i2
new file mode 100644
index 000000000000..f69e28edb13d
--- /dev/null
+++ b/ipf/regress/i2
@@ -0,0 +1,9 @@
+log in proto tcp all
+pass in proto 6 from any to any
+pass in proto udp from localhost to localhost
+block in proto ipv6 from any to any
+block in proto 17 from any to any
+block in proto 250 from any to any
+pass in proto tcp/udp from any to any
+block in proto tcp-udp from any to any
+block in proto tcp-udp from any to any
diff --git a/ipf/regress/i20 b/ipf/regress/i20
new file mode 100644
index 000000000000..99039eeaf04c
--- /dev/null
+++ b/ipf/regress/i20
@@ -0,0 +1,4 @@
+pass in on ppp0 from ppp0/peer to ppp0/32
+block in on hme0 from any to hme0/broadcast
+pass in on bge0 from bge0/network to bge0/32
+block in on eri0 from any to eri0/netmasked
diff --git a/ipf/regress/i21 b/ipf/regress/i21
new file mode 100644
index 000000000000..237f8fadb648
--- /dev/null
+++ b/ipf/regress/i21
@@ -0,0 +1,7 @@
+pass in from port = 10101
+pass out from any to port != 22
+block in from port 20:21
+block out from any to port 10 <> 100
+pass out from any to port = {3,5,7,9}
+block in from port = {20,25}
+pass in from any port = {11:12, 21:22} to any port = {1:2, 4:5, 8:9}
diff --git a/ipf/regress/i22 b/ipf/regress/i22
new file mode 100644
index 000000000000..1ac8d12ba35f
--- /dev/null
+++ b/ipf/regress/i22
@@ -0,0 +1,5 @@
+pass in exp { "ip.src != 1.1.1.0/24; tcp.dport = 80;" }
+pass in exp { "ip.addr = 1.2.3.4,5.6.7.8;" }
+block out exp { "ip.dst= 127.0.0.0/8;" }
+block in exp { "udp.sport=53;udp.dport=53;" }
+pass out exp { "tcp.sport=22; tcp.port=25;" }
diff --git a/ipf/regress/i23 b/ipf/regress/i23
new file mode 100644
index 000000000000..792d6005489e
--- /dev/null
+++ b/ipf/regress/i23
@@ -0,0 +1 @@
+#
diff --git a/ipf/regress/i3 b/ipf/regress/i3
new file mode 100644
index 000000000000..390fc3c60e42
--- /dev/null
+++ b/ipf/regress/i3
@@ -0,0 +1,14 @@
+log in all
+pass in from 128.16/16 to 129.10.10/24
+pass in from 128.0.0.1/24 to 1\
+28\
+.\
+0.0.1/16
+pass in from 128.0.0.1/0xffffff00 to 128.0.0.1/0xffff0000
+pass in from 128.0.0.1/255.255.255.0 to 128.0.0.1/255.255.0.0
+pass in from 128.0.0.1 mask 0xffffff00 to 128.0.0.1 mask 0xffff0000
+pass in from 128.0.0.1 mask 255.255.255.0 to 128.0.0.1 mask 255.255.0.0
+pass in from localhost to localhost
+block in log from 0/0 to 0/0
+block in log level auth.info on hme0 all
+log level local5.warn out all
diff --git a/ipf/regress/i4 b/ipf/regress/i4
new file mode 100644
index 000000000000..8551f7644915
--- /dev/null
+++ b/ipf/regress/i4
@@ -0,0 +1,9 @@
+log in proto tcp from any port > 0 to any
+log in proto tcp from any to any port > 0
+pass in proto 6 from any port != 0 to any port 0 >< 65535
+pass in proto 17 from localhost port > 32000 to localhost port < 29000
+block in proto udp from any port != \ntp to any port < echo
+block in proto tcp from any port = smtp to any port > 25
+pass in proto tcp/udp from any port 1 >< 3 to any port 1 <> 3
+pass in proto tcp/udp from any port 2:2 to any port 10:20
+pass in log first quick proto tcp from any port > 1023 to any port = 1723 flags S keep state
diff --git a/ipf/regress/i5 b/ipf/regress/i5
new file mode 100644
index 000000000000..788f971ae18f
--- /dev/null
+++ b/ipf/regress/i5
@@ -0,0 +1,9 @@
+log in all
+count in tos 0x80 from any to any
+pass in on ed0 tos 64 from localhost to localhost
+block in log on lo0 ttl 0 from any to any
+pass in quick ttl 1 from any to any
+skip 3 out from 127.0.0.1 to any
+auth out on foo0 proto tcp from any to any port = 80
+preauth out on foo0 proto tcp from any to any port = 22
+nomatch out on foo0 proto tcp from any port < 1024 to any
diff --git a/ipf/regress/i6 b/ipf/regress/i6
new file mode 100644
index 000000000000..0b371bd3e761
--- /dev/null
+++ b/ipf/regress/i6
@@ -0,0 +1,12 @@
+pass in on lo0 fastroute from any to any
+pass in on lo0 to qe0 from localhost to localhost
+pass in on le0 to qe0:127.0.0.1 from localhost to localhost
+pass in on lo0 dup-to qe0 from localhost to localhost
+pass in on le0 dup-to qe0:127.0.0.1 from localhost to localhost
+pass in on le0 to hme0:10.1.1.1 dup-to qe0:127.0.0.1 from localhost to localhost
+block in quick on qe0 to qe1 from any to any
+block in quick to qe1 from any to any
+pass out quick dup-to hme0 from any to any
+pass out quick on hme0 reply-to hme1 from any to any
+pass in on le0 dup-to qe0:127.0.0.1 reply-to hme1:10.10.10.10 all
+pass in quick fastroute all
diff --git a/ipf/regress/i7 b/ipf/regress/i7
new file mode 100644
index 000000000000..15b88a56dc51
--- /dev/null
+++ b/ipf/regress/i7
@@ -0,0 +1,14 @@
+pass in on ed0 proto tcp from localhost to localhost port = 23 flags S/SA
+block in on lo0 proto tcp from any to any flags A
+pass in on lo0 proto tcp from any to any flags /SAP
+block in on lo0 proto tcp from any to any flags 0x80/A
+pass in on lo0 proto tcp from any to any flags S/18
+block in on lo0 proto tcp from any to any flags 2/18
+pass in on lo0 proto tcp from any to any flags 2
+block in on lo0 proto tcp from any to any flags /16
+pass in on lo0 proto tcp from any to any flags 2/SA
+pass in on lo0 proto tcp from any to any flags S/18
+block in on lo0 proto tcp from any to any flags 2/18
+pass in on lo0 proto tcp from any to any flags 2
+block in on lo0 proto tcp from any to any flags /16
+pass in on lo0 proto tcp from any to any flags 2/SA
diff --git a/ipf/regress/i8 b/ipf/regress/i8
new file mode 100644
index 000000000000..abf69d9d30bd
--- /dev/null
+++ b/ipf/regress/i8
@@ -0,0 +1,62 @@
+pass in proto icmp from localhost to localhost icmp-type timest
+block in proto icmp from any to any icmp-type unreach code 1
+pass in proto icmp all icmp-type unreach code cutoff-preced
+pass in proto icmp all icmp-type unreach code filter-prohib
+pass in proto icmp all icmp-type unreach code isolate
+pass in proto icmp all icmp-type unreach code needfrag
+pass in proto icmp all icmp-type unreach code net-prohib
+pass in proto icmp all icmp-type unreach code net-tos
+pass in proto icmp all icmp-type unreach code host-preced
+pass in proto icmp all icmp-type unreach code host-prohib
+pass in proto icmp all icmp-type unreach code host-tos
+pass in proto icmp all icmp-type unreach code host-unk
+pass in proto icmp all icmp-type unreach code host-unr
+pass in proto icmp all icmp-type unreach code {net-unk,net-unr}
+pass in proto icmp all icmp-type unreach code port-unr
+pass in proto icmp all icmp-type unreach code proto-unr
+pass in proto icmp all icmp-type unreach code srcfail
+pass in proto icmp all icmp-type {echo,echorep}
+pass in proto icmp all icmp-type inforeq
+pass in proto icmp all icmp-type inforep
+pass in proto icmp all icmp-type maskrep
+pass in proto icmp all icmp-type maskreq
+pass in proto icmp all icmp-type paramprob
+pass in proto icmp all icmp-type redir
+pass in proto icmp all icmp-type unreach
+pass in proto icmp all icmp-type routerad
+pass in proto icmp all icmp-type routersol
+pass in proto icmp all icmp-type squench
+pass in proto icmp all icmp-type timest
+pass in proto icmp all icmp-type timestrep
+pass in proto icmp all icmp-type timex
+pass in proto icmp all icmp-type 254
+pass in proto icmp all icmp-type 253 code 254
+pass in proto icmp all icmp-type unreach code cutoff-preced
+pass in proto icmp all icmp-type unreach code filter-prohib
+pass in proto icmp all icmp-type unreach code isolate
+pass in proto icmp all icmp-type unreach code needfrag
+pass in proto icmp all icmp-type unreach code net-prohib
+pass in proto icmp all icmp-type unreach code net-tos
+pass in proto icmp all icmp-type unreach code host-preced
+pass in proto icmp all icmp-type unreach code host-prohib
+pass in proto icmp all icmp-type unreach code host-tos
+pass in proto icmp all icmp-type unreach code host-unk
+pass in proto icmp all icmp-type unreach code host-unr
+pass in proto icmp all icmp-type unreach code {net-unk,net-unr}
+pass in proto icmp all icmp-type unreach code port-unr
+pass in proto icmp all icmp-type unreach code proto-unr
+pass in proto icmp all icmp-type unreach code srcfail
+pass in proto icmp all icmp-type {echo,echorep}
+pass in proto icmp all icmp-type inforeq
+pass in proto icmp all icmp-type inforep
+pass in proto icmp all icmp-type maskrep
+pass in proto icmp all icmp-type maskreq
+pass in proto icmp all icmp-type paramprob
+pass in proto icmp all icmp-type redir
+pass in proto icmp all icmp-type unreach
+pass in proto icmp all icmp-type routerad
+pass in proto icmp all icmp-type routersol
+pass in proto icmp all icmp-type squench
+pass in proto icmp all icmp-type timest
+pass in proto icmp all icmp-type timestrep
+pass in proto icmp all icmp-type timex
diff --git a/ipf/regress/i9 b/ipf/regress/i9
new file mode 100644
index 000000000000..441cfa9a16b6
--- /dev/null
+++ b/ipf/regress/i9
@@ -0,0 +1,17 @@
+pass in from localhost to localhost with short,frags
+block in from any to any with ipopts
+pass in from any to any with opt nop,rr,zsu
+pass in from any to any with opt nop,rr,zsu not opt ssrr,lsrr
+pass in from localhost to localhost and not frag
+pass in from localhost to localhost with frags,frag-body
+pass in proto tcp all flags S with not oow keep state
+block in proto tcp all with oow
+pass in proto tcp all flags S with not bad,bad-src,bad-nat
+block in proto tcp all flags S with bad,not bad-src,not bad-nat
+pass in quick all with not short
+block in quick all with not nat
+pass in quick all with not frag-body
+block in quick all with not lowttl
+pass in all with mbcast,not bcast,multicast,not state,not ipopts
+block in all with not mbcast,bcast,not multicast,state
+pass in from any to any with opt mtur,mtup,encode,ts,tr,sec,cipso,satid,ssrr,visa,imitd,eip,finn,dps,sdb,nsapa,rtralrt,ump,addext,e-sec
diff --git a/ipf/regress/in1 b/ipf/regress/in1
new file mode 100644
index 000000000000..d5d0cf4c3d19
--- /dev/null
+++ b/ipf/regress/in1
@@ -0,0 +1,31 @@
+map le0 0/0 -> 0/32
+map le0 1/32 -> 1/32
+map le0 128.0.0.0/1 -> 0/0
+map le0 10.0.0.0/8 -> 1.2.3.0/24
+map le0 10.0.0.5/8 -> 1.2.3.4/24
+map le0 10.0.0.5/0xff000000 -> 1.2.3.4/24
+map le0 10.0.0.5/0xff -> 1.2.3.4/24
+map le0 192.168.0.0/16 -> range 203.1.1.23-203.1.3.45
+map ppp0 192.168.0.0/16 -> 0/32 portmap tcp 10000:19999
+map ppp0 192.168.0.0/16 -> 0/32 portmap udp 20000:29999
+map ppp0 192.168.0.0/16 -> 0/32 portmap tcp/udp 30000:39999
+map ppp0 192.168.0.0/16 -> 0/32 portmap tcp auto
+map ppp0 192.168.0.0/16 -> 0/32 portmap udp auto
+map ppp0 192.168.0.0/16 -> 0/32 portmap tcpudp auto
+map ppp0 192.168.0.0/16 -> 0/32 proxy port ftp ftp/6
+map ppp0 192.168.0.0/16 -> 0/32 proxy port 1010 ftp/tcp
+map le0 0/0 -> 0/32 frag
+map le0 192.168.0.0/16 -> range 203.1.1.23-203.1.3.45 frag
+map ppp0 192.168.0.0/16 -> 0/32 portmap tcp 10000:19999 frag
+map ppp0 192.168.0.0/16 -> 0/32 proxy port ftp ftp/tcp frag
+map le0 0/0 -> 0/32 age 10
+map le0 192.168.0.0/16 -> range 203.1.1.23-203.1.3.45 age 10/20
+map ppp0 192.168.0.0/16 -> 0/32 portmap tcp 10000:19999 age 30
+map le0 0/0 -> 0/32 frag age 10
+map le0 192.168.0.0/16 -> range 203.1.1.23-203.1.3.45 frag age 10/20
+map ppp0 192.168.0.0/16 -> 0/32 portmap tcp 10000:19999 frag age 30
+map fxp0 from 192.168.0.0/18 to 0/0 port = 21 -> 1.2.3.4/32 proxy port 21 ftp/tcp
+map thisisalonginte 0/0 -> 0/32 mssclamp 1452 tag freddyliveshere
+map bar0 0/0 -> 0/32 icmpidmap icmp 1000:2000
+map ppp0,adsl0 0/0 -> 0/32
+map ppp0 from 192.168.0.0/16 to any port = 123 -> 0/32 age 30/1 udp
diff --git a/ipf/regress/in100 b/ipf/regress/in100
new file mode 100644
index 000000000000..5e2ab6c91730
--- /dev/null
+++ b/ipf/regress/in100
@@ -0,0 +1,3 @@
+rewrite in on bge0 from 1.1.1.1 to 2.2.2.2 -> src 3.3.3.3 dst 4.4.4.4;
+rewrite out on bge0 from 1.1.1.1/32 to 2.2.2.2 -> src 3.3.3.0/24 dst 4.4.4.4;
+rewrite in on bge0 from 1.1.1.1/32 to 2.2.2.2/32 -> src 3.3.3.0/24 dst 4.4.4.0/24;
diff --git a/ipf/regress/in100_6 b/ipf/regress/in100_6
new file mode 100644
index 000000000000..533e2dd63859
--- /dev/null
+++ b/ipf/regress/in100_6
@@ -0,0 +1,3 @@
+rewrite in on bge0 inet6 from 1:1:1::1 to 2:2::2:2 -> src 3:3:3::3 dst 4::4:4:4;
+rewrite out on bge0 inet6 from 1:1:1::1/128 to 2:2::2:2 -> src 3:3:3::0/96 dst 4::4:4:4;
+rewrite in on bge0 inet6 from 1:1:1::1/128 to 2:2::2:2/128 -> src 3:3:3::0/96 dst 4::4:4:4/96;
diff --git a/ipf/regress/in101 b/ipf/regress/in101
new file mode 100644
index 000000000000..afef53bc9ab4
--- /dev/null
+++ b/ipf/regress/in101
@@ -0,0 +1,4 @@
+rewrite in on bge0 proto icmp from 1.1.1.1 to 2.2.2.2 -> src 3.3.3.3 dst 4.4.4.4;
+rewrite in on bge0 proto udp from 1.1.1.1 to 2.2.2.2 -> src 3.3.3.3 dst 4.4.4.4;
+rewrite out on bge0 proto tcp from 1.1.1.1/32 to 2.2.2.2 -> src 3.3.3.0/24 dst 4.4.4.4;
+rewrite in on bge0 proto tcp/udp from 1.1.1.1/32 to 2.2.2.2/32 -> src 3.3.3.0/24,20202 dst 4.4.4.0/24,10101;
diff --git a/ipf/regress/in101_6 b/ipf/regress/in101_6
new file mode 100644
index 000000000000..bb4af3d008c2
--- /dev/null
+++ b/ipf/regress/in101_6
@@ -0,0 +1,4 @@
+rewrite in on bge0 proto icmp from 1:1:1::1 to 2:2::2:2 -> src 3:3:3::3 dst 4::4:4:4;
+rewrite in on bge0 proto udp from 1:1:1::1 to 2:2::2:2 -> src 3:3:3::3 dst 4::4:4:4;
+rewrite out on bge0 proto tcp from 1:1:1::1/128 to 2:2::2:2 -> src 3:3:3::0/24 dst 4::4:4:4;
+rewrite in on bge0 proto tcp/udp from 1:1:1::1/128 to 2:2::2:2/32 -> src 3:3:3::0/24,20202 dst 4::4:4:4/24,10101;
diff --git a/ipf/regress/in102 b/ipf/regress/in102
new file mode 100644
index 000000000000..57f364566f08
--- /dev/null
+++ b/ipf/regress/in102
@@ -0,0 +1,5 @@
+rewrite in on bge0 proto tcp from any to any -> src 0/0 dst dstlist/a;
+rewrite in on bge0 proto tcp from 1.1.1.1 to any -> src 0/0 dst dstlist/bee;
+rewrite in on bge0 proto tcp from 1.1.1.1 to 2.2.2.2 -> src 0/0 dst dstlist/cat;
+rewrite in on bge0 proto tcp from pool/a to 2.2.2.2 -> src 0/0 dst dstlist/bat;
+rewrite in on bge0 proto tcp from pool/a to pool/1 -> src 0/0 dst dstlist/ant;
diff --git a/ipf/regress/in102_6 b/ipf/regress/in102_6
new file mode 100644
index 000000000000..e11906db77cd
--- /dev/null
+++ b/ipf/regress/in102_6
@@ -0,0 +1,5 @@
+rewrite in on bge0 inet6 proto tcp from any to any -> src 0/0 dst dstlist/a;
+rewrite in on bge0 inet6 proto tcp from 1:1:1::1 to any -> src 0/0 dst dstlist/bee;
+rewrite in on bge0 inet6 proto tcp from 1:1:1::1 to 2:2::2:2 -> src 0/0 dst dstlist/cat;
+rewrite in on bge0 inet6 proto tcp from pool/a to 2:2::2:2 -> src 0/0 dst dstlist/bat;
+rewrite in on bge0 inet6 proto tcp from pool/a to pool/1 -> src 0/0 dst dstlist/ant;
diff --git a/ipf/regress/in1_6 b/ipf/regress/in1_6
new file mode 100644
index 000000000000..e5050f867dc6
--- /dev/null
+++ b/ipf/regress/in1_6
@@ -0,0 +1,29 @@
+map le0 inet6 0/0 -> 0/128
+map le0 inet6 1/128 -> 1/128
+map le0 inet6 128::/1 -> 0/0
+map le0 inet6 10::0/16 -> 1:2:3::0/96
+map le0 inet6 10::5/16 -> 1:2:3::4/96
+map le0 inet6 192:168::/32 -> range 203:1:1::23-203:1:3::45
+map ppp0 inet6 192:168::/32 -> 0/128 portmap tcp 10000:19999
+map ppp0 inet6 192:168::/32 -> 0/128 portmap udp 20000:29999
+map ppp0 inet6 192:168::/32 -> 0/128 portmap tcp/udp 30000:39999
+map ppp0 inet6 192:168::/32 -> 0/128 portmap tcp auto
+map ppp0 inet6 192:168::/32 -> 0/128 portmap udp auto
+map ppp0 inet6 192:168::/32 -> 0/128 portmap tcpudp auto
+map ppp0 inet6 192:168::/32 -> 0/128 proxy port ftp ftp/6
+map ppp0 inet6 192:168::/32 -> 0/128 proxy port 1010 ftp/tcp
+map le0 inet6 0/0 -> 0/128 frag
+map le0 inet6 192:168::/32 -> range 203:1:1::23-203:1:3::45 frag
+map ppp0 inet6 192:168::/32 -> 0/128 portmap tcp 10000:19999 frag
+map ppp0 inet6 192:168::/32 -> 0/128 proxy port ftp ftp/tcp frag
+map le0 inet6 0/0 -> 0/128 age 10
+map le0 inet6 192:168::/32 -> range 203:1:1::23-203:1:3::45 age 10/20
+map ppp0 inet6 192:168::/32 -> 0/128 portmap tcp 10000:19999 age 30
+map le0 inet6 0/0 -> 0/128 frag age 10
+map le0 inet6 192:168::/32 -> range 203:1:1::23-203:1:3::45 frag age 10/20
+map ppp0 inet6 192:168::/32 -> 0/128 portmap tcp 10000:19999 frag age 30
+map fxp0 inet6 from 192:168::/18 to 0/0 port = 21 -> 1:2:3::4/128 proxy port 21 ftp/tcp
+map thisisalonginte inet6 0/0 -> 0/128 mssclamp 1452 tag freddyliveshere
+map bar0 inet6 0/0 -> 0/128 icmpidmap ipv6-icmp 1000:2000
+map ppp0,adsl0 inet6 0/0 -> 0/128
+map ppp0 inet6 from 192:168::/32 to any port = 123 -> 0/128 age 30/1 udp
diff --git a/ipf/regress/in2 b/ipf/regress/in2
new file mode 100644
index 000000000000..58556c048543
--- /dev/null
+++ b/ipf/regress/in2
@@ -0,0 +1,71 @@
+rdr le0 9.8.7.6/32 port 0 -> 1.1.1.1 port 0 tcp
+rdr le0 9.8.7.6/32 port 0 -> 1.1.1.1 port 0 255
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1 port 80 tcp
+rdr le0 9.8.7.6/32 -> 1.1.1.1 ip
+rdr le0 9.8.7.6/0xff000000 -> 1.1.1.1 ip
+rdr le0 9.8.7.6/0xffff0000 -> 1.1.1.1 ip
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1 port 80 tcp
+rdr le0 9.8.7.6/32 port 80 -> 0/0 port 80 tcp
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1 port 80 udp
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1 port 80 tcp/udp
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1 port 80 icmp
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1,1.1.1.2 port 80 tcp
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1 port 80 tcp round-robin
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1,1.1.1.2 port 80 tcp round-robin
+rdr le0 9.8.7.6/32 port 0 -> 1.1.1.1 port 0 ip frag
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1 port 80 icmp frag
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1,1.1.1.2 port 80 tcpudp frag
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1 port 80 tcp round-robin frag
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1,1.1.1.2 port 80 tcp round-robin frag
+rdr le0 9.8.7.6/32 -> 1.1.1.1 ip frag age 10
+rdr le0 9.8.7.6/32 port 0 -> 1.1.1.1 port 0 ip frag age 10/20
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1 port 80 icmp frag age 10
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1,1.1.1.2 port 80 tcp frag age 20
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1 port 80 tcp round-robin frag age 30
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1,1.1.1.2 port 80 tcp round-robin frag age 40
+rdr le0 9.8.7.6/32 port 0 -> 1.1.1.1 port 0 ip sticky
+rdr le0 9.8.7.6/32 port 0 -> 1.1.1.1 port 0 ip frag sticky
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1 port 80 icmp frag sticky
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1,1.1.1.2 port 80 tcp frag sticky
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1 port 80 tcp round-robin frag sticky
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1,1.1.1.2 port 80 tcp round-robin frag sticky
+rdr le0 9.8.7.6/32 port 0 -> 1.1.1.1 port 0 ip frag age 10 sticky
+rdr le0 9.8.7.6/32 port 0 -> 1.1.1.1 port 0 ip frag age 10/20 sticky
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1 port 80 icmp frag age 10 sticky
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1,1.1.1.2 port 80 tcp frag age 20 sticky
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1 port 80 tcp round-robin frag age 30 sticky
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1,1.1.1.2 port 80 tcp round-robin frag age 40 sticky
+rdr le0 9.8.7.6/32 port 0 -> 1.1.1.1 port 0 ip mssclamp 1000
+rdr le0 9.8.7.6/32 port 0 -> 1.1.1.1 port 0 ip sticky mssclamp 1000
+rdr le0 9.8.7.6/32 port 0 -> 1.1.1.1 port 0 ip frag sticky mssclamp 1000
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1 port 80 icmp frag sticky mssclamp 1000
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1,1.1.1.2 port 80 tcp frag sticky mssclamp 1000
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1 port 80 tcp round-robin frag sticky mssclamp 1000
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1,1.1.1.2 port 80 tcp round-robin frag sticky mssclamp 1000
+rdr le0 9.8.7.6/32 port 0 -> 1.1.1.1 port 0 ip frag age 10 sticky mssclamp 1000
+rdr le0 9.8.7.6/32 port 0 -> 1.1.1.1 port 0 ip frag age 10/20 sticky mssclamp 1000
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1 port 80 icmp frag age 10 sticky mssclamp 1000
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1,1.1.1.2 port 80 tcp frag age 20 sticky mssclamp 1000
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1 port 80 tcp round-robin frag age 30 sticky mssclamp 1000
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1,1.1.1.2 port 80 tcp round-robin frag age 40 sticky mssclamp 1000
+rdr le0 9.8.7.6/32 port 0 -> 1.1.1.1 port 0 ip tag nattagcacheline
+rdr le0 9.8.7.6/32 port 0 -> 1.1.1.1 port 0 ip mssclamp 1000 tag nattagcacheline
+rdr le0 9.8.7.6/32 port 0 -> 1.1.1.1 port 0 ip sticky mssclamp 1000 tag nattagcacheline
+rdr le0 9.8.7.6/32 port 0 -> 1.1.1.1 port 0 ip frag sticky mssclamp 1000 tag nattagcacheline
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1 port 80 icmp frag sticky mssclamp 1000 tag nattagcacheline
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1,1.1.1.2 port 80 tcp frag sticky mssclamp 1000 tag nattagcacheline
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1 port 80 tcp round-robin frag sticky mssclamp 1000 tag nattagcacheline
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1,1.1.1.2 port 80 tcp round-robin frag sticky mssclamp 1000 tag nattagcacheline
+rdr le0 9.8.7.6/32 port 0 -> 1.1.1.1 port 0 ip frag age 10 sticky mssclamp 1000 tag nattagcacheline
+rdr le0 9.8.7.6/32 port 0 -> 1.1.1.1 port 0 ip frag age 10/20 sticky mssclamp 1000 tag nattagcacheline
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1 port 80 icmp frag age 10 sticky mssclamp 1000 tag nattagcacheline
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1,1.1.1.2 port 80 tcp frag age 20 sticky mssclamp 1000 tag nattagcacheline
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1 port 80 tcp round-robin frag age 30 sticky mssclamp 1000 tag nattagcacheline
+rdr le0 9.8.7.6/32 port 80 -> 1.1.1.1,1.1.1.2 port 80 tcp round-robin frag age 40 sticky mssclamp 1000 tag nattagcacheline
+rdr ge0 9.8.7.6/32 -> 1.1.1.1 proxy port 21 ftp/tcp
+rdr ge0 9.8.7.6/32 port 21 -> 1.1.1.1 port 21 tcp proxy ftp
+rdr le0 9.8.7.6/32 port 1000-2000 -> 1.1.1.1 port 5555 tcp
+rdr le0 9.8.7.6/32 port 1000-2000 -> 1.1.1.1 port = 5555 tcp
+rdr le0 0/0 -> test.host.dots
+rdr le0 any -> test.host.dots,test.host.dots
+rdr adsl0,ppp0 9.8.7.6/32 port 1000-2000 -> 1.1.1.1 port 5555-7777 tcp
diff --git a/ipf/regress/in2_6 b/ipf/regress/in2_6
new file mode 100644
index 000000000000..1ee1f067b0ca
--- /dev/null
+++ b/ipf/regress/in2_6
@@ -0,0 +1,71 @@
+rdr le0 inet6 9:8:7::6/128 port 0 -> 1:1:1::1 port 0 tcp
+rdr le0 inet6 9:8:7::6/128 port 0 -> 1:1:1::1 port 0 255
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1 port 80 tcp
+rdr le0 inet6 9:8:7::6/128 -> 1:1:1::1 ip
+rdr le0 inet6 9:8:7::6/32 -> 1:1:1::1 ip
+rdr le0 inet6 9:8:7::6/64 -> 1:1:1::1 ip
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1 port 80 tcp
+rdr le0 inet6 9:8:7::6/128 port 80 -> 0/0 port 80 tcp
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1 port 80 udp
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1 port 80 tcp/udp
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1 port 80 icmp
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1,1:1:1::2 port 80 tcp
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1 port 80 tcp round-robin
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1,1:1:1::2 port 80 tcp round-robin
+rdr le0 inet6 9:8:7::6/128 port 0 -> 1:1:1::1 port 0 ip frag
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1 port 80 icmp frag
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1,1:1:1::2 port 80 tcpudp frag
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1 port 80 tcp round-robin frag
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1,1:1:1::2 port 80 tcp round-robin frag
+rdr le0 inet6 9:8:7::6/128 -> 1:1:1::1 ip frag age 10
+rdr le0 inet6 9:8:7::6/128 port 0 -> 1:1:1::1 port 0 ip frag age 10/20
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1 port 80 icmp frag age 10
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1,1:1:1::2 port 80 tcp frag age 20
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1 port 80 tcp round-robin frag age 30
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1,1:1:1::2 port 80 tcp round-robin frag age 40
+rdr le0 inet6 9:8:7::6/128 port 0 -> 1:1:1::1 port 0 ip sticky
+rdr le0 inet6 9:8:7::6/128 port 0 -> 1:1:1::1 port 0 ip frag sticky
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1 port 80 icmp frag sticky
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1,1:1:1::2 port 80 tcp frag sticky
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1 port 80 tcp round-robin frag sticky
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1,1:1:1::2 port 80 tcp round-robin frag sticky
+rdr le0 inet6 9:8:7::6/128 port 0 -> 1:1:1::1 port 0 ip frag age 10 sticky
+rdr le0 inet6 9:8:7::6/128 port 0 -> 1:1:1::1 port 0 ip frag age 10/20 sticky
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1 port 80 icmp frag age 10 sticky
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1,1:1:1::2 port 80 tcp frag age 20 sticky
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1 port 80 tcp round-robin frag age 30 sticky
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1,1:1:1::2 port 80 tcp round-robin frag age 40 sticky
+rdr le0 inet6 9:8:7::6/128 port 0 -> 1:1:1::1 port 0 ip mssclamp 1000
+rdr le0 inet6 9:8:7::6/128 port 0 -> 1:1:1::1 port 0 ip sticky mssclamp 1000
+rdr le0 inet6 9:8:7::6/128 port 0 -> 1:1:1::1 port 0 ip frag sticky mssclamp 1000
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1 port 80 icmp frag sticky mssclamp 1000
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1,1:1:1::2 port 80 tcp frag sticky mssclamp 1000
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1 port 80 tcp round-robin frag sticky mssclamp 1000
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1,1:1:1::2 port 80 tcp round-robin frag sticky mssclamp 1000
+rdr le0 inet6 9:8:7::6/128 port 0 -> 1:1:1::1 port 0 ip frag age 10 sticky mssclamp 1000
+rdr le0 inet6 9:8:7::6/128 port 0 -> 1:1:1::1 port 0 ip frag age 10/20 sticky mssclamp 1000
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1 port 80 icmp frag age 10 sticky mssclamp 1000
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1,1:1:1::2 port 80 tcp frag age 20 sticky mssclamp 1000
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1 port 80 tcp round-robin frag age 30 sticky mssclamp 1000
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1,1:1:1::2 port 80 tcp round-robin frag age 40 sticky mssclamp 1000
+rdr le0 inet6 9:8:7::6/128 port 0 -> 1:1:1::1 port 0 ip tag nattagcacheline
+rdr le0 inet6 9:8:7::6/128 port 0 -> 1:1:1::1 port 0 ip mssclamp 1000 tag nattagcacheline
+rdr le0 inet6 9:8:7::6/128 port 0 -> 1:1:1::1 port 0 ip sticky mssclamp 1000 tag nattagcacheline
+rdr le0 inet6 9:8:7::6/128 port 0 -> 1:1:1::1 port 0 ip frag sticky mssclamp 1000 tag nattagcacheline
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1 port 80 icmp frag sticky mssclamp 1000 tag nattagcacheline
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1,1:1:1::2 port 80 tcp frag sticky mssclamp 1000 tag nattagcacheline
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1 port 80 tcp round-robin frag sticky mssclamp 1000 tag nattagcacheline
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1,1:1:1::2 port 80 tcp round-robin frag sticky mssclamp 1000 tag nattagcacheline
+rdr le0 inet6 9:8:7::6/128 port 0 -> 1:1:1::1 port 0 ip frag age 10 sticky mssclamp 1000 tag nattagcacheline
+rdr le0 inet6 9:8:7::6/128 port 0 -> 1:1:1::1 port 0 ip frag age 10/20 sticky mssclamp 1000 tag nattagcacheline
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1 port 80 icmp frag age 10 sticky mssclamp 1000 tag nattagcacheline
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1,1:1:1::2 port 80 tcp frag age 20 sticky mssclamp 1000 tag nattagcacheline
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1 port 80 tcp round-robin frag age 30 sticky mssclamp 1000 tag nattagcacheline
+rdr le0 inet6 9:8:7::6/128 port 80 -> 1:1:1::1,1:1:1::2 port 80 tcp round-robin frag age 40 sticky mssclamp 1000 tag nattagcacheline
+rdr ge0 9:8:7::6/128 -> 1:1:1::1 proxy port 21 ftp/tcp
+rdr ge0 9:8:7::6/128 port 21 -> 1:1:1::1 port 21 tcp proxy ftp
+rdr le0 inet6 9:8:7::6/128 port 1000-2000 -> 1:1:1::1 port 5555 tcp
+rdr le0 inet6 9:8:7::6/128 port 1000-2000 -> 1:1:1::1 port = 5555 tcp
+rdr le0 inet6 0/0 -> test.host.dots
+rdr le0 inet6 any -> test.host.dots,test.host.dots
+rdr adsl0,ppp0 9:8:7::6/128 port 1000-2000 -> 1:1:1::1 port 5555-7777 tcp
diff --git a/ipf/regress/in3 b/ipf/regress/in3
new file mode 100644
index 000000000000..d8016b69e916
--- /dev/null
+++ b/ipf/regress/in3
@@ -0,0 +1,5 @@
+bimap le0 0/0 -> 0/32
+bimap le0 1/32 -> 1/32
+bimap le0 128.0.0.0/1 -> 0/0
+bimap le0 10.0.0.0/8 -> 1.2.3.0/24
+bimap le0 10.0.5.6/24 -> 1.2.3.4/24
diff --git a/ipf/regress/in3_6 b/ipf/regress/in3_6
new file mode 100644
index 000000000000..a82ff09b24da
--- /dev/null
+++ b/ipf/regress/in3_6
@@ -0,0 +1,5 @@
+bimap le0 inet6 0/0 -> 0/128
+bimap le0 inet6 1/128 -> 1/128
+bimap le0 inet6 128::/1 -> 0/0
+bimap le0 inet6 10::/16 -> 1:2:3::0/96
+bimap le0 inet6 10:0:5::6/96 -> 1:2:3::4/96
diff --git a/ipf/regress/in4 b/ipf/regress/in4
new file mode 100644
index 000000000000..46bbd81012dc
--- /dev/null
+++ b/ipf/regress/in4
@@ -0,0 +1,5 @@
+map-block le0 10.0.0.0/24 -> 203.1.1.0/24
+map-block le0 10.0.0.0/24 -> 203.1.1.0/24 ports 0
+map-block le0 10.0.0.0/24 -> 203.1.1.0/24 ports 256
+map-block le0 10.0.0.0/24 -> 203.1.1.0/24 ports auto
+map-block le0 10.0.0.0/16 -> 203.1.1.0/24 ports auto
diff --git a/ipf/regress/in4_6 b/ipf/regress/in4_6
new file mode 100644
index 000000000000..b6b78c085590
--- /dev/null
+++ b/ipf/regress/in4_6
@@ -0,0 +1,5 @@
+map-block le0 inet6 10::/96 -> 203:1:1::/96
+map-block le0 inet6 10::/96 -> 203:1:1::/96 ports 0
+map-block le0 inet6 10::/96 -> 203:1:1::/96 ports 256
+map-block le0 inet6 10::/96 -> 203:1:1::/96 ports auto
+map-block le0 inet6 10::/16 -> 203:1:1::/96 ports auto
diff --git a/ipf/regress/in5 b/ipf/regress/in5
new file mode 100644
index 000000000000..766c3e3df104
--- /dev/null
+++ b/ipf/regress/in5
@@ -0,0 +1,24 @@
+map le0 from 9.8.7.6/32 port > 1024 to any -> 1.1.1.1 portmap 10000:20000 tcp
+map le0 from 9.8.7.6/32 port > 1024 to ! 1.2.3.4 -> 1.1.1.1 portmap 10000:20000 tcp
+rdr le0 from any to 9.8.7.6/32 port = 0 -> 1.1.1.1 port 0 tcp
+rdr le0 from any to 9.8.7.6/0xffffffff port = 0 -> 1.1.1.1 port 0 ip
+rdr le0 ! from 1.2.3.4 to 9.8.7.6 port = 8888 -> 1.1.1.1 port 888 tcp
+rdr le0 from any to 9.8.7.6/255.255.255.255 port = 8888 -> 1.1.1.1 port 888 ip
+rdr le0 from any to 9.8.7.6 mask 0xffffffff port = 8888 -> 1.1.1.1 port 888 tcp
+rdr le0 from any to 9.8.7.6 mask 255.255.255.255 port = 8888 -> 1.1.1.1 port 888 udp
+rdr le0 from any to 9.8.7.6/32 port = 8888 -> 1.1.1.1 port 888 tcp/udp
+rdr le0 from any to 9.8.7.6/32 -> 1.1.1.1 port 888 icmp
+rdr le0 from any to 9.8.7.6/32 port = 8888 -> 1.1.1.1,1.1.1.2 port 888 tcp
+rdr le0 from any to 9.8.7.6/32 port = 8888 -> 1.1.1.1 port 888 tcp round-robin
+rdr le0 from any to 9.8.7.6/32 port = 8888 -> 1.1.1.1,1.1.1.2 port 888 tcp round-robin
+rdr le0 from any to 9.8.7.6/32 -> 1.1.1.1 port 0 ip frag
+rdr le0 from any to 9.8.7.6/32 port = 8888 -> 1.1.1.1 port 888 icmp frag
+rdr le0 from any to 9.8.7.6/32 port = 8888 -> 1.1.1.1,1.1.1.2 port 888 tcp frag
+rdr le0 from any to 9.8.7.6/32 port = 8888 -> 1.1.1.1 port 888 tcp round-robin frag
+rdr le0 from any to 9.8.7.6/32 port = 8888 -> 1.1.1.1,1.1.1.2 port 888 tcp round-robin frag
+rdr le0 from any to 9.8.7.6/32 -> 1.1.1.1 port 0 ip frag age 10
+rdr le0 from any to 9.8.7.6/32 port = 0 -> 1.1.1.1 port 0 ip frag age 10/20
+rdr le0 from any to 9.8.7.6/32 port = 8888 -> 1.1.1.1 port 888 icmp frag age 10
+rdr le0 from any to 9.8.7.6/32 port = 8888 -> 1.1.1.1,1.1.1.2 port 888 tcp frag age 20
+rdr le0 from any to 9.8.7.6/32 port = 8888 -> 1.1.1.1 port 888 tcp round-robin frag age 30
+rdr le0 from any to 9.8.7.6/32 port = 8888 -> 1.1.1.1,1.1.1.2 port 888 tcp round-robin frag age 40
diff --git a/ipf/regress/in5_6 b/ipf/regress/in5_6
new file mode 100644
index 000000000000..f39d819acc91
--- /dev/null
+++ b/ipf/regress/in5_6
@@ -0,0 +1,24 @@
+map le0 inet6 from 9:8:7::6/128 port > 1024 to any -> 1:1:1::1 portmap 10000:20000 tcp
+map le0 inet6 from 9:8:7::6/128 port > 1024 to ! 1:2:3::4 -> 1:1:1::1 portmap 10000:20000 tcp
+rdr le0 inet6 from any to 9:8:7::6/128 port = 0 -> 1:1:1::1 port 0 tcp
+rdr le0 inet6 from any to 9:8:7::6/128 port = 0 -> 1:1:1::1 port 0 ip
+rdr le0 inet6 ! from 1:2:3::4 to 9:8:7::6 port = 8888 -> 1:1:1::1 port 888 tcp
+rdr le0 inet6 from any to 9:8:7::6/128 port = 8888 -> 1:1:1::1 port 888 ip
+rdr le0 inet6 from any to 9:8:7::6/128 port = 8888 -> 1:1:1::1 port 888 tcp
+rdr le0 inet6 from any to 9:8:7::6/128 port = 8888 -> 1:1:1::1 port 888 udp
+rdr le0 inet6 from any to 9:8:7::6/128 port = 8888 -> 1:1:1::1 port 888 tcp/udp
+rdr le0 inet6 from any to 9:8:7::6/128 -> 1:1:1::1 port 888 icmp
+rdr le0 inet6 from any to 9:8:7::6/128 port = 8888 -> 1:1:1::1,1:1:1::2 port 888 tcp
+rdr le0 inet6 from any to 9:8:7::6/128 port = 8888 -> 1:1:1::1 port 888 tcp round-robin
+rdr le0 inet6 from any to 9:8:7::6/128 port = 8888 -> 1:1:1::1,1:1:1::2 port 888 tcp round-robin
+rdr le0 inet6 from any to 9:8:7::6/128 -> 1:1:1::1 port 0 ip frag
+rdr le0 inet6 from any to 9:8:7::6/128 port = 8888 -> 1:1:1::1 port 888 icmp frag
+rdr le0 inet6 from any to 9:8:7::6/128 port = 8888 -> 1:1:1::1,1:1:1::2 port 888 tcp frag
+rdr le0 inet6 from any to 9:8:7::6/128 port = 8888 -> 1:1:1::1 port 888 tcp round-robin frag
+rdr le0 inet6 from any to 9:8:7::6/128 port = 8888 -> 1:1:1::1,1:1:1::2 port 888 tcp round-robin frag
+rdr le0 inet6 from any to 9:8:7::6/128 -> 1:1:1::1 port 0 ip frag age 10
+rdr le0 inet6 from any to 9:8:7::6/128 port = 0 -> 1:1:1::1 port 0 ip frag age 10/20
+rdr le0 inet6 from any to 9:8:7::6/128 port = 8888 -> 1:1:1::1 port 888 icmp frag age 10
+rdr le0 inet6 from any to 9:8:7::6/128 port = 8888 -> 1:1:1::1,1:1:1::2 port 888 tcp frag age 20
+rdr le0 inet6 from any to 9:8:7::6/128 port = 8888 -> 1:1:1::1 port 888 tcp round-robin frag age 30
+rdr le0 inet6 from any to 9:8:7::6/128 port = 8888 -> 1:1:1::1,1:1:1::2 port 888 tcp round-robin frag age 40
diff --git a/ipf/regress/in6 b/ipf/regress/in6
new file mode 100644
index 000000000000..70e71ddeb16b
--- /dev/null
+++ b/ipf/regress/in6
@@ -0,0 +1,8 @@
+map foo0 from any port = 1 to any port != 0 -> 0/32 udp
+map foo0 from any port eq 1 to any port ne 0 -> 0/32 udp
+map foo0 from any port < 1 to any port > 0 -> 0/32 tcp
+map foo0 from any port lt 1 to any port gt 0 -> 0/32 tcp
+map foo0 from any port <= 1 to any port >= 0 -> 0/32 tcp/udp
+map foo0 from any port le 1 to any port ge 0 -> 0/32 tcp/udp
+map foo0 from any port 1 >< 20 to any port 20 <> 40 -> 0/32 tcp/udp
+map foo0 from any port 10:20 to any port 30:40 -> 0/32 tcp/udp
diff --git a/ipf/regress/in6_6 b/ipf/regress/in6_6
new file mode 100644
index 000000000000..556015d10287
--- /dev/null
+++ b/ipf/regress/in6_6
@@ -0,0 +1,8 @@
+map foo0 inet6 from any port = 1 to any port != 0 -> 0/32 udp
+map foo0 inet6 from any port eq 1 to any port ne 0 -> 0/32 udp
+map foo0 inet6 from any port < 1 to any port > 0 -> 0/32 tcp
+map foo0 inet6 from any port lt 1 to any port gt 0 -> 0/32 tcp
+map foo0 inet6 from any port <= 1 to any port >= 0 -> 0/32 tcp/udp
+map foo0 inet6 from any port le 1 to any port ge 0 -> 0/32 tcp/udp
+map foo0 inet6 from any port 1 >< 20 to any port 20 <> 40 -> 0/32 tcp/udp
+map foo0 inet6 from any port 10:20 to any port 30:40 -> 0/32 tcp/udp
diff --git a/ipf/regress/in7 b/ipf/regress/in7
new file mode 100644
index 000000000000..792d6005489e
--- /dev/null
+++ b/ipf/regress/in7
@@ -0,0 +1 @@
+#
diff --git a/ipf/regress/in8_6 b/ipf/regress/in8_6
new file mode 100644
index 000000000000..ab23b84476d2
--- /dev/null
+++ b/ipf/regress/in8_6
@@ -0,0 +1,6 @@
+map zx0 inet6 10:1::1:1/128 -> 10:2:2::2/128 purge
+map zx0 inet6 10:1::1:1/128 -> 10:2:2::2/128 tcp purge
+map zx0 inet6 10:1::1:1/128 -> 10:2:2::2/128 mssclamp 1000 purge
+map zx0 inet6 10:1::1:1/128 -> 10:2:2::2/128 portmap tcp/udp 10000:11000 purge
+map zx0 inet6 10:1::1:1/128 -> 10:2:2::2/128 portmap tcp/udp 10000:11000 sequential purge
+map zx0 inet6 10:1::1:1/128 -> 10:2:2::2/128 portmap tcp/udp 10000:11000 sequential purge
diff --git a/ipf/regress/ip1 b/ipf/regress/ip1
new file mode 100644
index 000000000000..c31ba251bf2e
--- /dev/null
+++ b/ipf/regress/ip1
@@ -0,0 +1,78 @@
+#:%s/ \(number = [0-9]*\) \(type = [a-z]*\)/ \2 \1/g
+
+table role = ipf type = tree number = 1
+ {; };
+table role = ipf type = tree number = 100
+ { 1.2.3.4/32; !2.2.0.0/16; 2.2.2.0/24; };
+table role = nat type = tree number = 110
+ { 1.2.3.4/32; !2.2.0.0/16; 2.2.2.0/24; };
+table role = auth type = tree number = 120
+ { 1.2.3.4/32; !2.2.0.0/16; 2.2.2.0/24; };
+table role = count type = tree number = 130
+ { 1.2.3.4; !2.2.0.0/16; 2.2.2.0/24; };
+
+table role = ipf type = hash number = 2
+ {; };
+table role = ipf type = hash number = 200
+ { 0/0; 1/32; 1.2.3.4/32; };
+table role = nat type = hash number = 210
+ { 0/0; 2/32; 1.2.3.4/32; };
+table role = auth type = hash number = 220
+ { 0/0; 3/32; 1.2.3.4/32; };
+table role = count type = hash number = 230
+ { 0/0; 4/32; 1.2.3.4/32; };
+
+table role = ipf type = hash number = 240 seed = 101
+ { 0/0; 1/32; 1.2.3.4/32; };
+table role = nat type = hash number = 250 seed = 101
+ { 0/0; 2/32; 1.2.3.4/32; };
+table role = auth type = hash number = 260 seed = 101
+ { 0/0; 3/32; 1.2.3.4/32; };
+table role = count type = hash number = 270 seed = 101
+ { 0/0; 4/32; 1.2.3.4/32; };
+
+table role = ipf type = hash number = 2000 size = 1001
+ { 0/0; 1/32; 1.2.3.4/32; };
+table role = nat type = hash number = 2000 size = 1001
+ { 0/0; 2/32; 1.2.3.4/32; };
+table role = auth type = hash number = 2000 size = 1001
+ { 0/0; 3/32; 1.2.3.4/32; };
+table role = count type = hash number = 2000 size = 1001
+ { 0/0; 4/32; 1.2.3.4/32; };
+
+table role = ipf type = hash number = 100 size = 1001 seed = 101
+ { 0/0; 1/32; 1.2.3.4/32; };
+table role = nat type = hash number = 100 size = 1001 seed = 101
+ { 0/0; 2/32; 1.2.3.4/32; };
+table role = auth type = hash number = 100 size = 1001 seed = 101
+ { 0/0; 3/32; 1.2.3.4/32; };
+table role = count type = hash number = 100 size = 1001 seed = 101
+ { 0/0; 4/32; 1.2.3.4/32; };
+
+group-map in role = ipf number = 300 group = 303
+ { 0/0; 5/32; 1.2.3.4/32; };
+group-map in role = nat number = 300 group = 303
+ { 0/0; 6/32; 1.2.3.4/32; };
+group-map in role = auth number = 300 group = 303
+ { 0/0; 7/32; 1.2.3.4/32; };
+group-map in role = count number = 300 group = 303
+ { 0/0; 8/32; 1.2.3.4/32; };
+
+group-map out role = ipf number = 400 group = 303
+ { 0/0; 5/32; 1.2.3.4/32, group = 606; };
+group-map out role = nat number = 400 group = 303
+ { 0/0; 6/32; 1.2.3.4/32, group = 606; };
+group-map out role = auth number = 400 group = 303
+ { 0/0; 7/32; 1.2.3.4/32, group = 606; };
+group-map out role = count number = 400 group = 303
+ { 0/0; 8/32; 1.2.3.4/32, group = 606; };
+
+group-map in role = ipf number = 500
+ { 0/0, group = 10; 5/32, group = 800; 1.2.3.4/32, group = 606; };
+group-map in role = nat number = 500
+ { 0/0, group = 10; 6/32, group = 800; 1.2.3.4/32, group = 606; };
+group-map in role = auth number = 500
+ { 0/0, group = 10; 7/32, group = 800; 1.2.3.4/32, group = 606; };
+group-map in role = count number = 500
+ { 0/0, group = 10; 8/32, group = 800; 1.2.3.4/32, group = 606; };
+
diff --git a/ipf/regress/ip2 b/ipf/regress/ip2
new file mode 100644
index 000000000000..76f31b60f9d4
--- /dev/null
+++ b/ipf/regress/ip2
@@ -0,0 +1,2 @@
+table role = ipf type = tree name = letters
+ { "file://input/ip2.data"; };
diff --git a/ipf/regress/ip3 b/ipf/regress/ip3
new file mode 100644
index 000000000000..98d2b0b94555
--- /dev/null
+++ b/ipf/regress/ip3
@@ -0,0 +1,14 @@
+pool ipf/dstlist (name fred; policy round-robin;)
+ { 3.3.3.3; };
+pool ipf/dstlist (name jack; policy weighted connection;)
+ { 4.4.4.4; bge0:5.5.5.5;};
+pool ipf/dstlist (name jill; policy random;)
+ { 1.1.1.1; bge0:2.2.2.2;};
+pool nat/hash (name noproxy; size 17;)
+ { 1.1.1.1; 2.2.2.2;};
+pool nat/tree (name raw;)
+ { 1.1.1.1; 2.2.2.2;};
+pool all/dstlist (name jill; policy random;)
+ { 1.1.1.1; bge0:2.2.2.2;};
+pool all/hash (name noproxy; size 17;)
+ { 1.1.1.1; 2.2.2.2;};
diff --git a/ipf/regress/ipv6.1 b/ipf/regress/ipv6.1
new file mode 100644
index 000000000000..fc532b677c7f
--- /dev/null
+++ b/ipf/regress/ipv6.1
@@ -0,0 +1 @@
+pass out log quick on gif0 proto udp from ef00:1001:2002::/48 to any port 33433 >< 34000 keep state
diff --git a/ipf/regress/ipv6.2 b/ipf/regress/ipv6.2
new file mode 100644
index 000000000000..814dfd6cd664
--- /dev/null
+++ b/ipf/regress/ipv6.2
@@ -0,0 +1,3 @@
+block in all
+block out all
+pass out proto 58 all keep state
diff --git a/ipf/regress/ipv6.3 b/ipf/regress/ipv6.3
new file mode 100644
index 000000000000..6dc9e937a995
--- /dev/null
+++ b/ipf/regress/ipv6.3
@@ -0,0 +1 @@
+pass out log quick on gif0 proto ipv6-icmp from any to any icmp-type 128 keep state
diff --git a/ipf/regress/ipv6.4 b/ipf/regress/ipv6.4
new file mode 100644
index 000000000000..b2217446d39e
--- /dev/null
+++ b/ipf/regress/ipv6.4
@@ -0,0 +1,3 @@
+pass in proto ipv6-icmp all icmp-type echo keep frags
+pass in proto ipv6-icmp all icmp-type echo keep frags keep state
+pass in proto tcp all keep frags keep state
diff --git a/ipf/regress/ipv6.5 b/ipf/regress/ipv6.5
new file mode 100644
index 000000000000..d9ae23b2fbd7
--- /dev/null
+++ b/ipf/regress/ipv6.5
@@ -0,0 +1,2 @@
+pass out family inet6 all with v6hdr routing
+block out family inet6 proto tcp all with v6hdr routing
diff --git a/ipf/regress/ipv6.6 b/ipf/regress/ipv6.6
new file mode 100644
index 000000000000..19a4df972334
--- /dev/null
+++ b/ipf/regress/ipv6.6
@@ -0,0 +1,2 @@
+pass out on gif0 proto udp all keep frag
+block out all with bad
diff --git a/ipf/regress/l1 b/ipf/regress/l1
new file mode 100644
index 000000000000..88cca58039f9
--- /dev/null
+++ b/ipf/regress/l1
@@ -0,0 +1,6 @@
+log in all
+pass in on anon0 all head 100
+pass in log quick from 3.3.3.3 to any group 100
+pass in log body quick from 2.2.2.2 to any
+pass in log quick proto tcp from 1.1.1.1 to any flags S keep state
+pass in log first quick proto tcp from 1.1.1.1 to any flags S keep state
diff --git a/ipf/regress/n1 b/ipf/regress/n1
new file mode 100644
index 000000000000..9bcf29be7ccf
--- /dev/null
+++ b/ipf/regress/n1
@@ -0,0 +1,3 @@
+map zx0 10.1.1.1/32 -> 10.2.2.2/32
+map zx0 10.1.1.0/24 -> 10.3.4.5/32
+map zx0 10.1.1.0/24 -> 10.3.4.0/24
diff --git a/ipf/regress/n10 b/ipf/regress/n10
new file mode 100644
index 000000000000..0f4819217f7a
--- /dev/null
+++ b/ipf/regress/n10
@@ -0,0 +1,3 @@
+map ppp0 0/0 -> 203.203.203.203/32 mssclamp 100
+map ppp0 0/0 -> 203.203.203.203/32 mssclamp 1000
+map ppp0 0/0 -> 203.203.203.203/32 mssclamp 10000
diff --git a/ipf/regress/n100 b/ipf/regress/n100
new file mode 100644
index 000000000000..a8b6deeb52e3
--- /dev/null
+++ b/ipf/regress/n100
@@ -0,0 +1 @@
+rewrite out on zx0 from 0/0 to 2.2.0.0/16 -> src 4.4.4.4/32 dst 6.6.0.0/16;
diff --git a/ipf/regress/n101 b/ipf/regress/n101
new file mode 100644
index 000000000000..2f5fcd98c9ce
--- /dev/null
+++ b/ipf/regress/n101
@@ -0,0 +1 @@
+rewrite out on zx0 proto tcp from 0/0 to 2.2.0.0/16 -> src 4.4.4.4/32 dst 6.6.0.0/16;
diff --git a/ipf/regress/n102 b/ipf/regress/n102
new file mode 100644
index 000000000000..f056633dd23b
--- /dev/null
+++ b/ipf/regress/n102
@@ -0,0 +1 @@
+rewrite out on zx0 proto tcp from 0/0 to 2.2.0.0/16 -> src 4.4.4.4/32,1000:2000 dst 6.6.0.0/16;
diff --git a/ipf/regress/n103 b/ipf/regress/n103
new file mode 100644
index 000000000000..c3c27d60dd8f
--- /dev/null
+++ b/ipf/regress/n103
@@ -0,0 +1 @@
+rewrite out on zx0 proto tcp from 0/0 to 2.2.0.0/16 -> src 4.4.4.4/32,1000-1001 dst 6.6.0.0/16,4000:4001;
diff --git a/ipf/regress/n104 b/ipf/regress/n104
new file mode 100644
index 000000000000..785f0ada244b
--- /dev/null
+++ b/ipf/regress/n104
@@ -0,0 +1 @@
+rewrite out on zx0 proto tcp from 0/0 to 2.2.0.0/16 -> src 4.4.0.0/24,1000-1001 dst 6.6.0.0/16,4000:4001;
diff --git a/ipf/regress/n105 b/ipf/regress/n105
new file mode 100644
index 000000000000..afe89660a728
--- /dev/null
+++ b/ipf/regress/n105
@@ -0,0 +1 @@
+rewrite in on zx0 proto tcp from 0/0 to 2.2.0.0/16 port = 80 -> src 4.4.4.4/32,1000-1001 dst 6.6.0.0/16 port = 3128;
diff --git a/ipf/regress/n106 b/ipf/regress/n106
new file mode 100644
index 000000000000..6074ab0b4cc4
--- /dev/null
+++ b/ipf/regress/n106
@@ -0,0 +1 @@
+rewrite out on zx0 proto tcp from 0/0 to 2.2.0.0/16 port = 80 -> src 4.4.4.4/32,1000-1001 dst 6.6.0.0/16 port = 3128;
diff --git a/ipf/regress/n10_6 b/ipf/regress/n10_6
new file mode 100644
index 000000000000..738152df62ab
--- /dev/null
+++ b/ipf/regress/n10_6
@@ -0,0 +1,3 @@
+map ppp0 any -> 203.203.203.203/128 mssclamp 100
+map ppp0 any -> 203.203.203.203/128 mssclamp 1000
+map ppp0 any -> 203.203.203.203/128 mssclamp 10000
diff --git a/ipf/regress/n11 b/ipf/regress/n11
new file mode 100644
index 000000000000..8cdf7fcf4627
--- /dev/null
+++ b/ipf/regress/n11
@@ -0,0 +1,3 @@
+bimap zx0 10.1.1.1/32 -> 1.6.7.8/32
+bimap zx0 10.1.1.0/24 -> 10.2.2.2/32
+bimap zx0 10.1.1.0/24 -> 10.3.4.5/24
diff --git a/ipf/regress/n11_6 b/ipf/regress/n11_6
new file mode 100644
index 000000000000..7b428cc23925
--- /dev/null
+++ b/ipf/regress/n11_6
@@ -0,0 +1,3 @@
+bimap zx0 10:1:1::1/128 -> 1::6:7:8/128
+bimap zx0 10:1:1::/112 -> 10::2:2:2/128
+bimap zx0 10:1:1::/112 -> 10::3:4:5/112
diff --git a/ipf/regress/n12 b/ipf/regress/n12
new file mode 100644
index 000000000000..933856bc710b
--- /dev/null
+++ b/ipf/regress/n12
@@ -0,0 +1 @@
+map le0 192.168.126.0/24 -> 0/32 portmap tcp/udp 10000:20000 sequential
diff --git a/ipf/regress/n12_6 b/ipf/regress/n12_6
new file mode 100644
index 000000000000..bf218489d051
--- /dev/null
+++ b/ipf/regress/n12_6
@@ -0,0 +1 @@
+map le0 c0a8:7e00::/112 -> 0/128 portmap tcp/udp 10000:20000
diff --git a/ipf/regress/n13 b/ipf/regress/n13
new file mode 100644
index 000000000000..804793004050
--- /dev/null
+++ b/ipf/regress/n13
@@ -0,0 +1 @@
+map le0 192.168.0.0/16 -> range 203.1.1.23-203.1.3.45
diff --git a/ipf/regress/n13_6 b/ipf/regress/n13_6
new file mode 100644
index 000000000000..c1d1646d2ddb
--- /dev/null
+++ b/ipf/regress/n13_6
@@ -0,0 +1 @@
+map le0 192:168:1::0/48 -> range 203:0:1::1:23-203:0:1::3:45
diff --git a/ipf/regress/n14 b/ipf/regress/n14
new file mode 100644
index 000000000000..6f5d571d606e
--- /dev/null
+++ b/ipf/regress/n14
@@ -0,0 +1 @@
+rdr gre0 0/0 port 80 -> 10.1.1.254,10.1.1.253 port 80 tcp sticky
diff --git a/ipf/regress/n14_6 b/ipf/regress/n14_6
new file mode 100644
index 000000000000..64e88ee4c7fe
--- /dev/null
+++ b/ipf/regress/n14_6
@@ -0,0 +1 @@
+rdr gre0 any port 80 -> 10:1:1::254,10:1:1::253 port 80 tcp sticky
diff --git a/ipf/regress/n15 b/ipf/regress/n15
new file mode 100644
index 000000000000..062b766c9aba
--- /dev/null
+++ b/ipf/regress/n15
@@ -0,0 +1,2 @@
+rdr le0 0/0 port 80 -> 3.3.3.3 port 80 tcp
+rdr le0 0/0 port 80 -> 3.3.3.3 port 80-88 tcp
diff --git a/ipf/regress/n15_6 b/ipf/regress/n15_6
new file mode 100644
index 000000000000..e82dd8232760
--- /dev/null
+++ b/ipf/regress/n15_6
@@ -0,0 +1,2 @@
+rdr le0 any port 80 -> 3:0:3::3:3 port 80 tcp
+rdr le0 any port 80 -> 3:0:3::3:3 port 80-88 tcp
diff --git a/ipf/regress/n16 b/ipf/regress/n16
new file mode 100644
index 000000000000..ff8958cad869
--- /dev/null
+++ b/ipf/regress/n16
@@ -0,0 +1 @@
+rdr vlan0 from any to 69.248.79.193 port = 38136 -> 172.31.83.24 port 2013 udp
diff --git a/ipf/regress/n16_6 b/ipf/regress/n16_6
new file mode 100644
index 000000000000..ff8958cad869
--- /dev/null
+++ b/ipf/regress/n16_6
@@ -0,0 +1 @@
+rdr vlan0 from any to 69.248.79.193 port = 38136 -> 172.31.83.24 port 2013 udp
diff --git a/ipf/regress/n17 b/ipf/regress/n17
new file mode 100644
index 000000000000..213f51f079b5
--- /dev/null
+++ b/ipf/regress/n17
@@ -0,0 +1 @@
+bimap zx0 0/0 -> 1.1.1.3
diff --git a/ipf/regress/n18 b/ipf/regress/n18
new file mode 100644
index 000000000000..792f136b76c1
--- /dev/null
+++ b/ipf/regress/n18
@@ -0,0 +1,3 @@
+map z0 0/0 -> 1.1.1.1/32 portmap tcp/udp 1:4 sequential
+map z0 0/0 -> 1.1.1.1/32 portmap tcp/udp 1000:5000 sequential
+map z0 0/0 -> 1.1.1.1/32 portmap tcp/udp 1000:50000 sequential
diff --git a/ipf/regress/n1_6 b/ipf/regress/n1_6
new file mode 100644
index 000000000000..341f13651b98
--- /dev/null
+++ b/ipf/regress/n1_6
@@ -0,0 +1,3 @@
+map zx0 10:1:1::1/128 -> 10::2:2:2/128
+map zx0 10:1:1::/112 -> 10::3:4:5/128
+map zx0 10:1:1::/112 -> 10::3:4:0/112
diff --git a/ipf/regress/n2 b/ipf/regress/n2
new file mode 100644
index 000000000000..39a4d724dedf
--- /dev/null
+++ b/ipf/regress/n2
@@ -0,0 +1,4 @@
+map zx0 10.1.1.1/32 -> 10.2.2.2/32 portmap tcp 10000:20000 sequential
+map zx0 10.1.1.0/24 -> 10.3.4.5/32 portmap udp 10000:20000 sequential
+map zx0 10.1.0.0/16 -> 10.3.4.0/24 portmap tcp/udp 10000:20000 sequential
+map zx0 10.1.1.0/24 -> 10.3.4.5/32 portmap tcp/udp 40000:40001 sequential
diff --git a/ipf/regress/n200 b/ipf/regress/n200
new file mode 100644
index 000000000000..c792e5406754
--- /dev/null
+++ b/ipf/regress/n200
@@ -0,0 +1 @@
+divert in on bar0 from any to any -> src 127.0.0.1,10101 dst 127.0.0.1,10101 udp;
diff --git a/ipf/regress/n2_6 b/ipf/regress/n2_6
new file mode 100644
index 000000000000..3a04f33ae740
--- /dev/null
+++ b/ipf/regress/n2_6
@@ -0,0 +1,4 @@
+map zx0 10:1:1::1/128 -> 10::2:2:2/128 portmap tcp 10000:20000 sequential
+map zx0 10:1:1::/112 -> 10::3:4:5/128 portmap udp 10000:20000 sequential
+map zx0 10:1::/32 -> 10::3:4:0/112 portmap tcp/udp 10000:20000 sequential
+map zx0 10:1:1::/112 -> 10::3:4:5/128 portmap tcp/udp 40000:40001 sequential
diff --git a/ipf/regress/n3 b/ipf/regress/n3
new file mode 100644
index 000000000000..82c83dd6acc5
--- /dev/null
+++ b/ipf/regress/n3
@@ -0,0 +1,2 @@
+map zz0 10.1.0.0/16 -> 192.168.2.0/24 portmap tcp/udp auto
+map-block zz0 10.1.0.0/16 -> 192.168.1.0/24 ports 252
diff --git a/ipf/regress/n4 b/ipf/regress/n4
new file mode 100644
index 000000000000..e7c03145e677
--- /dev/null
+++ b/ipf/regress/n4
@@ -0,0 +1,6 @@
+rdr zx0 10.1.1.1/32 port 23 -> 10.2.2.1 port 10023 tcp
+rdr zx0 10.1.1.0/24 port 23 -> 10.2.2.1 port 10023 tcp
+rdr zx0 0/0 port 23 -> 10.2.2.1 port 10023 tcp
+rdr zx0 10.1.1.0/24 port 53 -> 10.2.2.1 port 10053 udp
+rdr zx0 10.1.1.0/24 port 0 -> 10.2.2.1 port 0 tcp
+rdr zx0 10.1.1.0/24 port 0 -> 10.2.2.1 port 0 ip
diff --git a/ipf/regress/n4_6 b/ipf/regress/n4_6
new file mode 100644
index 000000000000..72dad4c11217
--- /dev/null
+++ b/ipf/regress/n4_6
@@ -0,0 +1,6 @@
+rdr zx0 10:1:1::1/128 port 23 -> 10::2:2:1 port 10023 tcp
+rdr zx0 10:1:1::/112 port 23 -> 10::2:2:1 port 10023 tcp
+rdr zx0 any port 23 -> 10::2:2:1 port 10023 tcp
+rdr zx0 10:1:1::/112 port 53 -> 10::2:2:1 port 10053 udp
+rdr zx0 10:1:1::/112 port 0 -> 10::2:2:1 port 0 tcp
+rdr zx0 10:1:1::/112 port 0 -> 10::2:2:1 port 0 ip
diff --git a/ipf/regress/n5 b/ipf/regress/n5
new file mode 100644
index 000000000000..d9f1a8885f8d
--- /dev/null
+++ b/ipf/regress/n5
@@ -0,0 +1,6 @@
+map zx0 10.1.1.1/32 -> 10.2.2.2/32
+map zx0 from 10.1.1.0/24 to 10.1.0.0/16 -> 10.3.4.5/32
+map zx0 from 10.1.1.0/24 ! to 10.1.0.0/16 -> 10.3.4.0/24
+map zx0 10.1.1.0/24 -> 10.3.4.5/32 portmap udp 10000:20000 sequential
+map zx0 10.1.0.0/16 -> 10.3.4.0/24 portmap tcp/udp 10000:20000 sequential
+map zx0 10.1.1.0/24 -> 10.3.4.5/32 portmap tcp/udp 40000:40001 sequential
diff --git a/ipf/regress/n5_6 b/ipf/regress/n5_6
new file mode 100644
index 000000000000..acefd7b18a73
--- /dev/null
+++ b/ipf/regress/n5_6
@@ -0,0 +1,6 @@
+map zx0 10:1:1::1/128 -> 10::2:2:2/128
+map zx0 from 10:1:1::/112 to 10:1::/32 -> 10::3:4:5/128
+map zx0 from 10:1:1::/112 ! to 10:1::/32 -> 10::3:4:0/112
+map zx0 10:1:1::/112 -> 10::3:4:5/128 portmap udp 10000:20000 sequential
+map zx0 10:1::/32 -> 10::3:4:0/112 portmap tcp/udp 10000:20000 sequential
+map zx0 10:1:1::/112 -> 10::3:4:5/128 portmap tcp/udp 40000:40001 sequential
diff --git a/ipf/regress/n6 b/ipf/regress/n6
new file mode 100644
index 000000000000..79f11a40d88a
--- /dev/null
+++ b/ipf/regress/n6
@@ -0,0 +1,5 @@
+rdr zx0 10.1.1.1/32 port 23 -> 10.2.2.1 port 10023 tcp
+rdr zx0 from any to 10.1.1.0/24 port = 23 -> 10.2.2.1 port 10023 tcp
+rdr zx0 from 10.2.0.0/16 to 10.1.1.0/24 port = 23 -> 10.2.2.1 port 10023 tcp
+rdr zx0 from 10.3.0.0/16 to 10.1.0.0/16 port = 23 -> 10.2.2.1 port 10023 tcp
+rdr zx0 ! from 10.2.0.0/16 to 10.1.1.0/24 port = 53 -> 10.2.2.1 port 10053 udp
diff --git a/ipf/regress/n6_6 b/ipf/regress/n6_6
new file mode 100644
index 000000000000..3491c6b3e039
--- /dev/null
+++ b/ipf/regress/n6_6
@@ -0,0 +1,5 @@
+rdr zx0 10:1:1::1/128 port 23 -> 10::2:2:1 port 10023 tcp
+rdr zx0 from any to 10:1:1::/112 port = 23 -> 10::2:2:1 port 10023 tcp
+rdr zx0 from 10::/32 to 10:1:1::/112 port = 23 -> 10::2:2:1 port 10023 tcp
+rdr zx0 from 10:3::/32 to 10:1::/32 port = 23 -> 10::2:2:1 port 10023 tcp
+rdr zx0 ! from 10::/32 to 10:1:1::/112 port = 53 -> 10::2:2:1 port 10053 udp
diff --git a/ipf/regress/n7 b/ipf/regress/n7
new file mode 100644
index 000000000000..be995c2fe030
--- /dev/null
+++ b/ipf/regress/n7
@@ -0,0 +1,3 @@
+rdr zx0 10.1.1.1/32 port 23-79 -> 10.2.2.1 port 10023 tcp
+rdr zx0 10.1.1.1/32 port 23-79 -> 10.2.2.1 port = 10023 tcp
+rdr zx0 10.1.1.0/24 port 80 -> 10.2.2.1,1.2.2.129 port 3128 tcp
diff --git a/ipf/regress/n7_6 b/ipf/regress/n7_6
new file mode 100644
index 000000000000..88055f69ab30
--- /dev/null
+++ b/ipf/regress/n7_6
@@ -0,0 +1,3 @@
+rdr zx0 10:1:1::1/128 port 23-79 -> 10::2:2:1 port 10023 tcp
+rdr zx0 10:1:1::1/128 port 23-79 -> 10::2:2:1 port = 10023 tcp
+rdr zx0 10:1:1::/112 port 80 -> 10::2:2:1,1::2:2:129 port 3128 tcp
diff --git a/ipf/regress/n8 b/ipf/regress/n8
new file mode 100644
index 000000000000..bf0e94f73544
--- /dev/null
+++ b/ipf/regress/n8
@@ -0,0 +1 @@
+map icmp0 2.2.2.0/24 -> 10.10.10.0/24
diff --git a/ipf/regress/n8_6 b/ipf/regress/n8_6
new file mode 100644
index 000000000000..2f96be05d003
--- /dev/null
+++ b/ipf/regress/n8_6
@@ -0,0 +1 @@
+map icmp0 2::2:2:0/112 -> 10:10:10::/112
diff --git a/ipf/regress/n9 b/ipf/regress/n9
new file mode 100644
index 000000000000..81a7ccd8c815
--- /dev/null
+++ b/ipf/regress/n9
@@ -0,0 +1 @@
+rdr icmp0 4.4.4.0/24 port 0 -> 10.10.10.1 port 0 ip
diff --git a/ipf/regress/n9_6 b/ipf/regress/n9_6
new file mode 100644
index 000000000000..31e4615f1327
--- /dev/null
+++ b/ipf/regress/n9_6
@@ -0,0 +1 @@
+rdr icmp0 4:4:4::/112 port 0 -> 10:10:10::1 port 0 ip
diff --git a/ipf/regress/ni1.ipf b/ipf/regress/ni1.ipf
new file mode 100644
index 000000000000..c7e5797185dc
--- /dev/null
+++ b/ipf/regress/ni1.ipf
@@ -0,0 +1,4 @@
+block in all
+block out all
+pass out proto udp from any to any keep state
+pass out proto tcp from any to any flags S keep state
diff --git a/ipf/regress/ni1.nat b/ipf/regress/ni1.nat
new file mode 100644
index 000000000000..077aab1a1f26
--- /dev/null
+++ b/ipf/regress/ni1.nat
@@ -0,0 +1,3 @@
+map df0 from 2.2.2.2/32 port 20000 >< 25000 to any -> 6.6.6.8/32 portmap udp 2000:2500 sequential
+map df0 from 2.2.2.2/32 port 2000 >< 2500 to any -> 6.6.6.7/32 portmap udp 20000:25000 sequential
+map df0 from 2.2.2.2/32 to any -> 6.6.6.6/32
diff --git a/ipf/regress/ni10.ipf b/ipf/regress/ni10.ipf
new file mode 100644
index 000000000000..4151b6e666eb
--- /dev/null
+++ b/ipf/regress/ni10.ipf
@@ -0,0 +1,4 @@
+block in all
+block out all
+pass in proto udp from any to any keep state
+pass in proto tcp from any to any flags S keep state
diff --git a/ipf/regress/ni10.nat b/ipf/regress/ni10.nat
new file mode 100644
index 000000000000..2a04ef7948d0
--- /dev/null
+++ b/ipf/regress/ni10.nat
@@ -0,0 +1 @@
+rdr df0 2.2.2.2/32 -> 6.6.6.6
diff --git a/ipf/regress/ni11.ipf b/ipf/regress/ni11.ipf
new file mode 100644
index 000000000000..4151b6e666eb
--- /dev/null
+++ b/ipf/regress/ni11.ipf
@@ -0,0 +1,4 @@
+block in all
+block out all
+pass in proto udp from any to any keep state
+pass in proto tcp from any to any flags S keep state
diff --git a/ipf/regress/ni11.nat b/ipf/regress/ni11.nat
new file mode 100644
index 000000000000..1d0018cb34fa
--- /dev/null
+++ b/ipf/regress/ni11.nat
@@ -0,0 +1 @@
+rdr df0 10.0.0.0/8 port 1000:2000 -> 1.1.1.1 port 40000 tcp/udp
diff --git a/ipf/regress/ni12.ipf b/ipf/regress/ni12.ipf
new file mode 100644
index 000000000000..4151b6e666eb
--- /dev/null
+++ b/ipf/regress/ni12.ipf
@@ -0,0 +1,4 @@
+block in all
+block out all
+pass in proto udp from any to any keep state
+pass in proto tcp from any to any flags S keep state
diff --git a/ipf/regress/ni12.nat b/ipf/regress/ni12.nat
new file mode 100644
index 000000000000..8c36bc8701a5
--- /dev/null
+++ b/ipf/regress/ni12.nat
@@ -0,0 +1 @@
+rdr df0 10.0.0.0/8 port 1000:2000 -> 1.1.1.1 port = 40000 tcp/udp
diff --git a/ipf/regress/ni13.ipf b/ipf/regress/ni13.ipf
new file mode 100644
index 000000000000..04b6d137e504
--- /dev/null
+++ b/ipf/regress/ni13.ipf
@@ -0,0 +1,3 @@
+pass in quick on pcn1 proto tcp from any to any port = 1723 keep state
+block in all
+block out all
diff --git a/ipf/regress/ni13.nat b/ipf/regress/ni13.nat
new file mode 100644
index 000000000000..ac2be49d61f8
--- /dev/null
+++ b/ipf/regress/ni13.nat
@@ -0,0 +1 @@
+rdr pcn1 192.168.113.3/32 port 1723 -> 0.0.0.0 port 1723 tcp proxy pptp
diff --git a/ipf/regress/ni14.ipf b/ipf/regress/ni14.ipf
new file mode 100644
index 000000000000..04b6d137e504
--- /dev/null
+++ b/ipf/regress/ni14.ipf
@@ -0,0 +1,3 @@
+pass in quick on pcn1 proto tcp from any to any port = 1723 keep state
+block in all
+block out all
diff --git a/ipf/regress/ni14.nat b/ipf/regress/ni14.nat
new file mode 100644
index 000000000000..72a8a4a2759e
--- /dev/null
+++ b/ipf/regress/ni14.nat
@@ -0,0 +1 @@
+rdr pcn1 192.168.113.3/32 port 1723 -> 127.0.0.1 port 1723 tcp proxy pptp
diff --git a/ipf/regress/ni15.ipf b/ipf/regress/ni15.ipf
new file mode 100644
index 000000000000..1b9a013f5299
--- /dev/null
+++ b/ipf/regress/ni15.ipf
@@ -0,0 +1,3 @@
+pass out quick on pcn1 proto tcp from any to any port = 1723 keep state
+block in all
+block out all
diff --git a/ipf/regress/ni15.nat b/ipf/regress/ni15.nat
new file mode 100644
index 000000000000..420c7b722673
--- /dev/null
+++ b/ipf/regress/ni15.nat
@@ -0,0 +1 @@
+map pcn1 0/0 -> 0/0 proxy port 1723 pptp/tcp
diff --git a/ipf/regress/ni16.ipf b/ipf/regress/ni16.ipf
new file mode 100644
index 000000000000..1b9a013f5299
--- /dev/null
+++ b/ipf/regress/ni16.ipf
@@ -0,0 +1,3 @@
+pass out quick on pcn1 proto tcp from any to any port = 1723 keep state
+block in all
+block out all
diff --git a/ipf/regress/ni16.nat b/ipf/regress/ni16.nat
new file mode 100644
index 000000000000..5fad3cdb20b0
--- /dev/null
+++ b/ipf/regress/ni16.nat
@@ -0,0 +1 @@
+map pcn1 10.2.2.2/32 -> 0/32 proxy port 1723 pptp/tcp
diff --git a/ipf/regress/ni17.ipf b/ipf/regress/ni17.ipf
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/ipf/regress/ni17.ipf
diff --git a/ipf/regress/ni17.nat b/ipf/regress/ni17.nat
new file mode 100644
index 000000000000..3da63383a7b8
--- /dev/null
+++ b/ipf/regress/ni17.nat
@@ -0,0 +1,4 @@
+rdr le0 0/0 port 80 -> 10.1.1.252 port 3128 tcp round-robin
+rdr le0 0/0 port 80 -> 10.1.2.252 port 3128 tcp round-robin
+rdr le0 0/0 port 80 -> 10.1.3.252 port 3128 tcp round-robin sticky
+rdr le0 0/0 port 80 -> 10.1.1.253,10.1.2.253 port 3128 tcp round-robin sticky
diff --git a/ipf/regress/ni18.ipf b/ipf/regress/ni18.ipf
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/ipf/regress/ni18.ipf
diff --git a/ipf/regress/ni18.nat b/ipf/regress/ni18.nat
new file mode 100644
index 000000000000..40113c1c32c2
--- /dev/null
+++ b/ipf/regress/ni18.nat
@@ -0,0 +1,4 @@
+rdr hme0 192.168.1.0/24 port 80 -> 1.1.1.1 port 80 tcp;
+no rdr hme0 192.168.1.1 port 80 tcp;
+map hme1 10.1.0.0/16 -> 203.1.1.1/32 portmap tcp/udp 10000:20000
+no map hme1 10.1.1.0/24 tcp;
diff --git a/ipf/regress/ni19.ipf b/ipf/regress/ni19.ipf
new file mode 100644
index 000000000000..c6fcec1c32f3
--- /dev/null
+++ b/ipf/regress/ni19.ipf
@@ -0,0 +1,3 @@
+block in all
+pass out quick on bge0 proto tcp from any to any port = shell flags S keep state
+block out all
diff --git a/ipf/regress/ni19.nat b/ipf/regress/ni19.nat
new file mode 100644
index 000000000000..56b81a9e0cb9
--- /dev/null
+++ b/ipf/regress/ni19.nat
@@ -0,0 +1 @@
+map bge0 192.168.113.0/24 -> 10.1.1.1/32 proxy port shell rcmd/tcp
diff --git a/ipf/regress/ni2.ipf b/ipf/regress/ni2.ipf
new file mode 100644
index 000000000000..5956cf9f929c
--- /dev/null
+++ b/ipf/regress/ni2.ipf
@@ -0,0 +1 @@
+pass out quick proto tcp from any to any flags S/SAFR keep state
diff --git a/ipf/regress/ni2.nat b/ipf/regress/ni2.nat
new file mode 100644
index 000000000000..43d2c83b0c9b
--- /dev/null
+++ b/ipf/regress/ni2.nat
@@ -0,0 +1 @@
+map xl0 10.0.0.0/8 -> 1.1.1.1/32 portmap tcp/udp 40000:60000 sequential
diff --git a/ipf/regress/ni20.ipf b/ipf/regress/ni20.ipf
new file mode 100644
index 000000000000..c6f6d8444c41
--- /dev/null
+++ b/ipf/regress/ni20.ipf
@@ -0,0 +1,3 @@
+block in all
+pass in quick on bge0 proto tcp from any to any port = shell flags S keep state
+block out all
diff --git a/ipf/regress/ni20.nat b/ipf/regress/ni20.nat
new file mode 100644
index 000000000000..f2dd0a7e729d
--- /dev/null
+++ b/ipf/regress/ni20.nat
@@ -0,0 +1 @@
+rdr bge0 10.1.1.4/32 port shell -> 192.168.113.4 port shell tcp proxy rcmd
diff --git a/ipf/regress/ni21.ipf b/ipf/regress/ni21.ipf
new file mode 100644
index 000000000000..6d6ed081787f
--- /dev/null
+++ b/ipf/regress/ni21.ipf
@@ -0,0 +1 @@
+pass out on lan0 to eri0:1.1.1.1 from 2.2.2.2 to any
diff --git a/ipf/regress/ni21.nat b/ipf/regress/ni21.nat
new file mode 100644
index 000000000000..6b2d46a9fb99
--- /dev/null
+++ b/ipf/regress/ni21.nat
@@ -0,0 +1 @@
+map lan0,eri0 2.2.2.2 -> 4.4.4.4
diff --git a/ipf/regress/ni23.ipf b/ipf/regress/ni23.ipf
new file mode 100644
index 000000000000..49ebcf708766
--- /dev/null
+++ b/ipf/regress/ni23.ipf
@@ -0,0 +1,3 @@
+block out all
+block in all
+pass in on le0,hme0 out-via ppp0,bge0 to ppp0:3.3.3.254 proto udp all keep state
diff --git a/ipf/regress/ni23.nat b/ipf/regress/ni23.nat
new file mode 100644
index 000000000000..094d377c00dc
--- /dev/null
+++ b/ipf/regress/ni23.nat
@@ -0,0 +1,2 @@
+rdr le0,bge0 1.1.0.0/16 -> 2.2.2.2
+map hme0,ppp0 3.3.3.0/24 -> 4.4.4.4/32
diff --git a/ipf/regress/ni3.ipf b/ipf/regress/ni3.ipf
new file mode 100644
index 000000000000..c7e5797185dc
--- /dev/null
+++ b/ipf/regress/ni3.ipf
@@ -0,0 +1,4 @@
+block in all
+block out all
+pass out proto udp from any to any keep state
+pass out proto tcp from any to any flags S keep state
diff --git a/ipf/regress/ni3.nat b/ipf/regress/ni3.nat
new file mode 100644
index 000000000000..4306f4b45d3d
--- /dev/null
+++ b/ipf/regress/ni3.nat
@@ -0,0 +1 @@
+map df0 2.2.2.2/32 -> 6.6.6.6/32
diff --git a/ipf/regress/ni4.ipf b/ipf/regress/ni4.ipf
new file mode 100644
index 000000000000..c7e5797185dc
--- /dev/null
+++ b/ipf/regress/ni4.ipf
@@ -0,0 +1,4 @@
+block in all
+block out all
+pass out proto udp from any to any keep state
+pass out proto tcp from any to any flags S keep state
diff --git a/ipf/regress/ni4.nat b/ipf/regress/ni4.nat
new file mode 100644
index 000000000000..e9d5cc1ce8d3
--- /dev/null
+++ b/ipf/regress/ni4.nat
@@ -0,0 +1 @@
+map df0 2.2.2.2/32 -> 6.6.6.6/32 portmap tcp/udp 40000:60000 sequential
diff --git a/ipf/regress/ni5.ipf b/ipf/regress/ni5.ipf
new file mode 100644
index 000000000000..8f11424f4c33
--- /dev/null
+++ b/ipf/regress/ni5.ipf
@@ -0,0 +1,3 @@
+block in all
+pass out quick on ppp0 proto tcp from any to any port = ftp flags S keep state
+block out all
diff --git a/ipf/regress/ni5.nat b/ipf/regress/ni5.nat
new file mode 100644
index 000000000000..8e80d2248f19
--- /dev/null
+++ b/ipf/regress/ni5.nat
@@ -0,0 +1 @@
+map ppp0 192.168.1.0/24 -> 1.1.1.1/32 proxy port ftp ftp/tcp
diff --git a/ipf/regress/ni6.ipf b/ipf/regress/ni6.ipf
new file mode 100644
index 000000000000..f5b83b29ff3a
--- /dev/null
+++ b/ipf/regress/ni6.ipf
@@ -0,0 +1,9 @@
+block out log quick on qfe0 from 192.168.7.0/24 to any
+block out log quick on nf0 from 192.168.6.0/24 to any
+pass in quick on nf0 proto tcp from any to any port = 111 flags S keep state
+pass in quick on nf0 proto udp from any to any port = 111 keep state
+block return-rst in log quick on nf0 proto tcp from any to any
+block in log quick on nf0 from 192.168.7.0/24 to any
+block return-rst in log quick on qfe0 proto tcp from any to any
+block in log quick on qfe0 from 192.168.6.0/24 to any
+
diff --git a/ipf/regress/ni6.nat b/ipf/regress/ni6.nat
new file mode 100644
index 000000000000..00d57d07cb2c
--- /dev/null
+++ b/ipf/regress/ni6.nat
@@ -0,0 +1,3 @@
+rdr nf0 192.168.6.2 port 111 -> 192.168.7.1 port 111 udp proxy rpcbu
+rdr nf0 192.168.6.2 port 111 -> 192.168.7.1 port 111 tcp proxy rpcbt
+map qfe0 192.168.6.0/24 -> 192.168.7.2/32
diff --git a/ipf/regress/ni7.ipf b/ipf/regress/ni7.ipf
new file mode 100644
index 000000000000..4151b6e666eb
--- /dev/null
+++ b/ipf/regress/ni7.ipf
@@ -0,0 +1,4 @@
+block in all
+block out all
+pass in proto udp from any to any keep state
+pass in proto tcp from any to any flags S keep state
diff --git a/ipf/regress/ni7.nat b/ipf/regress/ni7.nat
new file mode 100644
index 000000000000..2a04ef7948d0
--- /dev/null
+++ b/ipf/regress/ni7.nat
@@ -0,0 +1 @@
+rdr df0 2.2.2.2/32 -> 6.6.6.6
diff --git a/ipf/regress/ni8.ipf b/ipf/regress/ni8.ipf
new file mode 100644
index 000000000000..66662419934e
--- /dev/null
+++ b/ipf/regress/ni8.ipf
@@ -0,0 +1 @@
+pass in quick proto tcp from any to any flags S/SAFR keep state
diff --git a/ipf/regress/ni8.nat b/ipf/regress/ni8.nat
new file mode 100644
index 000000000000..1d0018cb34fa
--- /dev/null
+++ b/ipf/regress/ni8.nat
@@ -0,0 +1 @@
+rdr df0 10.0.0.0/8 port 1000:2000 -> 1.1.1.1 port 40000 tcp/udp
diff --git a/ipf/regress/ni9.ipf b/ipf/regress/ni9.ipf
new file mode 100644
index 000000000000..66662419934e
--- /dev/null
+++ b/ipf/regress/ni9.ipf
@@ -0,0 +1 @@
+pass in quick proto tcp from any to any flags S/SAFR keep state
diff --git a/ipf/regress/ni9.nat b/ipf/regress/ni9.nat
new file mode 100644
index 000000000000..8c36bc8701a5
--- /dev/null
+++ b/ipf/regress/ni9.nat
@@ -0,0 +1 @@
+rdr df0 10.0.0.0/8 port 1000:2000 -> 1.1.1.1 port = 40000 tcp/udp
diff --git a/ipf/regress/p1.ipf b/ipf/regress/p1.ipf
new file mode 100644
index 000000000000..acaf639ac1fb
--- /dev/null
+++ b/ipf/regress/p1.ipf
@@ -0,0 +1 @@
+pass in from pool/100 to any
diff --git a/ipf/regress/p1.pool b/ipf/regress/p1.pool
new file mode 100644
index 000000000000..aa262a7704ce
--- /dev/null
+++ b/ipf/regress/p1.pool
@@ -0,0 +1,2 @@
+table role = ipf type = tree number = 100
+ { 1.1.1.1/32; !2.2.0.0/16; 2.2.2.0/24; ef00::5/128; };
diff --git a/ipf/regress/p10.nat b/ipf/regress/p10.nat
new file mode 100644
index 000000000000..3c3fa7c1874f
--- /dev/null
+++ b/ipf/regress/p10.nat
@@ -0,0 +1 @@
+rewrite in on bge0 proto tcp from any to any port = 80 -> src 0/0 dst dstlist/servers;
diff --git a/ipf/regress/p10.pool b/ipf/regress/p10.pool
new file mode 100644
index 000000000000..2be554aadc82
--- /dev/null
+++ b/ipf/regress/p10.pool
@@ -0,0 +1,2 @@
+pool nat/dstlist (name servers; policy hash;)
+ { 1.1.1.2; 1.1.1.4; 1.1.1.5; 1.1.1.9; };
diff --git a/ipf/regress/p11.nat b/ipf/regress/p11.nat
new file mode 100644
index 000000000000..3c3fa7c1874f
--- /dev/null
+++ b/ipf/regress/p11.nat
@@ -0,0 +1 @@
+rewrite in on bge0 proto tcp from any to any port = 80 -> src 0/0 dst dstlist/servers;
diff --git a/ipf/regress/p11.pool b/ipf/regress/p11.pool
new file mode 100644
index 000000000000..a79d9ea58098
--- /dev/null
+++ b/ipf/regress/p11.pool
@@ -0,0 +1,2 @@
+pool nat/dstlist (name servers; policy dst-hash;)
+ { 1.1.1.2; 1.1.1.4; 1.1.1.5; 1.1.1.9; };
diff --git a/ipf/regress/p12.nat b/ipf/regress/p12.nat
new file mode 100644
index 000000000000..3c3fa7c1874f
--- /dev/null
+++ b/ipf/regress/p12.nat
@@ -0,0 +1 @@
+rewrite in on bge0 proto tcp from any to any port = 80 -> src 0/0 dst dstlist/servers;
diff --git a/ipf/regress/p12.pool b/ipf/regress/p12.pool
new file mode 100644
index 000000000000..c9afcda840cd
--- /dev/null
+++ b/ipf/regress/p12.pool
@@ -0,0 +1,2 @@
+pool nat/dstlist (name servers; policy src-hash;)
+ { 1.1.1.2; 1.1.1.4; 1.1.1.5; 1.1.1.9; };
diff --git a/ipf/regress/p13.ipf b/ipf/regress/p13.ipf
new file mode 100644
index 000000000000..acaf639ac1fb
--- /dev/null
+++ b/ipf/regress/p13.ipf
@@ -0,0 +1 @@
+pass in from pool/100 to any
diff --git a/ipf/regress/p13.pool b/ipf/regress/p13.pool
new file mode 100644
index 000000000000..de80f72d5b8b
--- /dev/null
+++ b/ipf/regress/p13.pool
@@ -0,0 +1,2 @@
+table role = all type = tree number = 100
+ { 1.1.1.1/32; !2.2.0.0/16; 2.2.2.0/24; ef00::5/128; };
diff --git a/ipf/regress/p2.ipf b/ipf/regress/p2.ipf
new file mode 100644
index 000000000000..4cfb388e82d6
--- /dev/null
+++ b/ipf/regress/p2.ipf
@@ -0,0 +1,2 @@
+pass out from hash=(127.0.0.1,4.4.0.0/16) to any
+block in from hash=(127.0.0.1,4.4.0.0/16) to any
diff --git a/ipf/regress/p3.ipf b/ipf/regress/p3.ipf
new file mode 100644
index 000000000000..a598d88168c9
--- /dev/null
+++ b/ipf/regress/p3.ipf
@@ -0,0 +1,6 @@
+call now srcgrpmap/1010 in all
+call now dstgrpmap/2010 out all
+pass in all group 1020
+block in all group 1030
+pass out all group 2020
+block out all group 2040
diff --git a/ipf/regress/p3.pool b/ipf/regress/p3.pool
new file mode 100644
index 000000000000..3fadd59d3e1c
--- /dev/null
+++ b/ipf/regress/p3.pool
@@ -0,0 +1,4 @@
+group-map in role = ipf number = 1010
+ { 1.1.1.1/32, group = 1020; 3.3.0.0/16, group = 1030; };
+group-map out role = ipf number = 2010 group = 2020
+ { 2.2.2.2/32; 4.4.0.0/16; 5.0.0.0/8, group = 2040; };
diff --git a/ipf/regress/p4.nat b/ipf/regress/p4.nat
new file mode 100644
index 000000000000..d504ac90c467
--- /dev/null
+++ b/ipf/regress/p4.nat
@@ -0,0 +1 @@
+map * from pool/100 to any -> 1.2.3.4/32
diff --git a/ipf/regress/p4.pool b/ipf/regress/p4.pool
new file mode 100644
index 000000000000..6ed0e499ac5a
--- /dev/null
+++ b/ipf/regress/p4.pool
@@ -0,0 +1,2 @@
+table role = nat type = tree number = 100
+ { 1.1.1.1/32; !2.2.0.0/16; 2.2.2.0/24; };
diff --git a/ipf/regress/p5.ipf b/ipf/regress/p5.ipf
new file mode 100644
index 000000000000..ada9f56f0f72
--- /dev/null
+++ b/ipf/regress/p5.ipf
@@ -0,0 +1 @@
+pass in from pool/letters to any
diff --git a/ipf/regress/p5.pool b/ipf/regress/p5.pool
new file mode 100644
index 000000000000..9a8eaa3003d7
--- /dev/null
+++ b/ipf/regress/p5.pool
@@ -0,0 +1,2 @@
+table role = ipf type = tree name = letters
+ { 1.1.1.1/32; !2.2.0.0/16; 2.2.2.0/24; };
diff --git a/ipf/regress/p6.ipf b/ipf/regress/p6.ipf
new file mode 100644
index 000000000000..b9b89374eede
--- /dev/null
+++ b/ipf/regress/p6.ipf
@@ -0,0 +1 @@
+block in from pool/microsoft to any
diff --git a/ipf/regress/p6.pool b/ipf/regress/p6.pool
new file mode 100644
index 000000000000..83e818ced5b0
--- /dev/null
+++ b/ipf/regress/p6.pool
@@ -0,0 +1 @@
+pool ipf/tree (name microsoft;) { whois file "regress/p6.whois"; };
diff --git a/ipf/regress/p6.whois b/ipf/regress/p6.whois
new file mode 100644
index 000000000000..284244e11b8f
--- /dev/null
+++ b/ipf/regress/p6.whois
@@ -0,0 +1,241 @@
+# This query resulted in more than 256 records. Remaining results
+# have been truncated. For more specific results, go to
+# http://ws.arin.net/whois for help in refining your query.
+Microsoft Corp (MSFT)
+Microsoft Corp., MSN Operations (MCMO)
+MICROSOFT CORPORATION (MICRO-101)
+MICROSOFT CORPORATION (MICRO-97)
+MICROSOFT CORPORATION (MICRO-100)
+Microsoft Corporation (MICRO-111)
+MICROSOFT CORPORATION (MICRO-117)
+Microsoft Corporation (ZM23-ARIN) noc@microsoft.com +1-425-882-8080
+Microsoft (ZM39-ARIN) noc@microsoft.com +1-425-882-8080
+Microsoft Corp (AS8068) MICROSOFT-CORP---MSN-AS-BLOCK 8068 - 8075
+Microsoft Corp (AS13811) MSLI 13811
+Microsoft Corp (AS14719) MICROSOFT-CORP-BCENTRAL 14719
+Microsoft Corp (AS3598) MICROSOFT-CORP-AS 3598
+Microsoft Corp (AS5761) MICROSOFT-CORP---MSN-AS---SATURN 5761
+Microsoft Corp (AS6182) MICROSOFT-CORP--MSN-AS-4 6182
+Microsoft Corp (AS6194) MICROSOFT-CORP--MSN-AS-3 6194
+Microsoft Corp (AS6291) MICROSOFT-CORP---MSN-AS 6291
+Microsoft Corp (AS13399) MICROSOFT-CORP---MSN-AS-2 13399
+Microsoft Corp (AS23468) MICROSOFT-CORP-XBOX-ONLINE 23468
+Microsoft Corp MICROSOFT (NET-131-107-0-0-1) 131.107.0.0 - 131.107.255.255
+Microsoft Corp MICROSOFT-VEXCEL (NET-192-92-90-0-1) 192.92.90.0 - 192.92.90.255
+Microsoft Corp NETBLK-MSOFT-NET (NET-198-105-232-0-1) 198.105.232.0 - 198.105.235.255
+Microsoft Corp MICROSOFT19-NET58 (NET-204-231-58-0-1) 204.231.58.0 - 204.231.58.255
+Microsoft Corp MICROSOFT15 (NET-204-140-77-0-1) 204.140.77.0 - 204.140.77.255
+Microsoft Corp MICROSOFT16 (NET-204-140-80-0-1) 204.140.80.0 - 204.140.83.255
+Microsoft Corp MICROSOFT-CORP-MSN-1 (NET-199-60-28-0-1) 199.60.28.0 - 199.60.28.255
+Microsoft Corp MICROSOFT-1 (NET-199-103-90-0-1) 199.103.90.0 - 199.103.91.255
+Microsoft Corp MICROSOFT-CORP-MSN-3 (NET-199-103-122-0-1) 199.103.122.0 - 199.103.122.255
+Microsoft Corp MICROSOFT8 (NET-204-79-101-0-1) 204.79.101.0 - 204.79.101.255
+Microsoft Corp MICROSOFT18 (NET-192-237-67-0-1) 192.237.67.0 - 192.237.67.255
+Microsoft Corp MICROSOFT19 (NET-198-137-97-0-1) 198.137.97.0 - 198.137.97.255
+Microsoft Corp MICROSOFT-HK (NET-204-79-135-0-1) 204.79.135.0 - 204.79.135.255
+Microsoft Corp MICROSOFT-PLACEWARE-1 (NET-204-79-179-0-1) 204.79.179.0 - 204.79.179.255
+Microsoft Corp MICROSOFT11 (NET-204-79-180-0-1) 204.79.180.0 - 204.79.181.255
+Microsoft Corp MICROSOFT-PLACEWARE-2 (NET-204-79-188-0-1) 204.79.188.0 - 204.79.188.255
+Microsoft Corp MICROSOFT13 (NET-204-79-195-0-1) 204.79.195.0 - 204.79.197.255
+Microsoft Corp MICROSOFT17 (NET-199-6-92-0-1) 199.6.92.0 - 199.6.94.255
+Microsoft Corp MICROSOFT-2 (NET-204-79-7-0-1) 204.79.7.0 - 204.79.7.255
+Microsoft Corp MICROSOFT-NET1 (NET-204-79-27-0-1) 204.79.27.0 - 204.79.27.255
+Microsoft Corp MICROSOFT2 (NET-198-180-74-0-1) 198.180.74.0 - 198.180.75.255
+Microsoft Corp MICROSOFT3 (NET-198-180-95-0-1) 198.180.95.0 - 198.180.97.255
+Microsoft Corp MICROSOFT28 (NET-204-231-236-0-1) 204.231.236.0 - 204.231.236.255
+Microsoft Corp MICROSOFT29 (NET-205-248-10-0-1) 205.248.10.0 - 205.248.15.255
+Microsoft Corp SPRINT-CDA33F (NET-205-163-63-0-1) 205.163.63.0 - 205.163.63.255
+Microsoft Corp SPRINT-CDA33E (NET-205-163-62-0-1) 205.163.62.0 - 205.163.62.255
+Microsoft Corp SPRINT-CDA39F (NET-205-163-144-0-1) 205.163.144.0 - 205.163.159.255
+Microsoft Corp MICROSOFT30 (NET-205-248-41-0-1) 205.248.41.0 - 205.248.43.255
+Microsoft Corp MICROSOFT31 (NET-205-248-50-0-1) 205.248.50.0 - 205.248.51.255
+Microsoft Corp MICROSOFT32 (NET-205-248-61-0-1) 205.248.61.0 - 205.248.63.255
+Microsoft Corp MICROSOFT34 (NET-205-248-72-0-1) 205.248.72.0 - 205.248.72.255
+Microsoft Corp MICROSOFT35 (NET-205-248-212-0-1) 205.248.212.0 - 205.248.215.255
+Microsoft Corp MICROSOFT36 (NET-205-248-228-0-1) 205.248.228.0 - 205.248.228.255
+Microsoft Corp MICROSOFT37 (NET-205-248-235-0-1) 205.248.235.0 - 205.248.235.255
+Microsoft Corp MICROSOFT20 (NET-204-231-76-0-1) 204.231.76.0 - 204.231.76.255
+Microsoft Corp MICROSOFT26 (NET-204-231-192-0-1) 204.231.192.0 - 204.231.192.255
+Microsoft Corp MICROSOFT27 (NET-204-231-194-0-1) 204.231.194.0 - 204.231.223.255
+Microsoft Corp SOCRATIC (NET-207-78-80-0-1) 207.78.80.0 - 207.78.80.255
+Microsoft Corp DAVELADD (NET-207-78-81-0-1) 207.78.81.0 - 207.78.81.255
+Microsoft Corp RSEGAL (NET-207-78-82-0-1) 207.78.82.0 - 207.78.82.255
+Microsoft Corp MICROSOFT44 (NET-205-248-243-0-1) 205.248.243.0 - 205.248.244.255
+Microsoft Corp MICROSOFT48 (NET-207-117-3-0-1) 207.117.3.0 - 207.117.3.255
+Microsoft Corp UU-207-18-117 (NET-207-18-117-0-1) 207.18.117.0 - 207.18.117.255
+Microsoft Corp CW-208-139-27-B (NET-208-139-27-0-1) 208.139.27.0 - 208.139.27.255
+Microsoft Corp MICROSOFT55 (NET-209-28-213-0-1) 209.28.213.0 - 209.28.213.255
+Microsoft Corp MICROSOFT50 (NET-207-209-68-0-1) 207.209.68.0 - 207.209.68.255
+Microsoft Corp SPRINT-CC5F6F (NET-204-95-96-0-1) 204.95.96.0 - 204.95.111.255
+Microsoft Corp CYBR-LCCLAB (NET-207-158-93-192-1) 207.158.93.192 - 207.158.93.223
+Microsoft Corp MSBPN-2 (NET-207-240-123-192-1) 207.240.123.192 - 207.240.123.223
+Microsoft Corp SPRINT-D01ACD (NET-208-26-205-0-1) 208.26.205.0 - 208.26.205.255
+Microsoft Corp MICROSOFT-CORP-MSN-2 (NET-192-197-157-0-1) 192.197.157.0 - 192.197.157.255
+Microsoft Corp MICROSOFTDENVER (NET-204-133-231-0-1) 204.133.231.0 - 204.133.231.255
+Microsoft Corp MICROSOFTG1-COM (NET-216-72-96-0-1) 216.72.96.0 - 216.72.99.255
+Microsoft Corp EACT-CUST-JLEZNEK (NET-207-229-166-152-1) 207.229.166.152 - 207.229.166.159
+Microsoft Corp SPRINT-CC5F95-8 (NET-204-95-149-0-1) 204.95.149.0 - 204.95.149.255
+Microsoft Corp NET-CSAMSI (NET-209-192-213-72-1) 209.192.213.72 - 209.192.213.79
+Microsoft Corp MICROSOFT57 (NET-206-73-203-0-1) 206.73.203.0 - 206.73.203.255
+Microsoft Corp MICROSOFT56 (NET-206-73-118-0-1) 206.73.118.0 - 206.73.118.255
+Microsoft Corp QWEST-208-45-54-16 (NET-208-45-54-16-1) 208.45.54.16 - 208.45.54.23
+Microsoft Corp QWEST-208-45-54-8 (NET-208-45-54-8-1) 208.45.54.8 - 208.45.54.15
+Microsoft Corp MICROSOFT58 (NET-206-73-31-0-1) 206.73.31.0 - 206.73.31.255
+Microsoft Corp SPRINT-3FA132 (NET-63-161-50-128-1) 63.161.50.128 - 63.161.50.255
+Microsoft Corp SPRINT-3FA132-6 (NET-63-161-50-0-1) 63.161.50.0 - 63.161.50.127
+Microsoft Corp MICROSOFT-8-18 (NET-207-240-8-224-1) 207.240.8.224 - 207.240.8.239
+Microsoft Corp MICROSOFT-BBLK (NET-157-54-0-0-1) 157.54.0.0 - 157.60.255.255
+Microsoft Corp QWEST-208-45-89-248A (NET-208-45-89-248-1) 208.45.89.248 - 208.45.89.255
+Microsoft Corp MICROSOFT61 (NET-206-182-69-0-1) 206.182.69.0 - 206.182.69.255
+Microsoft Corp MICROSOFT63 (NET-206-182-240-0-1) 206.182.240.0 - 206.182.240.255
+Microsoft Corp MICROSOFT64 (NET-206-182-241-0-1) 206.182.241.0 - 206.182.241.255
+Microsoft Corp MICROSOFT59 (NET-206-73-67-0-1) 206.73.67.0 - 206.73.67.255
+Microsoft Corp MICROSOFT66 (NET-206-182-251-0-1) 206.182.251.0 - 206.182.251.255
+Microsoft Corp MICROSOFT65 (NET-206-182-247-0-1) 206.182.247.0 - 206.182.247.255
+Microsoft Corp MICROSOFT62 (NET-206-182-236-0-1) 206.182.236.0 - 206.182.236.255
+Microsoft Corp QWEST-63-236-198-64 (NET-63-236-198-64-1) 63.236.198.64 - 63.236.198.71
+Microsoft Corp QWEST-63-236-198-152 (NET-63-236-198-152-1) 63.236.198.152 - 63.236.198.159
+Microsoft Corp ERMS-6799349 (NET-165-121-253-232-1) 165.121.253.232 - 165.121.253.239
+Microsoft Corp QWEST-63-236-170-64 (NET-63-236-170-64-1) 63.236.170.64 - 63.236.170.71
+Microsoft Corp QWEST-63-236-186-64 (NET-63-236-186-64-1) 63.236.186.64 - 63.236.186.71
+Microsoft Corp QWEST-63-236-187-104 (NET-63-236-187-104-1) 63.236.187.104 - 63.236.187.111
+Microsoft Corp QWEST-63-236-187-128 (NET-63-236-187-128-1) 63.236.187.128 - 63.236.187.135
+Microsoft Corp QWEST-63-236-187-160 (NET-63-236-187-160-1) 63.236.187.160 - 63.236.187.167
+Microsoft Corp FON-3338832128690 (NET-199-2-137-0-1) 199.2.137.0 - 199.2.137.255
+Microsoft Corp CUST-86-24614 (NET-216-222-104-224-1) 216.222.104.224 - 216.222.104.239
+Microsoft Corp QWEST-63-151-87-64 (NET-63-151-87-64-1) 63.151.87.64 - 63.151.87.71
+Microsoft Corp HP-64-77-82-96 (NET-64-77-82-96-1) 64.77.82.96 - 64.77.82.103
+Microsoft Corp HP-64-77-93-80 (NET-64-77-93-80-1) 64.77.93.80 - 64.77.93.95
+Microsoft Corp MICROSOFT-1BLK (NET-65-52-0-0-1) 65.52.0.0 - 65.55.255.255
+Microsoft Corp MICROSOFT-GLOBAL-NET (NET-207-46-0-0-1) 207.46.0.0 - 207.46.255.255
+Microsoft Corp MICROSOFT-CORP-MSN-BLK (NET-207-68-128-0-1) 207.68.128.0 - 207.68.207.255
+Microsoft Corp FON-343451648081865 (NET-204-182-144-0-1) 204.182.144.0 - 204.182.159.255
+Microsoft Corp FON-346312755281299 (NET-206-107-34-0-1) 206.107.34.0 - 206.107.34.255
+Microsoft Corp FON-34550983681918 (NET-205-240-158-0-1) 205.240.158.0 - 205.240.159.255
+Microsoft Corp MICROSOFT-PLACEWARE-2 (NET-204-79-252-0-1) 204.79.252.0 - 204.79.252.255
+Microsoft Corp WLCO-TWC1057147-MICROSOFT (NET-64-200-211-16-1) 64.200.211.16 - 64.200.211.31
+Microsoft Corp MICROSOF81-163-0 (NET-12-178-163-0-1) 12.178.163.0 - 12.178.163.31
+Microsoft Corp WLCO-TWC1057147-MICROSOFT-1 (NET-69-44-126-80-1) 69.44.126.80 - 69.44.126.95
+Microsoft Corp SPRINTLINK (NET-63-173-42-128-1) 63.173.42.128 - 63.173.42.255
+Microsoft Corp MICROSOF33-108-0 (NET-12-28-108-0-1) 12.28.108.0 - 12.28.108.127
+Microsoft Corp SPRINTLINK (NET-65-170-29-0-1) 65.170.29.0 - 65.170.29.7
+Microsoft Corp Q0903-67-132-133-96 (NET-67-132-133-96-1) 67.132.133.96 - 67.132.133.103
+Microsoft Corp MICROSOFT-IPV6-BLK (NET6-2001-4898-1) 2001:4898:0000:0000:0000:0000:0000:0000 - 2001:4898:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
+Microsoft Corp LVLT-MSFT-8-6-176 (NET-8-6-176-0-1) 8.6.176.0 - 8.6.176.255
+Microsoft Corp MICROSOFT33 (NET-205-248-80-0-1) 205.248.80.0 - 205.248.129.255
+Microsoft Corp Q0523-63-148-123-240 (NET-63-148-123-240-1) 63.148.123.240 - 63.148.123.247
+Microsoft Corp SAVV-S233608-1 (NET-64-41-193-0-1) 64.41.193.0 - 64.41.193.255
+Microsoft Corp SAVV-S233053-1 (NET-64-85-70-32-1) 64.85.70.32 - 64.85.70.47
+Microsoft Corp SAVV-S233053-2 (NET-64-85-81-96-1) 64.85.81.96 - 64.85.81.103
+Microsoft Corp SAVV-S233053-3 (NET-64-85-81-104-1) 64.85.81.104 - 64.85.81.111
+Microsoft Corp SAVV-S233053-7 (NET-216-32-168-224-1) 216.32.168.224 - 216.32.168.255
+Microsoft Corp SAVV-S233053-6 (NET-206-79-74-32-1) 206.79.74.32 - 206.79.74.47
+Microsoft Corp SAVV-S233053-8 (NET-216-32-175-224-1) 216.32.175.224 - 216.32.175.255
+Microsoft Corp SAVV-S233053-9 (NET-216-32-180-0-1) 216.32.180.0 - 216.32.183.255
+Microsoft Corp SAVV-S233053-11 (NET-216-33-229-224-1) 216.33.229.224 - 216.33.229.255
+Microsoft Corp SAVV-S233053-12 (NET-216-33-236-0-1) 216.33.236.0 - 216.33.239.255
+Microsoft Corp SAVV-S233053-13 (NET-216-33-240-0-1) 216.33.240.0 - 216.33.243.255
+Microsoft Corp SAVV-S233053-10 (NET-216-32-240-0-1) 216.32.240.0 - 216.32.243.255
+Microsoft Corp SAVV-S233608-3 (NET-216-34-51-0-1) 216.34.51.0 - 216.34.51.255
+Microsoft Corp SAVV-S233053-4 (NET-209-1-112-0-1) 209.1.112.0 - 209.1.112.255
+Microsoft Corp SAVV-S233053-5 (NET-209-1-113-0-1) 209.1.113.0 - 209.1.113.255
+Microsoft Corp SAVV-S233608-2 (NET-209-1-15-0-1) 209.1.15.0 - 209.1.15.255
+Microsoft Corp SAVV-S233608-4 (NET-216-34-53-176-1) 216.34.53.176 - 216.34.53.191
+Microsoft Corp SAVV-S233608-5 (NET-216-35-8-224-1) 216.35.8.224 - 216.35.8.239
+Microsoft Corp SAVV-S233053-14 (NET-209-185-128-0-1) 209.185.128.0 - 209.185.131.255
+Microsoft Corp Q0112-65-114-175-128 (NET-65-114-175-128-1) 65.114.175.128 - 65.114.175.159
+Microsoft Corp SAVV-S233053-15 (NET-64-15-229-96-1) 64.15.229.96 - 64.15.229.127
+Microsoft Corp SAVV-S233050-5 (NET-64-15-177-0-1) 64.15.177.0 - 64.15.177.255
+Microsoft Corp SAVV-S233050-4 (NET-64-15-170-192-1) 64.15.170.192 - 64.15.170.199
+Microsoft Corp SAVV-S233050-2 (NET-209-143-238-0-1) 209.143.238.0 - 209.143.238.255
+Microsoft Corp SAVV-S233050-6 (NET-64-15-178-0-1) 64.15.178.0 - 64.15.178.255
+Microsoft Corp SAVV-S232995-2 (NET-66-35-209-120-1) 66.35.209.120 - 66.35.209.127
+Microsoft Corp SAVV-S232995-3 (NET-66-35-211-128-1) 66.35.211.128 - 66.35.211.191
+Microsoft Corp SAVV-S232995-1 (NET-66-35-208-48-1) 66.35.208.48 - 66.35.208.63
+Microsoft Corp SAVV-S233053-16 (NET-216-33-148-0-1) 216.33.148.0 - 216.33.151.255
+Microsoft Corp., MSN Operations SAVV-S233052-4 (NET-216-35-66-88-1) 216.35.66.88 - 216.35.66.95
+MICROSOFT CORPORATION MICROSOF32-32-160 (NET-12-230-32-160-1) 12.230.32.160 - 12.230.32.167
+MICROSOFT CORPORATION MICROSOF43-124-0 (NET-12-53-124-0-1) 12.53.124.0 - 12.53.124.31
+MICROSOFT CORPORATION MICROSOF82-18-96 (NET-12-232-18-96-1) 12.232.18.96 - 12.232.18.127
+MICROSOFT CORPORATION MICROSOF25-158 (NET-12-190-158-0-1) 12.190.158.0 - 12.190.158.255
+MICROSOFT CORPORATION MICROSOF61-196-32 (NET-12-71-196-32-1) 12.71.196.32 - 12.71.196.47
+Microsoft Corporation MICROSOFT-ONLINE-SERVICES (NET-209-240-192-0-1) 209.240.192.0 - 209.240.223.255
+Microsoft Corporation MICROSOFT-DYNAMIC-HOSTING (NET-70-37-0-0-1) 70.37.0.0 - 70.37.191.255
+Microsoft Corporation MS-ONLINE-SERVICES-NJ (NET-70-37-128-0-1) 70.37.128.0 - 70.37.129.255
+Microsoft Corporation MS-GLOBAL-ONLINE-SERVICES (NET-70-37-135-0-1) 70.37.135.0 - 70.37.135.255
+MICROSOFT CORPORATION MICROSOF82-87-192 (NET-12-49-87-192-1) 12.49.87.192 - 12.49.87.255
+Microsoft MICROSOFT (NET-74-93-205-144-1) 74.93.205.144 - 74.93.205.151
+Microsoft MICROSOFT (NET-74-93-205-152-1) 74.93.205.152 - 74.93.205.159
+Microsoft MICROSOFT (NET-74-93-206-64-1) 74.93.206.64 - 74.93.206.71
+Microsoft MICROSOFT (NET-70-89-139-120-1) 70.89.139.120 - 70.89.139.127
+Microsoft DIRECP-NET1-206-71-11 (NET-206-71-119-0-1) 206.71.119.0 - 206.71.119.255
+Microsoft DIRECP-NET1-117 (NET-206-71-117-0-1) 206.71.117.0 - 206.71.117.255
+Microsoft DIRECP-NET1-118 (NET-206-71-118-0-1) 206.71.118.0 - 206.71.118.255
+Microsoft UUHIL-BLK1-C155-112 (NET-209-154-155-112-1) 209.154.155.112 - 209.154.155.119
+Microsoft SBCIS-101411-164355 (NET-65-68-62-152-1) 65.68.62.152 - 65.68.62.159
+MICROSOFT SBC067039208168020503 (NET-67-39-208-168-1) 67.39.208.168 - 67.39.208.175
+Microsoft UU-65-242-67 (NET-65-242-67-0-1) 65.242.67.0 - 65.242.67.255
+Microsoft CW-204-71-191-0 (NET-204-71-191-0-1) 204.71.191.0 - 204.71.191.255
+Microsoft SBC063194155144021023 (NET-63-194-155-144-1) 63.194.155.144 - 63.194.155.151
+Microsoft SBC066136085192030113 (NET-66-136-85-192-1) 66.136.85.192 - 66.136.85.199
+MICROSOFT MFN-T280-64-124-184-72-29 (NET-64-124-184-72-1) 64.124.184.72 - 64.124.184.79
+MICROSOFT MFN-T133-216-200-206-0-24 (NET-216-200-206-0-1) 216.200.206.0 - 216.200.206.255
+Microsoft UU-63-80-93-D4 (NET-63-80-93-0-1) 63.80.93.0 - 63.80.93.127
+Microsoft RSPC-1218167167199384 (NET-67-192-225-208-1) 67.192.225.208 - 67.192.225.223
+Microsoft CVNET-454AA20 (NET-69-74-162-0-1) 69.74.162.0 - 69.74.162.255
+Microsoft UU-65-221-5 (NET-65-221-5-0-1) 65.221.5.0 - 65.221.5.255
+Microsoft - Partner Campaign Builder (PCB) MICROSOFT-PARTNER-CAMPAIGN-BUILDER-PCB (NET-216-182-89-192-1) 216.182.89.192 - 216.182.89.207
+Microsoft - Partner Campaign Builder (PCB) MICROSOFT-PARTNER-CAMPAIGN-BUILDER-PCB (NET-216-182-89-48-1) 216.182.89.48 - 216.182.89.63
+MICROSOFT AUSTIN-STO UU-65-248-85-D4 (NET-65-248-85-0-1) 65.248.85.0 - 65.248.85.255
+Microsoft Canada MIC0923-CA (NET-199-243-157-192-1) 199.243.157.192 - 199.243.157.223
+Microsoft Canada MIC0702-CA (NET-199-243-157-112-1) 199.243.157.112 - 199.243.157.119
+Microsoft Corp UU-65-194-210-224 (NET-65-194-210-224-1) 65.194.210.224 - 65.194.210.255
+Microsoft Corp UU-208-194-139 (NET-208-194-139-0-1) 208.194.139.0 - 208.194.139.255
+Microsoft Corp UU-208-204-49-128-B (NET-208-204-49-128-1) 208.204.49.128 - 208.204.49.255
+Microsoft Corp UU-208-205-26 (NET-208-205-26-0-1) 208.205.26.0 - 208.205.26.255
+Microsoft Corp UU-208-217-184-D1 (NET-208-217-184-0-1) 208.217.184.0 - 208.217.187.255
+Microsoft Corp UU-208-222-172 (NET-208-222-172-0-1) 208.222.172.0 - 208.222.172.255
+Microsoft Corp UU-208-224-200-64 (NET-208-224-200-64-1) 208.224.200.64 - 208.224.200.95
+Microsoft Corp UU-208-229-100-D1 (NET-208-229-100-0-1) 208.229.100.0 - 208.229.101.255
+Microsoft Corp UU-208-241-19 (NET-208-241-19-0-1) 208.241.19.0 - 208.241.19.15
+Microsoft Corp UU-208-241-19-16 (NET-208-241-19-16-1) 208.241.19.16 - 208.241.19.31
+Microsoft Corp UU-208-241-9-224 (NET-208-241-9-224-1) 208.241.9.224 - 208.241.9.239
+Microsoft Corp UU-208-244-108-D2 (NET-208-244-108-0-1) 208.244.108.0 - 208.244.108.15
+Microsoft Corp UU-208-245-16 (NET-208-245-16-0-1) 208.245.16.0 - 208.245.16.31
+Microsoft Corp UU-208-249-17-160 (NET-208-249-17-160-1) 208.249.17.160 - 208.249.17.175
+Microsoft Corp UU-63-104-216-D2 (NET-63-104-216-0-1) 63.104.216.0 - 63.104.216.127
+Microsoft Corp UU-63-69-245 (NET-63-69-245-0-1) 63.69.245.0 - 63.69.245.255
+Microsoft Corp SBC068090141072031030 (NET-68-90-141-72-1) 68.90.141.72 - 68.90.141.79
+Microsoft Corp 10825385 SBC06319812316029040317151513 (NET-63-198-123-160-1) 63.198.123.160 - 63.198.123.167
+MICROSOFT CORP-040821020257 SBC06824804806429040821020303 (NET-68-248-48-64-1) 68.248.48.64 - 68.248.48.71
+MICROSOFT CORP-040821020338 SBC06824804807229040821020347 (NET-68-248-48-72-1) 68.248.48.72 - 68.248.48.79
+MICROSOFT CORP-081024181821 SBC-99-49-8-248-29-0810241850 (NET-99-49-8-248-1) 99.49.8.248 - 99.49.8.255
+Microsoft Corp. HUGE-65-38-172-72-29 (NET-65-38-172-72-1) 65.38.172.72 - 65.38.172.79
+Microsoft Corp. HUGE-65-38-172-96-28 (NET-65-38-172-96-1) 65.38.172.96 - 65.38.172.111
+Microsoft Corporation MICROSOFT-CORPORATION (NET-75-149-174-16-1) 75.149.174.16 - 75.149.174.23
+Microsoft Corporation MICROSOFT-CORPORATION (NET-75-151-100-240-1) 75.151.100.240 - 75.151.100.255
+Microsoft Corporation SPEK-647057-0 (NET-64-81-8-96-1) 64.81.8.96 - 64.81.8.127
+Microsoft Corporation SBC067112255144030130 (NET-67-112-255-144-1) 67.112.255.144 - 67.112.255.151
+Microsoft Corporation ATTENS-010075-004522 (NET-63-240-201-176-1) 63.240.201.176 - 63.240.201.191
+Microsoft Corporation ATTENS-010075-004523 (NET-206-16-209-208-1) 206.16.209.208 - 206.16.209.223
+Microsoft Corporation ATTENS-010075-004525 (NET-63-240-195-208-1) 63.240.195.208 - 63.240.195.223
+Microsoft Corporation ATTENS-010075-004526 (NET-206-16-204-64-1) 206.16.204.64 - 206.16.204.79
+Microsoft Corporation ATTENS-010075-004450 (NET-206-16-223-0-1) 206.16.223.0 - 206.16.223.255
+Microsoft Corporation ATTENS-010075-005028 (NET-63-240-216-0-1) 63.240.216.0 - 63.240.219.255
+Microsoft Corporation ATTENS-010075-005057 (NET-63-240-220-0-1) 63.240.220.0 - 63.240.223.255
+Microsoft Corporation ATTENS-010075-005135 (NET-206-16-246-24-1) 206.16.246.24 - 206.16.246.31
+Microsoft Corporation ATTENS-010075-004524 (NET-63-240-195-192-1) 63.240.195.192 - 63.240.195.207
+Microsoft Corporation ATTENS-010075-005880 (NET-206-16-224-160-1) 206.16.224.160 - 206.16.224.191
+Microsoft Corporation (managed segment) RSPC-1229444888833780 (NET-98-129-187-144-1) 98.129.187.144 - 98.129.187.151
+Microsoft Corporation - Secure Dimensions ( RSPC-33955-12072007 (NET-67-192-39-48-1) 67.192.39.48 - 67.192.39.63
+Microsoft Corporation - Whale RSPC-108457-1170047010 (NET-72-32-240-160-1) 72.32.240.160 - 72.32.240.175
+Microsoft Corporation - Whale RSPC-108456-1173386392 (NET-72-32-201-152-1) 72.32.201.152 - 72.32.201.159
+MICROSOFT CROP SBC067039081152020503 (NET-67-39-81-152-1) 67.39.81.152 - 67.39.81.159
+Microsoft Education Programs RSPC-48725-1096578571 (NET-69-20-127-32-1) 69.20.127.32 - 69.20.127.39
+Microsoft License PNAP-SFJ-MSLI-RM-01 (NET-216-52-28-0-1) 216.52.28.0 - 216.52.28.255
+Microsoft License INAP-PHX003-MSLICENSE-25271 (NET-70-42-230-0-1) 70.42.230.0 - 70.42.231.255
+Microsoft License INAP-SFJ-MSLICENSE-13982 (NET-63-251-97-0-1) 63.251.97.0 - 63.251.97.255
+Microsoft Licensing SBC067120132128020815 (NET-67-120-132-128-1) 67.120.132.128 - 67.120.132.135
+Microsoft Licensing SBC067120132152020815 (NET-67-120-132-152-1) 67.120.132.152 - 67.120.132.159
+Microsoft Licensing SBC067120132192020816 (NET-67-120-132-192-1) 67.120.132.192 - 67.120.132.207
+Microsoft Licensing SBC0671201322080208
diff --git a/ipf/regress/p7.nat b/ipf/regress/p7.nat
new file mode 100644
index 000000000000..3c3fa7c1874f
--- /dev/null
+++ b/ipf/regress/p7.nat
@@ -0,0 +1 @@
+rewrite in on bge0 proto tcp from any to any port = 80 -> src 0/0 dst dstlist/servers;
diff --git a/ipf/regress/p7.pool b/ipf/regress/p7.pool
new file mode 100644
index 000000000000..451b374dfd1f
--- /dev/null
+++ b/ipf/regress/p7.pool
@@ -0,0 +1,2 @@
+pool nat/dstlist (name servers; policy weighted connection;)
+ { 1.1.1.2; 1.1.1.4; 1.1.1.5; 1.1.1.9; };
diff --git a/ipf/regress/p9.nat b/ipf/regress/p9.nat
new file mode 100644
index 000000000000..3c3fa7c1874f
--- /dev/null
+++ b/ipf/regress/p9.nat
@@ -0,0 +1 @@
+rewrite in on bge0 proto tcp from any to any port = 80 -> src 0/0 dst dstlist/servers;
diff --git a/ipf/regress/p9.pool b/ipf/regress/p9.pool
new file mode 100644
index 000000000000..c452ffc681b6
--- /dev/null
+++ b/ipf/regress/p9.pool
@@ -0,0 +1,2 @@
+pool nat/dstlist (name servers; policy round-robin;)
+ { 1.1.1.2; 1.1.1.4; 1.1.1.5; 1.1.1.9; };