コード例 #1
0
 def __init__(self, bridge, test_vlans, trunk_iface, event_queue_append):
     self._ovs_helper = OvsHelper()
     self._logger = get_logger('device_discovery')
     self._bridge = bridge
     self._test_vlans = test_vlans
     self._polling_timer = None
     self._fdb_snapshot = None
     self._trunk_iface = trunk_iface
     self._trunk_ofport = None
     self._event_queue_append = event_queue_append
コード例 #2
0
 def _create_netns_with_veth_pair(self, index):
     ovs = OvsHelper()
     iface1 = 'dev%s' % index
     iface2 = 'netns0'
     vnet = 'vnet%s' % index
     ovs.create_veth_pair(iface1, iface2)
     ovs._run_shell('sudo ip netns add %s' % vnet)
     ovs._run_shell('sudo ip link set %s netns %s' % (iface2, vnet))
     ovs._run_shell('sudo ip -n %s addr add 10.1.1.%s/24 dev %s' %
                    (vnet, index, iface2))
     ovs._run_shell('sudo ip -n %s link set %s up' % (vnet, iface2))
コード例 #3
0
 def __init__(self, target, tunnel_ip, ovs_bridge):
     self._logger = get_logger('daqclient')
     self._logger.info('Using target %s', target)
     self._channel = grpc.insecure_channel(target)
     self._stub = None
     self._mac_sessions = {}
     self._lock = threading.Lock()
     self._tunnel_ip = tunnel_ip
     self._endpoint_handler = OvsHelper()
     self._ovs_bridge = ovs_bridge
     # Assigned VLAN is always set to 0 for non-FOT DAQ Client
     self._assigned_vlan = 0
コード例 #4
0
    def setup(self):
        """Setup device coupler"""
        self._ovs_helper = OvsHelper()

        self._network_helper = NetworkHelper(self._trunk_iface,
                                             self._OVS_BRIDGE,
                                             self._test_vlans)
        self._network_helper.setup()

        self._event_queue = Queue()
        self._workers_executor = ThreadPoolExecutor(
            max_workers=self._WORKER_COUNT)
        self._device_discovery = DeviceDiscovery(self._OVS_BRIDGE,
                                                 self._test_vlans,
                                                 self._trunk_iface,
                                                 self.add_event_to_queue)

        self._source_ip = self._ovs_helper.get_interface_ip()
        target_str = '%s:%s' % (self._daq_grpc_ip, self._daq_grpc_port)
        self._daq_client = DAQClient(target_str, self._source_ip,
                                     self._OVS_BRIDGE)
コード例 #5
0
 def test_ovs_bridge_vlan(self):
     """Test adding interfaces to OVS bridge with VLANs"""
     ovs = OvsHelper()
     bridge = 'test_br'
     ovs.delete_ovs_bridge(bridge)
     ovs.create_ovs_bridge(bridge)
     for index in range(1, 5):
         self._create_netns_with_veth_pair(index)
         iface = 'dev%s' % index
         tag = 200 + index % 2
         ovs.add_iface_to_bridge(bridge, iface)
         ovs.set_native_vlan(iface, tag)
     retcode, _, _ = ovs._run_shell_no_raise(
         'sudo ip netns exec vnet1 ping -c 3 10.1.1.3')
     self.assertEqual(retcode, 0)
     retcode, _, _ = ovs._run_shell_no_raise(
         'sudo ip netns exec vnet1 ping -c 3 10.1.1.4')
     self.assertEqual(retcode, 1)
     for index in range(1, 5):
         vnet = 'vnet%s' % index
         self._delete_netns(vnet)
     ovs.delete_ovs_bridge(bridge)
コード例 #6
0
ファイル: network_helper.py プロジェクト: faucetsdn/daq
 def __init__(self, trunk_iface, bridge, test_vlans):
     self._ovs_helper = OvsHelper()
     self._logger = get_logger('networkhelper')
     self._trunk_iface = trunk_iface
     self._bridge = bridge
     self._test_vlans = list(range(test_vlans[0], test_vlans[1] + 1))
コード例 #7
0
 def _delete_netns(self, vnet):
     ovs = OvsHelper()
     ovs._run_shell('sudo ip netns del %s' % vnet)