Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions lisa/microsoft/testsuites/dpdk/common.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT license.

from enum import Enum
from pathlib import PurePath
from typing import Any, Callable, Dict, List, Optional, Sequence, Type, Union
from urllib.parse import urlparse
Expand Down Expand Up @@ -444,3 +445,19 @@ def update_kernel_from_repo(node: Node) -> None:
node.reboot()
else:
node.log.debug(f"Kernel update package '{package}' was not found.")


class Pmd(str, Enum):
# enum for selecting which poll mode (usermode) driver to use.
# https://learn.microsoft.com/en-us/azure/virtual-network/setup-dpdk
# each has slight differences covered in their docs.
# [vdev_]netvsc and mana are maintained by msft.
# failsafe is a more general driver that can allow users to configure
# their own failover scenarios. not maintained by msft though.
#
# librte_net_failsafe
# https://doc.dpdk.org/guides/nics/fail_safe.html
FAILSAFE = "failsafe"
# librte_net_netvsc
# https://doc.dpdk.org/guides/nics/netvsc.html
NETVSC = "netvsc"
18 changes: 9 additions & 9 deletions lisa/microsoft/testsuites/dpdk/dpdkperf.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Any, Dict, Tuple

from assertpy import assert_that
from microsoft.testsuites.dpdk.common import force_dpdk_default_source
from microsoft.testsuites.dpdk.common import Pmd, force_dpdk_default_source
from microsoft.testsuites.dpdk.dpdkutil import (
DpdkTestResources,
SkippedException,
Expand Down Expand Up @@ -64,7 +64,7 @@ def perf_dpdk_send_only_failsafe_pmd(
variables: Dict[str, Any],
) -> None:
sender_kit = verify_dpdk_build(
node, log, variables, "failsafe", HugePageSize.HUGE_2MB, result=result
node, log, variables, Pmd.FAILSAFE, HugePageSize.HUGE_2MB, result=result
)
sender_fields: Dict[str, Any] = {}
test_case_name = result.runtime_data.metadata.name
Expand Down Expand Up @@ -110,7 +110,7 @@ def perf_dpdk_send_only_netvsc_pmd(
variables: Dict[str, Any],
) -> None:
sender_kit = verify_dpdk_build(
node, log, variables, "netvsc", HugePageSize.HUGE_2MB, result=result
node, log, variables, Pmd.NETVSC, HugePageSize.HUGE_2MB, result=result
)
sender_fields: Dict[str, Any] = {}
test_case_name = result.runtime_data.metadata.name
Expand Down Expand Up @@ -154,7 +154,7 @@ def perf_dpdk_minimal_failsafe_pmd(
log: Logger,
variables: Dict[str, Any],
) -> None:
self._run_dpdk_perf_test("failsafe", result, log, variables)
self._run_dpdk_perf_test(Pmd.FAILSAFE, result, log, variables)

@TestCaseMetadata(
description="""
Expand All @@ -175,7 +175,7 @@ def perf_dpdk_minimal_netvsc_pmd(
log: Logger,
variables: Dict[str, Any],
) -> None:
self._run_dpdk_perf_test("netvsc", result, log, variables)
self._run_dpdk_perf_test(Pmd.NETVSC, result, log, variables)

@TestCaseMetadata(
description="""
Expand All @@ -198,7 +198,7 @@ def perf_dpdk_multi_queue_failsafe_pmd(
variables: Dict[str, Any],
) -> None:
self._run_dpdk_perf_test(
"failsafe",
Pmd.FAILSAFE,
result,
log,
variables,
Expand All @@ -225,7 +225,7 @@ def perf_dpdk_multi_queue_netvsc_pmd(
variables: Dict[str, Any],
) -> None:
self._run_dpdk_perf_test(
"netvsc",
Pmd.NETVSC,
result,
log,
variables,
Expand Down Expand Up @@ -262,13 +262,13 @@ def perf_dpdk_l3fwd_ntttcp_tcp(
log,
variables,
HugePageSize.HUGE_2MB,
pmd="netvsc",
pmd=Pmd.NETVSC,
is_perf_test=True,
)

def _run_dpdk_perf_test(
self,
pmd: str,
pmd: Pmd,
test_result: TestResult,
log: Logger,
variables: Dict[str, Any],
Expand Down
Loading
Loading