aboutsummaryrefslogtreecommitdiffstats
path: root/docs/cpta
diff options
context:
space:
mode:
authorTibor Frank <tifrank@cisco.com>2018-04-04 15:50:09 +0200
committerTibor Frank <tifrank@cisco.com>2018-04-04 15:50:09 +0200
commitfc7a9563a6d23aaaace589606e431fad409b1ab9 (patch)
treee7566acca2fefff6a6588bddcc79dab15eed5ea2 /docs/cpta
parent42c909bf905d0860d4e28821925b0f701698adc8 (diff)
CSIT-1027: Add Index
Change-Id: If92bf076e4a55fff8f740b20a1f3aa5019c66091 Signed-off-by: Tibor Frank <tifrank@cisco.com>
Diffstat (limited to 'docs/cpta')
-rw-r--r--docs/cpta/index.rst1
-rw-r--r--docs/cpta/indices.rst4
-rw-r--r--docs/cpta/trending/container_memif.rst122
-rw-r--r--docs/cpta/trending/ip4.rst91
-rw-r--r--docs/cpta/trending/ip4_tunnels.rst30
-rw-r--r--docs/cpta/trending/ip6.rst62
-rw-r--r--docs/cpta/trending/ipsec.rst30
7 files changed, 175 insertions, 165 deletions
diff --git a/docs/cpta/index.rst b/docs/cpta/index.rst
index c9dd9c58e7..e192bb6886 100644
--- a/docs/cpta/index.rst
+++ b/docs/cpta/index.rst
@@ -7,3 +7,4 @@ Continuous Performance Trending and Analysis
introduction/index
trending/index
data/index
+ indices
diff --git a/docs/cpta/indices.rst b/docs/cpta/indices.rst
new file mode 100644
index 0000000000..6dd08416cb
--- /dev/null
+++ b/docs/cpta/indices.rst
@@ -0,0 +1,4 @@
+Indices and tables
+==================
+
+* :ref:`genindex`
diff --git a/docs/cpta/trending/container_memif.rst b/docs/cpta/trending/container_memif.rst
index b890eeb473..c5ea66ce6e 100644
--- a/docs/cpta/trending/container_memif.rst
+++ b/docs/cpta/trending/container_memif.rst
@@ -13,46 +13,47 @@ L2 Ethernet Switching
1 Thread, 1 Core
~~~~~~~~~~~~~~~~
+:index:`Container memif Connections, 10ge2p1x520, 64B, 1t1c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-1t1c-x520-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-1t1c-x520-1.html"></iframe><br><br>
- <center><i>Container memif Connections, 10ge2p1x520, 64B, 1t1c - Daily Trend.</i></center><br><br>
+:index:`Container memif Connections, 10ge2p1x520, 64B, 1t1c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-1t1c-x520-5.html"></iframe>
-
- <center><i>Container memif Connections, 10ge2p1x520, 64B, 1t1c - Weekly Trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-1t1c-x520-5.html"></iframe><br><br>
2 Threads, 2 Cores
~~~~~~~~~~~~~~~~~~
+:index:`Container memif Connections, 10ge2p1x520, 64B, 2t2c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-2t2c-x520-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-2t2c-x520-1.html"></iframe><br><br>
- <center><i>Container memif Connections, 10ge2p1x520, 64B, 2t2c - Daily Trend.</i></center><br><br>
+:index:`Container memif Connections, 10ge2p1x520 , 64B, 2t2c- Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-2t2c-x520-5.html"></iframe>
-
- <center><i>Container memif Connections, 10ge2p1x520 , 64B, 2t2c- Weekly Trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-2t2c-x520-5.html"></iframe><br><br>
4 Threads, 4 Cores
~~~~~~~~~~~~~~~~~~
+
+:index:`Container memif Connections, 10ge2p1x520, 64B, 4t4c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-4t4c-x520-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-4t4c-x520-1.html"></iframe><br><br>
- <center><i>Container memif Connections, 10ge2p1x520, 64B, 4t4c - Daily Trend.</i></center><br><br>
+:index:`Container memif Connections, 10ge2p1x520, 64B, 4t4c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-4t4c-x520-5.html"></iframe>
-
- <center><i>Container memif Connections, 10ge2p1x520, 64B, 4t4c - Weekly Trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-4t4c-x520-5.html"></iframe><br><br>
IMIX Packet
...........
@@ -60,46 +61,47 @@ IMIX Packet
1 Thread, 1 Core
~~~~~~~~~~~~~~~~
+:index:`Container memif Connections, 10ge2p1x520, IMIX, 1t1c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-1t1c-x520-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-1t1c-x520-1.html"></iframe><br><br>
- <center><i>Container memif Connections, 10ge2p1x520, IMIX, 1t1c - Daily Trend.</i></center><br><br>
+:index:`Container memif Connections, 10ge2p1x520, IMIX, 1t1c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-1t1c-x520-5.html"></iframe>
-
- <center><i>Container memif Connections, 10ge2p1x520, IMIX, 1t1c - Weekly Trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-1t1c-x520-5.html"></iframe><br><br>
2 Threads, 2 Cores
~~~~~~~~~~~~~~~~~~
+:index:`Container memif Connections, 10ge2p1x520, IMIX, 2t2c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-2t2c-x520-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-2t2c-x520-1.html"></iframe><br><br>
- <center><i>Container memif Connections, 10ge2p1x520, IMIX, 2t2c - Daily Trend.</i></center><br><br>
+:index:`Container memif Connections, 10ge2p1x520, IMIX, 2t2c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-2t2c-x520-5.html"></iframe>
-
- <center><i>Container memif Connections, 10ge2p1x520, IMIX, 2t2c - Weekly Trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-2t2c-x520-5.html"></iframe><br><br>
4 Threads, 4 Cores
~~~~~~~~~~~~~~~~~~
+
+:index:`Container memif Connections, 10ge2p1x520, IMIX, 4t4c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-4t4c-x520-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-4t4c-x520-1.html"></iframe><br><br>
- <center><i>Container memif Connections, 10ge2p1x520, IMIX, 4t4c - Daily Trend.</i></center><br><br>
+:index:`Container memif Connections, 10ge2p1x520, IMIX, 4t4c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-4t4c-x520-5.html"></iframe>
-
- <center><i>Container memif Connections, 10ge2p1x520, IMIX, 4t4c - Weekly Trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-4t4c-x520-5.html"></iframe><br><br>
NIC 40ge2p1xl710
----------------
@@ -113,47 +115,47 @@ L2 Ethernet Switching
1 Thread, 1 Core
~~~~~~~~~~~~~~~~
+:index:`Container memif Connections, 40ge2p1xl710, 64B, 1t1c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-1t1c-xl710-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-1t1c-xl710-1.html"></iframe><br><br>
- <center><i>Container memif Connections, 40ge2p1xl710, 64B, 1t1c - Daily Trend.</i></center><br><br>
+:index:`Container memif Connections, 40ge2p1xl710, 64B, 1t1c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-1t1c-xl710-5.html"></iframe>
-
- <center><i>Container memif Connections, 40ge2p1xl710, 64B, 1t1c - Weekly Trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-1t1c-xl710-5.html"></iframe><br><br>
2 Threads, 2 Cores
~~~~~~~~~~~~~~~~~~
+:index:`Container memif Connections, 40ge2p1xl710, 64B, 2t2c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-2t2c-xl710-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-2t2c-xl710-1.html"></iframe><br><br>
- <center><i>Container memif Connections, 40ge2p1xl710, 64B, 2t2c - Daily Trend.</i></center><br><br>
+:index:`Container memif Connections, 40ge2p1xl710, 64B, 2t2c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-2t2c-xl710-5.html"></iframe>
-
- <center><i>Container memif Connections, 40ge2p1xl710, 64B, 2t2c - Weekly Trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-2t2c-xl710-5.html"></iframe><br><br>
4 Threads, 4 Cores
~~~~~~~~~~~~~~~~~~
+:index:`Container memif Connections, 40ge2p1xl710, 64B, 4t4c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-4t4c-xl710-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-4t4c-xl710-1.html"></iframe><br><br>
- <center><i>Container memif Connections, 40ge2p1xl710, 64B, 4t4c - Daily Trend.</i></center><br><br>
+:index:`Container memif Connections, 40ge2p1xl710, 64B, 4t4c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-4t4c-xl710-5.html"></iframe>
-
- <center><i>Container memif Connections, 40ge2p1xl710, 64B, 4t4c - Weekly Trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-4t4c-xl710-5.html"></iframe><br><br>
IMIX Packet
...........
@@ -161,44 +163,46 @@ IMIX Packet
1 Thread, 1 Core
~~~~~~~~~~~~~~~~
+:index:`Container memif Connections, 40ge2p1xl710, IMIX, 1t1c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-1t1c-xl710-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-1t1c-xl710-1.html"></iframe><br><br>
- <center><i>Container memif Connections, 40ge2p1xl710, IMIX, 1t1c - Daily Trend.</i></center><br><br>
+:index:`Container memif Connections, 40ge2p1xl710, IMIX, 1t1c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-1t1c-xl710-5.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-1t1c-xl710-5.html"></iframe><br><br>
+
- <center><i>Container memif Connections, 40ge2p1xl710, IMIX, 1t1c - Weekly Trend.</i></center><br><br>
2 Threads, 2 Cores
~~~~~~~~~~~~~~~~~~
+:index:`Container memif Connections, 40ge2p1xl710, IMIX, 2t2c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-2t2c-xl710-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-2t2c-xl710-1.html"></iframe><br><br>
- <center><i>Container memif Connections, 40ge2p1xl710, IMIX, 2t2c - Daily Trend.</i></center><br><br>
+:index:`Container memif Connections, 40ge2p1xl710, IMIX, 2t2c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-2t2c-xl710-5.html"></iframe>
-
- <center><i>Container memif Connections, 40ge2p1xl710, IMIX, 2t2c - Weekly Trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-2t2c-xl710-5.html"></iframe><br><br>
4 Threads, 4 Cores
~~~~~~~~~~~~~~~~~~
+:index:`Container memif Connections, 40ge2p1xl710, IMIX, 4t4c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-4t4c-xl710-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-4t4c-xl710-1.html"></iframe><br><br>
- <center><i>Container memif Connections, 40ge2p1xl710, IMIX, 4t4c - Daily Trend.</i></center><br><br>
+:index:`Container memif Connections, 40ge2p1xl710, IMIX, 4t4c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-4t4c-xl710-5.html"></iframe>
-
- <center><i>Container memif Connections, 40ge2p1xl710, IMIX, 4t4c - Weekly Trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-4t4c-xl710-5.html"></iframe><br><br>
diff --git a/docs/cpta/trending/ip4.rst b/docs/cpta/trending/ip4.rst
index cca3464b66..a38ef754c0 100644
--- a/docs/cpta/trending/ip4.rst
+++ b/docs/cpta/trending/ip4.rst
@@ -13,48 +13,47 @@ Base and Scale
1 Thread, 1 Core
~~~~~~~~~~~~~~~~
+:index:`IPv4 Routed-Forwarding - Base and Scale, 10ge2p1x520, 64B, 1t1c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-1t1c-x520-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-1t1c-x520-1.html"></iframe><br><br>
- <center><i>IPv4 Routed-Forwarding - Base and Scale, 10ge2p1x520, 64B, 1t1c - Daily Trend.</i></center><br><br>
+:index:`IPv4 Routed-Forwarding - Base and Scale, 10ge2p1x520, 64B, 1t1c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-1t1c-x520-5.html"></iframe>
-
- <center><i>IPv4 Routed-Forwarding - Base and Scale, 10ge2p1x520, 64B, 1t1c - Weekly Trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-1t1c-x520-5.html"></iframe><br><br>
2 Threads, 2 Cores
~~~~~~~~~~~~~~~~~~
+:index:`IPv4 Routed-Forwarding - Base and Scale, 10ge2p1x520, 64B, 2t2c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-2t2c-x520-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-2t2c-x520-1.html"></iframe><br><br>
- <center><i>IPv4 Routed-Forwarding - Base and Scale, 10ge2p1x520, 64B, 2t2c - Daily Trend.</i></center><br><br>
+:index:`IPv4 Routed-Forwarding - Base and Scale, 10ge2p1x520, 64B, 2t2c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-2t2c-x520-5.html"></iframe>
-
- <center><i>IPv4 Routed-Forwarding - Base and Scale, 10ge2p1x520, 64B, 2t2c - Weekly Trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-2t2c-x520-5.html"></iframe><br><br>
4 Threads, 4 Cores
~~~~~~~~~~~~~~~~~~
+:index:`IPv4 Routed-Forwarding - Base and Scale, 10ge2p1x520, 64B, 4t4c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-4t4c-x520-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-4t4c-x520-1.html"></iframe><br><br>
- <center><i>IPv4 Routed-Forwarding - Base and Scale, 10ge2p1x520, 64B, 4t4c - Daily Trend.</i></center><br><br>
+:index:`IPv4 Routed-Forwarding - Base and Scale, 10ge2p1x520, 64B, 4t4c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-4t4c-x520-5.html"></iframe>
-
- <center><i>IPv4 Routed-Forwarding - Base and Scale, 10ge2p1x520, 64B, 4t4c - Weekly Trend.</i></center><br><br>
-
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-4t4c-x520-5.html"></iframe><br><br>
Features
````````
@@ -65,47 +64,47 @@ Features
1 Thread, 1 Core
~~~~~~~~~~~~~~~~
+:index:`IPv4 Routed-Forwarding - Features, 10ge2p1x520, 64B, 1t1c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-1t1c-x520-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-1t1c-x520-1.html"></iframe><br><br>
- <center><i>IPv4 Routed-Forwarding - Features, 10ge2p1x520, 64B, 1t1c - Daily Trend.</i></center><br><br>
+:index:`IPv4 Routed-Forwarding - Features, 10ge2p1x520, 64B, 1t1c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-1t1c-x520-5.html"></iframe>
-
- <center><i>IPv4 Routed-Forwarding - Features, 10ge2p1x520, 64B, 1t1c - Weekly Trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-1t1c-x520-5.html"></iframe><br><br>
2 Threads, 2 Cores
~~~~~~~~~~~~~~~~~~
+:index:`IPv4 Routed-Forwarding - Features, 10ge2p1x520, 64B, 2t2c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-2t2c-x520-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-2t2c-x520-1.html"></iframe><br><br>
- <center><i>IPv4 Routed-Forwarding - Features, 10ge2p1x520, 64B, 2t2c - Daily Trend.</i></center><br><br>
+:index:`IPv4 Routed-Forwarding - Features, 10ge2p1x520, 64B, 2t2c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-2t2c-x520-5.html"></iframe>
-
- <center><i>IPv4 Routed-Forwarding - Features, 10ge2p1x520, 64B, 2t2c - Weekly Trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-2t2c-x520-5.html"></iframe><br><br>
4 Threads, 4 Cores
~~~~~~~~~~~~~~~~~~
+:index:`IPv4 Routed-Forwarding - Features, 10ge2p1x520, 64B, 4t4c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-4t4c-x520-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-4t4c-x520-1.html"></iframe><br><br>
- <center><i>IPv4 Routed-Forwarding - Features, 10ge2p1x520, 64B, 4t4c - Daily Trend.</i></center><br><br>
+:index:`IPv4 Routed-Forwarding - Features, 10ge2p1x520, 64B, 4t4c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-4t4c-x520-5.html"></iframe>
-
- <center><i>IPv4 Routed-Forwarding - Features, 10ge2p1x520, 64B, 4t4c - Weekly Trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-4t4c-x520-5.html"></iframe><br><br>
NIC 40ge2p1xl710
----------------
@@ -119,44 +118,44 @@ Base, Scale and Features
1 Thread, 1 Core
~~~~~~~~~~~~~~~~
+:index:`IPv4 Routed-Forwarding, 40ge2p1xl710, 64B, 1t1c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-1t1c-xl710-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-1t1c-xl710-1.html"></iframe><br><br>
- <center><i>IPv4 Routed-Forwarding, 40ge2p1xl710, 64B, 1t1c - Daily Trend.</i></center><br><br>
+:index:`IPv4 Routed-Forwarding, 40ge2p1xl710, 64B, 1t1c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-1t1c-xl710-5.html"></iframe>
-
- <center><i>IPv4 Routed-Forwarding, 40ge2p1xl710, 64B, 1t1c - Weekly Trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-1t1c-xl710-5.html"></iframe><br><br>
2 Threads, 2 Cores
~~~~~~~~~~~~~~~~~~
+:index:`IPv4 Routed-Forwarding, 40ge2p1xl710, 64B, 2t2c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-2t2c-xl710-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-2t2c-xl710-1.html"></iframe><br><br>
- <center><i>IPv4 Routed-Forwarding, 40ge2p1xl710, 64B, 2t2c - Daily Trend.</i></center><br><br>
+:index:`IPv4 Routed-Forwarding, 40ge2p1xl710, 64B, 2t2c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-2t2c-xl710-5.html"></iframe>
-
- <center><i>IPv4 Routed-Forwarding, 40ge2p1xl710, 64B, 2t2c - Weekly Trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-2t2c-xl710-5.html"></iframe><br><br>
4 Threads, 4 Cores
~~~~~~~~~~~~~~~~~~
+:index:`IPv4 Routed-Forwarding, 40ge2p1xl710, 64B, 4t4c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-4t4c-xl710-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-4t4c-xl710-1.html"></iframe><br><br>
- <center><i>IPv4 Routed-Forwarding, 40ge2p1xl710, 64B, 4t4c - Daily Trend.</i></center><br><br>
+:index:`IPv4 Routed-Forwarding, 40ge2p1xl710, 64B, 4t4c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-4t4c-xl710-5.html"></iframe>
-
- <center><i>IPv4 Routed-Forwarding, 40ge2p1xl710, 64B, 4t4c - Weekly Trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-4t4c-xl710-5.html"></iframe><br><br>
diff --git a/docs/cpta/trending/ip4_tunnels.rst b/docs/cpta/trending/ip4_tunnels.rst
index 76c41f0e7f..a44a676fe0 100644
--- a/docs/cpta/trending/ip4_tunnels.rst
+++ b/docs/cpta/trending/ip4_tunnels.rst
@@ -7,44 +7,44 @@ IPv4 Overlay Tunnels
1 Thread, 1 Core
~~~~~~~~~~~~~~~~
+:index:`IPv4 Overlay Tunnels, 10ge2p1x520, 64B, 1t1c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-1t1c-x520-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-1t1c-x520-1.html"></iframe><br><br>
- <center><i>Figure 1. IPv4 Overlay Tunnels - Daily trend.</i></center><br><br>
+:index:`IPv4 Overlay Tunnels, 10ge2p1x520, 64B, 1t1c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-1t1c-x520-5.html"></iframe>
-
- <center><i>Figure 2. IPv4 Overlay Tunnels - Weekly trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-1t1c-x520-5.html"></iframe><br><br>
2 Threads, 2 Cores
~~~~~~~~~~~~~~~~~~
+:index:`IPv4 Overlay Tunnels, 10ge2p1x520, 64B, 2t2c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-2t2c-x520-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-2t2c-x520-1.html"></iframe><br><br>
- <center><i>Figure 3. IPv4 Overlay Tunnels - Daily trend.</i></center><br><br>
+:index:`IPv4 Overlay Tunnels, 10ge2p1x520, 64B, 2t2c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-2t2c-x520-5.html"></iframe>
-
- <center><i>Figure 4. IPv4 Overlay Tunnels - Weekly trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-2t2c-x520-5.html"></iframe><br><br>
4 Threads, 4 Cores
~~~~~~~~~~~~~~~~~~
+:index:`IPv4 Overlay Tunnels, 10ge2p1x520, 64B, 4t4c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-4t4c-x520-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-4t4c-x520-1.html"></iframe><br><br>
- <center><i>Figure 5. IPv4 Overlay Tunnels - Daily trend.</i></center><br><br>
+:index:`IPv4 Overlay Tunnels, 10ge2p1x520, 64B, 4t4c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-4t4c-x520-5.html"></iframe>
-
- <center><i>Figure 6. IPv4 Overlay Tunnels - Weekly trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-4t4c-x520-5.html"></iframe><br><br>
diff --git a/docs/cpta/trending/ip6.rst b/docs/cpta/trending/ip6.rst
index 6243153871..c3410de1d5 100644
--- a/docs/cpta/trending/ip6.rst
+++ b/docs/cpta/trending/ip6.rst
@@ -10,47 +10,48 @@ NIC 10ge2p1x520
1 Thread, 1 Core
~~~~~~~~~~~~~~~~
+:index:`IPv6 Routed-Forwarding, 10ge2p1x520, 78B, 1t1c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-1t1c-x520-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-1t1c-x520-1.html"></iframe><br><br>
- <center><i>Figure 1. IPv6 Routed-Forwarding, NIC 10ge2p1x520 - Daily trend.</i></center><br><br>
+:index:`IPv6 Routed-Forwarding, 10ge2p1x520, 78B, 1t1c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-1t1c-x520-5.html"></iframe>
-
- <center><i>Figure 2. IPv6 Routed-Forwarding, NIC 10ge2p1x520 - Weekly trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-1t1c-x520-5.html"></iframe><br><br>
2 Threads, 2 Cores
~~~~~~~~~~~~~~~~~~
+:index:`IPv6 Routed-Forwarding, 10ge2p1x520, 78B, 2t2c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-2t2c-x520-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-2t2c-x520-1.html"></iframe><br><br>
- <center><i>Figure 3. IPv6 Routed-Forwarding, NIC 10ge2p1x520 - Daily trend.</i></center><br><br>
+:index:`IPv6 Routed-Forwarding, 10ge2p1x520, 78B, 2t2c - Weekly Trend`.
-.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-2t2c-x520-5.html"></iframe>
+.. raw:: html
- <center><i>Figure 4. IPv6 Routed-Forwarding, NIC 10ge2p1x520 - Weekly trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-2t2c-x520-5.html"></iframe><br><br>
4 Threads, 4 Cores
~~~~~~~~~~~~~~~~~~
+:index:`IPv6 Routed-Forwarding, 10ge2p1x520, 78B, 4t4c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-4t4c-x520-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-4t4c-x520-1.html"></iframe><br><br>
- <center><i>Figure 5. IPv6 Routed-Forwarding, NIC 10ge2p1x520 - Daily trend.</i></center><br><br>
+:index:`IPv6 Routed-Forwarding, 10ge2p1x520, 78B, 4t4c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-4t4c-x520-5.html"></iframe>
-
- <center><i>Figure 6. IPv6 Routed-Forwarding, NIC 10ge2p1x520 - Weekly trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-4t4c-x520-5.html"></iframe><br><br>
NIC 40ge2p1xl710
----------------
@@ -61,43 +62,44 @@ NIC 40ge2p1xl710
1 Thread, 1 Core
~~~~~~~~~~~~~~~~
+:index:`IPv6 Routed-Forwarding, 40ge2p1xl710, 78B, 1t1c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-1t1c-xl710-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-1t1c-xl710-1.html"></iframe><br><br>
- <center><i>Figure 1. IPv6 Routed-Forwarding, NIC 40ge2p1xl710 - Daily trend.</i></center><br><br>
+:index:`IPv6 Routed-Forwarding, 40ge2p1xl710, 78B, 1t1c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-1t1c-xl710-5.html"></iframe>
-
- <center><i>Figure 2. IPv6 Routed-Forwarding, NIC 40ge2p1xl710 - Weekly trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-1t1c-xl710-5.html"></iframe><br><br>
2 Threads, 2 Cores
~~~~~~~~~~~~~~~~~~
+
+:index:`IPv6 Routed-Forwarding, 40ge2p1xl710, 78B, 2t2c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-2t2c-xl710-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-2t2c-xl710-1.html"></iframe><br><br>
- <center><i>Figure 3. IPv6 Routed-Forwarding, NIC 40ge2p1xl710 - Daily trend.</i></center><br><br>
+:index:`IPv6 Routed-Forwarding, 40ge2p1xl710, 78B, 2t2c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-2t2c-xl710-5.html"></iframe>
-
- <center><i>Figure 4. IPv6 Routed-Forwarding, NIC 40ge2p1xl710 - Weekly trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-2t2c-xl710-5.html"></iframe><br><br>
4 Threads, 4 Cores
~~~~~~~~~~~~~~~~~~
+:index:`IPv6 Routed-Forwarding, 40ge2p1xl710, 78B, 4t4c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-4t4c-xl710-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-4t4c-xl710-1.html"></iframe><br><br>
- <center><i>Figure 5. IPv6 Routed-Forwarding, NIC 40ge2p1xl710 - Daily trend.</i></center><br><br>
+:index:`IPv6 Routed-Forwarding, 40ge2p1xl710, 78B, 4t4c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-4t4c-xl710-5.html"></iframe>
-
- <center><i>Figure 6. IPv6 Routed-Forwarding, NIC 40ge2p1xl710 - Weekly trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-4t4c-xl710-5.html"></iframe><br><br>
diff --git a/docs/cpta/trending/ipsec.rst b/docs/cpta/trending/ipsec.rst
index 6da2881b4a..6cc929ce75 100644
--- a/docs/cpta/trending/ipsec.rst
+++ b/docs/cpta/trending/ipsec.rst
@@ -10,44 +10,44 @@ NIC 40ge2p1xl710
1 Thread, 1 Core
~~~~~~~~~~~~~~~~
+:index:`IPSec Crypto HW: IP4 Routed-Forwarding, 40ge2p1xl710, 64B, 1t1c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ipsec-1t1c-xl710-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ipsec-1t1c-xl710-1.html"></iframe><br><br>
- <center><i>Figure 1. IPSec Crypto HW: IP4 Routed-Forwarding - Daily trend.</i></center><br><br>
+:index:`IPSec Crypto HW: IP4 Routed-Forwarding, 40ge2p1xl710, 64B, 1t1c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ipsec-1t1c-xl710-5.html"></iframe>
-
- <center><i>Figure 2. IPSec Crypto HW: IP4 Routed-Forwarding - Weekly trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ipsec-1t1c-xl710-5.html"></iframe><br><br>
2 Threads, 2 Cores
~~~~~~~~~~~~~~~~~~
+:index:`IPSec Crypto HW: IP4 Routed-Forwarding, 40ge2p1xl710, 64B, 2t2c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ipsec-2t2c-xl710-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ipsec-2t2c-xl710-1.html"></iframe><br><br>
- <center><i>Figure 3. IPSec Crypto HW: IP4 Routed-Forwarding - Daily trend.</i></center><br><br>
+:index:`IPSec Crypto HW: IP4 Routed-Forwarding, 40ge2p1xl710, 64B, 2t2c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ipsec-2t2c-xl710-5.html"></iframe>
-
- <center><i>Figure 4. IPSec Crypto HW: IP4 Routed-Forwarding - Weekly trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ipsec-2t2c-xl710-5.html"></iframe><br><br>
4 Threads, 4 Cores
~~~~~~~~~~~~~~~~~~
+:index:`IPSec Crypto HW: IP4 Routed-Forwarding, 40ge2p1xl710, 64B, 4t4c - Daily Trend`.
+
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ipsec-4t4c-xl710-1.html"></iframe>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ipsec-4t4c-xl710-1.html"></iframe><br><br>
- <center><i>Figure 5. IPSec Crypto HW: IP4 Routed-Forwarding - Daily trend.</i></center><br><br>
+:index:`IPSec Crypto HW: IP4 Routed-Forwarding, 40ge2p1xl710, 64B, 4t4c - Weekly Trend`.
.. raw:: html
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ipsec-4t4c-xl710-5.html"></iframe>
-
- <center><i>Figure 6. IPSec Crypto HW: IP4 Routed-Forwarding - Weekly trend.</i></center><br><br>
+ <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ipsec-4t4c-xl710-5.html"></iframe><br><br>
an class="p">) rx_pkts = self.pg0.get_capture(1) rx_pkt = rx_pkts[0] self.v4_address_check(rx_pkt) self.v4_port_check(rx_pkt, TCP) self.assertEqual(rx_pkt[IP].proto, IP(proto="tcp").proto) self.assertEqual(rx_pkt[IP].tos, 0) # IPv6 TC passed to v4 ToS df_bit = IP(flags="DF").flags self.assertNotEqual(rx_pkt[IP].flags & df_bit, df_bit) # # Translation of ICMP Echo Request v4 -> v6 direction # Received packet should be translated into an IPv6 Echo Request. # def test_map_t_echo_request_ip4_to_ip6(self): """MAP-T echo request IPv4 -> IPv6""" eth = Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac) ip = IP(src=self.pg0.remote_ip4, dst=self.ipv4_map_address) icmp = ICMP(type="echo-request", id=self.ipv6_udp_or_tcp_map_port) payload = "H" * 10 tx_pkt = eth / ip / icmp / payload self.pg_send(self.pg0, tx_pkt * 1) rx_pkts = self.pg1.get_capture(1) rx_pkt = rx_pkts[0] self.assertEqual(rx_pkt[IPv6].nh, IPv6(nh="ICMPv6").nh) self.assertEqual( rx_pkt[ICMPv6EchoRequest].type, ICMPv6EchoRequest(type="Echo Request").type ) self.assertEqual(rx_pkt[ICMPv6EchoRequest].code, 0) self.assertEqual(rx_pkt[ICMPv6EchoRequest].id, self.ipv6_udp_or_tcp_map_port) # # Translation of ICMP Echo Reply v4 -> v6 direction # Received packet should be translated into an IPv6 Echo Reply. # def test_map_t_echo_reply_ip4_to_ip6(self): """MAP-T echo reply IPv4 -> IPv6""" eth = Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac) ip = IP(src=self.pg0.remote_ip4, dst=self.ipv4_map_address) icmp = ICMP(type="echo-reply", id=self.ipv6_udp_or_tcp_map_port) payload = "H" * 10 tx_pkt = eth / ip / icmp / payload self.pg_send(self.pg0, tx_pkt * 1) rx_pkts = self.pg1.get_capture(1) rx_pkt = rx_pkts[0] self.assertEqual(rx_pkt[IPv6].nh, IPv6(nh="ICMPv6").nh) self.assertEqual( rx_pkt[ICMPv6EchoReply].type, ICMPv6EchoReply(type="Echo Reply").type ) self.assertEqual(rx_pkt[ICMPv6EchoReply].code, 0) self.assertEqual(rx_pkt[ICMPv6EchoReply].id, self.ipv6_udp_or_tcp_map_port) # # Translation of ICMP Time Exceeded v4 -> v6 direction # Received packet should be translated into an IPv6 Time Exceeded. # def test_map_t_time_exceeded_ip4_to_ip6(self): """MAP-T time exceeded IPv4 -> IPv6""" eth = Ether(src=self.pg0.remote_mac, dst=self.pg0.local_mac) ip = IP(src=self.pg0.remote_ip4, dst=self.ipv4_map_address) icmp = ICMP(type="time-exceeded", code="ttl-zero-during-transit") ip_inner = IP(dst=self.pg0.remote_ip4, src=self.ipv4_map_address, ttl=1) udp_inner = UDP( sport=self.ipv4_udp_or_tcp_map_port, dport=self.ipv4_udp_or_tcp_internet_port, ) payload = "H" * 10 tx_pkt = eth / ip / icmp / ip_inner / udp_inner / payload self.pg_send(self.pg0, tx_pkt * 1) rx_pkts = self.pg1.get_capture(1) rx_pkt = rx_pkts[0] self.v6_address_check(rx_pkt) self.assertEqual(rx_pkt[IPv6].nh, IPv6(nh="ICMPv6").nh) self.assertEqual(rx_pkt[ICMPv6TimeExceeded].type, ICMPv6TimeExceeded().type) self.assertEqual( rx_pkt[ICMPv6TimeExceeded].code, ICMPv6TimeExceeded(code="hop limit exceeded in transit").code, ) self.assertEqual(rx_pkt[ICMPv6TimeExceeded].hlim, tx_pkt[IP][1].ttl) self.assertTrue(rx_pkt.haslayer(IPerror6)) self.assertTrue(rx_pkt.haslayer(UDPerror)) self.assertEqual(rx_pkt[IPv6].src, rx_pkt[IPerror6].dst) self.assertEqual(rx_pkt[IPv6].dst, rx_pkt[IPerror6].src) self.assertEqual(rx_pkt[UDPerror].sport, self.ipv6_udp_or_tcp_map_port) self.assertEqual(rx_pkt[UDPerror].dport, self.ipv6_udp_or_tcp_internet_port) # # Translation of ICMP Echo Request v6 -> v4 direction # Received packet should be translated into an IPv4 Echo Request. # def test_map_t_echo_request_ip6_to_ip4(self): """MAP-T echo request IPv6 -> IPv4""" eth = Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac) ip = IPv6(src=self.ipv6_cpe_address, dst=self.ipv6_map_address) icmp = ICMPv6EchoRequest() icmp.id = self.ipv6_udp_or_tcp_map_port payload = "H" * 10 tx_pkt = eth / ip / icmp / payload self.pg_send(self.pg1, tx_pkt * 1) rx_pkts = self.pg0.get_capture(1) rx_pkt = rx_pkts[0] self.assertEqual(rx_pkt[IP].proto, IP(proto="icmp").proto) self.assertEqual(rx_pkt[ICMP].type, ICMP(type="echo-request").type) self.assertEqual(rx_pkt[ICMP].code, 0) self.assertEqual(rx_pkt[ICMP].id, self.ipv6_udp_or_tcp_map_port) # # Translation of ICMP Echo Reply v6 -> v4 direction # Received packet should be translated into an IPv4 Echo Reply. # def test_map_t_echo_reply_ip6_to_ip4(self): """MAP-T echo reply IPv6 -> IPv4""" eth = Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac) ip = IPv6(src=self.ipv6_cpe_address, dst=self.ipv6_map_address) icmp = ICMPv6EchoReply(id=self.ipv6_udp_or_tcp_map_port) payload = "H" * 10 tx_pkt = eth / ip / icmp / payload self.pg_send(self.pg1, tx_pkt * 1) rx_pkts = self.pg0.get_capture(1) rx_pkt = rx_pkts[0] self.assertEqual(rx_pkt[IP].proto, IP(proto="icmp").proto) self.assertEqual(rx_pkt[ICMP].type, ICMP(type="echo-reply").type) self.assertEqual(rx_pkt[ICMP].code, 0) self.assertEqual(rx_pkt[ICMP].id, self.ipv6_udp_or_tcp_map_port) # # Translation of ICMP Packet Too Big v6 -> v4 direction # Received packet should be translated into an IPv4 Dest Unreachable. # def test_map_t_packet_too_big_ip6_to_ip4(self): """MAP-T packet too big IPv6 -> IPv4""" eth = Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac) ip = IPv6(src=self.ipv6_cpe_address, dst=self.ipv6_map_address) icmp = ICMPv6PacketTooBig(mtu=1280) ip_inner = IPv6(src=self.ipv6_map_address, dst=self.ipv6_cpe_address) udp_inner = UDP( sport=self.ipv6_udp_or_tcp_internet_port, dport=self.ipv6_udp_or_tcp_map_port, ) payload = "H" * 10 tx_pkt = eth / ip / icmp / ip_inner / udp_inner / payload self.pg_send(self.pg1, tx_pkt * 1) rx_pkts = self.pg0.get_capture(1) rx_pkt = rx_pkts[0] self.v4_address_check(rx_pkt) self.assertEqual(rx_pkt[IP].proto, IP(proto="icmp").proto) self.assertEqual(rx_pkt[ICMP].type, ICMP(type="dest-unreach").type) self.assertEqual(rx_pkt[ICMP].code, ICMP(code="fragmentation-needed").code) self.assertEqual(rx_pkt[ICMP].nexthopmtu, tx_pkt[ICMPv6PacketTooBig].mtu - 20) self.assertTrue(rx_pkt.haslayer(IPerror)) self.assertTrue(rx_pkt.haslayer(UDPerror)) self.assertEqual(rx_pkt[IP].src, rx_pkt[IPerror].dst) self.assertEqual(rx_pkt[IP].dst, rx_pkt[IPerror].src) self.assertEqual(rx_pkt[UDPerror].sport, self.ipv4_udp_or_tcp_internet_port) self.assertEqual(rx_pkt[UDPerror].dport, self.ipv4_udp_or_tcp_map_port) # # Translation of ICMP Time Exceeded v6 -> v4 direction # Received packet should be translated into an IPv4 Time Exceeded. # def test_map_t_time_exceeded_ip6_to_ip4(self): """MAP-T time exceeded IPv6 -> IPv4""" eth = Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac) ip = IPv6(src=self.ipv6_cpe_address, dst=self.ipv6_map_address) icmp = ICMPv6TimeExceeded() ip_inner = IPv6(src=self.ipv6_map_address, dst=self.ipv6_cpe_address, hlim=1) udp_inner = UDP( sport=self.ipv6_udp_or_tcp_internet_port, dport=self.ipv6_udp_or_tcp_map_port, ) payload = "H" * 10 tx_pkt = eth / ip / icmp / ip_inner / udp_inner / payload self.pg_send(self.pg1, tx_pkt * 1) rx_pkts = self.pg0.get_capture(1) rx_pkt = rx_pkts[0] self.v4_address_check(rx_pkt) self.assertEqual(rx_pkt[IP].proto, IP(proto="icmp").proto) self.assertEqual(rx_pkt[ICMP].type, ICMP(type="time-exceeded").type) self.assertEqual(rx_pkt[ICMP].code, ICMP(code="ttl-zero-during-transit").code) self.assertEqual(rx_pkt[ICMP].ttl, tx_pkt[IPv6][1].hlim) self.assertTrue(rx_pkt.haslayer(IPerror)) self.assertTrue(rx_pkt.haslayer(UDPerror)) self.assertEqual(rx_pkt[IP].src, rx_pkt[IPerror].dst) self.assertEqual(rx_pkt[IP].dst, rx_pkt[IPerror].src) self.assertEqual(rx_pkt[UDPerror].sport, self.ipv4_udp_or_tcp_internet_port) self.assertEqual(rx_pkt[UDPerror].dport, self.ipv4_udp_or_tcp_map_port) # # Spoofed IPv4 Source Address v6 -> v4 direction # Send a packet with a wrong IPv4 address embedded in bits 72-103. # The BR should either drop the packet, or rewrite the spoofed # source IPv4 as the actual source IPv4 address. # The BR really should drop the packet. # def test_map_t_spoof_ipv4_src_addr_ip6_to_ip4(self): """MAP-T spoof ipv4 src addr IPv6 -> IPv4""" eth = Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac) ip = IPv6(src=self.ipv6_spoof_address, dst=self.ipv6_map_address) udp = UDP( sport=self.ipv6_udp_or_tcp_map_port, dport=self.ipv6_udp_or_tcp_internet_port, ) payload = "a" * 82 tx_pkt = eth / ip / udp / payload self.pg_send(self.pg1, tx_pkt * 1) self.pg0.get_capture(0, timeout=1) self.pg0.assert_nothing_captured(remark="Should drop IPv4 spoof address") # # Spoofed IPv4 Source Prefix v6 -> v4 direction # Send a packet with a wrong IPv4 prefix embedded in bits 72-103. # The BR should either drop the packet, or rewrite the source IPv4 # to the prefix that matches the source IPv4 address. # def test_map_t_spoof_ipv4_src_prefix_ip6_to_ip4(self): """MAP-T spoof ipv4 src prefix IPv6 -> IPv4""" eth = Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac) ip = IPv6(src=self.ipv6_spoof_prefix, dst=self.ipv6_map_address) udp = UDP( sport=self.ipv6_udp_or_tcp_map_port, dport=self.ipv6_udp_or_tcp_internet_port, ) payload = "a" * 82 tx_pkt = eth / ip / udp / payload self.pg_send(self.pg1, tx_pkt * 1) self.pg0.get_capture(0, timeout=1) self.pg0.assert_nothing_captured(remark="Should drop IPv4 spoof prefix") # # Spoofed IPv6 PSID v6 -> v4 direction # Send a packet with a wrong IPv6 port PSID # The BR should drop the packet. # def test_map_t_spoof_psid_ip6_to_ip4(self): """MAP-T spoof psid IPv6 -> IPv4""" eth = Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac) ip = IPv6(src=self.ipv6_spoof_psid, dst=self.ipv6_map_address) udp = UDP( sport=self.ipv6_udp_or_tcp_map_port, dport=self.ipv6_udp_or_tcp_internet_port, ) payload = "a" * 82 tx_pkt = eth / ip / udp / payload self.pg_send(self.pg1, tx_pkt * 1) self.pg0.get_capture(0, timeout=1) self.pg0.assert_nothing_captured(remark="Should drop IPv6 spoof PSID") # # Spoofed IPv6 subnet field v6 -> v4 direction # Send a packet with a wrong IPv6 subnet as "2001:db8:f1" # The BR should drop the packet. # def test_map_t_spoof_subnet_ip6_to_ip4(self): """MAP-T spoof subnet IPv6 -> IPv4""" eth = Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac) ip = IPv6(src=self.ipv6_spoof_subnet, dst=self.ipv6_map_address) udp = UDP( sport=self.ipv6_udp_or_tcp_map_port, dport=self.ipv6_udp_or_tcp_internet_port, ) payload = "a" * 82 tx_pkt = eth / ip / udp / payload self.pg_send(self.pg1, tx_pkt * 1) self.pg0.get_capture(0, timeout=1) self.pg0.assert_nothing_captured(remark="Should drop IPv6 spoof subnet") # # Spoofed IPv6 port PSID v6 -> v4 direction # Send a packet with a wrong IPv6 port PSID # The BR should drop the packet. # def test_map_t_spoof_port_psid_ip6_to_ip4(self): """MAP-T spoof port psid IPv6 -> IPv4""" eth = Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac) ip = IPv6(src=self.ipv6_cpe_address, dst=self.ipv6_map_address) udp = UDP( sport=self.ipv6_udp_or_tcp_spoof_port, dport=self.ipv6_udp_or_tcp_internet_port, ) payload = "a" * 82 tx_pkt = eth / ip / udp / payload self.pg_send(self.pg1, tx_pkt * 1) self.pg0.get_capture(0, timeout=1) self.pg0.assert_nothing_captured(remark="Should drop IPv6 spoof port PSID") # # Spoofed IPv6 ICMP ID PSID v6 -> v4 direction # Send a packet with a wrong IPv6 IMCP ID PSID # The BR should drop the packet. # def test_map_t_spoof_icmp_id_psid_ip6_to_ip4(self): """MAP-T spoof ICMP id psid IPv6 -> IPv4""" eth = Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac) ip = IPv6(src=self.ipv6_cpe_address, dst=self.ipv6_map_address) icmp = ICMPv6EchoRequest() icmp.id = self.ipv6_udp_or_tcp_spoof_port payload = "H" * 10 tx_pkt = eth / ip / icmp / payload self.pg_send(self.pg1, tx_pkt * 1) self.pg0.get_capture(0, timeout=1) self.pg0.assert_nothing_captured(remark="Should drop IPv6 spoof port PSID") # # Map to Map - same rule, different address # @unittest.skip("Fixme: correct behavior needs clarification") def test_map_t_same_rule_diff_addr_ip6_to_ip4(self): """MAP-T same rule, diff addr IPv6 -> IPv6""" eth = Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac) ip = IPv6(src=self.ipv6_cpe_address, dst=self.ipv6_map_same_rule_diff_addr) udp = UDP(sport=self.ipv6_udp_or_tcp_map_port, dport=1025) payload = "a" * 82 tx_pkt = eth / ip / udp / payload self.pg_send(self.pg1, tx_pkt * 1) rx_pkts = self.pg1.get_capture(1) rx_pkt = rx_pkts[0] # # Map to Map - same rule, same address # @unittest.skip("Fixme: correct behavior needs clarification") def test_map_t_same_rule_same_addr_ip6_to_ip4(self): """MAP-T same rule, same addr IPv6 -> IPv6""" eth = Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac) ip = IPv6(src=self.ipv6_cpe_address, dst=self.ipv6_map_same_rule_same_addr) udp = UDP(sport=self.ipv6_udp_or_tcp_map_port, dport=1025) payload = "a" * 82 tx_pkt = eth / ip / udp / payload self.pg_send(self.pg1, tx_pkt * 1) rx_pkts = self.pg1.get_capture(1) rx_pkt = rx_pkts[0] if __name__ == "__main__": unittest.main(testRunner=VppTestRunner)