aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/python/NATUtil.py
diff options
context:
space:
mode:
authorJan Gelety <jgelety@cisco.com>2020-09-12 01:25:23 +0200
committerJan Gelety <jgelety@cisco.com>2020-09-30 10:15:53 +0000
commitd99951620507d354c4803eb1ee26609d992b70b3 (patch)
tree49c51f7aad315e2b250b123a64233140bd914cde /resources/libraries/python/NATUtil.py
parent97e6988950559e98b5abfd73458dfa830727e16b (diff)
test: compute max_translations_per_thread based on worker threads number
Change-Id: I1c638aef886bf37a9feb4a29e4949c7c8f19b717 Signed-off-by: Jan Gelety <jgelety@cisco.com>
Diffstat (limited to 'resources/libraries/python/NATUtil.py')
-rw-r--r--resources/libraries/python/NATUtil.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/resources/libraries/python/NATUtil.py b/resources/libraries/python/NATUtil.py
index 857870393e..aabcd36cda 100644
--- a/resources/libraries/python/NATUtil.py
+++ b/resources/libraries/python/NATUtil.py
@@ -185,6 +185,22 @@ class NATUtil:
]
PapiSocketExecutor.dump_and_log(node, cmds)
+ @staticmethod
+ def compute_max_translations_per_thread(sessions, threads):
+ """Compute value of max_translations_per_thread NAT44 parameter based on
+ total number of worker threads.
+
+ :param sessions: Required number of NAT44 sessions.
+ :param threads: Number of worker threads.
+ :type sessions: int
+ :type threads: int
+ :returns: Value of max_translations_per_thread NAT44 parameter.
+ :rtype: int
+ """
+ from math import log2, modf
+ rest, mult = modf(log2(sessions/(10*threads)))
+ return 2 ** (int(mult) + (1 if rest else 0)) * 10
+
# DET44 PAPI calls
# DET44 means deterministic mode of NAT44
@staticmethod