aboutsummaryrefslogtreecommitdiffstats
path: root/docs/development/design
diff options
context:
space:
mode:
Diffstat (limited to 'docs/development/design')
-rw-r--r--docs/development/design/index.rst3
-rw-r--r--docs/development/design/ndrpdr.rst29
2 files changed, 31 insertions, 1 deletions
diff --git a/docs/development/design/index.rst b/docs/development/design/index.rst
index 22e79d9..a8093cb 100644
--- a/docs/development/design/index.rst
+++ b/docs/development/design/index.rst
@@ -5,6 +5,7 @@ OPNFV NFVbench Euphrates Design
=============================================
.. toctree::
- :maxdepth: 1
+ :maxdepth: 2
design
+ ndrpdr
diff --git a/docs/development/design/ndrpdr.rst b/docs/development/design/ndrpdr.rst
new file mode 100644
index 0000000..f748476
--- /dev/null
+++ b/docs/development/design/ndrpdr.rst
@@ -0,0 +1,29 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) Cisco Systems, Inc
+
+NDR/PDR Binary Search
+=====================
+
+Algorithm Outline
+-----------------
+
+The ServiceChain class is responsible for calculating the NDR/PDR for all frame sizes requested in the configuration.
+Calculation for 1 frame size is delegated to the TrafficClient class.
+
+Call chain for calculating the NDR-PDR for a list of frame sizes:
+
+- ServiceChain.run()
+ - ServiceChain._get_chain_results()
+ - for every frame size:
+ - ServiceChain.__get_result_per_frame_size()
+ - TrafficClient.get_ndr_pdr()
+ - TrafficClient.__range_search() recursive binary search
+
+The search range is delimited by a left and right rate (expressed as a % of line rate per direction).
+
+The recursion narrows down the range by half and stops when:
+- the range is smaller than the configured load_epsilon value
+- or when the search hits 100% or 0% of line rate
+