testprotocols 0.4.0__tar.gz → 0.5.0__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.
Files changed (143) hide show
  1. {testprotocols-0.4.0/src/testprotocols.egg-info → testprotocols-0.5.0}/PKG-INFO +1 -1
  2. {testprotocols-0.4.0 → testprotocols-0.5.0}/pyproject.toml +1 -1
  3. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/__init__.py +1 -1
  4. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/devices/base.py +5 -5
  5. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/iperf_client.py +23 -0
  6. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/models/__init__.py +1 -1
  7. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/wifi_radio.py +1 -1
  8. {testprotocols-0.4.0 → testprotocols-0.5.0/src/testprotocols.egg-info}/PKG-INFO +1 -1
  9. {testprotocols-0.4.0 → testprotocols-0.5.0}/LICENSE +0 -0
  10. {testprotocols-0.4.0 → testprotocols-0.5.0}/NOTICE +0 -0
  11. {testprotocols-0.4.0 → testprotocols-0.5.0}/README.md +0 -0
  12. {testprotocols-0.4.0 → testprotocols-0.5.0}/setup.cfg +0 -0
  13. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/aftr_gateway.py +0 -0
  14. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/appliance_nat.py +0 -0
  15. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/appliance_uplinks.py +0 -0
  16. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/appliance_vlans.py +0 -0
  17. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/arp_client.py +0 -0
  18. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/bgp.py +0 -0
  19. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/conntrack.py +0 -0
  20. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/content_filtering.py +0 -0
  21. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/device_lifecycle.py +0 -0
  22. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/device_management.py +0 -0
  23. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/devices/__init__.py +0 -0
  24. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/devices/client.py +0 -0
  25. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/devices/cpe.py +0 -0
  26. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/devices/infra.py +0 -0
  27. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/devices/sdwan.py +0 -0
  28. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/devices/switch.py +0 -0
  29. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/devices/traffic.py +0 -0
  30. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/devices/voice.py +0 -0
  31. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/devices/wan.py +0 -0
  32. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/dhcp_client.py +0 -0
  33. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/dhcp_server.py +0 -0
  34. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/discovery.py +0 -0
  35. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/dns_client.py +0 -0
  36. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/file_transfer.py +0 -0
  37. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/firewall.py +0 -0
  38. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/firewall_zones.py +0 -0
  39. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/first_hop_security.py +0 -0
  40. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/gateway_redundancy.py +0 -0
  41. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/http_client.py +0 -0
  42. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/http_server.py +0 -0
  43. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/hw_console.py +0 -0
  44. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/interface_dhcp.py +0 -0
  45. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/ip_interface.py +0 -0
  46. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/ip_routing.py +0 -0
  47. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/iperf_generator.py +0 -0
  48. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/iperf_server.py +0 -0
  49. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/l3_firewall.py +0 -0
  50. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/l7_firewall.py +0 -0
  51. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/link_aggregation.py +0 -0
  52. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/mac_table.py +0 -0
  53. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/models/dhcp.py +0 -0
  54. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/models/firewall.py +0 -0
  55. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/models/impairment.py +0 -0
  56. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/models/l2_common.py +0 -0
  57. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/models/multicast.py +0 -0
  58. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/models/networking.py +0 -0
  59. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/models/packets.py +0 -0
  60. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/models/qoe.py +0 -0
  61. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/models/radius.py +0 -0
  62. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/models/sdwan_appliance.py +0 -0
  63. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/models/switch.py +0 -0
  64. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/models/switch_routing.py +0 -0
  65. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/models/tr069.py +0 -0
  66. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/models/traffic.py +0 -0
  67. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/models/wan_edge.py +0 -0
  68. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/models/wifi.py +0 -0
  69. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/multicast_client.py +0 -0
  70. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/nat.py +0 -0
  71. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/netem_controller.py +0 -0
  72. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/network_endpoint.py +0 -0
  73. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/network_probe.py +0 -0
  74. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/nmap_scanner.py +0 -0
  75. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/ntp_client.py +0 -0
  76. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/ntp_config.py +0 -0
  77. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/ospf.py +0 -0
  78. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/packet_filter.py +0 -0
  79. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/pcap_capture.py +0 -0
  80. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/pdu_controller.py +0 -0
  81. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/port_poe.py +0 -0
  82. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/port_security.py +0 -0
  83. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/port_status.py +0 -0
  84. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/py.typed +0 -0
  85. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/qoe_browser.py +0 -0
  86. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/radius_client.py +0 -0
  87. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/radius_server.py +0 -0
  88. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/reachability_responder.py +0 -0
  89. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/routed_interfaces.py +0 -0
  90. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/router.py +0 -0
  91. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/routing_read.py +0 -0
  92. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/sdwan_policy_manager.py +0 -0
  93. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/sip_phone.py +0 -0
  94. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/sip_server.py +0 -0
  95. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/site_to_site_vpn.py +0 -0
  96. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/snmp_client.py +0 -0
  97. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/spanning_tree.py +0 -0
  98. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/static_routes.py +0 -0
  99. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/storm_control.py +0 -0
  100. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/streaming_server.py +0 -0
  101. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/switch_acl.py +0 -0
  102. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/switch_ports.py +0 -0
  103. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/switch_qos.py +0 -0
  104. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/switch_vlans.py +0 -0
  105. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/syslog_config.py +0 -0
  106. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/tftp_server.py +0 -0
  107. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/threat_prevention.py +0 -0
  108. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/tr069_client.py +0 -0
  109. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/tr069_server.py +0 -0
  110. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/traffic_shaping.py +0 -0
  111. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/upnp_client.py +0 -0
  112. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/vlan_client.py +0 -0
  113. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/wan_link_admin.py +0 -0
  114. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/wifi_bss.py +0 -0
  115. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/wifi_client.py +0 -0
  116. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/wifi_mesh.py +0 -0
  117. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/wifi_onboarding.py +0 -0
  118. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/wifi_rf.py +0 -0
  119. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/wifi_stations.py +0 -0
  120. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols/wifi_transitions.py +0 -0
  121. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols.egg-info/SOURCES.txt +0 -0
  122. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols.egg-info/dependency_links.txt +0 -0
  123. {testprotocols-0.4.0 → testprotocols-0.5.0}/src/testprotocols.egg-info/top_level.txt +0 -0
  124. {testprotocols-0.4.0 → testprotocols-0.5.0}/tests/test_appliance_vlans.py +0 -0
  125. {testprotocols-0.4.0 → testprotocols-0.5.0}/tests/test_cpe_templates.py +0 -0
  126. {testprotocols-0.4.0 → testprotocols-0.5.0}/tests/test_device_types.py +0 -0
  127. {testprotocols-0.4.0 → testprotocols-0.5.0}/tests/test_dhcp_templates.py +0 -0
  128. {testprotocols-0.4.0 → testprotocols-0.5.0}/tests/test_firewall_templates.py +0 -0
  129. {testprotocols-0.4.0 → testprotocols-0.5.0}/tests/test_infra_templates.py +0 -0
  130. {testprotocols-0.4.0 → testprotocols-0.5.0}/tests/test_ip_interface.py +0 -0
  131. {testprotocols-0.4.0 → testprotocols-0.5.0}/tests/test_ip_routing.py +0 -0
  132. {testprotocols-0.4.0 → testprotocols-0.5.0}/tests/test_network_tool_templates.py +0 -0
  133. {testprotocols-0.4.0 → testprotocols-0.5.0}/tests/test_package_imports.py +0 -0
  134. {testprotocols-0.4.0 → testprotocols-0.5.0}/tests/test_radius_templates.py +0 -0
  135. {testprotocols-0.4.0 → testprotocols-0.5.0}/tests/test_sdwan_appliance_models.py +0 -0
  136. {testprotocols-0.4.0 → testprotocols-0.5.0}/tests/test_sdwan_appliance_templates.py +0 -0
  137. {testprotocols-0.4.0 → testprotocols-0.5.0}/tests/test_switch_models.py +0 -0
  138. {testprotocols-0.4.0 → testprotocols-0.5.0}/tests/test_switch_routing_models.py +0 -0
  139. {testprotocols-0.4.0 → testprotocols-0.5.0}/tests/test_switch_templates.py +0 -0
  140. {testprotocols-0.4.0 → testprotocols-0.5.0}/tests/test_traffic_templates.py +0 -0
  141. {testprotocols-0.4.0 → testprotocols-0.5.0}/tests/test_voice_wifi_templates.py +0 -0
  142. {testprotocols-0.4.0 → testprotocols-0.5.0}/tests/test_wan_edge_templates.py +0 -0
  143. {testprotocols-0.4.0 → testprotocols-0.5.0}/tests/test_wifi_templates.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: testprotocols
3
- Version: 0.4.0
3
+ Version: 0.5.0
4
4
  Summary: Common Test Resource Layer — capability and device protocols for telco testing.
5
5
  Author-email: Alottabits <rjvisser@alottabits.com>
6
6
  Maintainer-email: Alottabits <rjvisser@alottabits.com>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "testprotocols"
3
- version = "0.4.0"
3
+ version = "0.5.0"
4
4
  description = "Common Test Resource Layer — capability and device protocols for telco testing."
5
5
  requires-python = ">=3.12"
6
6
  dependencies = []
@@ -1,6 +1,6 @@
1
1
  """testprotocols — capability and device Protocols for telco resources under test."""
2
2
 
3
- __version__ = "0.1.0"
3
+ __version__ = "0.5.0"
4
4
 
5
5
  from testprotocols.aftr_gateway import AftrGateway
6
6
  from testprotocols.appliance_nat import ApplianceNat
@@ -10,8 +10,8 @@ class BaseDeviceProtocol(Protocol):
10
10
  """Universal identity surface every test-device archetype carries.
11
11
 
12
12
  Substrate- and framework-neutral: any concrete driver that exposes a
13
- ``device_name`` and a ``device_type`` satisfies this — palco's
14
- ``PalcoDevice`` (where both are ``@property``), a hypothetical
13
+ ``device_name`` and a ``device_type`` satisfies this — vitro's
14
+ ``VitroDevice`` (where both are ``@property``), a hypothetical
15
15
  boardfarm ``BoardfarmDevice``, a pyATS ``Device`` wrapper, a
16
16
  pure-Python simulator. Archetype Protocols in
17
17
  ``testprotocols.devices.*`` inherit from this so consumers
@@ -19,7 +19,7 @@ class BaseDeviceProtocol(Protocol):
19
19
  messages without reaching into framework-specific base classes.
20
20
 
21
21
  Deliberately scoped to the universal pair — name + type. Anything a
22
- specific framework wants to expose (palco's ``config`` /
22
+ specific framework wants to expose (vitro's ``config`` /
23
23
  ``get_interactive_consoles``, boardfarm's lifecycle hooks, etc.) is
24
24
  the framework's own concern. Frameworks declare a connector Protocol
25
25
  on their side that extends this base; testbed plugins compose
@@ -28,8 +28,8 @@ class BaseDeviceProtocol(Protocol):
28
28
  """
29
29
 
30
30
  # Read-only identity. Declared as properties (not settable variables) so that
31
- # implementers exposing them as ``@property`` (VitroDevice, palco's
32
- # PalcoDevice) statically satisfy the Protocol — a settable-variable member
31
+ # implementers exposing them as ``@property`` (e.g. vitro's
32
+ # VitroDevice) statically satisfy the Protocol — a settable-variable member
33
33
  # would reject a read-only property. A plain ``device_name: str`` attribute
34
34
  # also satisfies a read-only-property member, so this is the more permissive,
35
35
  # correct declaration for read-only identity.
@@ -25,9 +25,32 @@ class IperfClient(Protocol):
25
25
  time: int = 10,
26
26
  client_port: int | None = None,
27
27
  udp_only: bool | None = None,
28
+ reverse: bool = False,
29
+ omit_s: int | None = None,
30
+ json_output: bool = False,
31
+ window: str | None = None,
28
32
  ) -> tuple[int, str]:
29
33
  """Start an iperf traffic sender towards *host* on *traffic_port*.
30
34
 
35
+ Typed option parameters (each defaults to "absent": no flag emitted):
36
+
37
+ - ``reverse``: iperf3 reverse mode (``-R``) — the listening receiver
38
+ transmits; the sender still initiates the connection.
39
+ - ``omit_s``: skip the first N seconds (``-O <n>``, the TCP slow-start
40
+ ramp); omitted seconds extend the wall clock and are excluded from
41
+ the end-of-test summary.
42
+ - ``json_output``: machine-readable output (``--json``).
43
+ - ``window``: pin the socket buffer (``-w <size>``, e.g. ``"8M"``) on
44
+ BOTH ends — iperf3 forwards it to the server in the test-parameter
45
+ exchange. Pinning disables OS receive/send autotuning; the effective
46
+ value is capped by ``net.core.rmem_max``/``wmem_max`` (NOT
47
+ ``tcp_rmem``/``tcp_wmem``), so the host must be provisioned
48
+ accordingly.
49
+
50
+ ``direction`` is DEPRECATED: a raw CLI fragment appended verbatim
51
+ after the typed flags. Kept as an escape hatch only; use the typed
52
+ parameters instead.
53
+
31
54
  Returns a tuple of (pid, log_file_path).
32
55
  """
33
56
  ...
@@ -1,4 +1,4 @@
1
- """Shared data models for palco-templates."""
1
+ """Shared data models for testprotocols."""
2
2
 
3
3
  from __future__ import annotations
4
4
 
@@ -6,7 +6,7 @@ tx power / mode configuration, regulatory-domain control, and DFS-state
6
6
  read.
7
7
 
8
8
  The template is per-device with band-keyed methods (matching the
9
- existing palco pattern in IpInterface and WifiClient). A device with
9
+ existing vitro pattern in IpInterface and WifiClient). A device with
10
10
  multiple radios on the same band (e.g. dual-5GHz) is not modelled in
11
11
  this release; band-string keying assumes one radio per band per device.
12
12
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: testprotocols
3
- Version: 0.4.0
3
+ Version: 0.5.0
4
4
  Summary: Common Test Resource Layer — capability and device protocols for telco testing.
5
5
  Author-email: Alottabits <rjvisser@alottabits.com>
6
6
  Maintainer-email: Alottabits <rjvisser@alottabits.com>
File without changes
File without changes
File without changes
File without changes