Stefan Hajnoczi <stefa...@redhat.com> writes: > On Tue, Feb 19, 2013 at 09:16:56PM +0100, Laszlo Ersek wrote: >> On 02/19/13 18:50, Markus Armbruster wrote: >> >> > Your example uses -net to connect additional backends to the hubport. >> > If I understand you correctly, you can't use -netdev to do that. >> > Ignorant question: fundamental reason or just not implemented? >> In order to take a stab at your question at last: >> - the two (parallel, opposing) links created in (3) connect two backends, >> - "-netdev" does not set the peer link in the backend, so you cannot use >> that, >> - "-device" *would* set the links in both directions, but it's for >> creating frontends. >> >> IOW (3) is unique because it links backend to backend. > > Right. -netdev doesn't allow you to specify a peer, only NICs (-device) > do that. > > This means there is no way to hook up -netdev dump with -netdev hubport, > they are both -netdevs :(. > > This is why I said it's just playing games with syntax. I don't think > it buys us anything in the end.
-netdev doesn't let you connect to anything, because it's designed for use with -device, which wants to do the connecting, and wants the connection to be 1:1. And that's fine. Since we rather twist ourselves into knots than dropping a misfeature, we also have "vlans". Here's how the two things are related (correct me if I get it wrong). "Vlan" is older than netdev, so when netdev came around, it got shoehorned into the existing code. Last year, Stefan cleaned that up so that netdevs are the normal case, and "vlans" are implemented as special netdev "hubport". Really nice code improvement, because now the misfeature sits off the side rather than all over the place, complicating things. Trouble is the user interface is as confusing as ever. Worse, in a way, because we now have to explain how "vlan" and the hubport netdev relate. Permit me a brief rant. Have you read the manual page on -netdev and -net recently? Have you tried to explain setting up QEMU networking to a neophyte? Were you able to keep a straight face? If yes, congrats, you got a great future ahead of you. We have so many ways to do the same thing, complicating our docs enormously. Just one of them makes sense for almost all uses, but I doubt mortal users could guess which one just from the docs. Can we do for the docs what Stefan did for the code, i.e. get "vlans" out of the way? Specifically, what's missing to let us deprecate -net completely?