Exemple #1
0
def Verify(tc):
    subif_utils.clearAll()
    if tc.skip: return api.types.status.SUCCESS
    if tc.resp is None:
        return api.types.status.FAILURE

    result = api.types.status.SUCCESS

    # Print leaks in memslab
    for name, tups in tc.memslab_result.items():
        api.Logger.info("[%s] \t (In Use:  Allocs:  Frees:)" % (name))
        api.Logger.info("[(Before), (After)] \t %s" % (tups))
        result = api.types.status.FAILURE
    if tc.memslab_result is None:
        api.Logger.info("No leaks in memory slabs\n")
        result = api.types.status.SUCCESS

    cookie_idx = 0

    for cmd in tc.resp.commands:
        api.Logger.info("Ping Results for %s" % (tc.cmd_cookies[cookie_idx]))
        api.PrintCommandResults(cmd)
        if cmd.exit_code != 0:
            result = api.types.status.FAILURE
        cookie_idx += 1

    return result
Exemple #2
0
def Verify(tc):
    subif_utils.clearAll()
    if tc.skip: return api.types.status.SUCCESS
    if tc.resp2 is None:
        return api.types.status.FAILURE
    if tc.resp is None:
        return api.types.status.FAILURE

    result = api.types.status.SUCCESS
    # Check if MACs in "halctl show endpoint" match with host & workload interface MAC
    if not verifyEndPoints(tc):
        api.Logger.error("UC MAC filter : Verify failed for verifyEndPoints")
        result = api.types.status.FAILURE
    else:
        api.Logger.info("UC MAC filter : Verify - verifyEndPoints SUCCESS ")

    cookie_idx = 0

    for cmd in tc.resp2.commands:
        api.Logger.info("Ping Results for %s" % (tc.cmd_cookies[cookie_idx]))
        api.PrintCommandResults(cmd)
        if cmd.exit_code != 0:
            result = api.types.status.FAILURE
        cookie_idx += 1

    api.Logger.info("Ping results after MAC Change\n")
    for cmd in tc.resp.commands:
        api.Logger.info("Ping Results for %s" % (tc.cmd_cookies[cookie_idx]))
        api.PrintCommandResults(cmd)
        if cmd.exit_code != 0:
            result = api.types.status.FAILURE
        cookie_idx += 1

    return result
Exemple #3
0
def Verify(tc):

    subif_utils.clearAll()
    if tc.skip: return api.types.status.SUCCESS

    result = api.types.status.SUCCESS

    for res in tc.ping_results:
        if res is None:
            result = api.types.status.FAILURE
            break
        indx = tc.ping_results.index(res)
        cookie_idx = 0
        api.Logger.info("Results for Iteration number: %d " % indx)
        for cmd in res.commands:
            api.Logger.info("Ping Results for %s" %
                            (tc.cmd_cookies[indx][cookie_idx]))
            api.PrintCommandResults(cmd)
            if cmd.exit_code != 0:
                result = api.types.status.FAILURE
            cookie_idx += 1

        if tc.cmd_mac_validation_results[indx] == api.types.status.FAILURE:
            api.Logger.error(
                "UC MAC filter : Verify failed for verifyEndPoints for iteration: %d"
                % indx)
            result = api.types.status.FAILURE
        else:
            api.Logger.info(
                "UC MAC filter : Verify - verifyEndPoints SUCCESS for iteration: %d"
                % indx)

    tc.result = result
    api.Logger.info("Verify result: %s\n" % result)
    return result
Exemple #4
0
def Trigger(tc):
    if tc.skip:
        return api.types.status.SUCCESS

    loop_count = int(tc.args.loop_count)
    tc.ping_results = []
    tc.cmd_cookies = {}
    tc.cmd_mac_validation_results = {}

    result = api.types.status.SUCCESS
    for cnt in range(loop_count):
        # clean up resources before run
        subif_utils.clearAll()

        # initialize config:
        subif_utils.initialize_tagged_config_workloads()

        # Delete existing subinterfaces
        __delete_subifs()

        time.sleep(3)

        # Create subinterfaces for every workload/host interface
        __create_subifs()

        time.sleep(2)
        # Generate traffic pairs with same vlan id
        tc.workload_pairs = api.GetRemoteWorkloadPairs()

        # run ping test between newly created workload pairs
        req = api.Trigger_CreateExecuteCommandsRequest(serial=True)

        tc.iter_cnt = cnt
        __run_ping_test(req, tc)
        resp = api.Trigger(req)

        tc.ping_results.append(resp)

        tc.wload_ep_set, tc.host_ep_set, tc.naples_ep_set, tc.hal_ep_set = ValidateMacRegistration(
        )
        verify_result = api.types.status.FAILURE
        if resp != None:
            if not verifyEndPoints(tc):
                verify_result = api.types.status.FAILURE
                result = api.types.status.FAILURE
                tc.cmd_mac_validation_results[tc.iter_cnt] = verify_result
                break
            else:
                verify_result = api.types.status.SUCCESS
        tc.cmd_mac_validation_results[tc.iter_cnt] = verify_result

        # Return failure
        if resp is None:
            result = api.types.status.FAILURE
            break

    api.Logger.info("Trigger result: %s\n" % result)
    return result
Exemple #5
0
def Trigger(tc):
    if tc.skip:
        return api.types.status.SUCCESS

    memslab_dump = {}  # node name -> memslab info

    # clean up resources before run
    subif_utils.clearAll()

    # initialize config:
    subif_utils.initialize_tagged_config_workloads()

    # 1.1 = Delete existing subinterfaces
    # delete only tagged interfaces, not native interfaces
    __delete_subifs()

    time.sleep(5)

    # 1.2 = Store memslab info for Naples card
    for node_name in api.GetNaplesHostnames():
        memslab_dump[node_name] = utils.GetMemorySlabInNaples(node_name)

    # 1.3 = Create default no of subinterfaces for every workload/host interface
    __create_subifs()

    # 2.1 = Restore workloads
    __delete_subifs()

    time.sleep(5)

    # 2.2 = Get memslab for existing interfaces
    for node_name in api.GetNaplesHostnames():
        memslab_after = utils.GetMemorySlabInNaples(node_name)
        memslab_before = memslab_dump.get(node_name, None)
        ret_memslab_info = utils.ShowLeakInMemorySlabInNaples(
            memslab_before, memslab_after, node_name)
        tc.memslab_result = ret_memslab_info

    # 2.3 = Restore all workloads/subifs on all nodes
    __create_subifs()

    # Generate traffic pairs with same vlan id
    tc.workload_pairs = api.GetRemoteWorkloadPairs()

    # run ping test between newly created workload pairs
    req = api.Trigger_CreateExecuteCommandsRequest(serial=True)
    tc.cmd_cookies = []

    __run_ping_test(req, tc)
    tc.resp = api.Trigger(req)

    return api.types.status.SUCCESS
Exemple #6
0
def Trigger(tc):
    if tc.skip:
        return api.types.status.SUCCESS

    status = api.types.status.SUCCESS
    # clean up resources before run
    subif_utils.clearAll()

    # initialize config:
    subif_utils.initialize_tagged_config_workloads()

    # Delete existing subinterfaces
    __delete_subifs()

    time.sleep(3)
    # Create subinterfaces for every workload/host interface
    # as per <subif_count>
    __create_subifs()

    time.sleep(2)
    tc.workload_pairs = api.GetRemoteWorkloadPairs()
    tc.cmd_cookies = []
    req1 = api.Trigger_CreateExecuteCommandsRequest(serial = True)

    __run_ping_test(req1, tc)
    tc.resp2 = api.Trigger(req1)

    result = changeMacAddrTrigger(tc)
    time.sleep(5)
    api.Logger.debug("UC MAC filter : Trigger -> Change MAC addresses result ", result)

    api.Logger.debug("UC MAC filter : LIF reset ")
    # reset the LIFs if requested
    lif_reset  = getattr(tc.args, 'lif_reset', False)
    if lif_reset:
        if do_bsd_lif_resets():
            api.Logger.error("UC MAC filter : LIF reset failed")
            status = api.types.status.FAILURE

    tc.wload_ep_set, tc.host_ep_set, tc.naples_ep_set, tc.hal_ep_set = ValidateMacRegistration(tc)

    req = api.Trigger_CreateExecuteCommandsRequest(serial = True)

    tc.workload_pairs = api.GetRemoteWorkloadPairs()
    __run_ping_test(req, tc)
    tc.resp = api.Trigger(req)

    return status