-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/16461/#review34391
-----------------------------------------------------------


Reminder -
Hi,
This review has been pending for long. Request the reviewers to please provide 
the comments.
Thanks!

- Amogh Vasekar


On Dec. 25, 2013, 3:47 a.m., Howie YU wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/16461/
> -----------------------------------------------------------
> 
> (Updated Dec. 25, 2013, 3:47 a.m.)
> 
> 
> Review request for cloudstack, Wei Zhou and Wido den Hollander.
> 
> 
> Bugs: CLOUDSTACK-5642
>     https://issues.apache.org/jira/browse/CLOUDSTACK-5642
> 
> 
> Repository: cloudstack-git
> 
> 
> Description
> -------
> 
> Libvirt supports direct attachment of the guest VM's network to a physical 
> interface.
> But I found the following code may cause some problem, when the nic interface 
> type is direct
> If type is direct , then this nic will be ignore.
> 
>                 String type = nic.getAttribute("type");
>                 String mac = getAttrValue("mac", "address", nic);
>                 String dev = getAttrValue("target", "dev", nic);
>                 String model = getAttrValue("model", "type", nic);
>                 InterfaceDef def = new InterfaceDef();
>                 NodeList bandwidth = nic.getElementsByTagName("bandwidth");
>                 Integer networkRateKBps = 0;
>                 if ((bandwidth != null) && (bandwidth.getLength() != 0)) {
>                     Integer inbound = Integer.valueOf(getAttrValue("inbound", 
> "average", (Element)bandwidth.item(0)));
>                     Integer outbound = 
> Integer.valueOf(getAttrValue("outbound", "average", 
> (Element)bandwidth.item(0)));
>                     if (inbound == outbound)
>                         networkRateKBps = inbound;
>                 }
>                 if (type.equalsIgnoreCase("network")) {
>                     String network = getAttrValue("source", "network", nic);
>                     def.defPrivateNet(network, dev, mac, 
> nicModel.valueOf(model.toUpperCase()), networkRateKBps);
>                 } else if (type.equalsIgnoreCase("bridge")) {
>                     String bridge = getAttrValue("source", "bridge", nic);
>                     def.defBridgeNet(bridge, dev, mac, 
> nicModel.valueOf(model.toUpperCase()), networkRateKBps);
>                 } else if (type.equalsIgnoreCase("ethernet")) {
>                     String scriptPath = getAttrValue("script", "path", nic);
>                     def.defEthernet(dev, mac, 
> nicModel.valueOf(model.toUpperCase()), scriptPath, networkRateKBps);
>                 }
>                 interfaces.add(def); 
> 
> 
> Diffs
> -----
> 
>   
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtDomainXMLParser.java
>  127f648 
>   
> plugins/hypervisors/kvm/test/com/cloud/hypervisor/kvm/resource/LibvirtDomainXMLParserTest.java
>  PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/16461/diff/
> 
> 
> Testing
> -------
> 
> I add a unit test LibvirtDomainXMLParserTest in test directory , and add a 
> direct nic type domain xml for test
> 
> <domain type='kvm' id='10'>
> <name>ubuntu</name>
>  <uuid>77919cf3-b2a7-994f-5f3c-0a91fb9bcbe8</uuid>
> <memory unit='KiB'>1048576</memory>
>   <currentMemory unit='KiB'>1048576</currentMemory>
> <vcpu placement='static'>1</vcpu>
> <os>
> <type arch='x86_64' machine='rhel6.4.0'>hvm</type>
>  <boot dev='hd'/>
>  </os> <features>
>    <acpi/>
>    <apic/>
>   <pae/>
>  </features>
>  <clock offset='utc'/>
>  <on_poweroff>destroy</on_poweroff>
>   <on_reboot>restart</on_reboot>
>  <on_crash>restart</on_crash>
>  <devices>
>  <emulator>/usr/libexec/qemu-kvm</emulator>
> <disk type='file' device='disk'>
>   <driver name='qemu' type='qcow2' cache='none'/>
>  <source file='/var/lib/libvirt/images/ubuntu-vm.qcow2'/>
>  <target dev='hdb' bus='ide'/>
>   <alias name='ide0-0-1'/>
>   <address type='drive' controller='0' bus='0' target='0' unit='1'/>
> </disk>
>  <controller type='usb' index='0'>
>   <alias name='usb0'/>
>  <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
> </controller>
> <controller type='ide' index='0'>
>   <alias name='ide0'/>
>  <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
> </controller>
> <interface type='direct'>
>  <mac address='52:54:00:e1:82:a0'/>
> <source dev='eth0' mode='vepa'/>
>  <target dev='macvtap0'/>
>  <alias name='net0'/>
>  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
>  </interface>
> <serial type='pty'>
> <source path='/dev/pts/4'/>
>  <target port='0'/>
>  <alias name='serial0'/>
> </serial>
> <console type='pty' tty='/dev/pts/4'>
>   <source path='/dev/pts/4'/>
>   <target type='serial' port='0'/>
>   <alias name='serial0'/>
> </console>
> <input type='mouse' bus='ps2'/>
> <graphics type='vnc' port='5901' autoport='yes' listen='127.0.0.1'>
>   <listen type='address' address='127.0.0.1'/>
> </graphics>
> <sound model='ich6'>
>   <alias name='sound0'/>
>   <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
> </sound>
>  <video>
>   <model type='cirrus' vram='9216' heads='1'/>
>   <alias name='video0'/>
>   <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
>  </video>
>  <memballoon model='virtio'>
> <alias name='balloon0'/>
>  <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
>  </memballoon>
> </devices>
>  <seclabel type='none'/>
>  </domain>
> 
> 
> Thanks,
> 
> Howie YU
> 
>

Reply via email to