summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2019-03-31 22:04:00 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2019-04-02 03:29:46 +0900
commit4b6a6d1e37a39ca7c8705f9a3e8411847c47d348 (patch)
tree727a6f20f2d45c8f78e79a0cd14bdc598b8cf310
parent0b145817ff632a46a077dd595639e4ed8e8ca7d8 (diff)
downloadsystemd-4b6a6d1e37a39ca7c8705f9a3e8411847c47d348.tar.gz
test-network: add tests for FooOverUDP tunnels
-rw-r--r--test/test-network/conf/25-fou-gre.netdev14
-rw-r--r--test/test-network/conf/25-fou-gretap.netdev13
-rw-r--r--test/test-network/conf/25-fou-ipip.netdev12
-rw-r--r--test/test-network/conf/25-fou-ipproto-gre.netdev8
-rw-r--r--test/test-network/conf/25-fou-ipproto-ipip.netdev8
-rw-r--r--test/test-network/conf/25-fou-sit.netdev11
-rwxr-xr-xtest/test-network/systemd-networkd-tests.py47
7 files changed, 113 insertions, 0 deletions
diff --git a/test/test-network/conf/25-fou-gre.netdev b/test/test-network/conf/25-fou-gre.netdev
new file mode 100644
index 0000000000..6ace606ed5
--- /dev/null
+++ b/test/test-network/conf/25-fou-gre.netdev
@@ -0,0 +1,14 @@
+[NetDev]
+Name=gretun96
+Kind=gre
+
+[Tunnel]
+Local=10.65.223.238
+Remote=10.65.223.239
+Key=1.2.5.103
+SerializeTunneledPackets=true
+Independent=true
+
+FooOverUDP=yes
+FOUDestinationPort=55556
+FOUSourcePort=1001
diff --git a/test/test-network/conf/25-fou-gretap.netdev b/test/test-network/conf/25-fou-gretap.netdev
new file mode 100644
index 0000000000..97fbc13d3c
--- /dev/null
+++ b/test/test-network/conf/25-fou-gretap.netdev
@@ -0,0 +1,13 @@
+[NetDev]
+Name=gretap96
+Kind=gretap
+
+[Tunnel]
+Local=10.65.223.238
+Remote=10.65.223.239
+Key=1.2.5.106
+SerializeTunneledPackets=true
+Independent=true
+
+FooOverUDP=yes
+FOUDestinationPort=55556
diff --git a/test/test-network/conf/25-fou-ipip.netdev b/test/test-network/conf/25-fou-ipip.netdev
new file mode 100644
index 0000000000..2f52157490
--- /dev/null
+++ b/test/test-network/conf/25-fou-ipip.netdev
@@ -0,0 +1,12 @@
+[NetDev]
+Name=ipiptun96
+Kind=ipip
+MTUBytes=1480
+
+[Tunnel]
+Local=192.168.223.238
+Remote=192.169.224.239
+Independent=true
+
+FooOverUDP=yes
+FOUDestinationPort=55555
diff --git a/test/test-network/conf/25-fou-ipproto-gre.netdev b/test/test-network/conf/25-fou-ipproto-gre.netdev
new file mode 100644
index 0000000000..09ecd9efb4
--- /dev/null
+++ b/test/test-network/conf/25-fou-ipproto-gre.netdev
@@ -0,0 +1,8 @@
+[NetDev]
+Name=fou98
+Kind=fou
+
+[FooOverUDP]
+Encapsulation=FooOverUDP
+Port=55556
+Protocol=GRE
diff --git a/test/test-network/conf/25-fou-ipproto-ipip.netdev b/test/test-network/conf/25-fou-ipproto-ipip.netdev
new file mode 100644
index 0000000000..b00d5ce588
--- /dev/null
+++ b/test/test-network/conf/25-fou-ipproto-ipip.netdev
@@ -0,0 +1,8 @@
+[NetDev]
+Name=fou99
+Kind=fou
+
+[FooOverUDP]
+Encapsulation=FooOverUDP
+Port=55555
+Protocol=ipip
diff --git a/test/test-network/conf/25-fou-sit.netdev b/test/test-network/conf/25-fou-sit.netdev
new file mode 100644
index 0000000000..f1b4f32574
--- /dev/null
+++ b/test/test-network/conf/25-fou-sit.netdev
@@ -0,0 +1,11 @@
+[NetDev]
+Name=sittun96
+Kind=sit
+
+[Tunnel]
+Local=10.65.223.238
+Remote=10.65.223.239
+Independent=true
+
+FooOverUDP=yes
+FOUDestinationPort=55555
diff --git a/test/test-network/systemd-networkd-tests.py b/test/test-network/systemd-networkd-tests.py
index 202ee7e2ca..a246379644 100755
--- a/test/test-network/systemd-networkd-tests.py
+++ b/test/test-network/systemd-networkd-tests.py
@@ -201,8 +201,10 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities):
'erspan98',
'erspan99',
'geneve99',
+ 'gretap96',
'gretap98',
'gretap99',
+ 'gretun96',
'gretun97',
'gretun98',
'gretun99',
@@ -214,6 +216,7 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities):
'ip6tnl97',
'ip6tnl98',
'ip6tnl99',
+ 'ipiptun96',
'ipiptun97',
'ipiptun98',
'ipiptun99',
@@ -221,6 +224,7 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities):
'isataptun99',
'macvlan99',
'macvtap99',
+ 'sittun96',
'sittun97',
'sittun98',
'sittun99',
@@ -257,6 +261,12 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities):
'25-bridge.netdev',
'25-erspan-tunnel-local-any.netdev',
'25-erspan-tunnel.netdev',
+ '25-fou-gretap.netdev',
+ '25-fou-gre.netdev',
+ '25-fou-ipip.netdev',
+ '25-fou-ipproto-gre.netdev',
+ '25-fou-ipproto-ipip.netdev',
+ '25-fou-sit.netdev',
'25-geneve.netdev',
'25-gretap-tunnel-local-any.netdev',
'25-gretap-tunnel.netdev',
@@ -786,6 +796,43 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities):
self.assertTrue(self.link_exits('ipiptun99'))
+ @expectedFailureIfModuleIsNotAvailable('fou')
+ def test_fou(self):
+ # The following redundant check is necessary for CentOS CI.
+ # Maybe, error handling in lookup_id() in sd-netlink/generic-netlink.c needs to be updated.
+ self.assertTrue(is_module_available('fou'))
+
+ self.copy_unit_to_networkd_unit_path('25-fou-ipproto-ipip.netdev', '25-fou-ipproto-gre.netdev',
+ '25-fou-ipip.netdev', '25-fou-sit.netdev',
+ '25-fou-gre.netdev', '25-fou-gretap.netdev')
+ self.start_networkd()
+
+ self.assertTrue(self.link_exits('ipiptun96'))
+ self.assertTrue(self.link_exits('sittun96'))
+ self.assertTrue(self.link_exits('gretun96'))
+ self.assertTrue(self.link_exits('gretap96'))
+
+ output = subprocess.check_output(['ip', 'fou', 'show']).rstrip().decode('utf-8')
+ print(output)
+ self.assertRegex(output, 'port 55555 ipproto 4')
+ self.assertRegex(output, 'port 55556 ipproto 47')
+
+ output = subprocess.check_output(['ip', '-d', 'link', 'show', 'ipiptun96']).rstrip().decode('utf-8')
+ print(output)
+ self.assertRegex(output, 'encap fou encap-sport auto encap-dport 55555')
+ output = subprocess.check_output(['ip', '-d', 'link', 'show', 'sittun96']).rstrip().decode('utf-8')
+ print(output)
+ self.assertRegex(output, 'encap fou encap-sport auto encap-dport 55555')
+ output = subprocess.check_output(['ip', '-d', 'link', 'show', 'gretun96']).rstrip().decode('utf-8')
+ print(output)
+ self.assertRegex(output, 'encap fou encap-sport 1001 encap-dport 55556')
+ output = subprocess.check_output(['ip', '-d', 'link', 'show', 'gretap96']).rstrip().decode('utf-8')
+ print(output)
+ self.assertRegex(output, 'encap fou encap-sport auto encap-dport 55556')
+
+ subprocess.call(['ip', 'fou', 'del', 'port', '55555'])
+ subprocess.call(['ip', 'fou', 'del', 'port', '55556'])
+
def test_vxlan(self):
self.copy_unit_to_networkd_unit_path('25-vxlan.netdev', 'vxlan.network', '11-dummy.netdev')
self.start_networkd()