<div>The code doesn't make lot of change to the nova network manager code. It modifies principally the linux_net driver code.</div><div><br></div><div>And I don't think we can consider it like a new feature. I think it's more a bug fix.</div>
<div><br></div><div>In VLAN manger mode, if we plan to carry 4000 tenants in our cloud, we need to use 4000 networks and, consequently, 4000 VLANs on all the datacenter network. But the actual switch equipment cannot carry a trunk of 4000 VLAN to all compute host (for example, Cisco Nexus 5500 can not enabled more than 32000 logical interfaces[1] (= TRUNKS x VLANS + ACCESS_PORTS [2])).</div>
<div>If nova network tear down unused networks, it would be possible to plug a mechanism on it to delete unused VLAN on the switch port. And we can provisioning dynamically VLANs on switch ports and don't exceed the logical interface limitation of networks equipments.</div>
<div><br></div><div>[1]<a href="http://www.cisco.com/en/US/docs/switches/datacenter/nexus5000/sw/configuration_limits/limits_513/nexus_5000_config_limits_513.html#wp344401">http://www.cisco.com/en/US/docs/switches/datacenter/nexus5000/sw/configuration_limits/limits_513/nexus_5000_config_limits_513.html#wp344401</a><div>
[2] <a href="http://jpmcauley.com/2011/06/23/vlan-port-instance-limitation-on-cisco-ucs/">http://jpmcauley.com/2011/06/23/vlan-port-instance-limitation-on-cisco-ucs/</a><div><div><br></div></div></div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Mon, Dec 3, 2012 at 11:50 PM, Vishvananda Ishaya <span dir="ltr"><<a href="mailto:vishvananda@gmail.com" target="_blank">vishvananda@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word">FYI, this patch is probably something bigger than we can merge. Nova-network is supposed to just be in maintenance mode and<div>not getting big new features. Small features are ok, but this one changes a lot of lines.</div>
<div><br></div><div>Not sure what is up with your rule removal. Perhaps there are multiple copies of the added rules so they aren't being deleted properly? In fact, that may be a bug. It looks like plug is called for each vm so we might end up with multiple copies of the isolation rules.</div>
<div><br></div><div>Vish</div><div><div class="h5"><div><br></div><div><div><div>On Dec 3, 2012, at 6:34 AM, Édouard Thuleau <<a href="mailto:thuleau@gmail.com" target="_blank">thuleau@gmail.com</a>> wrote:</div><br>
<blockquote type="cite">Hi Vish,<br><br>I made a patch to implement that with the VLAN manager: <a href="https://review.openstack.org/#/c/17352/" target="_blank">https://review.openstack.org/#/c/17352/</a><br><br>I put a lock on methods '_setup_network_on_host' and '_teardown_network_on_host' of class 'VlanManager' and I reused (and renamed) the locks already defined in class 'LinuxBridgeInterfaceDriver' when a bridge or VLAN is created ('ensure_vlan' => 'lock_vlan' and 'unsure_bridge' => 'lock_bridge'). Do you think is enough to prevent any race condition ?<br>

<br>I've got a bug. I create method '_remove_dnsmasq_accept_rules' to remove filter rules for DHCP server but when I call it, nothing is deleted. Could you help me to resolve that ? And I've got the same problem sometimes with method 'remove_isolate_dhcp_address'. The ebtables rules are correctly deleted but not  for iptables rules.<br>

<br>I didn't delete a network bridge if it handles VPN forward rules of the private network even if no VM use this gateway on the host. But if a network is deleted, nothing will tear down this gateway.<br>I think I found another bug. If network host must handle the VPN forward rules for a private network and if we restart it, it should instantiate a gateway on this private network and add VPN forward rules even if no VM use this gateway on the host. But actually  it doesn't do that. Perhaps, the method 'db.network_get_all_by_host' use in 'init-host' must return the network in this case ?<br>

<br>I only implement this for the multi hosted networks with the VLAN manger. I think isn't useful to add this on the multi hosted network with the Flat DHCP manager because, in this mode, only one multi hosted network is created for all instances of all tenants.<br>

<br>Regards,<br>Édouard.<br><br>On Wed, Nov 21, 2012 at 12:49 AM, Vishvananda Ishaya <<a href="mailto:vishvananda@gmail.com" target="_blank">vishvananda@gmail.com</a>> wrote:<br>> The only reason this is not done is that it makes the setup simpler. We<br>

> don't have to worry about potential races between setting up and tearing<br>> down interfaces. It probably wouldn't be incredibly difficult to make a<br>> patch that would remove them, but you will likely have to do some creative<br>

> locking to make sure that you don't run into issues.<br>><br>> Vish<br>><br>> On Nov 20, 2012, at 9:25 AM, Édouard Thuleau <<a href="mailto:thuleau@gmail.com" target="_blank">thuleau@gmail.com</a>> wrote:<br>
><br>
>> Hi all,<br>>><br>>> I use nova-network with VLAN manager.<br>>><br>>> Why nova-network doesn't remove unused network interfaces on a host ?<br>>><br>>> ie, if none VM on a host have a fixed IP attach to network X, the VLAN<br>

>> and bridge of this network still up and unused. And 'dnsmasq' process<br>>> still listen and running.<br>>><br>>> The number of unused network interfaces will grow over time.<br>>> In the VLAN mode, this number could be 4000 x 2 unused interfaces and<br>

>> 4000 unused 'dnsmasq' processes (in worth case).<br>>><br>>> Can it lead to decrease the kernel performance ?<br>>> Is it a bug ? Or a voluntary implementation ?<br>>><br>>> Regards,<br>

>> Édouard.<br>>><br>>> _______________________________________________<br>>> Mailing list: <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~openstack</a><br>>> Post to     : <a href="mailto:openstack@lists.launchpad.net" target="_blank">openstack@lists.launchpad.net</a><br>

>> Unsubscribe : <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~openstack</a><br>>> More help   : <a href="https://help.launchpad.net/ListHelp" target="_blank">https://help.launchpad.net/ListHelp</a><br>
>
</blockquote></div><br></div></div></div></div></blockquote></div><br></div>