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
|