
On 03/31/2016 05:23 AM, Vasiliy Tolstov wrote:
2016-03-23 20:46 GMT+03:00 Laine Stump <laine@laine.org>:
Since there is no documentation included with the patch, and the wrong RNG file has been modified, I'm not clear on exactly why a libvirt virtual network would use a peer address.
Normally libvirt networks are made by creating a bridge device, adding in some iptables rules, and running an instance of dnsmasq to service dhcp and dns requests made by guests who have tap devices connected to that network. But if I understand correctly, your patches are intended to allow setting the local and peer address for guest-connected tap devices that aren't attached to a bridge on the host side, but instead rely on the host's IP stack to route appropriate traffic through the tap device. If so, then why is a libvirt network involved at all? Why/how could a bridge device be used for a point-to-point link? If this isn't just a misunderstanding of which parts of libvirt code affect what, then some examples (and patches to formatdomain.html.in/formatnetwork.html.in) would be very useful to help me understand.
I'm send new patch with some docs in formatdomain. Sometimes bridges not allowed or not needed. We use plain tap devices on host side and bird routing daemon to route traffic to/from tap devices.
But the changes to network_conf.c, network_conf.h, and bridge_driver.c only serve to assign a POINTOPOINT IP address pair to *the bridge* of a libvirt-managed network. This is unrelated to any IP address pair assigned to a tap device used by an lxc or qemu domain. I'll comment further in your new patch.