aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries
diff options
context:
space:
mode:
Diffstat (limited to 'resources/libraries')
-rw-r--r--resources/libraries/python/tcp.py48
-rw-r--r--resources/libraries/robot/performance/performance_setup.robot7
-rw-r--r--resources/libraries/robot/tcp/tcp_setup.robot27
3 files changed, 73 insertions, 9 deletions
diff --git a/resources/libraries/python/tcp.py b/resources/libraries/python/tcp.py
index 5ae1ebf929..ecd6210f69 100644
--- a/resources/libraries/python/tcp.py
+++ b/resources/libraries/python/tcp.py
@@ -33,4 +33,50 @@ class TCPUtils(object):
"""
with VatTerminal(node) as vat:
- vat.vat_terminal_exec_cmd_from_template("start_http_server.vat")
+ vat.vat_terminal_exec_cmd_from_template(
+ "start_http_server.vat")
+
+ @staticmethod
+ def start_http_server_params(node, prealloc_fifos, fifo_size,
+ private_segment_size):
+ """Start HTTP server on the given node.
+
+ test http server static prealloc-fifos <N> fifo-size <size in kB>
+ private-segment-size <seg_size expressed as number + unit, e.g. 100m>
+
+ Where N is the max number of connections you expect to handle at one
+ time and <size> should be small if you test for CPS and exchange few
+ bytes, say 4, if each connection just exchanges few packets. Or it
+ should be much larger, up to 1024/4096 (i.e. 1-4MB) if you have only
+ one connection and exchange a lot of packets, i.e., when you test for
+ RPS. If you need to allocate lots of FIFOs, so you test for CPS, make
+ private-segment-size something like 4g.
+
+ Example:
+
+ For CPS
+ test http server static prealloc-fifos 10000 fifo-size 64
+ private-segment-size 4000m
+
+ For RPS
+ test http server static prealloc-fifos 500000 fifo-size 4
+ test http server static prealloc-fifos 500000 fifo-size 4
+ private-segment-size 4000m
+
+ :param node: Node to start HTTP server on.
+ :param prealloc_fifos: Max number of connections you expect to handle at
+ one time.
+ :param fifo_size: FIFO size in kB.
+ :param private_segment_size: Private segment size. Number + unit.
+ :type node: dict
+ :type prealloc_fifos: str
+ :type fifo_size: str
+ :type private_segment_size: str
+ """
+
+ with VatTerminal(node, json_param=False) as vat:
+ vat.vat_terminal_exec_cmd_from_template(
+ "start_http_server_params.vat",
+ prealloc_fifos=prealloc_fifos,
+ fifo_size=fifo_size,
+ private_segment_size=private_segment_size)
diff --git a/resources/libraries/robot/performance/performance_setup.robot b/resources/libraries/robot/performance/performance_setup.robot
index 0e909aa455..f1ad973bb8 100644
--- a/resources/libraries/robot/performance/performance_setup.robot
+++ b/resources/libraries/robot/performance/performance_setup.robot
@@ -422,6 +422,13 @@
| | ${intf_name}= | Get Linux interface name | ${tg}
| | ... | ${tg['interfaces']['${tg_if1}']['pci_address']}
| | Set Linux interface IP | ${tg} | ${intf_name} | 192.168.10.1 | 24
+| | Set Linux interface IP | ${tg} | ${intf_name} | 192.168.20.1 | 24
+| | Set Linux interface IP | ${tg} | ${intf_name} | 192.168.30.1 | 24
+| | Set Linux interface IP | ${tg} | ${intf_name} | 192.168.40.1 | 24
+| | Set Linux interface IP | ${tg} | ${intf_name} | 192.168.50.1 | 24
+| | Set Linux interface IP | ${tg} | ${intf_name} | 192.168.60.1 | 24
+| | Set Linux interface IP | ${tg} | ${intf_name} | 192.168.70.1 | 24
+| | Set Linux interface IP | ${tg} | ${intf_name} | 192.168.80.1 | 24
| | Set Linux interface up | ${tg} | ${intf_name}
| | Install wrk | ${tg}
diff --git a/resources/libraries/robot/tcp/tcp_setup.robot b/resources/libraries/robot/tcp/tcp_setup.robot
index 09f6afd592..6da7f0fb15 100644
--- a/resources/libraries/robot/tcp/tcp_setup.robot
+++ b/resources/libraries/robot/tcp/tcp_setup.robot
@@ -20,24 +20,35 @@
| Documentation | L2 keywords to set up VPP to test tcp.
*** Keywords ***
-| Set up HTTP server on the VPP node
+| Set up HTTP server with paramters on the VPP node
| | [Documentation]
| | ... | Configure IP address on the port, set it up and start HTTP server on
| | ... | the VPP.
| | ...
| | ... | *Arguments:*
-| | ... | - ${dut1_if1_ip4} - IP address to be set on the dut1_if1 interface.
+| | ... | - ${prealloc_fifos} - Max number of connections you expect to handle
+| | ... | at one time. Type: string
+| | ... | - ${fifo_size} - FIFO size in kB. Type: string
+| | ... | - ${private_segment_size} - Private segment size. Number + unit.
| | ... | Type: string
-| | ... | - ${ip4_len} - Length of the netmask. Type: integer
| | ...
| | ... | *Example:*
| | ...
-| | ... | \| Set up HTTP server on the VPP node \| 192.168.10.2 \| 24 \|
+| | ... | \| Set up HTTP server with paramters on the VPP node \| 400 \| 4096\
+| | ... | \| 2g \|
| | ...
-| | [Arguments] | ${dut1_if1_ip4} | ${ip4_len}
+| | [Arguments] | ${prealloc_fifos} | ${fifo_size} | ${private_segment_size}
| | ...
| | Set Interface State | ${dut1} | ${dut1_if1} | up
-| | Set Interface Address | ${dut1} | ${dut1_if1} | ${dut1_if1_ip4} | ${ip4_len}
+| | Set Interface Address | ${dut1} | ${dut1_if1} | 192.168.10.2 | 24
+| | Set Interface Address | ${dut1} | ${dut1_if1} | 192.168.20.2 | 24
+| | Set Interface Address | ${dut1} | ${dut1_if1} | 192.168.30.2 | 24
+| | Set Interface Address | ${dut1} | ${dut1_if1} | 192.168.40.2 | 24
+| | Set Interface Address | ${dut1} | ${dut1_if1} | 192.168.50.2 | 24
+| | Set Interface Address | ${dut1} | ${dut1_if1} | 192.168.60.2 | 24
+| | Set Interface Address | ${dut1} | ${dut1_if1} | 192.168.70.2 | 24
+| | Set Interface Address | ${dut1} | ${dut1_if1} | 192.168.80.2 | 24
| | Vpp Node Interfaces Ready Wait | ${dut1}
-| | Start HTTP server | ${dut1}
-| | Sleep | 30
+| | Start HTTP server params | ${dut1} | ${prealloc_fifos} | ${fifo_size}
+| | ... | ${private_segment_size}
+| | Sleep | 30 \ No newline at end of file