示例#1
0
    def test_ports(self):
        """
        Simple validator for port methods.
        """
        from magma.pkt_tester.topology_builder import (
            TopologyBuilder,
            UseAfterFreeException,
        )
        self._topology_builder = TopologyBuilder()
        bridge = self._topology_builder.create_bridge(self.TEST_BRIDGE_NAME)

        ip_address = self.TEST_IP_PREFIX + "2"
        iface_name = self.TEST_INT_PREFIX + "0"

        port = self._topology_builder.bind(iface_name, bridge)
        self._topology_builder.create_interface(
            iface_name,
            ip_address,
            self.TEST_NETMASK,
        )

        self.assertEqual(port.bridge_name, self.TEST_BRIDGE_NAME)
        self.assertEqual(port.iface_name, iface_name)
        self.assertFalse(self._topology_builder.invalid_devices())
        # Verify that the port number read back is > 0.
        self.assertTrue(port.port_no >= 0)
        port.destroy(free_resource=False)
        self.assertRaises(UseAfterFreeException, port.destroy)
        self.assertRaises(UseAfterFreeException, port.sanity_check)

        # Cleanup
        self._topology_builder.destroy()
示例#2
0
    def test_iface(self):
        """
        Simple validator for iface methods
        """
        from magma.pkt_tester.topology_builder import (
            TopologyBuilder,
            UseAfterFreeException,
        )
        self._topology_builder = TopologyBuilder()
        ip_address = self.TEST_IP_PREFIX + "2"
        iface_name = self.TEST_INT_PREFIX + "0"
        bridge = self._topology_builder.create_bridge(self.TEST_BRIDGE_NAME)
        self._topology_builder.bind(iface_name, bridge)
        iface = self._topology_builder.create_interface(
            iface_name,
            ip_address,
            self.TEST_NETMASK,
        )
        self.assertEqual(iface.name, iface_name)
        self.assertEqual(iface.ip_address, ip_address)
        self.assertEqual(iface.netmask, self.TEST_NETMASK)

        iface.destroy()

        self.assertRaises(UseAfterFreeException, iface.up)
        self.assertRaises(UseAfterFreeException, iface.sanity_check)
示例#3
0
    def test_bridge(self):
        """
        Simple validator for bridge methods
        """
        from magma.pkt_tester.topology_builder import (
            TopologyBuilder,
            UseAfterFreeException,
        )
        self._topology_builder = TopologyBuilder()
        bridge = self._topology_builder.create_bridge(self.TEST_BRIDGE_NAME)

        self.assertEqual(bridge.name, self.TEST_BRIDGE_NAME)
        bridge.destroy()
        iface_name = self.TEST_INT_PREFIX + "0"
        self.assertRaises(
            UseAfterFreeException,
            bridge.add_virtual_port,
            iface_name,
            "internal",
        )
        self.assertRaises(
            UseAfterFreeException,
            bridge.add_physical_port,
            "eth0",
        )
        self.assertRaises(UseAfterFreeException, bridge.sanity_check)
示例#4
0
    def _generate_topology(self):
        # import here, after we've checked the environment
        from ovstest import util
        from magma.pkt_tester.topology_builder import TopologyBuilder

        self._topo_builder = TopologyBuilder()

        # set up a simple topology
        bridge = self._topo_builder.create_bridge(self.TEST_BRIDGE)
        self._port_no = {}
        for iface_name, ip_address in self.TEST_IPS.items():
            port = self._topo_builder.bind(iface_name, bridge)
            self._topo_builder.create_interface(iface_name, ip_address,
                                                self.TEST_NETMASK)
            self._port_no[iface_name] = port.port_no

        self.assertFalse(self._topo_builder.invalid_devices())
    def test_create_ovs_topology(self):
        """
        Creates a test topology with a test bridge and two interfaces with ip
        addresses assigned.
        """
        from magma.pkt_tester.topology_builder import TopologyBuilder

        self._topology_builder = TopologyBuilder()

        bridge = self._topology_builder.create_bridge(self.TEST_BRIDGE_NAME)
        for i in range(0, 2):
            ip_address = self.TEST_IP_PREFIX + str(i + 2)
            iface_name = self.TEST_INT_PREFIX + str(i)
            self._topology_builder.bind(iface_name, bridge)
            self._topology_builder.create_interface(iface_name, ip_address,
                                                    self.TEST_NETMASK)

        self.assertFalse(self._topology_builder.invalid_devices())