|
|
6d3351 |
From 7fadd91380ce1000f3aa5b6e5c4b928f883fbb33 Mon Sep 17 00:00:00 2001
|
|
|
6d3351 |
Message-Id: <7fadd91380ce1000f3aa5b6e5c4b928f883fbb33@dist-git>
|
|
|
6d3351 |
From: Martin Kletzander <mkletzan@redhat.com>
|
|
|
6d3351 |
Date: Tue, 25 Apr 2017 13:41:17 +0200
|
|
|
6d3351 |
Subject: [PATCH] Set coalesce settings for domain interfaces
|
|
|
6d3351 |
|
|
|
6d3351 |
This patch makes use of the virNetDevSetCoalesce() function to make
|
|
|
6d3351 |
appropriate settings effective for devices that support them.
|
|
|
6d3351 |
|
|
|
6d3351 |
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1414627
|
|
|
6d3351 |
|
|
|
6d3351 |
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
|
|
|
6d3351 |
(cherry picked from commit fcef44728dff9cb708d00d17f5e0b44aa513f27b)
|
|
|
6d3351 |
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
|
|
|
6d3351 |
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
|
|
6d3351 |
---
|
|
|
6d3351 |
src/bhyve/bhyve_command.c | 2 +-
|
|
|
6d3351 |
src/network/bridge_driver.c | 2 +-
|
|
|
6d3351 |
src/qemu/qemu_interface.c | 2 +-
|
|
|
6d3351 |
src/uml/uml_conf.c | 2 +-
|
|
|
6d3351 |
src/util/virnetdevtap.c | 5 +++++
|
|
|
6d3351 |
src/util/virnetdevtap.h | 2 ++
|
|
|
6d3351 |
tests/bhyvexml2argvmock.c | 1 +
|
|
|
6d3351 |
7 files changed, 12 insertions(+), 4 deletions(-)
|
|
|
6d3351 |
|
|
|
6d3351 |
diff --git a/src/bhyve/bhyve_command.c b/src/bhyve/bhyve_command.c
|
|
|
6d3351 |
index e0528ed77..e9c072b9f 100644
|
|
|
6d3351 |
--- a/src/bhyve/bhyve_command.c
|
|
|
6d3351 |
+++ b/src/bhyve/bhyve_command.c
|
|
|
6d3351 |
@@ -100,7 +100,7 @@ bhyveBuildNetArgStr(virConnectPtr conn,
|
|
|
6d3351 |
def->uuid, NULL, NULL, 0,
|
|
|
6d3351 |
virDomainNetGetActualVirtPortProfile(net),
|
|
|
6d3351 |
virDomainNetGetActualVlan(net),
|
|
|
6d3351 |
- 0, NULL,
|
|
|
6d3351 |
+ NULL, 0, NULL,
|
|
|
6d3351 |
VIR_NETDEV_TAP_CREATE_IFUP | VIR_NETDEV_TAP_CREATE_PERSIST) < 0) {
|
|
|
6d3351 |
goto cleanup;
|
|
|
6d3351 |
}
|
|
|
6d3351 |
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
|
|
|
6d3351 |
index 41bce794a..b0026ab17 100644
|
|
|
6d3351 |
--- a/src/network/bridge_driver.c
|
|
|
6d3351 |
+++ b/src/network/bridge_driver.c
|
|
|
6d3351 |
@@ -2315,7 +2315,7 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr driver,
|
|
|
6d3351 |
if (virNetDevTapCreateInBridgePort(network->def->bridge,
|
|
|
6d3351 |
&macTapIfName, &network->def->mac,
|
|
|
6d3351 |
NULL, NULL, &tapfd, 1, NULL, NULL,
|
|
|
6d3351 |
- network->def->mtu, NULL,
|
|
|
6d3351 |
+ NULL, network->def->mtu, NULL,
|
|
|
6d3351 |
VIR_NETDEV_TAP_CREATE_USE_MAC_FOR_BRIDGE |
|
|
|
6d3351 |
VIR_NETDEV_TAP_CREATE_IFUP |
|
|
|
6d3351 |
VIR_NETDEV_TAP_CREATE_PERSIST) < 0) {
|
|
|
6d3351 |
diff --git a/src/qemu/qemu_interface.c b/src/qemu/qemu_interface.c
|
|
|
6d3351 |
index c5dca60f1..2057ac929 100644
|
|
|
6d3351 |
--- a/src/qemu/qemu_interface.c
|
|
|
6d3351 |
+++ b/src/qemu/qemu_interface.c
|
|
|
6d3351 |
@@ -545,7 +545,7 @@ qemuInterfaceBridgeConnect(virDomainDefPtr def,
|
|
|
6d3351 |
def->uuid, tunpath, tapfd, *tapfdSize,
|
|
|
6d3351 |
virDomainNetGetActualVirtPortProfile(net),
|
|
|
6d3351 |
virDomainNetGetActualVlan(net),
|
|
|
6d3351 |
- net->mtu, mtu,
|
|
|
6d3351 |
+ net->coalesce, net->mtu, mtu,
|
|
|
6d3351 |
tap_create_flags) < 0) {
|
|
|
6d3351 |
virDomainAuditNetDevice(def, net, tunpath, false);
|
|
|
6d3351 |
goto cleanup;
|
|
|
6d3351 |
diff --git a/src/uml/uml_conf.c b/src/uml/uml_conf.c
|
|
|
6d3351 |
index 871653c5a..bdef78324 100644
|
|
|
6d3351 |
--- a/src/uml/uml_conf.c
|
|
|
6d3351 |
+++ b/src/uml/uml_conf.c
|
|
|
6d3351 |
@@ -125,7 +125,7 @@ umlConnectTapDevice(virDomainDefPtr vm,
|
|
|
6d3351 |
vm->uuid, net->backend.tap, &tapfd, 1,
|
|
|
6d3351 |
virDomainNetGetActualVirtPortProfile(net),
|
|
|
6d3351 |
virDomainNetGetActualVlan(net),
|
|
|
6d3351 |
- 0, NULL,
|
|
|
6d3351 |
+ NULL, 0, NULL,
|
|
|
6d3351 |
VIR_NETDEV_TAP_CREATE_IFUP |
|
|
|
6d3351 |
VIR_NETDEV_TAP_CREATE_PERSIST) < 0) {
|
|
|
6d3351 |
if (template_ifname)
|
|
|
6d3351 |
diff --git a/src/util/virnetdevtap.c b/src/util/virnetdevtap.c
|
|
|
6d3351 |
index 93002b929..c8dacfe27 100644
|
|
|
6d3351 |
--- a/src/util/virnetdevtap.c
|
|
|
6d3351 |
+++ b/src/util/virnetdevtap.c
|
|
|
6d3351 |
@@ -584,6 +584,7 @@ virNetDevTapAttachBridge(const char *tapname,
|
|
|
6d3351 |
* @tapfd: array of file descriptor return value for the new tap device
|
|
|
6d3351 |
* @tapfdSize: number of file descriptors in @tapfd
|
|
|
6d3351 |
* @virtPortProfile: bridge/port specific configuration
|
|
|
6d3351 |
+ * @coalesce: optional coalesce parameters
|
|
|
6d3351 |
* @mtu: requested MTU for port (or 0 for "default")
|
|
|
6d3351 |
* @actualMTU: MTU actually set for port (after accounting for bridge's MTU)
|
|
|
6d3351 |
* @flags: OR of virNetDevTapCreateFlags:
|
|
|
6d3351 |
@@ -616,6 +617,7 @@ int virNetDevTapCreateInBridgePort(const char *brname,
|
|
|
6d3351 |
size_t tapfdSize,
|
|
|
6d3351 |
virNetDevVPortProfilePtr virtPortProfile,
|
|
|
6d3351 |
virNetDevVlanPtr virtVlan,
|
|
|
6d3351 |
+ virNetDevCoalescePtr coalesce,
|
|
|
6d3351 |
unsigned int mtu,
|
|
|
6d3351 |
unsigned int *actualMTU,
|
|
|
6d3351 |
unsigned int flags)
|
|
|
6d3351 |
@@ -661,6 +663,9 @@ int virNetDevTapCreateInBridgePort(const char *brname,
|
|
|
6d3351 |
if (virNetDevSetOnline(*ifname, !!(flags & VIR_NETDEV_TAP_CREATE_IFUP)) < 0)
|
|
|
6d3351 |
goto error;
|
|
|
6d3351 |
|
|
|
6d3351 |
+ if (virNetDevSetCoalesce(*ifname, coalesce) < 0)
|
|
|
6d3351 |
+ goto error;
|
|
|
6d3351 |
+
|
|
|
6d3351 |
return 0;
|
|
|
6d3351 |
|
|
|
6d3351 |
error:
|
|
|
6d3351 |
diff --git a/src/util/virnetdevtap.h b/src/util/virnetdevtap.h
|
|
|
6d3351 |
index 6bb3b8891..bd5ec14d4 100644
|
|
|
6d3351 |
--- a/src/util/virnetdevtap.h
|
|
|
6d3351 |
+++ b/src/util/virnetdevtap.h
|
|
|
6d3351 |
@@ -24,6 +24,7 @@
|
|
|
6d3351 |
# define __VIR_NETDEV_TAP_H__
|
|
|
6d3351 |
|
|
|
6d3351 |
# include "internal.h"
|
|
|
6d3351 |
+# include "virnetdev.h"
|
|
|
6d3351 |
# include "virnetdevvportprofile.h"
|
|
|
6d3351 |
# include "virnetdevvlan.h"
|
|
|
6d3351 |
|
|
|
6d3351 |
@@ -83,6 +84,7 @@ int virNetDevTapCreateInBridgePort(const char *brname,
|
|
|
6d3351 |
size_t tapfdSize,
|
|
|
6d3351 |
virNetDevVPortProfilePtr virtPortProfile,
|
|
|
6d3351 |
virNetDevVlanPtr virtVlan,
|
|
|
6d3351 |
+ virNetDevCoalescePtr coalesce,
|
|
|
6d3351 |
unsigned int mtu,
|
|
|
6d3351 |
unsigned int *actualMTU,
|
|
|
6d3351 |
unsigned int flags)
|
|
|
6d3351 |
diff --git a/tests/bhyvexml2argvmock.c b/tests/bhyvexml2argvmock.c
|
|
|
6d3351 |
index fd714694f..7afa0e34c 100644
|
|
|
6d3351 |
--- a/tests/bhyvexml2argvmock.c
|
|
|
6d3351 |
+++ b/tests/bhyvexml2argvmock.c
|
|
|
6d3351 |
@@ -28,6 +28,7 @@ int virNetDevTapCreateInBridgePort(const char *brname ATTRIBUTE_UNUSED,
|
|
|
6d3351 |
size_t tapfdSize ATTRIBUTE_UNUSED,
|
|
|
6d3351 |
virNetDevVPortProfilePtr virtPortProfile ATTRIBUTE_UNUSED,
|
|
|
6d3351 |
virNetDevVlanPtr virtVlan ATTRIBUTE_UNUSED,
|
|
|
6d3351 |
+ virNetDevCoalescePtr coalesce ATTRIBUTE_UNUSED,
|
|
|
6d3351 |
unsigned int mtu ATTRIBUTE_UNUSED,
|
|
|
6d3351 |
unsigned int *actualMTU ATTRIBUTE_UNUSED,
|
|
|
6d3351 |
unsigned int fakeflags ATTRIBUTE_UNUSED)
|
|
|
6d3351 |
--
|
|
|
6d3351 |
2.12.2
|
|
|
6d3351 |
|