On 09/30/2014 11:54 AM, Tony Krowiak wrote: > On 09/24/2014 05:50 AM, Laine Stump wrote: >> NIC_RX_FILTER_CHANGED is sent by qemu any time a NIC driver in the >> guest modified the NIC's RX Filter (for example, if the MAC address of >> the NIC is changed by the guest). >> >> This patch doesn't do anything useful with that event; it just sets up >> all the plumbing to get news of the event into a worker thread with >> all proper locking/reference counting, and provide an easy place to >> add in desired functionality. >> >> For easy reference the next time a handler for a qemu event is >> written, here is the sequence: > I assume you mean qemu_monitor_json.c >> The handler in qemu_json_monitor.c calls Yes. >> >> >> + if (virDomainDefFindDevice(vm->def, devAlias, &dev, true) < 0) { >> + VIR_WARN("NIC_RX_FILTER_CHANGED event received for " >> + "non-existent device %s in domain %s", >> + devAlias, vm->def->name); >> + goto endjob; >> + } >> + if (dev.type != VIR_DOMAIN_DEVICE_NET) { >> + VIR_WARN("NIC_RX_FILTER_CHANGED event received for " >> + "non-network device %s in domain %s", >> + devAlias, vm->def->name); >> + goto endjob; >> + } > I understand the need to check the device type, but is it necessary to > log a warning message? I wonder if it may not cause unnecessary > concern for someone viewing the logs. Is it possible to receive a > NIC_RX_FILTER_CHANGED event for something other than a network device? As far as I know this event should never be issued for any device that isn't a net device. If this was happening, it would mean that either qemu or libvirt had messed up somewhere, and could be an indicator of larger problems. > >> + >> + >> +static void >> +qemuMonitorJSONHandleNicRxFilterChanged(qemuMonitorPtr mon, >> virJSONValuePtr data) >> +{ >> + const char *name; >> + >> + if (!(name = virJSONValueObjectGetString(data, "name"))) { >> + VIR_WARN("missing device in NIC_RX_FILTER_CHANGED event"); >> + return; >> + } > The device path is also sent with the event. It may be that data > element is useless with regard to subsequent NIC_RX_FILTER_CHANGED > event handling but, for my edification, I am curious as to why you > ignored it. Because we don't use it in libvirt. We only use the alias (aka "name") -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list