Signed-off-by: pmikus <peter.mikus@protonmail.ch>
Change-Id: Id646ab09ae51d3153446f1ae334f62ba7710be14
program_json = json.loads(program_stdout)[u"intervals"][0][u"sum"]
try:
retransmits = program_json["retransmits"]
program_json = json.loads(program_stdout)[u"intervals"][0][u"sum"]
try:
retransmits = program_json["retransmits"]
retransmits = None
export_hoststack_results(
bandwidth=program_json["bits_per_second"],
retransmits = None
export_hoststack_results(
bandwidth=program_json["bits_per_second"],
"""Common IP utilities library."""
import re
"""Common IP utilities library."""
import re
"""IPsec utilities library."""
"""IPsec utilities library."""
from enum import Enum, IntEnum
from io import open
from ipaddress import ip_network, ip_address
from enum import Enum, IntEnum
from io import open
from ipaddress import ip_network, ip_address
@staticmethod
def vpp_ipsec_add_sad_entries(
node, n_entries, sad_id, spi, crypto_alg, crypto_key,
@staticmethod
def vpp_ipsec_add_sad_entries(
node, n_entries, sad_id, spi, crypto_alg, crypto_key,
- integ_alg=None, integ_key=u"", tunnel_src=None,tunnel_dst=None,
+ integ_alg=None, integ_key=u"", tunnel_src=None, tunnel_dst=None,
tunnel_addr_incr=True):
"""Create multiple Security Association Database entries on VPP node.
tunnel_addr_incr=True):
"""Create multiple Security Association Database entries on VPP node.
for i in range(n_tunnels//(addr_incr**2)+1):
dut1_local_outbound_range = \
ip_network(f"{ip_address(tunnel_ip1) + i*(addr_incr**3)}/8",
for i in range(n_tunnels//(addr_incr**2)+1):
dut1_local_outbound_range = \
ip_network(f"{ip_address(tunnel_ip1) + i*(addr_incr**3)}/8",
dut1_remote_outbound_range = \
ip_network(f"{ip_address(tunnel_ip2) + i*(addr_incr**3)}/8",
dut1_remote_outbound_range = \
ip_network(f"{ip_address(tunnel_ip2) + i*(addr_incr**3)}/8",
IPsecUtil.vpp_ipsec_add_spd_entry(
nodes[u"DUT1"], spd_id, p_hi, PolicyAction.BYPASS, inbound=False,
IPsecUtil.vpp_ipsec_add_spd_entry(
nodes[u"DUT1"], spd_id, p_hi, PolicyAction.BYPASS, inbound=False,
for i in range(n_tunnels//(addr_incr**2)+1):
dut2_local_outbound_range = \
ip_network(f"{ip_address(tunnel_ip1) + i*(addr_incr**3)}/8",
for i in range(n_tunnels//(addr_incr**2)+1):
dut2_local_outbound_range = \
ip_network(f"{ip_address(tunnel_ip1) + i*(addr_incr**3)}/8",
dut2_remote_outbound_range = \
ip_network(f"{ip_address(tunnel_ip2) + i*(addr_incr**3)}/8",
dut2_remote_outbound_range = \
ip_network(f"{ip_address(tunnel_ip2) + i*(addr_incr**3)}/8",
IPsecUtil.vpp_ipsec_add_spd_entry(
nodes[u"DUT2"], spd_id, p_hi, PolicyAction.BYPASS,
IPsecUtil.vpp_ipsec_add_spd_entry(
nodes[u"DUT2"], spd_id, p_hi, PolicyAction.BYPASS,
- inbound=False, proto=50, laddr_range=dut2_remote_outbound_range,
+ inbound=False, proto=50,
+ laddr_range=dut2_remote_outbound_range,
raddr_range=dut2_local_outbound_range
)
IPsecUtil.vpp_ipsec_add_spd_entry(
nodes[u"DUT2"], spd_id, p_hi, PolicyAction.BYPASS,
raddr_range=dut2_local_outbound_range
)
IPsecUtil.vpp_ipsec_add_spd_entry(
nodes[u"DUT2"], spd_id, p_hi, PolicyAction.BYPASS,
- inbound=True, proto=50, laddr_range=dut2_local_outbound_range,
+ inbound=True, proto=50,
+ laddr_range=dut2_local_outbound_range,
raddr_range=dut2_remote_outbound_range
)
raddr_range=dut2_remote_outbound_range
)
for i in range(0, n_flows):
rx_queue = i%rx_queues
for i in range(0, n_flows):
rx_queue = i%rx_queues
spi = spi_start + i
flow_index = FlowUtil.vpp_create_ip4_ipsec_flow(
spi = spi_start + i
flow_index = FlowUtil.vpp_create_ip4_ipsec_flow(
- node, "ESP", spi, "redirect-to-queue", value=rx_queue)
+ node, "ESP", spi, "redirect-to-queue", value=rx_queue)
FlowUtil.vpp_flow_enable(node, interface, flow_index)
FlowUtil.vpp_flow_enable(node, interface, flow_index)
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
self._c_affinity = None
@staticmethod
self._c_affinity = None
@staticmethod
- def get_iperf_type(node):
"""Log and return the installed traffic generator type.
"""Log and return the installed traffic generator type.
- :param node: Node from topology file.
- :type node: dict
:returns: Traffic generator type string.
:rtype: str
"""
:returns: Traffic generator type string.
:rtype: str
"""
@staticmethod
def create_memif_interface(
@staticmethod
def create_memif_interface(
- node, filename, mid, sid, rxq=1, txq=1, role=u"SLAVE", use_dma=False
+ node, filename, mid, sid, rxq=1, txq=1, role=u"SLAVE", use_dma=False
):
"""Create Memif interface on the given node.
):
"""Create Memif interface on the given node.
| | ... | Additional Setup for suites which uses performance measurement over
| | ... | iPerf3.
| |
| | ... | Additional Setup for suites which uses performance measurement over
| | ... | iPerf3.
| |
-| | ${type} = | Get iPerf Type | ${nodes}[TG]
+| | ${type} = | Get iPerf Type
| | ${version} = | Get iPerf Version | ${nodes}[TG]
| | Export TG Type And Version | ${type} | ${version}
| | ${version} = | Get iPerf Version | ${nodes}[TG]
| | Export TG Type And Version | ${type} | ${version}