tdl-xoa-driver 1.5.0b2__tar.gz → 1.5.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tdl_xoa_driver-1.5.0b2/tdl_xoa_driver.egg-info → tdl_xoa_driver-1.5.1}/PKG-INFO +8 -8
- tdl_xoa_driver-1.5.1/README.md +22 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/setup.py +2 -2
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1/tdl_xoa_driver.egg-info}/PKG-INFO +8 -8
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/tdl_xoa_driver.egg-info/SOURCES.txt +2 -1
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/__init__.py +1 -1
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/cli/__init__.py +5 -5
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/cli/port_config.py +16 -7
- tdl_xoa_driver-1.5.0b2/xoa_driver/functions/cli/test_case_config.py → tdl_xoa_driver-1.5.1/xoa_driver/functions/cli/testbed_config.py +53 -46
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/p_commands.py +38 -2
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pl1_commands.py +130 -73
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pp_commands.py +44 -55
- tdl_xoa_driver-1.5.1/xoa_driver/internals/hli/ports/port_l23/edun_l1.py +181 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_edun.py +9 -9
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_l1.py +8 -8
- tdl_xoa_driver-1.5.0b2/README.md +0 -22
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/LICENSE +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/pyproject.toml +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/setup.cfg +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/tdl_xoa_driver.egg-info/dependency_links.txt +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/tdl_xoa_driver.egg-info/top_level.txt +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/enums.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/exceptions.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/anlt.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/anlt_ll_debug.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/cli/_cli_manager.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/cli/_config_block.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/cli/_socket_driver.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/cmis/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/cmis/_constants.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/cmis/_replies.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/cmis/_utils.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/cmis/cdb.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/exceptions.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/headers.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/mgmt.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/tools.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/hlfuncs.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/c_commands.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/enums.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/m4_commands.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/m4e_commands.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/m_commands.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/p4_commands.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/p4e_commands.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/p4g_commands.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pc_commands.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pd_commands.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pe_commands.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pec_commands.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/ped_commands.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pef_commands.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pf_commands.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pl_commands.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pm_commands.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pr_commands.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/ps_commands.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pt_commands.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/px_commands.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/subtypes.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/builders.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/exceptions.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/funcs.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/funcs.pyi +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/interfaces.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/token.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/_processor.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/_publisher.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/_request_id_counter.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/_stream.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/_typings.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/exceptions.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/handler.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/logger/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/logger/__logger.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/logger/__state_off.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/logger/__state_on_default.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/logger/__state_on_loguru.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/logger/__state_on_user.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/_constants.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/_utils.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/exceptions.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/payload/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/payload/base_struct.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/payload/descriptor.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/payload/exceptions.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/payload/field.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/payload/types.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/payload/utils.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/struct_header.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/struct_request.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/struct_response.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/registry.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/exceptions/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/exceptions/modules.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/exceptions/testers.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/base_index.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/connection_group/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/connection_group/cg.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/connection_group/histogram.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/connection_group/l2.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/connection_group/l3.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/connection_group/raw.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/connection_group/replay.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/connection_group/tcp.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/connection_group/tls.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/connection_group/udp.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/connection_group/user_state.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/filter/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/filter/base_filter.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/filter/genuine_filter.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/length_term.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/macsecscs/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/macsecscs/base_macsecsc.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/macsecscs/genuine_macsecsc.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/match_term.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/port_dataset.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/streams/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/streams/base_stream.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/streams/genuine_stream.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/__interfaces.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/base_module.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/module_chimera.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/module_l23ve.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/module_l47.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/module_l47ve.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_combi.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_d.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_e.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_edun.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_f.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_g.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_h.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_i.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_j.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_k.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_l.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_l1.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_m.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_n.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/module_l23_base.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/base_port.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/bases/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/bases/port_capture.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/bases/port_l23.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/bases/port_l23_genuine.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/bases/port_reception_statistics.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/bases/port_transceiver.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/bases/port_transmission_statistics.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/filter_definition/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/filter_definition/_utils.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/filter_definition/general.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/filter_definition/shadow.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/filter_definition/working.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/pe_custom_distribution.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/pe_distribution.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/port_chimera.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/port_emulation.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/reception_statistics.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/transmission_statistics.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_combi.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_d.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_e.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_f.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_g.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_h.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_i.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_j.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_k.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_l.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_m.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/fault_jkl.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/freya_l1.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/pcs_pma_ghijkl.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/pcs_pma_ijkl_chimera.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/pcs_pma_l.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/port_l23ve.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l47/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l47/counters.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l47/main.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l47/packet_engine.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/revisions.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/_base_tester.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/genuine/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/genuine/l_23/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/genuine/l_23/health.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/genuine/l_23/rest_api.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/genuine/l_23/time_keeper.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/genuine/l_23/upload_file.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/genuine/management_interface.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/l23_tester.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/l23ve_tester.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/l47_tester.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/l47ve_tester.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/state_storage/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/state_storage/_speed_detector.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/state_storage/modules_state.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/state_storage/ports_state.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/state_storage/testers_state.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/attributes.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/cap_id.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/con_traffic_light.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/indices/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/indices/_interfaces.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/indices/header_modifier_manager.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/indices/index_manager.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/indices/observer.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/kind.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/managers/__init__.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/managers/abc.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/managers/exceptions.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/managers/modules_manager.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/managers/ports_manager.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/rev_tool.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/session.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/warn.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/lli.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/misc.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/modules.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/ports.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/testers.py +0 -0
- {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/utils.py +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tdl-xoa-driver
|
|
3
|
-
Version: 1.5.
|
|
4
|
-
Summary: XOA
|
|
3
|
+
Version: 1.5.1
|
|
4
|
+
Summary: TDL XOA Python API is a Python library providing user-friendly communication interfaces to Teledyne LeCroy Xena Ethernet traffic generation test equipment. It provides a rich collection of APIs that can be used to either write test scripts or develop applications.
|
|
5
5
|
Home-page: https://github.com/xenanetworks/tdl-xoa-driver
|
|
6
6
|
Author: Leonard Yu, Zoltan Hanisch
|
|
7
7
|
Author-email: Leonard.Yu@teledyne.com, Zoltan.Hanisch@teledyne.com
|
|
8
8
|
Maintainer: Teledyne LeCroy Xena
|
|
9
9
|
Maintainer-email: xena-sales@teledyne.com
|
|
10
10
|
License: Apache 2.0
|
|
11
|
-
Classifier: Development Status ::
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
12
|
Classifier: Intended Audience :: Developers
|
|
13
13
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
14
14
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
@@ -33,15 +33,15 @@ Dynamic: requires-python
|
|
|
33
33
|
Dynamic: summary
|
|
34
34
|
|
|
35
35
|
 [](https://pypi.python.org/pypi/tdl-xoa-driver) [](https://docs.xenanetworks.com/projects/tdl-xoa-driver/en/latest/?badge=latest)
|
|
36
|
-
# XOA
|
|
37
|
-
XOA
|
|
36
|
+
# TDL XOA Python API
|
|
37
|
+
TDL XOA Python API is a standalone Python library that provides a user-friendly and powerful interface for automating network testing tasks using Xena Networks test equipment. Xena test equipment is a high-performance network test device designed for testing and measuring the performance of network equipment and applications.
|
|
38
38
|
|
|
39
39
|
## Introduction
|
|
40
|
-
The XOA
|
|
40
|
+
The TDL XOA Python API is designed to be easy to use and integrate with other automation tools and frameworks. It provides a comprehensive set of methods and classes for interacting with Xena test equipment, including the ability to create and run complex test scenarios, generate and analyze traffic at line rate, and perform detailed analysis of network performance and behavior.
|
|
41
41
|
|
|
42
|
-
The XOA
|
|
42
|
+
The TDL XOA Python API simplifies the process of automating network testing tasks using Xena test equipment. It provides a simple, yet powerful, interface for interacting with Xena test equipment using the Python programming language. With the TDL XOA Python API, network engineers and testing professionals can easily create and execute test scenarios, generate and analyze traffic, and perform detailed analysis of network performance and behavior, all while leveraging the power and flexibility of the Python programming language.
|
|
43
43
|
|
|
44
|
-
Overall, the XOA
|
|
44
|
+
Overall, the TDL XOA Python API is a valuable tool for anyone looking to automate their network testing tasks using Xena test equipment. With its simple, yet powerful, interface and support for the Python programming language, the TDL XOA Python API provides a flexible and extensible framework for automating network testing tasks and improving the quality of network infrastructure.
|
|
45
45
|
|
|
46
46
|
## Documentation
|
|
47
47
|
The user documentation is hosted:
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
 [](https://pypi.python.org/pypi/tdl-xoa-driver) [](https://docs.xenanetworks.com/projects/tdl-xoa-driver/en/latest/?badge=latest)
|
|
2
|
+
# TDL XOA Python API
|
|
3
|
+
TDL XOA Python API is a standalone Python library that provides a user-friendly and powerful interface for automating network testing tasks using Xena Networks test equipment. Xena test equipment is a high-performance network test device designed for testing and measuring the performance of network equipment and applications.
|
|
4
|
+
|
|
5
|
+
## Introduction
|
|
6
|
+
The TDL XOA Python API is designed to be easy to use and integrate with other automation tools and frameworks. It provides a comprehensive set of methods and classes for interacting with Xena test equipment, including the ability to create and run complex test scenarios, generate and analyze traffic at line rate, and perform detailed analysis of network performance and behavior.
|
|
7
|
+
|
|
8
|
+
The TDL XOA Python API simplifies the process of automating network testing tasks using Xena test equipment. It provides a simple, yet powerful, interface for interacting with Xena test equipment using the Python programming language. With the TDL XOA Python API, network engineers and testing professionals can easily create and execute test scenarios, generate and analyze traffic, and perform detailed analysis of network performance and behavior, all while leveraging the power and flexibility of the Python programming language.
|
|
9
|
+
|
|
10
|
+
Overall, the TDL XOA Python API is a valuable tool for anyone looking to automate their network testing tasks using Xena test equipment. With its simple, yet powerful, interface and support for the Python programming language, the TDL XOA Python API provides a flexible and extensible framework for automating network testing tasks and improving the quality of network infrastructure.
|
|
11
|
+
|
|
12
|
+
## Documentation
|
|
13
|
+
The user documentation is hosted:
|
|
14
|
+
[XOA Driver Documentation](https://docs.xenanetworks.com/projects/tdl-xoa-driver)
|
|
15
|
+
|
|
16
|
+
## Key Features
|
|
17
|
+
* Objected-oriented, high-level abstraction, to help users save time on parsing command responses.
|
|
18
|
+
* Supporting sending commands in batches to increase code execution efficiency.
|
|
19
|
+
* Automatically matching command requests and server response, providing clear information in case a command gets an error response.
|
|
20
|
+
* Supporting server-to-client push notification, and event subscription, to reduce user code complexity.
|
|
21
|
+
* Covering commands of Xena testers, including Xena Valkyrie, Vulcan, and Chimera.
|
|
22
|
+
* Supporting IDE auto-complete with built-in class/function/API use manual, to increase development efficiency.
|
|
@@ -8,7 +8,7 @@ def main():
|
|
|
8
8
|
setuptools.setup(
|
|
9
9
|
name="tdl-xoa-driver",
|
|
10
10
|
description=(
|
|
11
|
-
"XOA
|
|
11
|
+
"TDL XOA Python API is a Python library providing user-friendly communication"
|
|
12
12
|
" interfaces to Teledyne LeCroy Xena Ethernet traffic generation test equipment."
|
|
13
13
|
" It provides a rich collection of APIs that can be used to either write"
|
|
14
14
|
" test scripts or develop applications."
|
|
@@ -23,7 +23,7 @@ def main():
|
|
|
23
23
|
packages=setuptools.find_packages(),
|
|
24
24
|
license='Apache 2.0',
|
|
25
25
|
classifiers=[
|
|
26
|
-
"Development Status ::
|
|
26
|
+
"Development Status :: 5 - Production/Stable",
|
|
27
27
|
"Intended Audience :: Developers",
|
|
28
28
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
29
29
|
"License :: OSI Approved :: Apache Software License",
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tdl-xoa-driver
|
|
3
|
-
Version: 1.5.
|
|
4
|
-
Summary: XOA
|
|
3
|
+
Version: 1.5.1
|
|
4
|
+
Summary: TDL XOA Python API is a Python library providing user-friendly communication interfaces to Teledyne LeCroy Xena Ethernet traffic generation test equipment. It provides a rich collection of APIs that can be used to either write test scripts or develop applications.
|
|
5
5
|
Home-page: https://github.com/xenanetworks/tdl-xoa-driver
|
|
6
6
|
Author: Leonard Yu, Zoltan Hanisch
|
|
7
7
|
Author-email: Leonard.Yu@teledyne.com, Zoltan.Hanisch@teledyne.com
|
|
8
8
|
Maintainer: Teledyne LeCroy Xena
|
|
9
9
|
Maintainer-email: xena-sales@teledyne.com
|
|
10
10
|
License: Apache 2.0
|
|
11
|
-
Classifier: Development Status ::
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
12
|
Classifier: Intended Audience :: Developers
|
|
13
13
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
14
14
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
@@ -33,15 +33,15 @@ Dynamic: requires-python
|
|
|
33
33
|
Dynamic: summary
|
|
34
34
|
|
|
35
35
|
 [](https://pypi.python.org/pypi/tdl-xoa-driver) [](https://docs.xenanetworks.com/projects/tdl-xoa-driver/en/latest/?badge=latest)
|
|
36
|
-
# XOA
|
|
37
|
-
XOA
|
|
36
|
+
# TDL XOA Python API
|
|
37
|
+
TDL XOA Python API is a standalone Python library that provides a user-friendly and powerful interface for automating network testing tasks using Xena Networks test equipment. Xena test equipment is a high-performance network test device designed for testing and measuring the performance of network equipment and applications.
|
|
38
38
|
|
|
39
39
|
## Introduction
|
|
40
|
-
The XOA
|
|
40
|
+
The TDL XOA Python API is designed to be easy to use and integrate with other automation tools and frameworks. It provides a comprehensive set of methods and classes for interacting with Xena test equipment, including the ability to create and run complex test scenarios, generate and analyze traffic at line rate, and perform detailed analysis of network performance and behavior.
|
|
41
41
|
|
|
42
|
-
The XOA
|
|
42
|
+
The TDL XOA Python API simplifies the process of automating network testing tasks using Xena test equipment. It provides a simple, yet powerful, interface for interacting with Xena test equipment using the Python programming language. With the TDL XOA Python API, network engineers and testing professionals can easily create and execute test scenarios, generate and analyze traffic, and perform detailed analysis of network performance and behavior, all while leveraging the power and flexibility of the Python programming language.
|
|
43
43
|
|
|
44
|
-
Overall, the XOA
|
|
44
|
+
Overall, the TDL XOA Python API is a valuable tool for anyone looking to automate their network testing tasks using Xena test equipment. With its simple, yet powerful, interface and support for the Python programming language, the TDL XOA Python API provides a flexible and extensible framework for automating network testing tasks and improving the quality of network infrastructure.
|
|
45
45
|
|
|
46
46
|
## Documentation
|
|
47
47
|
The user documentation is hosted:
|
|
@@ -29,7 +29,7 @@ xoa_driver/functions/cli/_cli_manager.py
|
|
|
29
29
|
xoa_driver/functions/cli/_config_block.py
|
|
30
30
|
xoa_driver/functions/cli/_socket_driver.py
|
|
31
31
|
xoa_driver/functions/cli/port_config.py
|
|
32
|
-
xoa_driver/functions/cli/
|
|
32
|
+
xoa_driver/functions/cli/testbed_config.py
|
|
33
33
|
xoa_driver/functions/cmis/__init__.py
|
|
34
34
|
xoa_driver/functions/cmis/_constants.py
|
|
35
35
|
xoa_driver/functions/cmis/_replies.py
|
|
@@ -155,6 +155,7 @@ xoa_driver/internals/hli/modules/modules_l23/module_l23_base.py
|
|
|
155
155
|
xoa_driver/internals/hli/ports/__init__.py
|
|
156
156
|
xoa_driver/internals/hli/ports/base_port.py
|
|
157
157
|
xoa_driver/internals/hli/ports/port_l23/__init__.py
|
|
158
|
+
xoa_driver/internals/hli/ports/port_l23/edun_l1.py
|
|
158
159
|
xoa_driver/internals/hli/ports/port_l23/family_combi.py
|
|
159
160
|
xoa_driver/internals/hli/ports/port_l23/family_d.py
|
|
160
161
|
xoa_driver/internals/hli/ports/port_l23/family_e.py
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
__version__ = "1.5.
|
|
1
|
+
__version__ = "1.5.1"
|
|
2
2
|
__short_version__ = "1.5"
|
|
@@ -6,16 +6,16 @@ from .port_config import (
|
|
|
6
6
|
load_port_config,
|
|
7
7
|
port_config_from_file,
|
|
8
8
|
)
|
|
9
|
-
from .
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
from .testbed_config import (
|
|
10
|
+
save_testbed_config,
|
|
11
|
+
load_testbed_config,
|
|
12
12
|
module_config_from_file,
|
|
13
13
|
)
|
|
14
14
|
__all__ = (
|
|
15
15
|
"save_port_config",
|
|
16
16
|
"load_port_config",
|
|
17
17
|
"port_config_from_file",
|
|
18
|
-
"
|
|
19
|
-
"
|
|
18
|
+
"save_testbed_config",
|
|
19
|
+
"load_testbed_config",
|
|
20
20
|
"module_config_from_file",
|
|
21
21
|
)
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
from xoa_driver import testers, ports
|
|
3
|
+
from typing import List, Tuple
|
|
3
4
|
from ._cli_manager import XOACLIManager
|
|
4
5
|
from ._config_block import *
|
|
5
6
|
|
|
6
7
|
async def save_port_config(tester: testers.L23Tester, port: ports.GenericL23Port, path: str, debug=False, halt_on_error=False) -> str:
|
|
7
|
-
"""Save
|
|
8
|
+
"""Save port config to the specified filepath
|
|
8
9
|
|
|
9
10
|
:param tester: Chassis object
|
|
10
11
|
:type tester: testers.L23Tester
|
|
@@ -52,8 +53,8 @@ async def save_port_config(tester: testers.L23Tester, port: ports.GenericL23Port
|
|
|
52
53
|
xpcfile.write(result)
|
|
53
54
|
return result
|
|
54
55
|
|
|
55
|
-
async def load_port_config(tester: testers.L23Tester, port: ports.GenericL23Port, path: str, debug=False, halt_on_error=False) ->
|
|
56
|
-
"""Load
|
|
56
|
+
async def load_port_config(tester: testers.L23Tester, port: ports.GenericL23Port, path: str, debug=False, halt_on_error=False) -> List[Tuple[str, str]]:
|
|
57
|
+
"""Load port config from the specified filepath
|
|
57
58
|
|
|
58
59
|
:param tester: Chassis object
|
|
59
60
|
:type tester: testers.L23Tester
|
|
@@ -61,6 +62,8 @@ async def load_port_config(tester: testers.L23Tester, port: ports.GenericL23Port
|
|
|
61
62
|
:type port: ports.GenericL23Port
|
|
62
63
|
:param load_path: File path to load the port configuration from
|
|
63
64
|
:type load_path: str
|
|
65
|
+
:return: List of tuples containing response and the corresponding command sent
|
|
66
|
+
:rtype: List[Tuple[str, str]]
|
|
64
67
|
"""
|
|
65
68
|
|
|
66
69
|
tester_ip = tester.info.host
|
|
@@ -77,8 +80,10 @@ async def load_port_config(tester: testers.L23Tester, port: ports.GenericL23Port
|
|
|
77
80
|
# Reserve the port before applying configuration
|
|
78
81
|
xm.reserve_port(port_index)
|
|
79
82
|
|
|
83
|
+
result: List[Tuple[str, str]] = []
|
|
84
|
+
|
|
80
85
|
# Read configuration from file
|
|
81
|
-
with open(path, 'r') as xpcfile:
|
|
86
|
+
with open(path, 'r', encoding='utf-8') as xpcfile:
|
|
82
87
|
config_data = xpcfile.read()
|
|
83
88
|
|
|
84
89
|
# Deserialize config block and send CLI commands
|
|
@@ -87,12 +92,14 @@ async def load_port_config(tester: testers.L23Tester, port: ports.GenericL23Port
|
|
|
87
92
|
cli_cmds = config_block.commands
|
|
88
93
|
for cmd in cli_cmds:
|
|
89
94
|
if cmd.strip(): # Ensure the command is not empty
|
|
90
|
-
xm.send(cmd=f"{port_index} {cmd}", sync_on=False)
|
|
95
|
+
resp = xm.send(cmd=f"{port_index} {cmd}", sync_on=False)
|
|
96
|
+
result.append((resp, f"{port_index} {cmd}"))
|
|
91
97
|
|
|
92
98
|
# Free the port after applying configuration
|
|
93
99
|
xm.free_port(port_index)
|
|
100
|
+
return result
|
|
94
101
|
|
|
95
|
-
async def port_config_from_file(tester: testers.L23Tester, port: ports.GenericL23Port, path: str, debug=False, halt_on_error=False) ->
|
|
102
|
+
async def port_config_from_file(tester: testers.L23Tester, port: ports.GenericL23Port, path: str, debug=False, halt_on_error=False) -> List[Tuple[str, str]]:
|
|
96
103
|
"""Load port configuration from the specifiied filepath. This function is a wrapper around load_port_config to provide backward compatibility.
|
|
97
104
|
|
|
98
105
|
:param tester: Chassis object
|
|
@@ -101,7 +108,9 @@ async def port_config_from_file(tester: testers.L23Tester, port: ports.GenericL2
|
|
|
101
108
|
:type port: ports.GenericL23Port
|
|
102
109
|
:param load_path: File path to load the port configuration from
|
|
103
110
|
:type load_path: str
|
|
111
|
+
:return: List of tuples containing response and command sent
|
|
112
|
+
:rtype: List[Tuple[str, str]]
|
|
104
113
|
"""
|
|
105
|
-
await load_port_config(tester, port, path, debug=debug, halt_on_error=halt_on_error)
|
|
114
|
+
return await load_port_config(tester, port, path, debug=debug, halt_on_error=halt_on_error)
|
|
106
115
|
|
|
107
116
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
from xoa_driver import testers, modules, ports
|
|
3
3
|
from ._cli_manager import XOACLIManager
|
|
4
|
-
from typing import List
|
|
4
|
+
from typing import List, Tuple
|
|
5
5
|
from ..mgmt import *
|
|
6
6
|
from ._config_block import *
|
|
7
7
|
|
|
8
|
-
async def
|
|
9
|
-
"""Save
|
|
8
|
+
async def save_testbed_config(tester: testers.L23Tester, ports: List[ports.GenericL23Port], path: str, testbed_name: str = "<testbed>", with_module_config: bool = True, debug=False, halt_on_error=False) -> str:
|
|
9
|
+
"""Save testbed configuration to the specifiied filepath
|
|
10
10
|
|
|
11
11
|
:param tester: Chassis object
|
|
12
12
|
:type tester: testers.L23Tester
|
|
@@ -95,8 +95,8 @@ async def save_test_case_config(tester: testers.L23Tester, ports: List[ports.Gen
|
|
|
95
95
|
|
|
96
96
|
return result
|
|
97
97
|
|
|
98
|
-
async def
|
|
99
|
-
"""Load
|
|
98
|
+
async def load_testbed_config(tester: testers.L23Tester, path: str, mode: str = "default", delay_after_module_config: int = 5, debug=False, halt_on_error=False) -> List[Tuple[str, str]]:
|
|
99
|
+
"""Load testbed configuration from the specifiied filepath
|
|
100
100
|
|
|
101
101
|
:param tester: Chassis object
|
|
102
102
|
:type tester: testers.L23Tester
|
|
@@ -106,6 +106,8 @@ async def load_test_case_config(tester: testers.L23Tester, path: str, mode: str
|
|
|
106
106
|
:type mode: str
|
|
107
107
|
:param delay_after_module_config: Delay in seconds after configuring each module to ensure proper configuration
|
|
108
108
|
:type delay_after_module_config: int
|
|
109
|
+
:return: List of tuples containing response and the corresponding command sent
|
|
110
|
+
:rtype: List[Tuple[str, str]]
|
|
109
111
|
"""
|
|
110
112
|
|
|
111
113
|
tester_ip = tester.info.host
|
|
@@ -118,50 +120,55 @@ async def load_test_case_config(tester: testers.L23Tester, path: str, mode: str
|
|
|
118
120
|
# Log on and set username
|
|
119
121
|
xm.logon_set_owner(tester_password)
|
|
120
122
|
|
|
123
|
+
result: List[Tuple[str, str]] = []
|
|
124
|
+
|
|
121
125
|
# Read configuration from file
|
|
122
126
|
with open(path, 'r') as xpcfile:
|
|
123
127
|
config_data = xpcfile.read()
|
|
124
128
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
129
|
+
# Parse the config data to configure modules and ports block by block
|
|
130
|
+
config_datas = config_data.split(f";\n")
|
|
131
|
+
for block in config_datas:
|
|
132
|
+
if config_block_type(config_block_str=block) == ConfigMetadataType.MODULE and mode in ["default", "module"]:
|
|
133
|
+
module_block = ConfigBlock()
|
|
134
|
+
module_block.config_block_str = block
|
|
135
|
+
module_index = module_block.module_id
|
|
136
|
+
|
|
137
|
+
# Free the module before applying configuration
|
|
138
|
+
module = tester.modules.obtain(int(module_index))
|
|
139
|
+
await release_module(module=module, should_release_ports=True)
|
|
140
|
+
# Reserve the module before applying configuration
|
|
141
|
+
xm.reserve_module(module_index)
|
|
142
|
+
|
|
143
|
+
# Send each command to the tester
|
|
144
|
+
for cmd in module_block.commands:
|
|
145
|
+
if cmd.strip(): # Ensure the command is not empty
|
|
146
|
+
# print(f"Applying command: {module_index} {cmd}")
|
|
147
|
+
resp = xm.send(cmd=f"{module_index} {cmd}", sync_on=False)
|
|
148
|
+
result.append((resp, f"{module_index} {cmd}"))
|
|
149
|
+
# Free the module after applying configuration
|
|
150
|
+
xm.free_module(module_index)
|
|
151
|
+
await asyncio.sleep(delay_after_module_config) # Small delay to ensure proper module configuration
|
|
152
|
+
|
|
153
|
+
elif config_block_type(config_block_str=block) == ConfigMetadataType.PORT and mode in ["default", "port"]:
|
|
154
|
+
port_block = ConfigBlock()
|
|
155
|
+
port_block.config_block_str = block
|
|
156
|
+
port_index = port_block.port_id
|
|
157
|
+
|
|
158
|
+
# Reserve the port before applying configuration
|
|
159
|
+
xm.reserve_port(port_index)
|
|
160
|
+
|
|
161
|
+
# Send each command to the tester
|
|
162
|
+
for cmd in port_block.commands:
|
|
163
|
+
if cmd.strip(): # Ensure the command is not empty
|
|
164
|
+
# print(f"Applying command: {port_index} {cmd}")
|
|
165
|
+
resp = xm.send(cmd=f"{port_index} {cmd}", sync_on=False)
|
|
166
|
+
result.append((resp, f"{port_index} {cmd}"))
|
|
167
|
+
# Free the port after applying configuration
|
|
168
|
+
xm.free_port(port_index)
|
|
169
|
+
return result
|
|
170
|
+
|
|
171
|
+
async def module_config_from_file(tester: testers.L23Tester, path: str, debug=False, halt_on_error=False) -> List[Tuple[str, str]]:
|
|
165
172
|
"""Load module configuration from the specifiied filepath. This function is a wrapper around load_module_config to provide backward compatibility.
|
|
166
173
|
|
|
167
174
|
:param tester: Chassis object
|
|
@@ -169,4 +176,4 @@ async def module_config_from_file(tester: testers.L23Tester, path: str, debug=Fa
|
|
|
169
176
|
:param path: File path to load the module configuration from
|
|
170
177
|
:type path: str
|
|
171
178
|
"""
|
|
172
|
-
await
|
|
179
|
+
return await load_testbed_config(tester, path, mode="module", debug=debug, halt_on_error=halt_on_error)
|
|
@@ -601,7 +601,44 @@ class P_CAPABILITIES:
|
|
|
601
601
|
* Bit 0: Normal modifier (16/24-bit) supports little-endian
|
|
602
602
|
* Bit 1: Extended modifier (32-bit) supports little-endian
|
|
603
603
|
"""
|
|
604
|
-
|
|
604
|
+
capture_bitmask: int = field(XmpInt(), min_version=470)
|
|
605
|
+
"""integer, bitmask indicating capture capabilities.
|
|
606
|
+
|
|
607
|
+
If all bits are 0: CAPTURE_NOT_SUPPORTED
|
|
608
|
+
|
|
609
|
+
Bits [0:11] are for Start triggers:
|
|
610
|
+
|
|
611
|
+
* Bit 0: CAPTURE_START_ON
|
|
612
|
+
* Bit 1: CAPTURE_START_FCSERROR
|
|
613
|
+
* Bit 2: CAPTURE_START_FILTER
|
|
614
|
+
* Bit 3: CAPTURE_START_PLDERROR
|
|
615
|
+
* Bit 4-11: Reserved
|
|
616
|
+
|
|
617
|
+
Bits [12:23] are for Stop triggers:
|
|
618
|
+
|
|
619
|
+
* Bit 12: CAPTURE_STOP_FULL
|
|
620
|
+
* Bit 13: CAPTURE_STOP_FCSERROR
|
|
621
|
+
* Bit 14: CAPTURE_STOP_FILTER
|
|
622
|
+
* Bit 15: CAPTURE_STOP_PLDERROR
|
|
623
|
+
* Bit 16: CAPTURE_STOP_USERSTOP
|
|
624
|
+
* Bit 17-23: Reserved
|
|
625
|
+
|
|
626
|
+
Bits [24:31] are for Keep modes:
|
|
627
|
+
|
|
628
|
+
* Bit 24: CAPTURE_KEEP_ALL
|
|
629
|
+
* Bit 25: CAPTURE_KEEP_FCSERR
|
|
630
|
+
* Bit 26: CAPTURE_KEEP_NOTPLD
|
|
631
|
+
* Bit 27: CAPTURE_KEEP_TPLD
|
|
632
|
+
* Bit 28: CAPTURE_KEEP_FILTER
|
|
633
|
+
* Bit 29: CAPTURE_KEEP_PLDERR
|
|
634
|
+
* Bit 30-31: Reserved
|
|
635
|
+
"""
|
|
636
|
+
num_txeq_pre: int = field(XmpInt(), min_version=470)
|
|
637
|
+
"""The number of postcursors = num_txeq - num_txeq_pre - 1."""
|
|
638
|
+
txeq_max_seq: typing.List[int] = field(XmpSequence(types_chunk=[XmpInt()], length=10), min_version=470)
|
|
639
|
+
"""max value of individual TXEQ taps, SEQuential: <pre-n> <pre-(n-q)> ... <prr1> <main> <post1> <post2> ...."""
|
|
640
|
+
txeq_min_seq: typing.List[int] = field(XmpSequence(types_chunk=[XmpInt()], length=10), min_version=470)
|
|
641
|
+
"""min-value of individual TXEQ taps, SEQuential: <pre-n> <pre-(n-q)> ... <prr1> <main> <post1> <post2> ...."""
|
|
605
642
|
|
|
606
643
|
|
|
607
644
|
def get(self) -> Token[GetDataAttr]:
|
|
@@ -1512,7 +1549,6 @@ class P_XMITONE:
|
|
|
1512
1549
|
A valid Frame Check Sum is written into the final four bytes.
|
|
1513
1550
|
|
|
1514
1551
|
:param hex_data: raw bytes of the packet in hex to transmit
|
|
1515
|
-
:rtype: typing.List[str]
|
|
1516
1552
|
"""
|
|
1517
1553
|
|
|
1518
1554
|
return Token(self._connection, build_set_request(self, module=self._module, port=self._port, hex_data=hex_data))
|