1
0
mirror of https://github.com/CumulusNetworks/ifupdown2.git synced 2024-05-06 15:54:50 +00:00

addons: vxlan: localtunnelip check before netlink call, prevent from overwriting the anycast ip

Ticket: CM-11867
Reviewed By: Roopa, Balki, Nikhil G
Testing Done: tests/l2/clag_vxlan_aa_test.py

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
This commit is contained in:
Julien Fortin
2016-07-21 01:56:27 +01:00
parent c0d3d93b9c
commit b653111a27

View File

@@ -69,12 +69,26 @@ class vxlan(moduleBase):
def _vxlan_create(self, ifaceobj):
vxlanid = ifaceobj.get_attr_value_first('vxlan-id')
if vxlanid:
anycastip = self._clagd_vxlan_anycast_ip
group = ifaceobj.get_attr_value_first('vxlan-svcnodeip')
local = ifaceobj.get_attr_value_first('vxlan-local-tunnelip')
ageing = ifaceobj.get_attr_value_first('vxlan-ageing')
learning = utils.get_onoff_bool(ifaceobj.get_attr_value_first('vxlan-learning'))
if self.ipcmd.link_exists(ifaceobj.name):
vxlanattrs = self.ipcmd.get_vxlandev_attrs(ifaceobj.name)
# on ifreload do not overwrite anycast_ip to individual ip
# if clagd has modified
if vxlanattrs:
running_localtunnelip = vxlanattrs.get('local')
if (anycastip and running_localtunnelip and
anycastip == running_localtunnelip):
local = running_localtunnelip
netlink.link_add_vxlan(ifaceobj.name, vxlanid,
local=ifaceobj.get_attr_value_first('vxlan-local-tunnelip'),
learning=utils.get_onoff_bool(ifaceobj.get_attr_value_first('vxlan-learning')),
ageing=ifaceobj.get_attr_value_first('vxlan-ageing'),
local=local,
learning=learning,
ageing=ageing,
group=group)
remoteips = ifaceobj.get_attr_value('vxlan-remoteip')