From: Jeremy Spewock <jspewock@iol.unh.edu>
To: "Juraj Linkeš" <juraj.linkes@pantheon.tech>
Cc: thomas@monjalon.net, Honnappa.Nagarahalli@arm.com,
probb@iol.unh.edu, paul.szczepanek@arm.com,
yoan.picchi@foss.arm.com, Luca.Vizzarro@arm.com, dev@dpdk.org
Subject: Re: [PATCH v8 15/21] dts: os session docstring update
Date: Fri, 1 Dec 2023 12:33:06 -0500 [thread overview]
Message-ID: <CAAA20UQFANXd3bn1xxGHSWAht_tPk4x9QKJW3K_2rtXaAbjJUQ@mail.gmail.com> (raw)
In-Reply-To: <20231123151344.162812-16-juraj.linkes@pantheon.tech>
[-- Attachment #1: Type: text/plain, Size: 18401 bytes --]
On Thu, Nov 23, 2023 at 10:14 AM Juraj Linkeš <juraj.linkes@pantheon.tech>
wrote:
> Format according to the Google format and PEP257, with slight
> deviations.
>
> Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
> ---
> dts/framework/testbed_model/os_session.py | 272 ++++++++++++++++------
> 1 file changed, 205 insertions(+), 67 deletions(-)
>
> diff --git a/dts/framework/testbed_model/os_session.py
> b/dts/framework/testbed_model/os_session.py
> index 76e595a518..cfdbd1c4bd 100644
> --- a/dts/framework/testbed_model/os_session.py
> +++ b/dts/framework/testbed_model/os_session.py
> @@ -2,6 +2,26 @@
> # Copyright(c) 2023 PANTHEON.tech s.r.o.
> # Copyright(c) 2023 University of New Hampshire
>
> +"""OS-aware remote session.
> +
> +DPDK supports multiple different operating systems, meaning it can run on
> these different operating
> +systems. This module defines the common API that OS-unaware layers use
> and translates the API into
> +OS-aware calls/utility usage.
> +
> +Note:
> + Running commands with administrative privileges requires OS
> awareness. This is the only layer
> + that's aware of OS differences, so this is where non-privileged
> command get converted
> + to privileged commands.
> +
> +Example:
> + A user wishes to remove a directory on a remote
> :class:`~.sut_node.SutNode`.
> + The :class:`~.sut_node.SutNode` object isn't aware what OS the node
> is running - it delegates
> + the OS translation logic to :attr:`~.node.Node.main_session`. The SUT
> node calls
> + :meth:`~OSSession.remove_remote_dir` with a generic, OS-unaware path
> and
> + the :attr:`~.node.Node.main_session` translates that to ``rm -rf`` if
> the node's OS is Linux
> + and other commands for other OSs. It also translates the path to
> match the underlying OS.
> +"""
> +
> from abc import ABC, abstractmethod
> from collections.abc import Iterable
> from ipaddress import IPv4Interface, IPv6Interface
> @@ -28,10 +48,16 @@
>
>
> class OSSession(ABC):
> - """
> - The OS classes create a DTS node remote session and implement OS
> specific
> + """OS-unaware to OS-aware translation API definition.
> +
> + The OSSession classes create a remote session to a DTS node and
> implement OS specific
> behavior. There a few control methods implemented by the base class,
> the rest need
> - to be implemented by derived classes.
> + to be implemented by subclasses.
> +
> + Attributes:
> + name: The name of the session.
> + remote_session: The remote session maintaining the connection to
> the node.
> + interactive_session: The interactive remote session maintaining
> the connection to the node.
> """
>
> _config: NodeConfiguration
> @@ -46,6 +72,15 @@ def __init__(
> name: str,
> logger: DTSLOG,
> ):
> + """Initialize the OS-aware session.
> +
> + Connect to the node right away and also create an interactive
> remote session.
> +
> + Args:
> + node_config: The test run configuration of the node to
> connect to.
> + name: The name of the session.
> + logger: The logger instance this session will use.
> + """
> self._config = node_config
> self.name = name
> self._logger = logger
> @@ -53,15 +88,15 @@ def __init__(
> self.interactive_session =
> create_interactive_session(node_config, logger)
>
> def close(self, force: bool = False) -> None:
> - """
> - Close the remote session.
> + """Close the underlying remote session.
> +
> + Args:
> + force: Force the closure of the connection.
> """
> self.remote_session.close(force)
>
> def is_alive(self) -> bool:
> - """
> - Check whether the remote session is still responding.
> - """
> + """Check whether the underlying remote session is still
> responding."""
> return self.remote_session.is_alive()
>
> def send_command(
> @@ -72,10 +107,23 @@ def send_command(
> verify: bool = False,
> env: dict | None = None,
> ) -> CommandResult:
> - """
> - An all-purpose API in case the command to be executed is already
> - OS-agnostic, such as when the path to the executed command has
> been
> - constructed beforehand.
> + """An all-purpose API for OS-agnostic commands.
> +
> + This can be used for an execution of a portable command that's
> executed the same way
> + on all operating systems, such as Python.
> +
> + The :option:`--timeout` command line argument and the
> :envvar:`DTS_TIMEOUT`
> + environment variable configure the timeout of command execution.
> +
> + Args:
> + command: The command to execute.
> + timeout: Wait at most this long in seconds for `command`
> execution to complete.
> + privileged: Whether to run the command with administrative
> privileges.
> + verify: If :data:`True`, will check the exit code of the
> command.
> + env: A dictionary with environment variables to be used with
> the command execution.
> +
> + Raises:
> + RemoteCommandExecutionError: If verify is :data:`True` and
> the command failed.
> """
> if privileged:
> command = self._get_privileged_command(command)
> @@ -89,8 +137,20 @@ def create_interactive_shell(
> privileged: bool,
> app_args: str,
> ) -> InteractiveShellType:
> - """
> - See "create_interactive_shell" in SutNode
> + """Factory for interactive session handlers.
> +
> + Instantiate `shell_cls` according to the remote OS specifics.
> +
> + Args:
> + shell_cls: The class of the shell.
> + timeout: Timeout for reading output from the SSH channel. If
> you are
> + reading from the buffer and don't receive any data within
> the timeout
> + it will throw an error.
> + privileged: Whether to run the shell with administrative
> privileges.
> + app_args: The arguments to be passed to the application.
> +
> + Returns:
> + An instance of the desired interactive application shell.
> """
> return shell_cls(
> self.interactive_session.session,
> @@ -114,27 +174,42 @@ def _get_privileged_command(command: str) -> str:
>
> @abstractmethod
> def guess_dpdk_remote_dir(self, remote_dir: str | PurePath) ->
> PurePath:
> - """
> - Try to find DPDK remote dir in remote_dir.
> + """Try to find DPDK directory in `remote_dir`.
> +
> + The directory is the one which is created after the extraction of
> the tarball. The files
> + are usually extracted into a directory starting with ``dpdk-``.
> +
> + Returns:
> + The absolute path of the DPDK remote directory, empty path if
> not found.
> """
>
> @abstractmethod
> def get_remote_tmp_dir(self) -> PurePath:
> - """
> - Get the path of the temporary directory of the remote OS.
> + """Get the path of the temporary directory of the remote OS.
> +
> + Returns:
> + The absolute path of the temporary directory.
> """
>
> @abstractmethod
> def get_dpdk_build_env_vars(self, arch: Architecture) -> dict:
> - """
> - Create extra environment variables needed for the target
> architecture. Get
> - information from the node if needed.
> + """Create extra environment variables needed for the target
> architecture.
> +
> + Different architectures may require different configuration, such
> as setting 32-bit CFLAGS.
> +
> + Returns:
> + A dictionary with keys as environment variables.
> """
>
> @abstractmethod
> def join_remote_path(self, *args: str | PurePath) -> PurePath:
> - """
> - Join path parts using the path separator that fits the remote OS.
> + """Join path parts using the path separator that fits the remote
> OS.
> +
> + Args:
> + args: Any number of paths to join.
> +
> + Returns:
> + The resulting joined path.
> """
>
> @abstractmethod
> @@ -143,13 +218,13 @@ def copy_from(
> source_file: str | PurePath,
> destination_file: str | PurePath,
> ) -> None:
> - """Copy a file from the remote Node to the local filesystem.
> + """Copy a file from the remote node to the local filesystem.
>
> - Copy source_file from the remote Node associated with this remote
> - session to destination_file on the local filesystem.
> + Copy `source_file` from the remote node associated with this
> remote
> + session to `destination_file` on the local filesystem.
>
> Args:
> - source_file: the file on the remote Node.
> + source_file: the file on the remote node.
> destination_file: a file or directory path on the local
> filesystem.
> """
>
> @@ -159,14 +234,14 @@ def copy_to(
> source_file: str | PurePath,
> destination_file: str | PurePath,
> ) -> None:
> - """Copy a file from local filesystem to the remote Node.
> + """Copy a file from local filesystem to the remote node.
>
> - Copy source_file from local filesystem to destination_file
> - on the remote Node associated with this remote session.
> + Copy `source_file` from local filesystem to `destination_file`
> + on the remote node associated with this remote session.
>
> Args:
> source_file: the file on the local filesystem.
> - destination_file: a file or directory path on the remote Node.
> + destination_file: a file or directory path on the remote node.
> """
>
> @abstractmethod
> @@ -176,8 +251,12 @@ def remove_remote_dir(
> recursive: bool = True,
> force: bool = True,
> ) -> None:
> - """
> - Remove remote directory, by default remove recursively and
> forcefully.
> + """Remove remote directory, by default remove recursively and
> forcefully.
> +
> + Args:
> + remote_dir_path: The path of the directory to remove.
> + recursive: If :data:`True`, also remove all contents inside
> the directory.
> + force: If :data:`True`, ignore all warnings and try to remove
> at all costs.
> """
>
> @abstractmethod
> @@ -186,9 +265,12 @@ def extract_remote_tarball(
> remote_tarball_path: str | PurePath,
> expected_dir: str | PurePath | None = None,
> ) -> None:
> - """
> - Extract remote tarball in place. If expected_dir is a non-empty
> string, check
> - whether the dir exists after extracting the archive.
> + """Extract remote tarball in its remote directory.
> +
> + Args:
> + remote_tarball_path: The path of the tarball on the remote
> node.
> + expected_dir: If non-empty, check whether `expected_dir`
> exists after extracting
> + the archive.
> """
>
> @abstractmethod
> @@ -201,69 +283,119 @@ def build_dpdk(
> rebuild: bool = False,
> timeout: float = SETTINGS.compile_timeout,
> ) -> None:
> - """
> - Build DPDK in the input dir with specified environment variables
> and meson
> - arguments.
> + """Build DPDK on the remote node.
> +
> + An extracted DPDK tarball must be present on the node. The build
> consists of two steps::
> +
> + meson setup <meson args> remote_dpdk_dir remote_dpdk_build_dir
> + ninja -C remote_dpdk_build_dir
> +
> + The :option:`--compile-timeout` command line argument and the
> :envvar:`DTS_COMPILE_TIMEOUT`
> + environment variable configure the timeout of DPDK build.
> +
> + Args:
> + env_vars: Use these environment variables then building DPDK.
>
I think this is meant to be "when building DPDK" instead.
> + meson_args: Use these meson arguments when building DPDK.
> + remote_dpdk_dir: The directory on the remote node where DPDK
> will be built.
> + remote_dpdk_build_dir: The target build directory on the
> remote node.
> + rebuild: If :data:`True`, do a subsequent build with ``meson
> configure`` instead
> + of ``meson setup``.
> + timeout: Wait at most this long in seconds for the build
> execution to complete.
> """
>
> @abstractmethod
> def get_dpdk_version(self, version_path: str | PurePath) -> str:
> - """
> - Inspect DPDK version on the remote node from version_path.
> + """Inspect the DPDK version on the remote node.
> +
> + Args:
> + version_path: The path to the VERSION file containing the
> DPDK version.
> +
> + Returns:
> + The DPDK version.
> """
>
> @abstractmethod
> def get_remote_cpus(self, use_first_core: bool) -> list[LogicalCore]:
> - """
> - Compose a list of LogicalCores present on the remote node.
> - If use_first_core is False, the first physical core won't be used.
> + r"""Get the list of :class:`~.cpu.LogicalCore`\s on the remote
> node.
> +
> + Args:
> + use_first_core: If :data:`False`, the first physical core
> won't be used.
> +
> + Returns:
> + The logical cores present on the node.
> """
>
> @abstractmethod
> def kill_cleanup_dpdk_apps(self, dpdk_prefix_list: Iterable[str]) ->
> None:
> - """
> - Kill and cleanup all DPDK apps identified by dpdk_prefix_list. If
> - dpdk_prefix_list is empty, attempt to find running DPDK apps to
> kill and clean.
> + """Kill and cleanup all DPDK apps.
> +
> + Args:
> + dpdk_prefix_list: Kill all apps identified by
> `dpdk_prefix_list`.
> + If `dpdk_prefix_list` is empty, attempt to find running
> DPDK apps to kill and clean.
> """
>
> @abstractmethod
> def get_dpdk_file_prefix(self, dpdk_prefix: str) -> str:
> - """
> - Get the DPDK file prefix that will be used when running DPDK apps.
> + """Make OS-specific modification to the DPDK file prefix.
> +
> + Args:
> + dpdk_prefix: The OS-unaware file prefix.
> +
> + Returns:
> + The OS-specific file prefix.
> """
>
> @abstractmethod
> - def setup_hugepages(self, hugepage_amount: int, force_first_numa:
> bool) -> None:
> - """
> - Get the node's Hugepage Size, configure the specified amount of
> hugepages
> + def setup_hugepages(self, hugepage_count: int, force_first_numa:
> bool) -> None:
> + """Configure hugepages on the node.
> +
> + Get the node's Hugepage Size, configure the specified count of
> hugepages
> if needed and mount the hugepages if needed.
> - If force_first_numa is True, configure hugepages just on the
> first socket.
> +
> + Args:
> + hugepage_count: Configure this many hugepages.
> + force_first_numa: If :data:`True`, configure hugepages just
> on the first numa node.
> """
>
> @abstractmethod
> def get_compiler_version(self, compiler_name: str) -> str:
> - """
> - Get installed version of compiler used for DPDK
> + """Get installed version of compiler used for DPDK.
> +
> + Args:
> + compiler_name: The name of the compiler executable.
> +
> + Returns:
> + The compiler's version.
> """
>
> @abstractmethod
> def get_node_info(self) -> NodeInfo:
> - """
> - Collect information about the node
> + """Collect additional information about the node.
> +
> + Returns:
> + Node information.
> """
>
> @abstractmethod
> def update_ports(self, ports: list[Port]) -> None:
> - """
> - Get additional information about ports:
> - Logical name (e.g. enp7s0) if applicable
> - Mac address
> + """Get additional information about ports from the operating
> system and update them.
> +
> + The additional information is:
> +
> + * Logical name (e.g. ``enp7s0``) if applicable,
> + * Mac address.
> +
> + Args:
> + ports: The ports to update.
> """
>
> @abstractmethod
> def configure_port_state(self, port: Port, enable: bool) -> None:
> - """
> - Enable/disable port.
> + """Enable/disable `port` in the operating system.
> +
> + Args:
> + port: The port to configure.
> + enable: If :data:`True`, enable the port, otherwise shut it
> down.
> """
>
> @abstractmethod
> @@ -273,12 +405,18 @@ def configure_port_ip_address(
> port: Port,
> delete: bool,
> ) -> None:
> - """
> - Configure (add or delete) an IP address of the input port.
> + """Configure an IP address on `port` in the operating system.
> +
> + Args:
> + address: The address to configure.
> + port: The port to configure.
> + delete: If :data:`True`, remove the IP address, otherwise
> configure it.
> """
>
> @abstractmethod
> def configure_ipv4_forwarding(self, enable: bool) -> None:
> - """
> - Enable IPv4 forwarding in the underlying OS.
> + """Enable IPv4 forwarding in the operating system.
> +
> + Args:
> + enable: If :data:`True`, enable the forwarding, otherwise
> disable it.
> """
> --
> 2.34.1
>
>
[-- Attachment #2: Type: text/html, Size: 22555 bytes --]
next prev parent reply other threads:[~2023-12-01 17:33 UTC|newest]
Thread overview: 257+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-23 10:40 [RFC PATCH v1 0/4] dts: add dts api docs Juraj Linkeš
2023-03-23 10:40 ` [RFC PATCH v1 1/4] dts: code adjustments for sphinx Juraj Linkeš
2023-03-23 10:40 ` [RFC PATCH v1 2/4] dts: add doc generation dependencies Juraj Linkeš
2023-03-23 10:40 ` [RFC PATCH v1 3/4] dts: add doc generation Juraj Linkeš
2023-03-23 10:40 ` [RFC PATCH v1 4/4] dts: format docstrigs to google format Juraj Linkeš
2023-04-28 19:33 ` Jeremy Spewock
2023-04-03 9:17 ` [RFC PATCH v1 0/4] dts: add dts api docs Juraj Linkeš
2023-04-03 9:42 ` Bruce Richardson
2023-04-25 8:20 ` Juraj Linkeš
2023-04-25 8:44 ` Bruce Richardson
2023-04-25 8:57 ` Juraj Linkeš
2023-04-25 9:43 ` Bruce Richardson
2023-05-03 11:33 ` Juraj Linkeš
2023-05-04 12:37 ` [RFC PATCH v2 " Juraj Linkeš
2023-05-04 12:37 ` [RFC PATCH v2 1/4] dts: code adjustments for sphinx Juraj Linkeš
2023-05-04 12:37 ` [RFC PATCH v2 2/4] dts: add doc generation dependencies Juraj Linkeš
2023-05-04 12:37 ` [RFC PATCH v2 3/4] dts: add doc generation Juraj Linkeš
2023-05-04 12:45 ` Bruce Richardson
2023-05-05 7:53 ` Juraj Linkeš
2023-05-05 10:24 ` Bruce Richardson
2023-05-05 10:41 ` Juraj Linkeš
2023-05-05 10:56 ` Bruce Richardson
2023-05-05 11:13 ` Juraj Linkeš
2023-05-05 13:28 ` Bruce Richardson
2023-05-09 9:23 ` Juraj Linkeš
2023-05-09 9:40 ` Bruce Richardson
2023-05-10 12:19 ` Juraj Linkeš
2023-05-04 12:37 ` [RFC PATCH v2 4/4] dts: format docstrigs to google format Juraj Linkeš
2023-05-05 14:06 ` [RFC PATCH v2 0/4] dts: add dts api docs Bruce Richardson
2023-05-09 15:28 ` Juraj Linkeš
2023-05-11 8:55 ` Juraj Linkeš
2023-05-11 9:14 ` [RFC PATCH v3 " Juraj Linkeš
2023-05-11 9:14 ` [RFC PATCH v3 1/4] dts: code adjustments for sphinx Juraj Linkeš
2023-05-11 9:14 ` [RFC PATCH v3 2/4] dts: add doc generation dependencies Juraj Linkeš
2023-05-11 9:14 ` [RFC PATCH v3 3/4] dts: add doc generation Juraj Linkeš
2023-05-11 9:14 ` [RFC PATCH v3 4/4] dts: format docstrigs to google format Juraj Linkeš
2023-06-21 18:27 ` Jeremy Spewock
2023-05-17 16:56 ` [RFC PATCH v3 0/4] dts: add dts api docs Bruce Richardson
2023-05-22 9:17 ` Juraj Linkeš
2023-08-31 10:04 ` [RFC PATCH v4 " Juraj Linkeš
2023-08-31 10:04 ` [RFC PATCH v4 1/4] dts: code adjustments for sphinx Juraj Linkeš
2023-10-22 14:30 ` Yoan Picchi
2023-10-23 6:44 ` Juraj Linkeš
2023-10-23 11:52 ` Yoan Picchi
2023-10-24 6:39 ` Juraj Linkeš
2023-10-24 12:21 ` Yoan Picchi
2023-08-31 10:04 ` [RFC PATCH v4 2/4] dts: add doc generation dependencies Juraj Linkeš
2023-10-27 15:27 ` Yoan Picchi
2023-08-31 10:04 ` [RFC PATCH v4 3/4] dts: add doc generation Juraj Linkeš
2023-09-20 7:08 ` Juraj Linkeš
2023-10-26 16:43 ` Yoan Picchi
2023-10-27 9:52 ` Juraj Linkeš
2023-08-31 10:04 ` [RFC PATCH v4 4/4] dts: format docstrigs to google format Juraj Linkeš
2023-09-01 17:02 ` Jeremy Spewock
2023-10-31 12:10 ` Yoan Picchi
2023-11-02 10:17 ` Juraj Linkeš
2023-11-06 17:15 ` [PATCH v5 00/23] dts: add dts api docs Juraj Linkeš
2023-11-06 17:15 ` [PATCH v5 01/23] dts: code adjustments for doc generation Juraj Linkeš
2023-11-08 13:35 ` Yoan Picchi
2023-11-15 7:46 ` Juraj Linkeš
2023-11-06 17:15 ` [PATCH v5 02/23] dts: add docstring checker Juraj Linkeš
2023-11-07 17:38 ` Yoan Picchi
2023-11-06 17:15 ` [PATCH v5 03/23] dts: add basic developer docs Juraj Linkeš
2023-11-07 14:39 ` Yoan Picchi
2023-11-08 9:01 ` Juraj Linkeš
2023-11-06 17:15 ` [PATCH v5 04/23] dts: exceptions docstring update Juraj Linkeš
2023-11-06 17:15 ` [PATCH v5 05/23] dts: settings " Juraj Linkeš
2023-11-06 17:15 ` [PATCH v5 06/23] dts: logger and " Juraj Linkeš
2023-11-06 17:15 ` [PATCH v5 07/23] dts: dts runner and main " Juraj Linkeš
2023-11-06 17:15 ` [PATCH v5 08/23] dts: test suite " Juraj Linkeš
2023-11-06 17:15 ` [PATCH v5 09/23] dts: test result " Juraj Linkeš
2023-11-06 17:15 ` [PATCH v5 10/23] dts: config " Juraj Linkeš
2023-11-06 17:15 ` [PATCH v5 11/23] dts: remote session " Juraj Linkeš
2023-11-06 17:15 ` [PATCH v5 12/23] dts: interactive " Juraj Linkeš
2023-11-06 17:15 ` [PATCH v5 13/23] dts: port and virtual device " Juraj Linkeš
2023-11-06 17:15 ` [PATCH v5 14/23] dts: cpu " Juraj Linkeš
2023-11-06 17:15 ` [PATCH v5 15/23] dts: os session " Juraj Linkeš
2023-11-06 17:15 ` [PATCH v5 16/23] dts: posix and linux sessions " Juraj Linkeš
2023-11-06 17:15 ` [PATCH v5 17/23] dts: node " Juraj Linkeš
2023-11-06 17:15 ` [PATCH v5 18/23] dts: sut and tg nodes " Juraj Linkeš
2023-11-06 17:15 ` [PATCH v5 19/23] dts: base traffic generators " Juraj Linkeš
2023-11-06 17:15 ` [PATCH v5 20/23] dts: scapy tg " Juraj Linkeš
2023-11-06 17:15 ` [PATCH v5 21/23] dts: test suites " Juraj Linkeš
2023-11-06 17:16 ` [PATCH v5 22/23] dts: add doc generation dependencies Juraj Linkeš
2023-11-06 17:16 ` [PATCH v5 23/23] dts: add doc generation Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 01/23] dts: code adjustments for " Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 02/23] dts: add docstring checker Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 03/23] dts: add basic developer docs Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 04/23] dts: exceptions docstring update Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 05/23] dts: settings " Juraj Linkeš
2023-11-08 16:17 ` Yoan Picchi
2023-11-15 10:09 ` Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 06/23] dts: logger and " Juraj Linkeš
2023-11-08 17:14 ` Yoan Picchi
2023-11-15 10:11 ` Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 07/23] dts: dts runner and main " Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 08/23] dts: test suite " Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 09/23] dts: test result " Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 10/23] dts: config " Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 11/23] dts: remote session " Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 12/23] dts: interactive " Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 13/23] dts: port and virtual device " Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 14/23] dts: cpu " Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 15/23] dts: os session " Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 16/23] dts: posix and linux sessions " Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 17/23] dts: node " Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 18/23] dts: sut and tg nodes " Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 19/23] dts: base traffic generators " Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 20/23] dts: scapy tg " Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 21/23] dts: test suites " Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 22/23] dts: add doc generation dependencies Juraj Linkeš
2023-11-08 16:00 ` Yoan Picchi
2023-11-15 10:00 ` Juraj Linkeš
2023-11-08 12:53 ` [PATCH v6 23/23] dts: add doc generation Juraj Linkeš
2023-11-15 13:09 ` [PATCH v7 00/21] dts: docstrings update Juraj Linkeš
2023-11-15 13:09 ` [PATCH v7 01/21] dts: code adjustments for doc generation Juraj Linkeš
2023-11-16 21:04 ` Jeremy Spewock
2023-11-20 16:10 ` Juraj Linkeš
2023-11-20 16:02 ` Yoan Picchi
2023-11-15 13:09 ` [PATCH v7 02/21] dts: add docstring checker Juraj Linkeš
2023-11-20 16:03 ` Yoan Picchi
2023-11-15 13:09 ` [PATCH v7 03/21] dts: add basic developer docs Juraj Linkeš
2023-11-20 16:03 ` Yoan Picchi
2023-11-15 13:09 ` [PATCH v7 04/21] dts: exceptions docstring update Juraj Linkeš
2023-11-20 16:22 ` Yoan Picchi
2023-11-20 16:35 ` Juraj Linkeš
2023-11-15 13:09 ` [PATCH v7 05/21] dts: settings " Juraj Linkeš
2023-11-15 13:09 ` [PATCH v7 06/21] dts: logger and utils " Juraj Linkeš
2023-11-20 16:23 ` Yoan Picchi
2023-11-20 16:36 ` Juraj Linkeš
2023-11-15 13:09 ` [PATCH v7 07/21] dts: dts runner and main " Juraj Linkeš
2023-11-16 21:51 ` Jeremy Spewock
2023-11-20 16:13 ` Juraj Linkeš
2023-11-20 17:43 ` Yoan Picchi
2023-11-21 9:10 ` Juraj Linkeš
2023-11-15 13:09 ` [PATCH v7 08/21] dts: test suite " Juraj Linkeš
2023-11-16 22:16 ` Jeremy Spewock
2023-11-20 16:25 ` Juraj Linkeš
2023-11-15 13:09 ` [PATCH v7 09/21] dts: test result " Juraj Linkeš
2023-11-16 22:47 ` Jeremy Spewock
2023-11-20 16:33 ` Juraj Linkeš
2023-11-30 21:20 ` Jeremy Spewock
2023-11-15 13:09 ` [PATCH v7 10/21] dts: config " Juraj Linkeš
2023-11-21 15:08 ` Yoan Picchi
2023-11-22 10:42 ` Juraj Linkeš
2023-11-15 13:09 ` [PATCH v7 11/21] dts: remote session " Juraj Linkeš
2023-11-21 15:36 ` Yoan Picchi
2023-11-22 11:13 ` Juraj Linkeš
2023-11-22 11:25 ` Yoan Picchi
2023-11-15 13:09 ` [PATCH v7 12/21] dts: interactive " Juraj Linkeš
2023-11-15 13:09 ` [PATCH v7 13/21] dts: port and virtual device " Juraj Linkeš
2023-11-15 13:09 ` [PATCH v7 14/21] dts: cpu " Juraj Linkeš
2023-11-21 17:45 ` Yoan Picchi
2023-11-22 11:18 ` Juraj Linkeš
2023-11-15 13:09 ` [PATCH v7 15/21] dts: os session " Juraj Linkeš
2023-11-22 11:50 ` Yoan Picchi
2023-11-22 13:27 ` Juraj Linkeš
2023-11-15 13:09 ` [PATCH v7 16/21] dts: posix and linux sessions " Juraj Linkeš
2023-11-22 13:24 ` Yoan Picchi
2023-11-22 13:35 ` Juraj Linkeš
2023-11-15 13:09 ` [PATCH v7 17/21] dts: node " Juraj Linkeš
2023-11-22 12:18 ` Yoan Picchi
2023-11-22 13:28 ` Juraj Linkeš
2023-11-15 13:09 ` [PATCH v7 18/21] dts: sut and tg nodes " Juraj Linkeš
2023-11-22 13:12 ` Yoan Picchi
2023-11-22 13:34 ` Juraj Linkeš
2023-11-15 13:09 ` [PATCH v7 19/21] dts: base traffic generators " Juraj Linkeš
2023-11-21 16:20 ` Yoan Picchi
2023-11-22 11:38 ` Juraj Linkeš
2023-11-22 11:56 ` Yoan Picchi
2023-11-22 13:11 ` Juraj Linkeš
2023-11-15 13:09 ` [PATCH v7 20/21] dts: scapy tg " Juraj Linkeš
2023-11-21 16:33 ` Yoan Picchi
2023-11-22 13:18 ` Juraj Linkeš
2023-11-15 13:09 ` [PATCH v7 21/21] dts: test suites " Juraj Linkeš
2023-11-16 17:36 ` Yoan Picchi
2023-11-20 10:17 ` Juraj Linkeš
2023-11-20 12:50 ` Yoan Picchi
2023-11-22 13:40 ` Juraj Linkeš
2023-11-23 15:13 ` [PATCH v8 00/21] dts: docstrings update Juraj Linkeš
2023-11-23 15:13 ` [PATCH v8 01/21] dts: code adjustments for doc generation Juraj Linkeš
2023-11-23 15:13 ` [PATCH v8 02/21] dts: add docstring checker Juraj Linkeš
2023-11-23 15:13 ` [PATCH v8 03/21] dts: add basic developer docs Juraj Linkeš
2023-11-23 15:13 ` [PATCH v8 04/21] dts: exceptions docstring update Juraj Linkeš
2023-11-23 15:13 ` [PATCH v8 05/21] dts: settings " Juraj Linkeš
2023-11-23 15:13 ` [PATCH v8 06/21] dts: logger and utils " Juraj Linkeš
2023-11-23 15:13 ` [PATCH v8 07/21] dts: dts runner and main " Juraj Linkeš
2023-11-23 15:13 ` [PATCH v8 08/21] dts: test suite " Juraj Linkeš
2023-11-23 15:13 ` [PATCH v8 09/21] dts: test result " Juraj Linkeš
2023-11-23 15:13 ` [PATCH v8 10/21] dts: config " Juraj Linkeš
2023-11-23 15:13 ` [PATCH v8 11/21] dts: remote session " Juraj Linkeš
2023-11-23 15:13 ` [PATCH v8 12/21] dts: interactive " Juraj Linkeš
2023-11-30 21:49 ` Jeremy Spewock
2023-12-04 9:50 ` Juraj Linkeš
2023-11-23 15:13 ` [PATCH v8 13/21] dts: port and virtual device " Juraj Linkeš
2023-11-23 15:13 ` [PATCH v8 14/21] dts: cpu " Juraj Linkeš
2023-11-23 15:13 ` [PATCH v8 15/21] dts: os session " Juraj Linkeš
2023-12-01 17:33 ` Jeremy Spewock [this message]
2023-12-04 9:53 ` Juraj Linkeš
2023-11-23 15:13 ` [PATCH v8 16/21] dts: posix and linux sessions " Juraj Linkeš
2023-11-23 15:13 ` [PATCH v8 17/21] dts: node " Juraj Linkeš
2023-11-23 15:13 ` [PATCH v8 18/21] dts: sut and tg nodes " Juraj Linkeš
2023-12-01 18:06 ` Jeremy Spewock
2023-12-04 10:02 ` Juraj Linkeš
2023-12-04 11:02 ` Bruce Richardson
2023-11-23 15:13 ` [PATCH v8 19/21] dts: base traffic generators " Juraj Linkeš
2023-12-01 18:05 ` Jeremy Spewock
2023-12-04 10:03 ` Juraj Linkeš
2023-11-23 15:13 ` [PATCH v8 20/21] dts: scapy tg " Juraj Linkeš
2023-12-01 18:17 ` Jeremy Spewock
2023-12-04 10:07 ` Juraj Linkeš
2023-11-23 15:13 ` [PATCH v8 21/21] dts: test suites " Juraj Linkeš
2023-12-01 16:00 ` [PATCH v8 00/21] dts: docstrings update Yoan Picchi
2023-12-01 18:23 ` Jeremy Spewock
2023-12-04 10:24 ` [PATCH v9 " Juraj Linkeš
2023-12-04 10:24 ` [PATCH v9 01/21] dts: code adjustments for doc generation Juraj Linkeš
2023-12-04 10:24 ` [PATCH v9 02/21] dts: add docstring checker Juraj Linkeš
2023-12-04 10:24 ` [PATCH v9 03/21] dts: add basic developer docs Juraj Linkeš
2023-12-04 10:24 ` [PATCH v9 04/21] dts: exceptions docstring update Juraj Linkeš
2023-12-04 10:24 ` [PATCH v9 05/21] dts: settings " Juraj Linkeš
2023-12-04 10:24 ` [PATCH v9 06/21] dts: logger and utils " Juraj Linkeš
2023-12-04 10:24 ` [PATCH v9 07/21] dts: dts runner and main " Juraj Linkeš
2023-12-04 10:24 ` [PATCH v9 08/21] dts: test suite " Juraj Linkeš
2023-12-04 10:24 ` [PATCH v9 09/21] dts: test result " Juraj Linkeš
2023-12-04 10:24 ` [PATCH v9 10/21] dts: config " Juraj Linkeš
2023-12-04 10:24 ` [PATCH v9 11/21] dts: remote session " Juraj Linkeš
2023-12-04 10:24 ` [PATCH v9 12/21] dts: interactive " Juraj Linkeš
2023-12-04 10:24 ` [PATCH v9 13/21] dts: port and virtual device " Juraj Linkeš
2023-12-04 10:24 ` [PATCH v9 14/21] dts: cpu " Juraj Linkeš
2023-12-04 10:24 ` [PATCH v9 15/21] dts: os session " Juraj Linkeš
2023-12-04 10:24 ` [PATCH v9 16/21] dts: posix and linux sessions " Juraj Linkeš
2023-12-04 10:24 ` [PATCH v9 17/21] dts: node " Juraj Linkeš
2023-12-04 10:24 ` [PATCH v9 18/21] dts: sut and tg nodes " Juraj Linkeš
2023-12-04 10:24 ` [PATCH v9 19/21] dts: base traffic generators " Juraj Linkeš
2023-12-04 10:24 ` [PATCH v9 20/21] dts: scapy tg " Juraj Linkeš
2023-12-04 10:24 ` [PATCH v9 21/21] dts: test suites " Juraj Linkeš
2023-12-05 18:39 ` Jeremy Spewock
2023-12-21 11:48 ` [PATCH v9 00/21] dts: docstrings update Thomas Monjalon
2023-11-15 13:36 ` [PATCH v1 0/2] dts: api docs generation Juraj Linkeš
2023-11-15 13:36 ` [PATCH v1 1/2] dts: add doc generation dependencies Juraj Linkeš
2023-11-15 13:36 ` [PATCH v1 2/2] dts: add doc generation Juraj Linkeš
2024-01-22 12:00 ` [PATCH v2 0/3] dts: API docs generation Juraj Linkeš
2024-01-22 12:00 ` [PATCH v2 1/3] dts: add doc generation dependencies Juraj Linkeš
2024-01-22 12:00 ` [PATCH v2 2/3] dts: add API doc sources Juraj Linkeš
2024-01-22 12:00 ` [PATCH v2 3/3] dts: add API doc generation Juraj Linkeš
2024-01-22 16:35 ` [PATCH v3 0/3] dts: API docs generation Juraj Linkeš
2024-01-22 16:35 ` [PATCH v3 1/3] dts: add doc generation dependencies Juraj Linkeš
2024-01-22 16:35 ` [PATCH v3 2/3] dts: add API doc sources Juraj Linkeš
2024-01-22 16:35 ` [PATCH v3 3/3] dts: add API doc generation Juraj Linkeš
2024-01-29 17:09 ` Jeremy Spewock
[not found] ` <CAJvnSUCNjo0p-yhROF1MNLKhjiAw2QTyTHO2hpOaVVUn0xnJ0A@mail.gmail.com>
2024-02-29 18:12 ` Nicholas Pratte
2024-04-12 10:14 ` [PATCH v4 0/3] dts: API docs generation Juraj Linkeš
2024-04-12 10:14 ` [PATCH v4 1/3] dts: add doc generation dependencies Juraj Linkeš
2024-04-12 10:14 ` [PATCH v4 2/3] dts: add API doc sources Juraj Linkeš
2024-04-12 10:14 ` [PATCH v4 3/3] dts: add API doc generation Juraj Linkeš
2024-04-29 13:49 ` [PATCH v4 0/3] dts: API docs generation Jeremy Spewock
2024-04-29 14:12 ` Patrick Robb
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAAA20UQFANXd3bn1xxGHSWAht_tPk4x9QKJW3K_2rtXaAbjJUQ@mail.gmail.com \
--to=jspewock@iol.unh.edu \
--cc=Honnappa.Nagarahalli@arm.com \
--cc=Luca.Vizzarro@arm.com \
--cc=dev@dpdk.org \
--cc=juraj.linkes@pantheon.tech \
--cc=paul.szczepanek@arm.com \
--cc=probb@iol.unh.edu \
--cc=thomas@monjalon.net \
--cc=yoan.picchi@foss.arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).