On Mon, Jun 4, 2012 at 6:29 AM, <zwu.ker...@gmail.com> wrote: > From: Stefan Hajnoczi <stefa...@linux.vnet.ibm.com> > > The vlan feature is implemented using hubs and no longer uses > special-purpose VLANState structs that are accessible as qdev > properties. > > Signed-off-by: Stefan Hajnoczi <stefa...@linux.vnet.ibm.com> > Signed-off-by: Zhi Yong Wu <wu...@linux.vnet.ibm.com> > --- > hw/qdev-properties.c | 72 > -------------------------------------------------- > hw/qdev.c | 2 - > hw/qdev.h | 4 --- > net.h | 3 -- > 4 files changed, 0 insertions(+), 81 deletions(-)
This commit looks suspicious because it removes a user-visible qdev property but we're trying to preserve backward compatibility. This command-line will break: x86_64-softmmu/qemu-system-x86_64 -net user,vlan=1 -device virtio-net-pci,vlan=1 Instead of dropping the qdev_prop_vlan completely the hw/qdev-properties.c code needs to call net/hub.h external functions to implement equivalent functionality: 1. Setting the vlan=<id> property looks up the hub port and assigns the NICConf->peer field. 2. Getting the vlan property looks up the hub id (i.e. vlan id) given the peer. If the peer is not a hub port the result is -1. When I wrote this patch I missed the big picture and forgot about backwards compatibility :(. Do you feel comfortable rewriting this commit? Stefan