ifaceobj.link_type != ifaceLinkType.LINK_NA):
rtnetlink_api.rtnl_api.link_set(slave, "up")
+ def _set_clag_enable(self, ifaceobj):
+ attrval = ifaceobj.get_attr_value_first('clag-id')
+ attrval = attrval if attrval else '0'
+ self.ifenslavecmd.set_clag_enable(ifaceobj.name, attrval)
+
def _apply_slaves_lacp_bypass_prio(self, ifaceobj):
slaves = self.ifenslavecmd.get_slaves(ifaceobj.name)
if not slaves:
if not self.ipcmd.link_exists(ifaceobj.name):
self.ifenslavecmd.create_bond(ifaceobj.name)
self._apply_master_settings(ifaceobj)
+ # clag_enable has to happen before the slaves are added to the bond
+ self._set_clag_enable(ifaceobj)
self._add_slaves(ifaceobj)
self._apply_slaves_lacp_bypass_prio(ifaceobj)
if ifaceobj.addr_method == 'manual':
self.read_file_oneline('/sys/class/net/%s/bonding/%s'
%(bondname, x))),
['use_carrier', 'miimon', 'min_links', 'num_unsol_na',
- 'num_grat_arp', 'lacp_bypass_allow', 'lacp_bypass_period'])
+ 'num_grat_arp', 'lacp_bypass_allow', 'lacp_bypass_period',
+ 'clag_enable'])
except Exception, e:
pass
def get_miimon(self, bondname):
return self._cache_get([bondname, 'linkinfo', 'miimon'])
+ def set_clag_enable(self, bondname, clag_id):
+ clag_enable = '0' if clag_id == '0' else '1'
+ if self._cache_check([bondname, 'linkinfo', 'clag_enable'],
+ clag_enable) == False:
+ self.write_file('/sys/class/net/%s' %bondname +
+ '/bonding/clag_enable', clag_enable)
+ self._cache_update([bondname, 'linkinfo', 'clag_enable'],
+ clag_enable)
+
+ def get_clag_enable(self, bondname):
+ return self._cache_get([bondname, 'linkinfo', 'clag_enable'])
+
def set_mode(self, bondname, mode, prehook=None):
valid_modes = ['balance-rr', 'active-backup', 'balance-xor',
'broadcast', '802.3ad', 'balance-tlb', 'balance-alb']