+Following sections include summary graphs of VPP Phy-to-Phy performance
+with IPv4 Routed-Forwarding, including NDR throughput (zero packet loss)
+and PDR throughput (<0.5% packet loss). Performance is reported for VPP
+running in multiple configurations of VPP worker thread(s), a.k.a. VPP
+data plane thread(s), and their physical CPU core(s) placement.
+
+CSIT source code for the test cases used for plots can be found in
+`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/ip4?h=rls1810>`_.
+
+.. raw:: latex
+
+ \clearpage
+
+3n-hsw-x520
+~~~~~~~~~~~
+
+64b-1t1c-base_and_scale
+-----------------------
+
+.. raw:: html
+
+ <center><b>
+
+:index:`Packet Throughput: ip4-3n-hsw-x520-64b-1t1c-base_and_scale-ndr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/ip4-3n-hsw-x520-64b-1t1c-base_and_scale-ndr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{ip4-3n-hsw-x520-64b-1t1c-base_and_scale-ndr}
+ \label{fig:ip4-3n-hsw-x520-64b-1t1c-base_and_scale-ndr}
+ \end{figure}
+
+.. raw:: html
+
+ <center><b>
+
+.. raw:: latex
+
+ \clearpage
+
+:index:`Packet Throughput: ip4-3n-hsw-x520-64b-1t1c-base_and_scale-pdr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/ip4-3n-hsw-x520-64b-1t1c-base_and_scale-pdr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{ip4-3n-hsw-x520-64b-1t1c-base_and_scale-pdr}
+ \label{fig:ip4-3n-hsw-x520-64b-1t1c-base_and_scale-pdr}
+ \end{figure}
+
+.. raw:: latex
+
+ \clearpage
+
+64b-2t2c-base_and_scale
+-----------------------
+
+.. raw:: html
+
+ <center><b>
+
+:index:`Packet Throughput: ip4-3n-hsw-x520-64b-2t2c-base_and_scale-ndr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/ip4-3n-hsw-x520-64b-2t2c-base_and_scale-ndr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{ip4-3n-hsw-x520-64b-2t2c-base_and_scale-ndr}
+ \label{fig:ip4-3n-hsw-x520-64b-2t2c-base_and_scale-ndr}
+ \end{figure}
+
+.. raw:: html
+
+ <center><b>
+
+.. raw:: latex
+
+ \clearpage
+
+:index:`Packet Throughput: ip4-3n-hsw-x520-64b-2t2c-base_and_scale-pdr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/ip4-3n-hsw-x520-64b-2t2c-base_and_scale-pdr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{ip4-3n-hsw-x520-64b-2t2c-base_and_scale-pdr}
+ \label{fig:ip4-3n-hsw-x520-64b-2t2c-base_and_scale-pdr}
+ \end{figure}
+
+.. raw:: latex
+
+ \clearpage
+
+64b-1t1c-features
+-----------------
+
+.. raw:: html
+
+ <center><b>
+
+:index:`Packet Throughput: ip4-3n-hsw-x520-64b-1t1c-features-ndr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/ip4-3n-hsw-x520-64b-1t1c-features-ndr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{ip4-3n-hsw-x520-64b-1t1c-features-ndr}
+ \label{fig:ip4-3n-hsw-x520-64b-1t1c-features-ndr}
+ \end{figure}
+
+.. raw:: html
+
+ <center><b>
+
+.. raw:: latex
+
+ \clearpage
+
+:index:`Packet Throughput: ip4-3n-hsw-x520-64b-1t1c-features-pdr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm06" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/ip4-3n-hsw-x520-64b-1t1c-features-pdr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{ip4-3n-hsw-x520-64b-1t1c-features-pdr}
+ \label{fig:ip4-3n-hsw-x520-64b-1t1c-features-pdr}
+ \end{figure}
+
+.. raw:: latex
+
+ \clearpage
+
+64b-2t2c-features
+-----------------
+
+.. raw:: html
+
+ <center><b>
+
+:index:`Packet Throughput: ip4-3n-hsw-x520-64b-2t2c-features-ndr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/ip4-3n-hsw-x520-64b-2t2c-features-ndr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{ip4-3n-hsw-x520-64b-2t2c-features-ndr}
+ \label{fig:ip4-3n-hsw-x520-64b-2t2c-features-ndr}
+ \end{figure}
+
+.. raw:: html
+
+ <center><b>
+
+.. raw:: latex
+
+ \clearpage
+
+:index:`Packet Throughput: ip4-3n-hsw-x520-64b-2t2c-features-pdr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm08" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/ip4-3n-hsw-x520-64b-2t2c-features-pdr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{ip4-3n-hsw-x520-64b-2t2c-features-pdr}
+ \label{fig:ip4-3n-hsw-x520-64b-2t2c-base_and_scale-features}
+ \end{figure}
+
+.. raw:: latex
+
+ \clearpage
+
+64b-1t1c-features-nat44
+-----------------------
+
+.. raw:: html
+
+ <center><b>
+
+:index:`Packet Throughput: ip4-3n-hsw-x520-64b-1t1c-features-nat44-ndr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm09" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/ip4-3n-hsw-x520-64b-1t1c-features-nat44-ndr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{ip4-3n-hsw-x520-64b-1t1c-features-nat44-ndr}
+ \label{fig:ip4-3n-hsw-x520-64b-1t1c-features-nat44-ndr}
+ \end{figure}
+
+.. raw:: html
+
+ <center><b>
+
+.. raw:: latex
+
+ \clearpage
+
+:index:`Packet Throughput: ip4-3n-hsw-x520-64b-1t1c-features-nat44-pdr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/ip4-3n-hsw-x520-64b-1t1c-features-nat44-pdr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{ip4-3n-hsw-x520-64b-1t1c-features-nat44-pdr}
+ \label{fig:ip4-3n-hsw-x520-64b-1t1c-features-nat44-pdr}
+ \end{figure}
+
+.. raw:: latex
+
+ \clearpage
+
+64b-2t2c-features-nat44
+-----------------------
+
+.. raw:: html
+
+ <center><b>
+
+:index:`Packet Throughput: ip4-3n-hsw-x520-64b-2t2c-features-nat44-ndr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/ip4-3n-hsw-x520-64b-2t2c-features-nat44-ndr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{ip4-3n-hsw-x520-64b-2t2c-features-nat44-ndr}
+ \label{fig:ip4-3n-hsw-x520-64b-2t2c-features-nat44-ndr}
+ \end{figure}
+
+.. raw:: html
+
+ <center><b>
+
+.. raw:: latex
+
+ \clearpage
+
+:index:`Packet Throughput: ip4-3n-hsw-x520-64b-2t2c-features-nat44-pdr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/ip4-3n-hsw-x520-64b-2t2c-features-nat44-pdr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{ip4-3n-hsw-x520-64b-2t2c-features-nat44-pdr}
+ \label{fig:ip4-3n-hsw-x520-64b-2t2c-base_and_scale-features-nat44}
+ \end{figure}
+
+.. raw:: latex
+
+ \clearpage
+
+64b-1t1c-features-iacl
+----------------------
+
+.. raw:: html
+
+ <center><b>
+
+:index:`Packet Throughput: ip4-3n-hsw-x520-64b-1t1c-features-iacl-ndr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm13" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/ip4-3n-hsw-x520-64b-1t1c-features-iacl-ndr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{ip4-3n-hsw-x520-64b-1t1c-features-iacl-ndr}
+ \label{fig:ip4-3n-hsw-x520-64b-1t1c-features-iacl-ndr}
+ \end{figure}
+
+.. raw:: html
+
+ <center><b>
+
+.. raw:: latex
+
+ \clearpage
+
+:index:`Packet Throughput: ip4-3n-hsw-x520-64b-1t1c-features-iacl-pdr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm14" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/ip4-3n-hsw-x520-64b-1t1c-features-iacl-pdr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{ip4-3n-hsw-x520-64b-1t1c-features-iacl-pdr}
+ \label{fig:ip4-3n-hsw-x520-64b-1t1c-features-iacl-pdr}
+ \end{figure}
+
+.. raw:: latex
+
+ \clearpage
+
+64b-2t2c-features-iacl
+----------------------
+
+.. raw:: html
+
+ <center><b>
+
+:index:`Packet Throughput: ip4-3n-hsw-x520-64b-2t2c-features-iacl-ndr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm15" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/ip4-3n-hsw-x520-64b-2t2c-features-iacl-ndr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{ip4-3n-hsw-x520-64b-2t2c-features-iacl-ndr}
+ \label{fig:ip4-3n-hsw-x520-64b-2t2c-features-iacl-ndr}
+ \end{figure}
+
+.. raw:: html
+
+ <center><b>
+
+.. raw:: latex
+
+ \clearpage
+
+:index:`Packet Throughput: ip4-3n-hsw-x520-64b-2t2c-features-iacl-pdr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm16" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/ip4-3n-hsw-x520-64b-2t2c-features-iacl-pdr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{ip4-3n-hsw-x520-64b-2t2c-features-iacl-pdr}
+ \label{fig:ip4-3n-hsw-x520-64b-2t2c-base_and_scale-features-iacl}
+ \end{figure}
+
+.. raw:: latex
+
+ \clearpage
+
+64b-1t1c-features-oacl
+----------------------
+
+.. raw:: html
+
+ <center><b>
+
+:index:`Packet Throughput: ip4-3n-hsw-x520-64b-1t1c-features-oacl-ndr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm17" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/ip4-3n-hsw-x520-64b-1t1c-features-oacl-ndr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{ip4-3n-hsw-x520-64b-1t1c-features-oacl-ndr}
+ \label{fig:ip4-3n-hsw-x520-64b-1t1c-features-oacl-ndr}
+ \end{figure}
+
+.. raw:: html
+
+ <center><b>
+
+.. raw:: latex
+
+ \clearpage
+
+:index:`Packet Throughput: ip4-3n-hsw-x520-64b-1t1c-features-oacl-pdr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm18" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/ip4-3n-hsw-x520-64b-1t1c-features-oacl-pdr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{ip4-3n-hsw-x520-64b-1t1c-features-oacl-pdr}
+ \label{fig:ip4-3n-hsw-x520-64b-1t1c-features-oacl-pdr}
+ \end{figure}
+
+.. raw:: latex
+
+ \clearpage
+
+64b-2t2c-features-oacl
+----------------------
+
+.. raw:: html
+
+ <center><b>
+
+:index:`Packet Throughput: ip4-3n-hsw-x520-64b-2t2c-features-oacl-ndr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm19" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/ip4-3n-hsw-x520-64b-2t2c-features-oacl-ndr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{ip4-3n-hsw-x520-64b-2t2c-features-oacl-ndr}
+ \label{fig:ip4-3n-hsw-x520-64b-2t2c-features-oacl-ndr}
+ \end{figure}
+
+.. raw:: html
+
+ <center><b>
+
+.. raw:: latex
+
+ \clearpage
+
+:index:`Packet Throughput: ip4-3n-hsw-x520-64b-2t2c-features-oacl-pdr`
+
+.. raw:: html
+
+ </b>
+ <iframe id="ifrm20" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/ip4-3n-hsw-x520-64b-2t2c-features-oacl-pdr.html"></iframe>
+ <p><br><br></p>
+ </center>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{ip4-3n-hsw-x520-64b-2t2c-features-oacl-pdr}
+ \label{fig:ip4-3n-hsw-x520-64b-2t2c-base_and_scale-features-oacl}
+ \end{figure}