File: types.py

package info (click to toggle)
dpdk 25.11-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 127,892 kB
  • sloc: ansic: 2,358,479; python: 16,426; sh: 4,474; makefile: 1,713; awk: 70
file content (135 lines) | stat: -rw-r--r-- 3,938 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2024 Arm Limited

"""Module containing TypeDict-equivalents of Params classes for static typing and hinting.

TypedDicts can be used in conjunction with Unpack and kwargs for type hinting on function calls.

Example:
    .. code:: python

        def create_testpmd(**kwargs: Unpack[TestPmdParamsDict]):
            params = TestPmdParams(**kwargs)
"""

from pathlib import PurePath
from typing import TypedDict

from api.testpmd.config import (
    AnonMempoolAllocationMode,
    EthPeer,
    Event,
    FlowGenForwardingMode,
    HairpinMode,
    NoisyForwardingMode,
    Params,
    PortNUMAConfig,
    PortTopology,
    RingNUMAConfig,
    RSSSetting,
    RXMultiQueueMode,
    RXRingParams,
    SimpleForwardingModes,
    SimpleMempoolAllocationMode,
    TxIPAddrPair,
    TXOnlyForwardingMode,
    TXRingParams,
    TxUDPPortPair,
)
from framework.params import Switch, YesNoSwitch
from framework.testbed_model.cpu import LogicalCoreList
from framework.testbed_model.port import Port
from framework.testbed_model.virtual_device import VirtualDevice


class EalParamsDict(TypedDict, total=False):
    """:class:`TypedDict` equivalent of :class:`~.eal.EalParams`."""

    lcore_list: LogicalCoreList | None
    memory_channels: int | None
    prefix: str
    no_pci: Switch
    vdevs: list[VirtualDevice] | None
    allowed_ports: list[Port] | None
    blocked_ports: list[Port] | None
    other_eal_param: Params | None


class TestPmdParamsDict(EalParamsDict, total=False):
    """:class:`TypedDict` equivalent of :class:`~.testpmd.TestPmdParams`."""

    interactive_mode: Switch
    auto_start: Switch
    tx_first: Switch
    stats_period: int | None
    display_xstats: list[str] | None
    nb_cores: int | None
    coremask: int | None
    nb_ports: int | None
    port_topology: PortTopology | None
    portmask: int | None
    portlist: str | None
    numa: YesNoSwitch
    socket_num: int | None
    port_numa_config: list[PortNUMAConfig] | None
    ring_numa_config: list[RingNUMAConfig] | None
    total_num_mbufs: int | None
    mbuf_size: list[int] | None
    mbcache: int | None
    max_pkt_len: int | None
    eth_peers_configfile: PurePath | None
    eth_peer: list[EthPeer] | None
    tx_ip: TxIPAddrPair | None
    tx_udp: TxUDPPortPair | None
    enable_lro: Switch
    max_lro_pkt_size: int | None
    disable_crc_strip: Switch
    enable_scatter: Switch
    enable_hw_vlan: Switch
    enable_hw_vlan_filter: Switch
    enable_hw_vlan_strip: Switch
    enable_hw_vlan_extend: Switch
    enable_hw_qinq_strip: Switch
    pkt_drop_enabled: Switch
    rss: RSSSetting | None
    forward_mode: (
        SimpleForwardingModes
        | FlowGenForwardingMode
        | TXOnlyForwardingMode
        | NoisyForwardingMode
        | None
    )
    hairpin_mode: HairpinMode | None
    hairpin_queues: int | None
    burst: int | None
    enable_rx_cksum: Switch
    rx_queues: int | None
    rx_ring: RXRingParams | None
    no_flush_rx: Switch
    rx_segments_offsets: list[int] | None
    rx_segments_length: list[int] | None
    multi_rx_mempool: Switch
    rx_shared_queue: Switch | int
    rx_offloads: int | None
    rx_mq_mode: RXMultiQueueMode | None
    tx_queues: int | None
    tx_ring: TXRingParams | None
    tx_offloads: int | None
    eth_link_speed: int | None
    disable_link_check: Switch
    disable_device_start: Switch
    no_lsc_interrupt: Switch
    no_rmv_interrupt: Switch
    bitrate_stats: int | None
    latencystats: int | None
    print_events: list[Event] | None
    mask_events: list[Event] | None
    flow_isolate_all: Switch
    disable_flow_flush: Switch
    hot_plug: Switch
    vxlan_gpe_port: int | None
    geneve_parsed_port: int | None
    lock_all_memory: YesNoSwitch
    mempool_allocation_mode: SimpleMempoolAllocationMode | AnonMempoolAllocationMode | None
    record_core_cycles: Switch
    record_burst_status: Switch