[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [RFC PATCH 0/4] Model specific function for nic announc
Michael S. Tsirkin
[Qemu-devel] Re: [RFC PATCH 0/4] Model specific function for nic announcement
Mon, 27 Sep 2010 16:25:13 +0200
On Mon, Sep 27, 2010 at 08:50:44PM +0800, Jason Wang wrote:
> This series of patch tries to solve the problem of migration with nics who
> multiple mac addresses or vlans. Qemu currently only send gratuitous packet
> first mac address, so after migration other mac addresses or vlans were
> The information of mac addresses and vlans were often stored in model specific
> structure, so a model specific function were introduced and used after
> migration during self announcement. A sample announcing function for
> is also implemented in this series. Other model could be also done in this
> way. The previous method is kept for the model who does not implement model
> specific function.
> While there's still issues which need your comments and need to be solved.
> 1 Virtio specification allows filtering any number of destination mac
> which looks impossible for the migration. Then we need to record an
> numbers of mac address which is not safe.
> 2 Virtio specification allows filtering of vlan and mac address but neither
> spec nor the implementation could decide the mappings between vlans and mac
> addresses. This could make it impossible to send correct tagged gratuitous
> For issue 1, the number of mac addresses were limited in this series.
> For issue 2, I suspect it needs the modification of guest drivers to send the
> mappings in order to make migration work. Or is there any method to get this
> without touching guest drivers? For safety, all the mac addresses were only
> announced when there's no vlan in guest which means the vlan after migration
> still broken.
> This patchset is just an RFC and need your suggestions and comments.
For 1, all guests actually do is on error status is print
a warning. This does not sound all that useful, does it?
I note that we also have a similar issue with promisc mode.
For 2, we could at least make it work for a common case of 1 mac,
which would already cover many users.
> Jason Wang (4):
> net: move announce_self_create to net.c
> net: Introduce model specific nic announce function
> virtio-net: Limit the num of uni/multicast mac addresses
> virtio-net: implement virtio-net specific announce function
> hw/virtio-net.c | 47 ++++++++++++++++++++++++++++++++++++++++++-----
> net.c | 31 +++++++++++++++++++++++++++++++
> net.h | 3 +++
> savevm.c | 42 ++++++++----------------------------------
> 4 files changed, 84 insertions(+), 39 deletions(-)
> Jason Wang