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:
@@ -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')
|
||||
|
Reference in New Issue
Block a user