DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Juraj Linkeš" <juraj.linkes@pantheon.tech>
To: Yoan Picchi <yoan.picchi@foss.arm.com>
Cc: thomas@monjalon.net, Honnappa.Nagarahalli@arm.com,
	jspewock@iol.unh.edu,  probb@iol.unh.edu,
	paul.szczepanek@arm.com, dev@dpdk.org
Subject: Re: [PATCH v7 16/21] dts: posix and linux sessions docstring update
Date: Wed, 22 Nov 2023 14:35:54 +0100	[thread overview]
Message-ID: <CAOb5WZb9sTKvWNnWuy0PcF75-UQWApWdT9GBHXk8C+aSysWa6g@mail.gmail.com> (raw)
In-Reply-To: <6b14a66b-9b05-4ada-9a92-c3b6ead5eb8e@foss.arm.com>

On Wed, Nov 22, 2023 at 2:24 PM Yoan Picchi <yoan.picchi@foss.arm.com> wrote:
>
> On 11/15/23 13:09, Juraj Linkeš 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/linux_session.py | 63 ++++++++++-----
> >   dts/framework/testbed_model/posix_session.py | 81 +++++++++++++++++---
> >   2 files changed, 113 insertions(+), 31 deletions(-)
> >
> > diff --git a/dts/framework/testbed_model/linux_session.py b/dts/framework/testbed_model/linux_session.py
> > index f472bb8f0f..279954ff63 100644
> > --- a/dts/framework/testbed_model/linux_session.py
> > +++ b/dts/framework/testbed_model/linux_session.py
> > @@ -2,6 +2,13 @@
> >   # Copyright(c) 2023 PANTHEON.tech s.r.o.
> >   # Copyright(c) 2023 University of New Hampshire
> >
> > +"""Linux OS translator.
> > +
> > +Translate OS-unaware calls into Linux calls/utilities. Most of Linux distributions are mostly
> > +compliant with POSIX standards, so this module only implements the parts that aren't.
> > +This intermediate module implements the common parts of mostly POSIX compliant distributions.
> > +"""
> > +
> >   import json
> >   from ipaddress import IPv4Interface, IPv6Interface
> >   from typing import TypedDict, Union
> > @@ -17,43 +24,51 @@
> >
> >
> >   class LshwConfigurationOutput(TypedDict):
> > +    """The relevant parts of ``lshw``'s ``configuration`` section."""
> > +
> > +    #:
> >       link: str
> >
> >
> >   class LshwOutput(TypedDict):
> > -    """
> > -    A model of the relevant information from json lshw output, e.g.:
> > -    {
> > -    ...
> > -    "businfo" : "pci@0000:08:00.0",
> > -    "logicalname" : "enp8s0",
> > -    "version" : "00",
> > -    "serial" : "52:54:00:59:e1:ac",
> > -    ...
> > -    "configuration" : {
> > -      ...
> > -      "link" : "yes",
> > -      ...
> > -    },
> > -    ...
> > +    """A model of the relevant information from ``lshw``'s json output.
> > +
> > +    e.g.::
> > +
> > +        {
> > +        ...
> > +        "businfo" : "pci@0000:08:00.0",
> > +        "logicalname" : "enp8s0",
> > +        "version" : "00",
> > +        "serial" : "52:54:00:59:e1:ac",
> > +        ...
> > +        "configuration" : {
> > +          ...
> > +          "link" : "yes",
> > +          ...
> > +        },
> > +        ...
> >       """
> >
> > +    #:
> >       businfo: str
> > +    #:
> >       logicalname: NotRequired[str]
> > +    #:
> >       serial: NotRequired[str]
> > +    #:
> >       configuration: LshwConfigurationOutput
> >
> >
> >   class LinuxSession(PosixSession):
> > -    """
> > -    The implementation of non-Posix compliant parts of Linux remote sessions.
> > -    """
> > +    """The implementation of non-Posix compliant parts of Linux."""
> >
> >       @staticmethod
> >       def _get_privileged_command(command: str) -> str:
> >           return f"sudo -- sh -c '{command}'"
> >
> >       def get_remote_cpus(self, use_first_core: bool) -> list[LogicalCore]:
> > +        """Overrides :meth:`~.os_session.OSSession.get_remote_cpus`."""
> >           cpu_info = self.send_command("lscpu -p=CPU,CORE,SOCKET,NODE|grep -v \\#").stdout
> >           lcores = []
> >           for cpu_line in cpu_info.splitlines():
> > @@ -65,18 +80,20 @@ def get_remote_cpus(self, use_first_core: bool) -> list[LogicalCore]:
> >           return lcores
> >
> >       def get_dpdk_file_prefix(self, dpdk_prefix: str) -> str:
> > +        """Overrides :meth:`~.os_session.OSSession.get_dpdk_file_prefix`."""
> >           return dpdk_prefix
> >
> > -    def setup_hugepages(self, hugepage_amount: int, force_first_numa: bool) -> None:
> > +    def setup_hugepages(self, hugepage_count: int, force_first_numa: bool) -> None:
> > +        """Overrides :meth:`~.os_session.OSSession.setup_hugepages`."""
> >           self._logger.info("Getting Hugepage information.")
> >           hugepage_size = self._get_hugepage_size()
> >           hugepages_total = self._get_hugepages_total()
> >           self._numa_nodes = self._get_numa_nodes()
> >
> > -        if force_first_numa or hugepages_total != hugepage_amount:
> > +        if force_first_numa or hugepages_total != hugepage_count:
> >               # when forcing numa, we need to clear existing hugepages regardless
> >               # of size, so they can be moved to the first numa node
> > -            self._configure_huge_pages(hugepage_amount, hugepage_size, force_first_numa)
> > +            self._configure_huge_pages(hugepage_count, hugepage_size, force_first_numa)
> >           else:
> >               self._logger.info("Hugepages already configured.")
> >           self._mount_huge_pages()
> > @@ -140,6 +157,7 @@ def _configure_huge_pages(
> >           )
> >
> >       def update_ports(self, ports: list[Port]) -> None:
> > +        """Overrides :meth:`~.os_session.OSSession.update_ports`."""
> >           self._logger.debug("Gathering port info.")
> >           for port in ports:
> >               assert (
> > @@ -178,6 +196,7 @@ def _update_port_attr(
> >               )
> >
> >       def configure_port_state(self, port: Port, enable: bool) -> None:
> > +        """Overrides :meth:`~.os_session.OSSession.configure_port_state`."""
> >           state = "up" if enable else "down"
> >           self.send_command(
> >               f"ip link set dev {port.logical_name} {state}", privileged=True
> > @@ -189,6 +208,7 @@ def configure_port_ip_address(
> >           port: Port,
> >           delete: bool,
> >       ) -> None:
> > +        """Overrides :meth:`~.os_session.OSSession.configure_port_ip_address`."""
> >           command = "del" if delete else "add"
> >           self.send_command(
> >               f"ip address {command} {address} dev {port.logical_name}",
> > @@ -197,5 +217,6 @@ def configure_port_ip_address(
> >           )
> >
> >       def configure_ipv4_forwarding(self, enable: bool) -> None:
> > +        """Overrides :meth:`~.os_session.OSSession.configure_ipv4_forwarding`."""
> >           state = 1 if enable else 0
> >           self.send_command(f"sysctl -w net.ipv4.ip_forward={state}", privileged=True)
> > diff --git a/dts/framework/testbed_model/posix_session.py b/dts/framework/testbed_model/posix_session.py
> > index 1d1d5b1b26..a4824aa274 100644
> > --- a/dts/framework/testbed_model/posix_session.py
> > +++ b/dts/framework/testbed_model/posix_session.py
> > @@ -2,6 +2,15 @@
> >   # Copyright(c) 2023 PANTHEON.tech s.r.o.
> >   # Copyright(c) 2023 University of New Hampshire
> >
> > +"""POSIX compliant OS translator.
> > +
> > +Translates OS-unaware calls into POSIX compliant calls/utilities. POSIX is a set of standards
> > +for portability between Unix operating systems which not all Linux distributions
> > +(or the tools most frequently bundled with said distributions) adhere to. Most of Linux
> > +distributions are mostly compliant though.
> > +This intermediate module implements the common parts of mostly POSIX compliant distributions.
> > +"""
> > +
> >   import re
> >   from collections.abc import Iterable
> >   from pathlib import PurePath, PurePosixPath
> > @@ -15,13 +24,21 @@
> >
> >
> >   class PosixSession(OSSession):
> > -    """
> > -    An intermediary class implementing the Posix compliant parts of
> > -    Linux and other OS remote sessions.
> > -    """
> > +    """An intermediary class implementing the POSIX standard."""
> >
> >       @staticmethod
> >       def combine_short_options(**opts: bool) -> str:
> > +        """Combine shell options into one argument.
> > +
> > +        These are options such as ``-x``, ``-v``, ``-f`` which are combined into ``-xvf``.
> > +
> > +        Args:
> > +            opts: The keys are option names (usually one letter) and the bool values indicate
> > +                whether to include the option in the resulting argument.
> > +
> > +        Returns:
> > +            The options combined into one argument.
> > +        """
> >           ret_opts = ""
> >           for opt, include in opts.items():
> >               if include:
> > @@ -33,17 +50,19 @@ def combine_short_options(**opts: bool) -> str:
> >           return ret_opts
> >
> >       def guess_dpdk_remote_dir(self, remote_dir: str | PurePath) -> PurePosixPath:
> > +        """Overrides :meth:`~.os_session.OSSession.guess_dpdk_remote_dir`."""
> >           remote_guess = self.join_remote_path(remote_dir, "dpdk-*")
> >           result = self.send_command(f"ls -d {remote_guess} | tail -1")
> >           return PurePosixPath(result.stdout)
> >
> >       def get_remote_tmp_dir(self) -> PurePosixPath:
> > +        """Overrides :meth:`~.os_session.OSSession.get_remote_tmp_dir`."""
> >           return PurePosixPath("/tmp")
> >
> >       def get_dpdk_build_env_vars(self, arch: Architecture) -> dict:
> > -        """
> > -        Create extra environment variables needed for i686 arch build. Get information
> > -        from the node if needed.
> > +        """Overrides :meth:`~.os_session.OSSession.get_dpdk_build_env_vars`.
> > +
> > +        Supported architecture: ``i686``.
> >           """
> >           env_vars = {}
> >           if arch == Architecture.i686:
> > @@ -63,6 +82,7 @@ def get_dpdk_build_env_vars(self, arch: Architecture) -> dict:
> >           return env_vars
> >
> >       def join_remote_path(self, *args: str | PurePath) -> PurePosixPath:
> > +        """Overrides :meth:`~.os_session.OSSession.join_remote_path`."""
> >           return PurePosixPath(*args)
> >
> >       def copy_from(
> > @@ -70,6 +90,7 @@ def copy_from(
> >           source_file: str | PurePath,
> >           destination_file: str | PurePath,
> >       ) -> None:
> > +        """Overrides :meth:`~.os_session.OSSession.copy_from`."""
> >           self.remote_session.copy_from(source_file, destination_file)
> >
> >       def copy_to(
> > @@ -77,6 +98,7 @@ def copy_to(
> >           source_file: str | PurePath,
> >           destination_file: str | PurePath,
> >       ) -> None:
> > +        """Overrides :meth:`~.os_session.OSSession.copy_to`."""
> >           self.remote_session.copy_to(source_file, destination_file)
> >
> >       def remove_remote_dir(
> > @@ -85,6 +107,7 @@ def remove_remote_dir(
> >           recursive: bool = True,
> >           force: bool = True,
> >       ) -> None:
> > +        """Overrides :meth:`~.os_session.OSSession.remove_remote_dir`."""
> >           opts = PosixSession.combine_short_options(r=recursive, f=force)
> >           self.send_command(f"rm{opts} {remote_dir_path}")
> >
> > @@ -93,6 +116,7 @@ def extract_remote_tarball(
> >           remote_tarball_path: str | PurePath,
> >           expected_dir: str | PurePath | None = None,
> >       ) -> None:
> > +        """Overrides :meth:`~.os_session.OSSession.extract_remote_tarball`."""
> >           self.send_command(
> >               f"tar xfm {remote_tarball_path} "
> >               f"-C {PurePosixPath(remote_tarball_path).parent}",
> > @@ -110,6 +134,7 @@ def build_dpdk(
> >           rebuild: bool = False,
> >           timeout: float = SETTINGS.compile_timeout,
> >       ) -> None:
> > +        """Overrides :meth:`~.os_session.OSSession.build_dpdk`."""
> >           try:
> >               if rebuild:
> >                   # reconfigure, then build
> > @@ -140,12 +165,14 @@ def build_dpdk(
> >               raise DPDKBuildError(f"DPDK build failed when doing '{e.command}'.")
> >
> >       def get_dpdk_version(self, build_dir: str | PurePath) -> str:
> > +        """Overrides :meth:`~.os_session.OSSession.get_dpdk_version`."""
> >           out = self.send_command(
> >               f"cat {self.join_remote_path(build_dir, 'VERSION')}", verify=True
> >           )
> >           return out.stdout
> >
> >       def kill_cleanup_dpdk_apps(self, dpdk_prefix_list: Iterable[str]) -> None:
> > +        """Overrides :meth:`~.os_session.OSSession.kill_cleanup_dpdk_apps`."""
> >           self._logger.info("Cleaning up DPDK apps.")
> >           dpdk_runtime_dirs = self._get_dpdk_runtime_dirs(dpdk_prefix_list)
> >           if dpdk_runtime_dirs:
> > @@ -159,6 +186,14 @@ def kill_cleanup_dpdk_apps(self, dpdk_prefix_list: Iterable[str]) -> None:
> >       def _get_dpdk_runtime_dirs(
> >           self, dpdk_prefix_list: Iterable[str]
> >       ) -> list[PurePosixPath]:
> > +        """Find runtime directories DPDK apps are currently using.
> > +
> > +        Args:
> > +              dpdk_prefix_list: The prefixes DPDK apps were started with.
> > +
> > +        Returns:
> > +            The paths of DPDK apps' runtime dirs.
> > +        """
> >           prefix = PurePosixPath("/var", "run", "dpdk")
> >           if not dpdk_prefix_list:
> >               remote_prefixes = self._list_remote_dirs(prefix)
> > @@ -170,9 +205,13 @@ def _get_dpdk_runtime_dirs(
> >           return [PurePosixPath(prefix, dpdk_prefix) for dpdk_prefix in dpdk_prefix_list]
> >
> >       def _list_remote_dirs(self, remote_path: str | PurePath) -> list[str] | None:
> > -        """
> > -        Return a list of directories of the remote_dir.
> > -        If remote_path doesn't exist, return None.
> > +        """Contents of remote_path.
> > +
> > +        Args:
> > +            remote_path: List the contents of this path.
> > +
> > +        Returns:
> > +            The contents of remote_path. If remote_path doesn't exist, return None.
> >           """
> >           out = self.send_command(
> >               f"ls -l {remote_path} | awk '/^d/ {{print $NF}}'"
> > @@ -183,6 +222,17 @@ def _list_remote_dirs(self, remote_path: str | PurePath) -> list[str] | None:
> >               return out.splitlines()
> >
> >       def _get_dpdk_pids(self, dpdk_runtime_dirs: Iterable[str | PurePath]) -> list[int]:
> > +        """Find PIDs of running DPDK apps.
> > +
> > +        Look at each "config" file found in dpdk_runtime_dirs and find the PIDs of processes
> > +        that opened those file.
> > +
> > +        Args:
> > +            dpdk_runtime_dirs: The paths of DPDK apps' runtime dirs.
> > +
> > +        Returns:
> > +            The PIDs of running DPDK apps.
> > +        """
> >           pids = []
> >           pid_regex = r"p(\d+)"
> >           for dpdk_runtime_dir in dpdk_runtime_dirs:
> > @@ -203,6 +253,14 @@ def _remote_files_exists(self, remote_path: PurePath) -> bool:
> >       def _check_dpdk_hugepages(
> >           self, dpdk_runtime_dirs: Iterable[str | PurePath]
> >       ) -> None:
> > +        """Check there aren't any leftover hugepages.
> > +
> > +        If any hugegapes are found, emit a warning. The hugepages are investigated in the
>
> hugegapes -> hugepages
>

Ack.

> > +        "hugepage_info" file of dpdk_runtime_dirs.
> > +
> > +        Args:
> > +            dpdk_runtime_dirs: The paths of DPDK apps' runtime dirs.
> > +        """
> >           for dpdk_runtime_dir in dpdk_runtime_dirs:
> >               hugepage_info = PurePosixPath(dpdk_runtime_dir, "hugepage_info")
> >               if self._remote_files_exists(hugepage_info):
> > @@ -220,9 +278,11 @@ def _remove_dpdk_runtime_dirs(
> >               self.remove_remote_dir(dpdk_runtime_dir)
> >
> >       def get_dpdk_file_prefix(self, dpdk_prefix: str) -> str:
> > +        """Overrides :meth:`~.os_session.OSSession.get_dpdk_file_prefix`."""
> >           return ""
> >
> >       def get_compiler_version(self, compiler_name: str) -> str:
> > +        """Overrides :meth:`~.os_session.OSSession.get_compiler_version`."""
> >           match compiler_name:
> >               case "gcc":
> >                   return self.send_command(
> > @@ -240,6 +300,7 @@ def get_compiler_version(self, compiler_name: str) -> str:
> >                   raise ValueError(f"Unknown compiler {compiler_name}")
> >
> >       def get_node_info(self) -> NodeInfo:
> > +        """Overrides :meth:`~.os_session.OSSession.get_node_info`."""
> >           os_release_info = self.send_command(
> >               "awk -F= '$1 ~ /^NAME$|^VERSION$/ {print $2}' /etc/os-release",
> >               SETTINGS.timeout,
>

  reply	other threads:[~2023-11-22 13:36 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š [this message]
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
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=CAOb5WZb9sTKvWNnWuy0PcF75-UQWApWdT9GBHXk8C+aSysWa6g@mail.gmail.com \
    --to=juraj.linkes@pantheon.tech \
    --cc=Honnappa.Nagarahalli@arm.com \
    --cc=dev@dpdk.org \
    --cc=jspewock@iol.unh.edu \
    --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).