Hi,
Here are some updates on this work:
It is common that user want to set up backend device for a virtual
interface over a VLAN. So, one more option is added, '--vlanid', to
specify the VLAN ID user want to attach to the backend device supporting
this virtual interface. So that the shell script responsible for setting
up the backend device can do all the configuration for user.
It was pointed out that 'bandwidth control' is not a clear statement. We
can only support setting upper limit of the bandwidth for a virtual
interface for now. We are not able to reserve a specific bandwidth for
it. So, the name of the new option for 'virsh attach-interface' is
changed from '--rate' to '--capped-bandwidth' to remove the ambiguity
and leave room for reserved bandwidth in the future.
Based on the above changes, the XML format changed from my previous
proposal:
<interface type='bridge'>
<source bridge='e1000g1'/>
<flowcontrol>
<rate unit='megabit' period='second' value='100'/>
</flowcontrol>
</interface>
to something looks like below:
<interface type='bridge'>
<source bridge='e1000g1'/>
<networkresource>
<capped-bandwidth unit='megabit' period='second'
value='100'/>
</networkresource>
<vlan id='1'/>
</interface>
Note that we also change the element name from 'flowcontrol' to
'networkresource' so that we can add more QoS related (not just related
to bandwidth) parameters into this element in the future, if needed.
There are also changes in virt-install command line options.
Like '--disk' option, I also grouped network related optioins into
properties of -w/--network option. So, instead of adding
'--capped-bandwidth' and '--vlanid' options, I choose to add two
properties for -w/--network option. Now, we have:
# virt-install ... --network
bridge=eth0,vlanid=2,mac=aa:0:1:2:3:4,capped-bandwidth=200M. Old style
of syntax is still supported, but should be obsoleted.
Any comment?
Thanks,
Max