Skip to content

Commit

Permalink
use proxy mode on vxlan interface only when l2-population is activated
Browse files Browse the repository at this point in the history
the proxy mode was set by default on every vxlan interfaces
which leads to inaccessibility between VM that are not hosted
on the same host in a vxlan network

Closes-Bug: #1237082

Change-Id: I34028ee0bdfdccda61c6a29f58759259da060b68
(cherry picked from commit 345f8e1)
  • Loading branch information
matrohon authored and markmcclain committed Oct 16, 2013
1 parent a92b15e commit c471fdc
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 2 deletions.
6 changes: 4 additions & 2 deletions neutron/agent/linux/ip_lib.py
Expand Up @@ -147,8 +147,8 @@ def add_device_to_namespace(self, device):
device.link.set_netns(self.namespace)

def add_vxlan(self, name, vni, group=None, dev=None, ttl=None, tos=None,
local=None, port=None):
cmd = ['add', name, 'type', 'vxlan', 'id', vni, 'proxy']
local=None, port=None, proxy=False):
cmd = ['add', name, 'type', 'vxlan', 'id', vni]
if group:
cmd.extend(['group', group])
if dev:
Expand All @@ -159,6 +159,8 @@ def add_vxlan(self, name, vni, group=None, dev=None, ttl=None, tos=None,
cmd.extend(['tos', tos])
if local:
cmd.extend(['local', local])
if proxy:
cmd.append('proxy')
# tuple: min,max
if port and len(port) == 2:
cmd.extend(['port', port[0], port[1]])
Expand Down
Expand Up @@ -256,6 +256,8 @@ def ensure_vxlan(self, segmentation_id):
args['ttl'] = cfg.CONF.VXLAN.ttl
if cfg.CONF.VXLAN.tos:
args['tos'] = cfg.CONF.VXLAN.tos
if cfg.CONF.VXLAN.l2_population:
args['proxy'] = True
int_vxlan = self.ip.add_vxlan(interface, segmentation_id, **args)
int_vxlan.link.set_up()
LOG.debug(_("Done creating vxlan interface %s"), interface)
Expand Down
7 changes: 7 additions & 0 deletions neutron/tests/unit/linuxbridge/test_lb_neutron_agent.py
Expand Up @@ -361,6 +361,13 @@ def test_ensure_vxlan(self):
add_vxlan_fn.assert_called_with("vxlan-" + seg_id, seg_id,
group="224.0.0.1",
dev=self.lbm.local_int)
cfg.CONF.set_override('l2_population', 'True', 'VXLAN')
self.assertEqual(self.lbm.ensure_vxlan(seg_id),
"vxlan-" + seg_id)
add_vxlan_fn.assert_called_with("vxlan-" + seg_id, seg_id,
group="224.0.0.1",
dev=self.lbm.local_int,
proxy=True)

def test_update_interface_ip_details(self):
gwdict = dict(gateway='1.1.1.1',
Expand Down

0 comments on commit c471fdc

Please sign in to comment.