----- Original Message ----- > Now I working on a new KVM management tool base on html5 and libvirt > > we will support a REST API for detach and attach guest interface. > > we want to use mac as the identifier of the network interface. > > That meas we should get the mac after the user create a interface. > also other people may be doing the exact same thing at the exact same > time to create a interface. > > > Here are the demo codes: > > dom = self._get_vm(vm) > xml = """ > <interface type='network'> > <source network='default'/> > </interface> > """ This interface xml is partial, and it is not recommended according to 'man virsh': " Note: using of partial device definition XML files may lead to unexpected results as some fields may be autogenerated and thus match devices other than expected. " And there is a way to find out the mac address specified by libvirt, we can check /var/lib/libvirt/dnsmasq/default.leases, newer one is on top # cat /var/lib/libvirt/dnsmasq/default.leases 1390549166 52:54:00:ea:9f:58 192.168.122.106 * * 1390547957 52:54:00:9d:43:38 192.168.122.134 * * 1390547828 52:54:00:0b:2f:ec 192.168.122.76 localhost * But seems there is some latency, :( > dom.attachDeviceFlags(xml, libvirt.VIR_DOMAIN_AFFECT_CURRENT) > # now I want to get the mac, how to get it? > > > I have check libvirt use this code to generate a mac address. > does libvirt can gurantee that the MAC address generated is unique? yes, I also have this question. > > > void virMacAddrGenerate(const unsigned char prefix[VIR_MAC_PREFIX_BUFLEN], > virMacAddrPtr addr) > { > addr->addr[0] = prefix[0]; > addr->addr[1] = prefix[1]; > addr->addr[2] = prefix[2]; > addr->addr[3] = virRandomBits(8); > addr->addr[4] = virRandomBits(8); > addr->addr[5] = virRandomBits(8); > } > libvirt also use the KVM prefix as default as it's in the privately > administered range: > 52:54:00:XX:XX:XX > > > > -- > Thanks and best regards! > > Sheldon Feng(冯少合)<shaohef@xxxxxxxxxxxxxxxxxx> > IBM Linux Technology Center > > -- > libvir-list mailing list > libvir-list@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/libvir-list -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list