Bug ID 1584
Summary dts: rxq info dataclass fields were dropped
Product DPDK
Version unspecified
Hardware All
OS All
Status UNCONFIRMED
Severity minor
Priority Normal
Component DTS
Assignee dev@dpdk.org
Reporter probb@iol.unh.edu
CC juraj.linkes@pantheon.tech, probb@iol.unh.edu
Target Milestone ---

https://patchwork.dpdk.org/project/dpdk/patch/20241105165830.15881-2-dmarx@iol.unh.edu/

In the series above, any fields which were previously a part of TestPmdRxqInfo
dataclass, and were not needed for our current testsuites, were dropped when we
shifted to a rxqinfo base class and 2 child classes for txq and rxq
respectively. 

I can see why this was done, but it is worth discussing at an upcoming meeting
whether we should continue with this practice in other cases, or attempt to
provide complete structures for testpmd output, even before they're needed for
a testsuite. In my view it is simpler to just support all fields possible in
the given dataclass instead of add them in piecemeal as testsuites are added.

For context, the original dataclass, which represents all the values returned
from "show rxq info <port_id> <queue_id>":

-------------------------------

@dataclass
class TestPmdRxqInfo(TextParser):
    """Representation of testpmd's ``show rxq info <port_id> <queue_id>``
command.

    References:
        testpmd command function: ``app/test-pmd/cmdline.c:cmd_showqueue()``
        testpmd display function:
``app/test-pmd/config.c:rx_queue_infos_display()``
    """

    #:
    port_id: int = field(metadata=TextParser.find_int(r"Infos for port (\d+)\b
?, RX queue \d+\b"))
    #:
    queue_id: int = field(metadata=TextParser.find_int(r"Infos for port \d+\b
?, RX queue (\d+)\b"))
    #: Mempool used by that queue
    mempool: str = field(metadata=TextParser.find(r"Mempool: ([^\r\n]+)"))
    #: Ring prefetch threshold
    rx_prefetch_threshold: int = field(
        metadata=TextParser.find_int(r"RX prefetch threshold: (\d+)\b")
    )
    #: Ring host threshold
    rx_host_threshold: int = field(metadata=TextParser.find_int(r"RX host
threshold: (\d+)\b"))
    #: Ring writeback threshold
    rx_writeback_threshold: int = field(
        metadata=TextParser.find_int(r"RX writeback threshold: (\d+)\b")
    )
    #: Drives the freeing of Rx descriptors
    rx_free_threshold: int = field(metadata=TextParser.find_int(r"RX free
threshold: (\d+)\b"))
    #: Drop packets if no descriptors are available
    rx_drop_packets: bool = field(metadata=TextParser.find(r"RX drop packets:
on"))
    #: Do not start queue with rte_eth_dev_start()
    rx_deferred_start: bool = field(metadata=TextParser.find(r"RX deferred
start: on"))
    #: Scattered packets Rx enabled
    rx_scattered_packets: bool = field(metadata=TextParser.find(r"RX scattered
packets: on"))
    #: The state of the queue
    rx_queue_state: str = field(metadata=RxQueueState.make_parser())
    #: Configured number of RXDs
    number_of_rxds: int = field(metadata=TextParser.find_int(r"Number of RXDs:
(\d+)\b"))
    #: Hardware receive buffer size
    rx_buffer_size: int | None = field(
        default=None, metadata=TextParser.find_int(r"RX buffer size: (\d+)\b")
    )
    #: Burst mode information
    burst_mode: str | None = field(
        default=None, metadata=TextParser.find(r"Burst mode: ([^\r\n]+)")
    )
          


You are receiving this mail because: