def setup_listener_on_comp(self, port_id, filter): tap_device = utils.get_vif_name(constants.TAP_DEVICE_PREFIX, port_id) qvb_device = utils.get_vif_name(constants.QVB_DEVICE_PREFIX, port_id) qbr_device = utils.get_vif_name(constants.QBR_DEVICE_PREFIX, port_id) qvo_device = utils.get_vif_name(constants.QVO_DEVICE_PREFIX, port_id) vif_devices = [tap_device, qvb_device, qbr_device, qvo_device] return map(lambda vif: self.setup_listener(vif, filter), vif_devices)
def test_setup_listener_on_comp(self, setup_listener): port_id = '27a9a962-8049-48c3-b77f-0653f8ee34df' listeners = self.pcap_dri.setup_listener_on_comp(port_id, self.filter) tap_device = utils.get_vif_name(constants.TAP_DEVICE_PREFIX, port_id) qvb_device = utils.get_vif_name(constants.QVB_DEVICE_PREFIX, port_id) qbr_device = utils.get_vif_name(constants.QBR_DEVICE_PREFIX, port_id) qvo_device = utils.get_vif_name(constants.QVO_DEVICE_PREFIX, port_id) vif_devices = [tap_device, qvb_device, qbr_device, qvo_device] map(lambda vif: setup_listener.assert_any_call(vif, self.filter), vif_devices) self.assertEqual(len(listeners), 4)
def send_dhcp_over_qvb(self, port_id, port_mac): """Send DHCP Discovery over qvb device. """ qvb_device = utils.get_vif_name(constants.QVB_DEVICE_PREFIX, port_id) ethernet = scapy.Ether(dst='ff:ff:ff:ff:ff:ff', src=port_mac, type=0x800) ip = scapy.IP(src='0.0.0.0', dst='255.255.255.255') udp = scapy.UDP(sport=68, dport=67) port_mac_t = tuple(map(lambda x: int(x, 16), port_mac.split(':'))) hw = struct.pack('6B', *port_mac_t) bootp = scapy.BOOTP(chaddr=hw, flags=1) dhcp = scapy.DHCP(options=[("message-type", "discover"), "end"]) packet = ethernet / ip / udp / bootp / dhcp scapy.sendp(packet, iface=qvb_device)