From: <jerinj@marvell.com>
To: <dev@dpdk.org>, Jerin Jacob <jerinj@marvell.com>,
Kiran Kumar K <kirankumark@marvell.com>,
Nithin Dabilpuram <ndabilpuram@marvell.com>,
Zhirun Yan <zhirun.yan@intel.com>
Cc: <thomas@monjalon.net>, <pbhagavatula@marvell.com>
Subject: [dpdk-dev] [PATCH v1] doc: add inbuilt graph nodes data flow
Date: Fri, 23 Jun 2023 13:06:00 +0530 [thread overview]
Message-ID: <20230623073600.1567086-1-jerinj@marvell.com> (raw)
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->pkt_cls -->
+<g id="edge1" class="edge">
+<title>ethdev_rx->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->pkt_cls -->
+<g id="edge2" class="edge">
+<title>kernel_rx->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->pkt_drop -->
+<g id="edge14" class="edge">
+<title>ethdev_tx->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->kernel_rx -->
+<g id="edge16" class="edge">
+<title>kernel_tx->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->pkt_drop -->
+<g id="edge15" class="edge">
+<title>pkt_cls->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->kernel_tx -->
+<g id="edge5" class="edge">
+<title>pkt_cls->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->ip4_lookup -->
+<g id="edge3" class="edge">
+<title>pkt_cls->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->ip6_lookup -->
+<g id="edge4" class="edge">
+<title>pkt_cls->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->pkt_drop -->
+<g id="edge7" class="edge">
+<title>ip4_lookup->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->ip4_rewrite -->
+<g id="edge6" class="edge">
+<title>ip4_lookup->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->pkt_drop -->
+<g id="edge11" class="edge">
+<title>ip6_lookup->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->ip6_rewrite -->
+<g id="edge10" class="edge">
+<title>ip6_lookup->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->ethdev_tx -->
+<g id="edge8" class="edge">
+<title>ip4_rewrite->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->pkt_drop -->
+<g id="edge9" class="edge">
+<title>ip4_rewrite->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->ethdev_tx -->
+<g id="edge12" class="edge">
+<title>ip6_rewrite->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->pkt_drop -->
+<g id="edge13" class="edge">
+<title>ip6_rewrite->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
next reply other threads:[~2023-06-23 7:36 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-23 7:36 jerinj [this message]
2023-06-26 6:04 ` Yan, Zhirun
2023-07-20 6:34 ` Jerin Jacob
2023-07-25 8:35 ` Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230623073600.1567086-1-jerinj@marvell.com \
--to=jerinj@marvell.com \
--cc=dev@dpdk.org \
--cc=kirankumark@marvell.com \
--cc=ndabilpuram@marvell.com \
--cc=pbhagavatula@marvell.com \
--cc=thomas@monjalon.net \
--cc=zhirun.yan@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).