summaryrefslogtreecommitdiffstats
path: root/test/test_udp.py
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2018-06-10 14:41:23 -0700
committerMarco Varlese <marco.varlese@suse.de>2018-06-11 14:08:20 +0000
commit40903ac34f89d9e2ad775e98b7bcec5b7feb0207 (patch)
tree550a152e6a9359248ec50ffbeb0063b564bbcb48 /test/test_udp.py
parentd723161e038d00e59766aa67a6a0dcc350227e4b (diff)
udp: fix for multiple workers and add test
Since the main thread is not used for session polling anymore, when vpp is started with multiple wokers, allocate connections on the first. Also add a simple udp make test. Change-Id: Id869f5d89e0fced51048f0384fa86a5022258b7c Signed-off-by: Florin Coras <fcoras@cisco.com>
Diffstat (limited to 'test/test_udp.py')
-rw-r--r--test/test_udp.py74
1 files changed, 74 insertions, 0 deletions
diff --git a/test/test_udp.py b/test/test_udp.py
index 322d8133b0d..aabbbd3cdcf 100644
--- a/test/test_udp.py
+++ b/test/test_udp.py
@@ -223,5 +223,79 @@ class TestUdpEncap(VppTestCase):
self.validate_inner4(p, p_4omo4, ttl=63)
+class TestUDP(VppTestCase):
+ """ UDP Test Case """
+
+ @classmethod
+ def setUpClass(cls):
+ super(TestUDP, cls).setUpClass()
+
+ def setUp(self):
+ super(TestUDP, self).setUp()
+ self.vapi.session_enable_disable(is_enabled=1)
+ self.create_loopback_interfaces(range(2))
+
+ table_id = 0
+
+ for i in self.lo_interfaces:
+ i.admin_up()
+
+ if table_id != 0:
+ tbl = VppIpTable(self, table_id)
+ tbl.add_vpp_config()
+
+ i.set_table_ip4(table_id)
+ i.config_ip4()
+ table_id += 1
+
+ # Configure namespaces
+ self.vapi.app_namespace_add(namespace_id="0",
+ sw_if_index=self.loop0.sw_if_index)
+ self.vapi.app_namespace_add(namespace_id="1",
+ sw_if_index=self.loop1.sw_if_index)
+
+ def tearDown(self):
+ for i in self.lo_interfaces:
+ i.unconfig_ip4()
+ i.set_table_ip4(0)
+ i.admin_down()
+ self.vapi.session_enable_disable(is_enabled=0)
+ super(TestUDP, self).tearDown()
+
+ def test_udp_transfer(self):
+ """ UDP echo client/server transfer """
+
+ # Add inter-table routes
+ ip_t01 = VppIpRoute(self, self.loop1.local_ip4, 32,
+ [VppRoutePath("0.0.0.0",
+ 0xffffffff,
+ nh_table_id=1)])
+ ip_t10 = VppIpRoute(self, self.loop0.local_ip4, 32,
+ [VppRoutePath("0.0.0.0",
+ 0xffffffff,
+ nh_table_id=0)], table_id=1)
+ ip_t01.add_vpp_config()
+ ip_t10.add_vpp_config()
+
+ # Start builtin server and client
+ uri = "udp://" + self.loop0.local_ip4 + "/1234"
+ error = self.vapi.cli("test echo server appns 0 fifo-size 4 no-echo" +
+ "uri " + uri)
+ if error:
+ self.logger.critical(error)
+ self.assertEqual(error.find("failed"), -1)
+
+ error = self.vapi.cli("test echo client mbytes 10 appns 1 " +
+ "fifo-size 4 no-output test-bytes " +
+ "syn-timeout 2 no-return uri " + uri)
+ if error:
+ self.logger.critical(error)
+ self.assertEqual(error.find("failed"), -1)
+
+ # Delete inter-table routes
+ ip_t01.remove_vpp_config()
+ ip_t10.remove_vpp_config()
+
+
if __name__ == '__main__':
unittest.main(testRunner=VppTestRunner)