mirror of
https://github.com/CumulusNetworks/ifupdown2.git
synced 2024-05-06 15:54:50 +00:00
addons: addressvirtual: if device is VRF slave check vrf route table
auto bridge iface bridge bridge-vlan-aware yes bridge-ports swp2 auto bridge.2 iface bridge.2 address 10.254.1.2/24 address 2a03:25e0:254:1::2/64 address-virtual 00:00:5e:00:01:01 10.254.1.1/24 2a03:25e0:254:1::1/64 fe80::1/64 vrf blue auto blue iface blue vrf-table auto $ ifreload -a -v ... info: executing /bin/ip route get 10.254.1.0/24 vrf blue ... $ Reviewed-by: Roopa Prabhu <roopa@cumulusnetworks.com> Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
This commit is contained in:
@@ -134,7 +134,13 @@ class addressvirtual(moduleBase):
|
||||
|
||||
route_prefix = '%s/%d' %(ip.network, ip.prefixlen)
|
||||
|
||||
dev = self.ipcmd.ip_route_get_dev(route_prefix)
|
||||
if ifaceobj.link_privflags & ifaceLinkPrivFlags.VRF_SLAVE:
|
||||
vrf_master = self.ipcmd.link_get_master(ifaceobj.name)
|
||||
else:
|
||||
vrf_master = None
|
||||
|
||||
dev = self.ipcmd.ip_route_get_dev(route_prefix, vrf_master=vrf_master)
|
||||
|
||||
if dev and dev != ifaceobj.name:
|
||||
self.logger.info('%s: preferred routing entry ' %ifaceobj.name +
|
||||
'seems to be of the macvlan dev %s'
|
||||
|
@@ -1687,10 +1687,14 @@ class LinkUtils(utilsBase):
|
||||
ret = False
|
||||
return ret
|
||||
|
||||
def ip_route_get_dev(self, prefix):
|
||||
def ip_route_get_dev(self, prefix, vrf_master=None):
|
||||
try:
|
||||
output = utils.exec_command('%s route get %s' %
|
||||
(utils.ip_cmd, prefix))
|
||||
if vrf_master:
|
||||
cmd = '%s route get %s vrf %s' % (utils.ip_cmd, prefix, vrf_master)
|
||||
else:
|
||||
cmd = '%s route get %s' % (utils.ip_cmd, prefix)
|
||||
|
||||
output = utils.exec_command(cmd)
|
||||
if output:
|
||||
rline = output.splitlines()[0]
|
||||
if rline:
|
||||
|
Reference in New Issue
Block a user