ifupdown2 (1.2.1) unstable; urgency=medium
+ * Fix #54: address module new l3_intf_default_gateway_set_onlink policy
* Fix: Link down does not work on any intf configured in a VRF
* Add: ethtool: add link-speed 10 to valid values array
* Add: address: add l3_intf_arp_accept policy to control ARP_ACCEPT
default=False
)
+ self.l3_intf_default_gateway_set_onlink = utils.get_boolean_from_string(
+ policymanager.policymanager_api.get_module_globals(
+ module_name=self.__class__.__name__,
+ attr='l3_intf_default_gateway_set_onlink'
+ ),
+ default=True
+ )
+
def syntax_check(self, ifaceobj, ifaceobj_getfunc=None):
return (self.syntax_check_multiple_gateway(ifaceobj)
and self.syntax_check_addr_allowed_on(ifaceobj, True)
vrf, metric)
for add_gw in gateways:
try:
- self.ipcmd.route_add_gateway(ifaceobj.name, add_gw, vrf, metric)
+ self.ipcmd.route_add_gateway(ifaceobj.name, add_gw, vrf, metric, onlink=self.l3_intf_default_gateway_set_onlink)
except Exception as e:
self.log_error('%s: %s' % (ifaceobj.name, str(e)))
return self._cache_get('link', [ifacename, 'ifflag'], refresh=True)
@staticmethod
- def route_add_gateway(ifacename, gateway, vrf=None, metric=None):
+ def route_add_gateway(ifacename, gateway, vrf=None, metric=None, onlink=True):
if not gateway:
return
if not vrf:
if metric:
cmd += 'metric %s' % metric
cmd += ' dev %s' % ifacename
+
+ if onlink:
+ cmd += " onlink"
+
utils.exec_command(cmd)
@staticmethod