[spp] [PATCH 13/15] docs: update overview section

ogawa.yasufumi at lab.ntt.co.jp ogawa.yasufumi at lab.ntt.co.jp
Thu Feb 1 05:04:59 CET 2018


From: Yasufumi Ogawa <ogawa.yasufumi at lab.ntt.co.jp>

* Add overview image
* Add reference

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi at lab.ntt.co.jp>
---
 docs/guides/images/spp_overview.svg | 327 ++++++++++++++++++++++++++++++++++++
 docs/guides/overview.rst            |  36 +++-
 2 files changed, 356 insertions(+), 7 deletions(-)
 create mode 100644 docs/guides/images/spp_overview.svg

diff --git a/docs/guides/images/spp_overview.svg b/docs/guides/images/spp_overview.svg
new file mode 100644
index 0000000..b36fac1
--- /dev/null
+++ b/docs/guides/images/spp_overview.svg
@@ -0,0 +1,327 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="150mm"
+   height="118mm"
+   viewBox="0 0 531.49589 418.11005"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="spp_overview.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker4891"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path4893"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) rotate(180) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible;"
+       id="marker4763"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         transform="scale(1.1) rotate(180) translate(1,0)"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         id="path4765" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible;"
+       id="marker4659"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         transform="scale(1.1) rotate(180) translate(1,0)"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         id="path4661" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lend"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path4372"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) rotate(180) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4369"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) translate(1,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.097042"
+     inkscape:cx="277.36996"
+     inkscape:cy="235.26889"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer2"
+     showgrid="false"
+     inkscape:window-width="1034"
+     inkscape:window-height="824"
+     inkscape:window-x="182"
+     inkscape:window-y="5"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-634.25241)">
+    <rect
+       style="opacity:1;fill:#f4ffff;fill-opacity:1;stroke:#000000;stroke-width:1.11988664;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4159"
+       width="483.0025"
+       height="367.29166"
+       x="23.566805"
+       y="651.90833" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="56.523876"
+       y="693.61035"
+       id="text4161"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4163"
+         x="56.523876"
+         y="693.61035">Host</tspan></text>
+    <rect
+       style="opacity:1;fill:#f4ff89;fill-opacity:1;stroke:#000000;stroke-width:0.58693719;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4165"
+       width="66.157944"
+       height="35.21917"
+       x="105.81387"
+       y="982.85632" />
+    <image
+       y="983.11047"
+       x="360.49991"
+       id="image4208"
+       xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD0AAAAkCAYAAAA6uzK6AAAABHNCSVQICAgIfAhkiAAAAJBJREFU aIHtz6ENg0AARuE7wgoNCR5MFdQSWAjJCE3qugoS16SCGUgFCgyCBkRTeWzBifd/E7xnszx1RZUY gnlaTRzd7mFRJebxLH33nOL9Gk3XOhv4DvFB0xSaptA0haYpNE2haQpNU2iaQtMUmqbQNIWmKTRN oWkKTVNomiL8DN9/U/fOd8gZ9u1no8t1OQCtgRcV/QBKnwAAAABJRU5ErkJggg== "
+       style="image-rendering:optimizeSpeed"
+       preserveAspectRatio="none"
+       height="36"
+       width="68.734688" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="113.88774"
+       y="1008.8456"
+       id="text4289"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4291"
+         x="113.88774"
+         y="1008.8456">Port 0</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="369.21759"
+       y="1008.8456"
+       id="text4293"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4295"
+         x="369.21759"
+         y="1008.8456">Port 1</tspan></text>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="Layer 2"
+     style="display:inline"
+     transform="translate(0,-634.25241)">
+    <rect
+       style="opacity:1;fill:#e2ffe0;fill-opacity:1;stroke:#000000;stroke-width:0.90168411;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4301"
+       width="153.50304"
+       height="131.58806"
+       x="69.573288"
+       y="733.93939" />
+    <rect
+       style="opacity:1;fill:#ffcba8;fill-opacity:1;stroke:#000000;stroke-width:1.12799239;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4303"
+       width="82.375381"
+       height="57.882195"
+       x="104.35989"
+       y="772.99127" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="126.47623"
+       y="806.31165"
+       id="text4305"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4307"
+         x="126.47623"
+         y="806.31165">App</tspan></text>
+    <rect
+       style="opacity:1;fill:#f4ff89;fill-opacity:1;stroke:#000000;stroke-width:0.88377476;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4309"
+       width="67.150223"
+       height="33.633224"
+       x="112.10507"
+       y="831.32495" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="122.34349"
+       y="853.87616"
+       id="text4311"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4313"
+         x="122.34349"
+         y="853.87616">Port 3</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="90.91153"
+       y="761.86603"
+       id="text4315"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4317"
+         x="90.91153"
+         y="761.86603">VM</tspan></text>
+    <rect
+       style="opacity:1;fill:#ffcba8;fill-opacity:1;stroke:#000000;stroke-width:1.02233946;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4319"
+       width="325.10693"
+       height="66.082726"
+       x="104.29684"
+       y="917.01666" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="239.51016"
+       y="959.5462"
+       id="text4321"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4323"
+         x="239.51016"
+         y="959.5462">SPP</tspan></text>
+    <rect
+       style="opacity:1;fill:#ffcba8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4325"
+       width="81.214264"
+       height="60.588417"
+       x="248.98969"
+       y="767.37292" />
+    <rect
+       style="opacity:1;fill:#ffcba8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4327"
+       width="77.346916"
+       height="59.299301"
+       x="358.25156"
+       y="768.66199" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="380.11893"
+       y="803.69592"
+       id="text4329"
+       sodipodi:linespacing="125%"
+       inkscape:transform-center-x="116.02033"
+       inkscape:transform-center-y="-86.370686"><tspan
+         sodipodi:role="line"
+         id="tspan4331"
+         x="380.11893"
+         y="803.69592">App</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="272.4115"
+       y="802.98505"
+       id="text4333"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4335"
+         x="272.4115"
+         y="802.98505">App</tspan></text>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
+       d="m 135.98294,1040.1823 0,-172.74142"
+       id="path4341"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4659)"
+       d="m 406.16653,828.63477 2.57823,210.12583"
+       id="path4343"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#marker4763)"
+       d="m 163.16604,865.49646 c 0.52752,36.53651 8.47283,75.20441 56.51561,75.658 49.9114,0.53441 53.19945,-59.7207 52.86945,-110.2966"
+       id="path4867"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4891)"
+       d="m 308.10124,829.94632 c 0.58023,57.38022 8.58713,105.79537 33.72706,104.82734 29.58113,1.23837 33.28459,-44.71668 33.72706,-104.82734"
+       id="path4883"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+  </g>
+</svg>
diff --git a/docs/guides/overview.rst b/docs/guides/overview.rst
index 7650a00..afb46cf 100644
--- a/docs/guides/overview.rst
+++ b/docs/guides/overview.rst
@@ -31,21 +31,43 @@
 Soft Patch Panel
 ==================
 
+Overview
+--------
+
+`Soft Patch Panel
+<http://dpdk.org/browse/apps/spp/>`_
+(SPP) is a DPDK application for providing switching
+functionality for Service Function Chaining in
+NFV (Network Function Virtualization).
+
+.. image:: images/spp_overview.svg
+   :height: 350 em
+   :width: 350 em
+
+With SPP, user is able to configure network easily and dynamically
+via simple patch panel like interface.
+
 The goal of SPP is to easily interconnect DPDK applications together,
 and assign resources dynamically to these applications to build a
 pipeline.
 
-The first version of SPP provides for the management of DPDK ports, and
-assigning ports to different DPDK applications.
+Design
+------
 
-The framework is composed of a primary DPDK application that is
+SPP is composed of a primary DPDK application that is
 responsible for resource management. This primary application doesn't
 interact with any traffic, and is used to manage creation and freeing of
 resources only.
 
-A Python based management interface is provided to control the primary
+A Python based management interface, SPP controller, is provided to
+control the primary
 DPDK application to create resources, which are then to be used by
-secondary applications. This management application provides a socket
+secondary applications.
+This management application provides a socket
 based interface for the primary and secondary DPDK applications to
-interface to the manager. The management application will use OVSDB to
-maintain all created and assigned ports.
+interface to the manager.
+
+Reference
+---------
+
+* [1] `Implementation and Testing of Soft Patch Panel <https://dpdksummit.com/Archive/pdf/2017USA/Implementation%20and%20Testing%20of%20Soft%20Patch%20Panel.pdf>`_
-- 
2.7.4



More information about the spp mailing list