On Jan 27, 2012, at 2:55 PM, Laine Stump wrote: > On 01/27/2012 02:22 PM, kmestery wrote: >> Hi Dan: >> >> We at Cisco have been looking at this as well, and in fact were going to >> propose some things in this area as well. Our proposal (which frankly just >> builds on top of what you have): >> >> The proposal at hand is to add some libvirt configuration as follows: >> >> <network> >> <name>ovs-network</name> >> <forward mode='ovs' dev='br0'> > > Nice! > > It might be good to settle on a common nomenclature for openvswitch between > the network code and interface code. I think I might lean more towards your > "openvswitch" than Dan's "ovs", just because it's immediately more obvious to > someone who doesn't know what they're looking for. > I agree, using openvswitch makes sense and is more obvious.
> Rather than using the dev attribute, I think it would be more appropriate to > use the separate <bridge name='xxx' > > > <bridge name='br0'/> > > The dev attribute currently has two uses (depending on forward mode) - 1) for > virtual networks it indicates which device must be used for all traffic from > this network as an egress from the host, and 2) for macvtap modes, it > indicates both which interface the guest should connect to, AND which device > to use for egress from the host (since both are the same). > > As far as I understand it, the openvswitch model is more like our bridge > mode, where <bridge name='xx'/> is used to indicate which device the guest's > tap interfaces should connect to. > > > One advantage of this other than consistency, is that this way a management > application that didn't understand the ovs forwarding mode would still > properly understand that guests using this network would have their > interfaces connected to br0. > This all makes sense, thanks for the detailed explanation Laine! > Alternately, since the openvswitch is presumably equivalent to a bridge, you > could follow the method networks that use host bridges and macvtap in > "bridge" mode - they both use <forward mode='bridge'>, but are differentiated > by whether or not they have a <bridge name='xxx'/> element, or a dev='xx' > attribute. Possibly the forward mode would still be bridge, and a separate > "<openvswitch name='br0'/> (or something like that) could be used, or maybe > mode could remain "bridge", and the <bridge> element could get a new > attribute, e.g.: > > <bridge name='br0' type='openvswitch'/> > > Actually I think I like this best, because someone looking at the reduced set > of attributes would still get all the useful info they needed: 1) it is a > bridged connection to the rest of the network (rather than routed) and 2) the > device used is br0. > This makes sense. > >> <script path='/etc/qemu-ifup-ovs'/> > > What do you need the script for? ifup scripts bring up security questions, > are currently only permitted with qemu domains for "generic ethernet" > interfaces (which are really there just as a way to make *something* work > when one of the existing supported types doesn't work), and result in the > domain being marked as "tainted". > > The preferred method is to put whatever functionality is needed directly into > libvirt. > Agreed, we can remove this and add the functionality needed into libvirt. >> </forward> >> </network> >> >> This would setup the OVS network entity, and sets up a forwarding mode of >> "ovs", which indicates Open vSwitch is used to forward traffic. >> >> <interface type='network'> >> <source network='ovs-network'/> >> <virtualport type='openvswitch'> >> <parameters interfaceid="interface-xyz"/> >> </virtualport> > > I like this re-used of virtualport, rather than defining a new element. > >> </interface> >> >> This model of exposing parameters to virtualport types allows for further >> expansion as new interface types and parameters are added. >> >> Thoughts? > > Uh, "how about some patches?" :-) This all seems to be coming together rather > nicely. Lets see what Dan says. I can rework his patch to accommodate the above if he is ok with it. Thanks! Kyle -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list