if self.max_mtu:
self.logger.info('address: using max mtu %s' %self.max_mtu)
- def get_dependent_ifacenames(self, ifaceobj, ifacenames_all=None):
- if ifaceobj.get_attr_value_first('down') == 'yes':
- ifaceobj.link_privflags |= ifaceLinkPrivFlags.KEEP_LINK_DOWN
-
def syntax_check(self, ifaceobj, ifaceobj_getfunc=None):
return (self.syntax_check_multiple_gateway(ifaceobj)
and self.syntax_check_addr_allowed_on(ifaceobj, True)
self.logger.debug('%s: %s: link set up (%s)'
%(ifaceobj.name, p, str(e)))
pass
+
+ if ifaceobj.addr_method == 'manual':
+ try:
+ netlink.link_set_updown(ifaceobj.name, "up")
+ except Exception as e:
+ self.log_error('%s: %s' % (ifaceobj.name, str(e)), ifaceobj)
if err:
raise Exception(errstr)
return
netlink.link_add_vlan(vlanrawdevice, ifaceobj.name, vlanid)
self._bridge_vid_add_del(ifaceobj, vlanrawdevice, vlanid)
+ if ifaceobj.addr_method == 'manual':
+ try:
+ netlink.link_set_updown(ifaceobj.name, "up")
+ except Exception as e:
+ self.log_error('%s: %s' % (ifaceobj.name, str(e)), ifaceobj)
def _down(self, ifaceobj):
vlanid = self._get_vlan_id(ifaceobj)
if ((ifaceobj.link_kind & ifaceLinkKind.VRF) or
(ifaceobj.link_privflags & ifaceLinkPrivFlags.VRF_SLAVE)):
return
- # if not a logical interface and addr method is manual,
- # ignore link admin state changes
- if (ifaceobj.addr_method == 'manual' and
- not ifaceobj.link_kind):
+ if (ifaceobj.addr_method and
+ ifaceobj.addr_method == 'manual'):
return
if self._delay_admin_state:
self._delay_admin_state_iface_queue.append(ifaceobj.name)
return
if not self.link_exists(ifaceobj.name):
return
- if ifaceobj.link_privflags & ifaceLinkPrivFlags.KEEP_LINK_DOWN:
- # user has asked to explicitly keep the link down,
- # so, force link down
- self.logger.info('%s: keeping link down due to user config' %ifaceobj.name)
- self.link_down(ifaceobj.name)
- return
self.link_up(ifaceobj.name)
def run_down(self, ifaceobj):
# there is no real interface behind it
if ifaceobj.type == ifaceType.BRIDGE_VLAN:
return
- # if not a logical interface and addr method is manual,
- # ignore link admin state changes
- if (ifaceobj.addr_method == 'manual' and
- not ifaceobj.link_lind):
+ if (ifaceobj.addr_method and
+ ifaceobj.addr_method == 'manual'):
return
if self._delay_admin_state:
self._delay_admin_state_iface_queue.append(ifaceobj.name)
def _set_iface_role_n_kind(self, ifaceobj, upperifaceobj):
- # If addr_method is set and link is not a logical interface,
- # set flag KEEP_LINK_DOWN. addr_method == 'manual' only applies to
- # logical interfaces.
- if (ifaceobj.addr_method == 'manual' and not ifaceobj.link_kind):
- ifaceobj.link_privflags |= ifaceLinkPrivFlags.KEEP_LINK_DOWN
-
if (upperifaceobj.link_kind & ifaceLinkKind.BOND):
self._set_iface_role(ifaceobj, ifaceRole.SLAVE, upperifaceobj)
ifaceobj.link_privflags |= ifaceLinkPrivFlags.BOND_SLAVE