tap: implement sw_interface_tap_v2_dump filtering by sw_if_index
[vpp.git] / test / test_tap.py
1 import unittest
2 import os
3
4 from framework import VppTestCase, VppTestRunner
5 from vpp_devices import VppTAPInterface
6
7
8 def check_tuntap_driver_access():
9     return os.access("/dev/net/tun", os.R_OK and os.W_OK)
10
11
12 @unittest.skip("Requires root")
13 class TestTAP(VppTestCase):
14     """ TAP Test Case """
15
16     def test_tap_add_del(self):
17         """Create TAP interface"""
18         tap0 = VppTAPInterface(self, tap_id=0)
19         tap0.add_vpp_config()
20         self.assertTrue(tap0.query_vpp_config())
21
22     def test_tap_dump(self):
23         """ Test api dump w/ and w/o sw_if_index filtering"""
24         MAX_INSTANCES = 10
25         tap_instances = []
26         for instance in range(MAX_INSTANCES):
27             i = VppTAPInterface(self, tap_id=instance)
28             i.add_vpp_config()
29             tap_instances.append(i)
30         details = self.vapi.sw_interface_tap_v2_dump()
31         self.assertEqual(MAX_INSTANCES, len(details))
32         details = self.vapi.sw_interface_tap_v2_dump(
33             tap_instances[5].sw_if_index)
34         self.assertEqual(1, len(details))
35
36
37 if __name__ == '__main__':
38     unittest.main(testRunner=VppTestRunner)