+ifupdown2 (3.0.0-1) unstable; urgency=medium
+
+ * New. Enabled: python3 support
+ * New. Enabled: support for marking interfaces as mgmt interfaces
+ * Fix: dry-run exceptions
+ * Fix: set bridge MTU after bridge creation
+ * Fix: tunnel configuration compatibility with ifupdown1 (closes: #133)
+
+ -- Julien Fortin <julien@cumulusnetworks.com> Tue, 31 Dec 2019 23:42:42 +0100
+
+ ifupdown2 (2.0.2-1) unstable; urgency=medium
+
+ * New: addons: ethtool: add support for "ethtool_ignore_errors" policy
+ * New: addons: dhcp: if mgmt vrf context exec dhclient in default vrf
+ * Fix: nlpacket: don't raise an exception on 24 bytes mac address (#140)
+ * Fix: IFLA_INFO_KIND: decode tunnel data
+ * Fix: XFRM for 2.x release
+ * Fix: addons.conf: remove duplicate entry for tunnel pre-up
+
+ -- Julien Fortin <julien@cumulusnetworks.com> Wed, 04 Mar 2020 23:42:42 +0100
+
ifupdown2 (2.0.1-1) unstable; urgency=medium
* New argv option: --nldebug to print netlink debug message
-#!/usr/bin/env python
+#!/usr/bin/env python3
# -*- coding: utf-8 -*-
- __version__ = '2.0.0'
+ __version__ = '2.0.2'
# Copyright (C) 2014,2015,2016,2017,2018,2019 Cumulus Networks, Inc. All rights reserved
#
# (if intf was moved from static config to dhcp)
for old_ifaceobj in statemanager.statemanager_api.get_ifaceobjs(ifaceobj.name) or []:
for addr in old_ifaceobj.get_attr_value("address") or []:
- self.netlink.addr_del(ifaceobj.name, IPNetwork(addr))
+ self.netlink.addr_del(ifaceobj.name, ipnetwork.IPNetwork(addr))
- self.process_mtu(ifaceobj, ifaceobj_getfunc)
try:
self.process_hwaddress(ifaceobj)
Addon.__init__(self)
moduleBase.__init__(self, *args, **kargs)
self.dhclientcmd = dhclient(**kargs)
+ vrf_id = self._get_vrf_context()
+ if vrf_id and vrf_id == 'mgmt':
+ self.mgmt_vrf_context = True
+ else:
+ self.mgmt_vrf_context = False
+ self.logger.info('mgmt vrf_context = %s' %self.mgmt_vrf_context)
+ vrf_id = self._get_vrf_context()
+ if vrf_id and vrf_id == 'mgmt':
+ self.mgmt_vrf_context = True
+ else:
+ self.mgmt_vrf_context = False
+ self.logger.info('mgmt vrf_context = %s' %self.mgmt_vrf_context)
+
def syntax_check(self, ifaceobj, ifaceobj_getfunc):
return self.is_dhcp_allowed_on(ifaceobj, syntax_check=True)
cmd = ('%s -K %s %s %s' %
(utils.ethtool_cmd, ifaceobj.name, eth_name, config_val))
utils.exec_command(cmd)
- except Exception, e:
+ except Exception as e:
self.log_error('%s: %s' %(ifaceobj.name, str(e)), ifaceobj)
+ self.ethtool_ignore_errors = policymanager.policymanager_api.get_module_globals(
+ module_name=self.__class__.__name__,
+ attr='ethtool_ignore_errors'
+ )
+
def do_fec_settings(self, ifaceobj):
feccmd = ''
Link.IFLA_INFO_KIND: "bridge",
Link.IFLA_INFO_DATA: ifla_info_data
})
- link.build_message(self.sequence.next(), self.pid)
+ link.build_message(next(self.sequence), self.pid)
result = self.tx_nlpacket_get_response_with_error(link)
- if link_just_created:
- self.cache.update_link_info_data(ifname, ifla_info_data)
+ self.cache.update_link_info_data(ifname, ifla_info_data)
return result
except Exception as e: