]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
tests: shell: add NAT mappings tests
authorPablo Neira Ayuso <pablo@netfilter.org>
Mon, 27 Apr 2020 20:12:21 +0000 (22:12 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 28 Apr 2020 15:35:56 +0000 (17:35 +0200)
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
tests/shell/testcases/sets/0046netmap_0 [new file with mode: 0755]
tests/shell/testcases/sets/0047nat_0 [new file with mode: 0755]
tests/shell/testcases/sets/dumps/0046netmap_0.nft [new file with mode: 0644]
tests/shell/testcases/sets/dumps/0047nat_0.nft [new file with mode: 0644]

diff --git a/tests/shell/testcases/sets/0046netmap_0 b/tests/shell/testcases/sets/0046netmap_0
new file mode 100755 (executable)
index 0000000..2804a4a
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+EXPECTED="table ip x {
+            chain y {
+                    type nat hook postrouting priority srcnat; policy accept;
+                    snat ip prefix to ip saddr map { 10.141.11.0/24 : 192.168.2.0/24,
+                                                    10.141.12.0/24 : 192.168.3.0/24,
+                                                    10.141.13.0/24 : 192.168.4.0/24 }
+            }
+     }
+"
+
+set -e
+$NFT -f - <<< $EXPECTED
diff --git a/tests/shell/testcases/sets/0047nat_0 b/tests/shell/testcases/sets/0047nat_0
new file mode 100755 (executable)
index 0000000..746a6b6
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+EXPECTED="table ip x {
+            map y {
+                    type ipv4_addr : interval ipv4_addr
+                    flags interval
+                    elements = { 10.141.10.0/24 : 192.168.2.2-192.168.2.4,
+                                10.141.11.0/24 : 192.168.4.2-192.168.4.3 }
+            }
+
+            chain y {
+                    type nat hook postrouting priority srcnat; policy accept;
+                    snat ip interval to ip saddr map @y
+            }
+     }
+"
+
+set -e
+$NFT -f - <<< $EXPECTED
+$NFT add element x y { 10.141.12.0/24 : 192.168.5.10-192.168.5.20 }
diff --git a/tests/shell/testcases/sets/dumps/0046netmap_0.nft b/tests/shell/testcases/sets/dumps/0046netmap_0.nft
new file mode 100644 (file)
index 0000000..e14c339
--- /dev/null
@@ -0,0 +1,6 @@
+table ip x {
+       chain y {
+               type nat hook postrouting priority srcnat; policy accept;
+               snat ip prefix to ip saddr map { 10.141.11.0/24 : 192.168.2.0/24, 10.141.12.0/24 : 192.168.3.0/24, 10.141.13.0/24 : 192.168.4.0/24 }
+       }
+}
diff --git a/tests/shell/testcases/sets/dumps/0047nat_0.nft b/tests/shell/testcases/sets/dumps/0047nat_0.nft
new file mode 100644 (file)
index 0000000..70730ef
--- /dev/null
@@ -0,0 +1,13 @@
+table ip x {
+       map y {
+               type ipv4_addr : interval ipv4_addr
+               flags interval
+               elements = { 10.141.10.0/24 : 192.168.2.2-192.168.2.4, 10.141.11.0/24 : 192.168.4.2/31,
+                            10.141.12.0/24 : 192.168.5.10-192.168.5.20 }
+       }
+
+       chain y {
+               type nat hook postrouting priority srcnat; policy accept;
+               snat ip interval to ip saddr map @y
+       }
+}