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
  • Loading branch information
matrohon committed Oct 9, 2013
1 parent 434b8b0 commit 345f8e1
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 345f8e1

Please sign in to comment.