mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-08 05:55:19 +00:00
77780a29ed
This reverts commit2841e675
. It turns out that adding the host_mtu field to the PCI capabilities in the guest bumps the length of PCI capabilities beyond the 32 byte boundary, so the virtio-net device gets 64 bytes of ioport space instead of 32, which offsets the address of all the other following devices. Migration doesn't work very well when the location and length of PCI capabilities of devices is changed between source and destination. This means that we need to make sure that the absence/presence of host_mtu on the qemu commandline always matches between source and destination, which means that we need to make setting of host_mtu an opt-in thing (it can't happen automatically when the bridge being used has a non-default MTU, which is what commit2841e675
implemented). I do want to re-implement this feature with an <mtu auto='on'/> setting, but probably won't backport that to any stable branches, so I'm first reverting the original commit, and that revert can be pushed to the few releases that have been made since the original (3.1.0 - 3.3.0) Resolves: https://bugzilla.redhat.com/1449346
63 lines
2.3 KiB
C
63 lines
2.3 KiB
C
/*
|
|
* qemu_interface.h: QEMU interface management
|
|
*
|
|
* Copyright (C) 2014, 2016 Red Hat, Inc.
|
|
* Copyright IBM Corp. 2014
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library. If not, see
|
|
* <http://www.gnu.org/licenses/>.
|
|
*
|
|
* Authors:
|
|
* Matthew J. Rosato <mjrosato@linux.vnet.ibm.com>
|
|
*/
|
|
|
|
#ifndef __QEMU_INTERFACE_H__
|
|
# define __QEMU_INTERFACE_H__
|
|
|
|
# include "domain_conf.h"
|
|
# include "qemu_conf.h"
|
|
# include "qemu_domain.h"
|
|
|
|
int qemuInterfaceStartDevice(virDomainNetDefPtr net);
|
|
int qemuInterfaceStartDevices(virDomainDefPtr def);
|
|
int qemuInterfaceStopDevice(virDomainNetDefPtr net);
|
|
int qemuInterfaceStopDevices(virDomainDefPtr def);
|
|
|
|
int qemuInterfaceDirectConnect(virDomainDefPtr def,
|
|
virQEMUDriverPtr driver,
|
|
virDomainNetDefPtr net,
|
|
int *tapfd,
|
|
size_t tapfdSize,
|
|
virNetDevVPortProfileOp vmop);
|
|
|
|
int qemuInterfaceEthernetConnect(virDomainDefPtr def,
|
|
virQEMUDriverPtr driver,
|
|
virDomainNetDefPtr net,
|
|
int *tapfd,
|
|
size_t tapfdSize);
|
|
|
|
int qemuInterfaceBridgeConnect(virDomainDefPtr def,
|
|
virQEMUDriverPtr driver,
|
|
virDomainNetDefPtr net,
|
|
int *tapfd,
|
|
size_t *tapfdSize)
|
|
ATTRIBUTE_NONNULL(2);
|
|
|
|
int qemuInterfaceOpenVhostNet(virDomainDefPtr def,
|
|
virDomainNetDefPtr net,
|
|
virQEMUCapsPtr qemuCaps,
|
|
int *vhostfd,
|
|
size_t *vhostfdSize);
|
|
#endif /* __QEMU_INTERFACE_H__ */
|