DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH v1] doc: add inbuilt graph nodes data flow
@ 2023-06-23  7:36 jerinj
  2023-06-26  6:04 ` Yan, Zhirun
  0 siblings, 1 reply; 4+ messages in thread
From: jerinj @ 2023-06-23  7:36 UTC (permalink / raw)
  To: dev, Jerin Jacob, Kiran Kumar K, Nithin Dabilpuram, Zhirun Yan
  Cc: thomas, pbhagavatula

From: Jerin Jacob <jerinj@marvell.com>

Added diagram to depict the data flow between inbuilt
graph nodes.

In order to avoid graphviz package dependency to DPDK
documentation, manual step added to create a svg file
from the dot file. The details for the same is documented
in graph_inbuilt_node_flow.svg as a comment.

Signed-off-by: Jerin Jacob <jerinj@marvell.com>
---
 doc/guides/prog_guide/graph_lib.rst           |  12 +-
 .../img/graph_inbuilt_node_flow.svg           | 210 ++++++++++++++++++
 2 files changed, 220 insertions(+), 2 deletions(-)
 create mode 100644 doc/guides/prog_guide/img/graph_inbuilt_node_flow.svg

diff --git a/doc/guides/prog_guide/graph_lib.rst b/doc/guides/prog_guide/graph_lib.rst
index 307f599627..96af29e8da 100644
--- a/doc/guides/prog_guide/graph_lib.rst
+++ b/doc/guides/prog_guide/graph_lib.rst
@@ -394,8 +394,16 @@ to enable fastpath services.
 Inbuilt Nodes
 -------------
 
-DPDK provides a set of nodes for data processing. The following section
-details the documentation for the same.
+DPDK provides a set of nodes for data processing. The following diagram depicts
+inbuilt nodes data flow.
+
+.. _figure_graph_inbuit_node_flow:
+
+.. figure:: img/graph_inbuilt_node_flow.*
+
+   Inbuilt nodes data flow
+
+Following section details the documentation for individual inbuilt node.
 
 ethdev_rx
 ~~~~~~~~~
diff --git a/doc/guides/prog_guide/img/graph_inbuilt_node_flow.svg b/doc/guides/prog_guide/img/graph_inbuilt_node_flow.svg
new file mode 100644
index 0000000000..02fe768dfe
--- /dev/null
+++ b/doc/guides/prog_guide/img/graph_inbuilt_node_flow.svg
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 8.0.5 (0)
+ -->
+<!-- SPDX-License-Identifier: BSD-3-Clause -->
+<!-- Copyright(C) 2023 Marvell International Ltd. -->
+<!--
+
+Generated with following command
+dot -Tsvg /tmp/dot.dot  -o doc/guides/prog_guide/img/graph_inbuilt_node_flow.svg
+
+cat /tmp/dot.dot
+digraph dpdk_inbuilt_nodes_flow {
+    comment="input nodes"
+    ethdev_rx [color="green"]
+    kernel_rx [color="green"]
+
+    ethdev_tx [color="magenta"]
+    pkt_drop [color="cyan"]
+    kernel_tx [color="blue"]
+    pkt_cls [color="red"]
+
+    ethdev_rx -> pkt_cls
+    kernel_rx -> pkt_cls
+    pkt_cls -> ip4_lookup  [ label="ipv4"]
+    pkt_cls -> ip6_lookup  [ label="ipv6"]
+    pkt_cls -> kernel_tx  [ label="exception pkts"  color="blue"]
+    ip4_lookup -> ip4_rewrite
+    ip4_lookup -> pkt_drop [color="cyan" style="dashed"]
+    ip4_rewrite -> ethdev_tx [color="green"]
+    ip4_rewrite->pkt_drop  [color="cyan" style="dashed"]
+    ip6_lookup -> ip6_rewrite
+    ip6_lookup -> pkt_drop [color="cyan" style="dashed"]
+    ip6_rewrite -> ethdev_tx [color="green"]
+    ip6_rewrite -> pkt_drop  [color="cyan" style="dashed"]
+    ethdev_tx -> pkt_drop [color="cyan" style="dashed"]
+    pkt_cls->pkt_drop   [color="cyan" style="dashed"]
+    kernel_tx -> kernel_rx [color="red" style="dashed"]
+}
+
+ -->
+<!-- input nodes -->
+<!-- Title: dpdk_inbuilt_nodes_flow Pages: 1 -->
+<svg width="470pt" height="425pt"
+ viewBox="0.00 0.00 470.23 424.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 420.5)">
+<title>dpdk_inbuilt_nodes_flow</title>
+<polygon fill="white" stroke="none" points="-4,4 -4,-420.5 466.23,-420.5 466.23,4 -4,4"/>
+<!-- ethdev_rx -->
+<g id="node1" class="node">
+<title>ethdev_rx</title>
+<ellipse fill="none" stroke="green" cx="219.23" cy="-398.5" rx="47.77" ry="18"/>
+<text text-anchor="middle" x="219.23" y="-393.45" font-family="Times,serif" font-size="14.00">ethdev_rx</text>
+</g>
+<!-- pkt_cls -->
+<g id="node6" class="node">
+<title>pkt_cls</title>
+<ellipse fill="none" stroke="red" cx="219.23" cy="-325.5" rx="37.53" ry="18"/>
+<text text-anchor="middle" x="219.23" y="-320.45" font-family="Times,serif" font-size="14.00">pkt_cls</text>
+</g>
+<!-- ethdev_rx&#45;&gt;pkt_cls -->
+<g id="edge1" class="edge">
+<title>ethdev_rx&#45;&gt;pkt_cls</title>
+<path fill="none" stroke="black" d="M219.23,-380.31C219.23,-372.55 219.23,-363.18 219.23,-354.45"/>
+<polygon fill="black" stroke="black" points="222.73,-354.53 219.23,-344.53 215.73,-354.53 222.73,-354.53"/>
+</g>
+<!-- kernel_rx -->
+<g id="node2" class="node">
+<title>kernel_rx</title>
+<ellipse fill="none" stroke="green" cx="46.23" cy="-164" rx="46.23" ry="18"/>
+<text text-anchor="middle" x="46.23" y="-158.95" font-family="Times,serif" font-size="14.00">kernel_rx</text>
+</g>
+<!-- kernel_rx&#45;&gt;pkt_cls -->
+<g id="edge2" class="edge">
+<title>kernel_rx&#45;&gt;pkt_cls</title>
+<path fill="none" stroke="black" d="M41.45,-182.08C37.1,-201.37 33.27,-232.96 47.23,-255 73.68,-296.74 130.21,-313.41 171.26,-320.07"/>
+<polygon fill="black" stroke="black" points="170.73,-323.68 181.13,-321.66 171.74,-316.75 170.73,-323.68"/>
+</g>
+<!-- ethdev_tx -->
+<g id="node3" class="node">
+<title>ethdev_tx</title>
+<ellipse fill="none" stroke="magenta" cx="293.23" cy="-91" rx="47.26" ry="18"/>
+<text text-anchor="middle" x="293.23" y="-85.95" font-family="Times,serif" font-size="14.00">ethdev_tx</text>
+</g>
+<!-- pkt_drop -->
+<g id="node4" class="node">
+<title>pkt_drop</title>
+<ellipse fill="none" stroke="cyan" cx="349.23" cy="-18" rx="44.19" ry="18"/>
+<text text-anchor="middle" x="349.23" y="-12.95" font-family="Times,serif" font-size="14.00">pkt_drop</text>
+</g>
+<!-- ethdev_tx&#45;&gt;pkt_drop -->
+<g id="edge14" class="edge">
+<title>ethdev_tx&#45;&gt;pkt_drop</title>
+<path fill="none" stroke="cyan" stroke-dasharray="5,2" d="M306.22,-73.53C313.15,-64.75 321.81,-53.76 329.55,-43.96"/>
+<polygon fill="cyan" stroke="cyan" points="332.87,-46.4 336.32,-36.38 327.37,-42.06 332.87,-46.4"/>
+</g>
+<!-- kernel_tx -->
+<g id="node5" class="node">
+<title>kernel_tx</title>
+<ellipse fill="none" stroke="blue" cx="102.23" cy="-237" rx="45.72" ry="18"/>
+<text text-anchor="middle" x="102.23" y="-231.95" font-family="Times,serif" font-size="14.00">kernel_tx</text>
+</g>
+<!-- kernel_tx&#45;&gt;kernel_rx -->
+<g id="edge16" class="edge">
+<title>kernel_tx&#45;&gt;kernel_rx</title>
+<path fill="none" stroke="red" stroke-dasharray="5,2" d="M89.25,-219.53C82.32,-210.75 73.65,-199.76 65.92,-189.96"/>
+<polygon fill="red" stroke="red" points="68.09,-188.06 59.15,-182.38 62.6,-192.4 68.09,-188.06"/>
+</g>
+<!-- pkt_cls&#45;&gt;pkt_drop -->
+<g id="edge15" class="edge">
+<title>pkt_cls&#45;&gt;pkt_drop</title>
+<path fill="none" stroke="cyan" stroke-dasharray="5,2" d="M255.09,-319.38C322.68,-308.72 462.23,-281.44 462.23,-238 462.23,-238 462.23,-238 462.23,-90 462.23,-57.84 429.01,-39.68 398.59,-29.8"/>
+<polygon fill="cyan" stroke="cyan" points="400.02,-26.27 389.44,-26.75 398.01,-32.98 400.02,-26.27"/>
+</g>
+<!-- pkt_cls&#45;&gt;kernel_tx -->
+<g id="edge5" class="edge">
+<title>pkt_cls&#45;&gt;kernel_tx</title>
+<path fill="none" stroke="blue" d="M186.99,-315.75C170.62,-310.16 151.14,-301.64 136.48,-289.5 128.23,-282.66 121.2,-273.31 115.7,-264.46"/>
+<polygon fill="blue" stroke="blue" points="118.38,-263.1 110.34,-256.2 112.32,-266.61 118.38,-263.1"/>
+<text text-anchor="middle" x="176.61" y="-276.2" font-family="Times,serif" font-size="14.00">exception pkts</text>
+</g>
+<!-- ip4_lookup -->
+<g id="node7" class="node">
+<title>ip4_lookup</title>
+<ellipse fill="none" stroke="black" cx="219.23" cy="-237" rx="52.89" ry="18"/>
+<text text-anchor="middle" x="219.23" y="-231.95" font-family="Times,serif" font-size="14.00">ip4_lookup</text>
+</g>
+<!-- pkt_cls&#45;&gt;ip4_lookup -->
+<g id="edge3" class="edge">
+<title>pkt_cls&#45;&gt;ip4_lookup</title>
+<path fill="none" stroke="black" d="M219.23,-307.41C219.23,-295.64 219.23,-279.73 219.23,-266.11"/>
+<polygon fill="black" stroke="black" points="222.73,-266.35 219.23,-256.35 215.73,-266.35 222.73,-266.35"/>
+<text text-anchor="middle" x="231.23" y="-276.2" font-family="Times,serif" font-size="14.00">ipv4</text>
+</g>
+<!-- ip6_lookup -->
+<g id="node8" class="node">
+<title>ip6_lookup</title>
+<ellipse fill="none" stroke="black" cx="343.23" cy="-237" rx="52.89" ry="18"/>
+<text text-anchor="middle" x="343.23" y="-231.95" font-family="Times,serif" font-size="14.00">ip6_lookup</text>
+</g>
+<!-- pkt_cls&#45;&gt;ip6_lookup -->
+<g id="edge4" class="edge">
+<title>pkt_cls&#45;&gt;ip6_lookup</title>
+<path fill="none" stroke="black" d="M239.99,-310.02C259.62,-296.33 289.35,-275.59 311.88,-259.87"/>
+<polygon fill="black" stroke="black" points="313.53,-262.29 319.73,-253.7 309.53,-256.55 313.53,-262.29"/>
+<text text-anchor="middle" x="304.23" y="-276.2" font-family="Times,serif" font-size="14.00">ipv6</text>
+</g>
+<!-- ip4_lookup&#45;&gt;pkt_drop -->
+<g id="edge7" class="edge">
+<title>ip4_lookup&#45;&gt;pkt_drop</title>
+<path fill="none" stroke="cyan" stroke-dasharray="5,2" d="M192.86,-221.12C179.2,-211.83 163.82,-198.49 156.23,-182 149.55,-167.46 150.78,-161.04 156.23,-146 176.39,-90.45 198.32,-78.19 252.23,-54 269.14,-46.41 288.24,-39.24 304.98,-33.38"/>
+<polygon fill="cyan" stroke="cyan" points="305.75,-36.48 314.07,-29.92 303.47,-29.86 305.75,-36.48"/>
+</g>
+<!-- ip4_rewrite -->
+<g id="node9" class="node">
+<title>ip4_rewrite</title>
+<ellipse fill="none" stroke="black" cx="218.23" cy="-164" rx="53.4" ry="18"/>
+<text text-anchor="middle" x="218.23" y="-158.95" font-family="Times,serif" font-size="14.00">ip4_rewrite</text>
+</g>
+<!-- ip4_lookup&#45;&gt;ip4_rewrite -->
+<g id="edge6" class="edge">
+<title>ip4_lookup&#45;&gt;ip4_rewrite</title>
+<path fill="none" stroke="black" d="M218.99,-218.81C218.88,-211.05 218.75,-201.68 218.63,-192.95"/>
+<polygon fill="black" stroke="black" points="222.11,-192.98 218.47,-183.03 215.11,-193.08 222.11,-192.98"/>
+</g>
+<!-- ip6_lookup&#45;&gt;pkt_drop -->
+<g id="edge11" class="edge">
+<title>ip6_lookup&#45;&gt;pkt_drop</title>
+<path fill="none" stroke="cyan" stroke-dasharray="5,2" d="M369.2,-221.03C382.65,-211.71 397.78,-198.37 405.23,-182 426.87,-134.45 392.95,-75.95 369.19,-43.54"/>
+<polygon fill="cyan" stroke="cyan" points="371.64,-41.98 362.81,-36.13 366.06,-46.21 371.64,-41.98"/>
+</g>
+<!-- ip6_rewrite -->
+<g id="node10" class="node">
+<title>ip6_rewrite</title>
+<ellipse fill="none" stroke="black" cx="343.23" cy="-164" rx="53.4" ry="18"/>
+<text text-anchor="middle" x="343.23" y="-158.95" font-family="Times,serif" font-size="14.00">ip6_rewrite</text>
+</g>
+<!-- ip6_lookup&#45;&gt;ip6_rewrite -->
+<g id="edge10" class="edge">
+<title>ip6_lookup&#45;&gt;ip6_rewrite</title>
+<path fill="none" stroke="black" d="M343.23,-218.81C343.23,-211.05 343.23,-201.68 343.23,-192.95"/>
+<polygon fill="black" stroke="black" points="346.73,-193.03 343.23,-183.03 339.73,-193.03 346.73,-193.03"/>
+</g>
+<!-- ip4_rewrite&#45;&gt;ethdev_tx -->
+<g id="edge8" class="edge">
+<title>ip4_rewrite&#45;&gt;ethdev_tx</title>
+<path fill="none" stroke="green" d="M235.63,-146.53C245.35,-137.33 257.64,-125.7 268.36,-115.54"/>
+<polygon fill="green" stroke="green" points="270.34,-118.55 275.19,-109.13 265.52,-113.47 270.34,-118.55"/>
+</g>
+<!-- ip4_rewrite&#45;&gt;pkt_drop -->
+<g id="edge9" class="edge">
+<title>ip4_rewrite&#45;&gt;pkt_drop</title>
+<path fill="none" stroke="cyan" stroke-dasharray="5,2" d="M217.56,-145.54C217.71,-125.89 220.78,-93.99 237.23,-73 253.17,-52.67 278.68,-39.55 301.33,-31.33"/>
+<polygon fill="cyan" stroke="cyan" points="302.14,-34.42 310.5,-27.9 299.9,-27.79 302.14,-34.42"/>
+</g>
+<!-- ip6_rewrite&#45;&gt;ethdev_tx -->
+<g id="edge12" class="edge">
+<title>ip6_rewrite&#45;&gt;ethdev_tx</title>
+<path fill="none" stroke="green" d="M331.38,-146.17C325.34,-137.6 317.87,-126.99 311.15,-117.44"/>
+<polygon fill="green" stroke="green" points="313.62,-115.87 305,-109.71 307.89,-119.9 313.62,-115.87"/>
+</g>
+<!-- ip6_rewrite&#45;&gt;pkt_drop -->
+<g id="edge13" class="edge">
+<title>ip6_rewrite&#45;&gt;pkt_drop</title>
+<path fill="none" stroke="cyan" stroke-dasharray="5,2" d="M345.67,-145.53C347.02,-134.98 348.56,-121.24 349.23,-109 350.38,-88.27 350.34,-64.81 350.03,-47.04"/>
+<polygon fill="cyan" stroke="cyan" points="353.51,-47.19 349.8,-37.27 346.51,-47.34 353.51,-47.19"/>
+</g>
+</g>
+</svg>
-- 
2.41.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-07-25  8:35 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-23  7:36 [dpdk-dev] [PATCH v1] doc: add inbuilt graph nodes data flow jerinj
2023-06-26  6:04 ` Yan, Zhirun
2023-07-20  6:34   ` Jerin Jacob
2023-07-25  8:35   ` Thomas Monjalon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).