LNET_NRB_LARGE_MIN = 256
LNET_NRB_LARGE = LNET_NRB_LARGE_MIN * 4
+LNET_ROUTER_MEMORY = 3221225472
+
class LNetHelpers(BaseTest):
def __init__(self, script=os.path.abspath(__file__),
target=None, exceptions=True):
logging.debug('uninit: Uninitializing LNetHelper')
lnetconfig.lustre_lnet_config_lib_uninit()
+ # a router must have at least 3 GB of RAM
+ def can_be_router(self):
+ if psutil.virtual_memory().total > LNET_ROUTER_MEMORY:
+ return True
+ return False
+
def set_exception(self, exception):
self.exceptions = exception
la = agents.keys()
if len(la) < 1:
return lutfrc(LUTF_TEST_SKIP, "No agents to run test")
- t = LNetHelpers(target=la[0])
+ t = None
+ for agent in la:
+ t = LNetHelpers(target=agent)
+ if t.can_be_router():
+ break
+ else:
+ t = None
+ if not t:
+ return lutfrc(LUTF_TEST_SKIP,
+ comment="no routers found")
try:
- t = LNetHelpers(target=la[0])
+ t = LNetHelpers(target=agent)
t.configure_lnet()
t.api_set_routing(True)
t.set_exception(False)
#
peer1 = TestTraffic(target=la[0])
peer2 = TestTraffic(target=la[1])
- rtr = TestTraffic(target=la[2])
+ rtr = None
+ for agent in la[2:]:
+ rtr = LNetHelpers(target=agent)
+ if rtr.can_be_router():
+ break
+ else:
+ rtr = None
+ if not rtr:
+ return lutfrc(LUTF_TEST_SKIP,
+ comment="no routers found")
try:
peer1.lh.configure_net('tcp')
peer2.lh.configure_net('tcp2')
t.configure_lnet()
intfs = t.get_available_devs()
t.configure_net('tcp', intfs)
- t.set_max_intf(500)
+ t.set_max_intf(800)
cfg = t.get_globals()
- if not cfg['global']['max_intf'] == 500:
+ if not cfg['global']['max_interfaces'] == 800:
return lutfrc(LUTF_TEST_FAIL, "max_intf wasn't set properly",
- intended_value=500, actual_value=cfg['global']['max_intf'])
+ intended_value=800, actual_value=cfg['global']['max_interfaces'])
t.unconfigure_lnet()
return lutfrc(LUTF_TEST_PASS)
helper.api_yaml_cfg(tmp.get_full_path(), 1, delete=False)
tmp.remove()
cfg = helper.get_globals()
- return cfg['global']['max_intf'] == value, cfg
+ # TODO: Why can we set it with max_intf but when we show it we
+ # have to use max_interfaces
+ return cfg['global']['max_interfaces'] == value, cfg
def run():
la = agents.keys()