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):
|
def _vxlan_create(self, ifaceobj):
|
||||||
vxlanid = ifaceobj.get_attr_value_first('vxlan-id')
|
vxlanid = ifaceobj.get_attr_value_first('vxlan-id')
|
||||||
if vxlanid:
|
if vxlanid:
|
||||||
|
anycastip = self._clagd_vxlan_anycast_ip
|
||||||
group = ifaceobj.get_attr_value_first('vxlan-svcnodeip')
|
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,
|
netlink.link_add_vxlan(ifaceobj.name, vxlanid,
|
||||||
local=ifaceobj.get_attr_value_first('vxlan-local-tunnelip'),
|
local=local,
|
||||||
learning=utils.get_onoff_bool(ifaceobj.get_attr_value_first('vxlan-learning')),
|
learning=learning,
|
||||||
ageing=ifaceobj.get_attr_value_first('vxlan-ageing'),
|
ageing=ageing,
|
||||||
group=group)
|
group=group)
|
||||||
|
|
||||||
remoteips = ifaceobj.get_attr_value('vxlan-remoteip')
|
remoteips = ifaceobj.get_attr_value('vxlan-remoteip')
|
||||||
|
Reference in New Issue
Block a user