[libvirt] [PATCH v3 2/2] qemu: change macvtap device options in response to NIC_RX_FILTER_CHANGED
Michal Privoznik
mprivozn at redhat.com
Fri Jan 30 12:23:03 UTC 2015
On 22.01.2015 20:47, akrowiak at linux.vnet.ibm.com wrote:
> From: Tony Krowiak <akrowiak at linux.vnet.ibm.com>
>
> This patch enables synchronization of the host macvtap
> device options with the guest device's in response to the
> NIC_RX_FILTER_CHANGED event.
>
> The following device options will be synchronized:
> * PROMISC
> * MULTICAST
> * ALLMULTI
>
> Signed-off-by: Tony Krowiak <akrowiak at linux.vnet.ibm.com>
> ---
> No changes for v3
> src/qemu/qemu_driver.c | 92 ++++++++++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 92 insertions(+), 0 deletions(-)
>
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index bc6aae4..47c1b5e 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -4168,6 +4168,93 @@ syncNicRxFilterHostMulticast(char *ifname, virNetDevRxFilterPtr guestFilter,
>
>
> static void
> +syncNicRxFilterPromiscMode(char *ifname, virNetDevRxFilterPtr guestFilter,
> + virNetDevRxFilterPtr hostFilter)
Indentation's off.
> +{
> + bool promisc;
> + bool setpromisc = false;
> +
> + /* Set macvtap promisc mode to true if the guest has vlans defined */
> + /* or synchronize the macvtap promisc mode if different from guest */
> + if (guestFilter->vlan.nTable > 0) {
> + if (!hostFilter->promiscuous) {
> + setpromisc = true;
> + promisc = true;
> + }
> + } else if (hostFilter->promiscuous != guestFilter->promiscuous) {
> + setpromisc = true;
> + promisc = guestFilter->promiscuous;
> + }
> +
> + if (setpromisc) {
> + if (virNetDevSetPromiscuous(ifname, promisc) < 0) {
> + VIR_WARN("Couldn't set PROMISC flag to %s for device %s "
> + "while responding to NIC_RX_FILTER_CHANGED",
> + promisc ? "true" : "false", ifname);
> + }
> + }
> +}
> +
ACK with that fixed.
Michal
More information about the libvir-list
mailing list