From patchwork Thu Oct 19 17:29:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sunil Kumar Kori X-Patchwork-Id: 284 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 88E67431B0; Thu, 19 Oct 2023 19:30:20 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 78F0B40693; Thu, 19 Oct 2023 19:30:20 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 126914021F for ; Thu, 19 Oct 2023 19:30:18 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 39JCcSYX008128 for ; Thu, 19 Oct 2023 10:30:17 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=pfpt0220; bh=CkbBKNTox+g94ViW74damu024v/0FmAKu//n76txGvI=; b=i1p7/UaME1wXF3gEG7MjEZdmUAsP8BBdrPFP4Q5J+S7JNHrhv/xZU0w3qVN7kEHD9CF8 GhsqQkGArEI4TraECEZi6P/RTZgo4FgzOXJmeqmkxMGjfu4+dckl121cwqa+LJD/K+OW kQJkyANEApZ24a+u/t/0neKDNxWS2kiVlk7ejW8BuWdlR9QYLymdw3CXYUpN9JIocKAY s9/lbyXmOqf0e62+Nb85p0q610/F+zRTQYkS7LUOgmD7PmESR4rrq+eaV/sysfGd2h7e bgzsZBaqC5/o7oKw2CP34/Z6JYwgppZlf/TGvdMPxT0jvEiRtXk6usbrtXzLGnPTPYhY DA== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3ttshubs36-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Thu, 19 Oct 2023 10:30:17 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.48; Thu, 19 Oct 2023 10:30:16 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.48 via Frontend Transport; Thu, 19 Oct 2023 10:30:16 -0700 Received: from localhost.localdomain (unknown [10.28.34.25]) by maili.marvell.com (Postfix) with ESMTP id 679675B6961; Thu, 19 Oct 2023 10:30:15 -0700 (PDT) From: To: CC: , Sunil Kumar Kori Subject: [PATCH v11 00/12] add CLI based graph application Date: Thu, 19 Oct 2023 22:59:59 +0530 Message-ID: <20231019173011.1186656-1-skori@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231019105000.520914-13-skori@marvell.com> References: <20231019105000.520914-13-skori@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: CUFGYc9fhM4CcYwFLp-vJC8jallGsXrc X-Proofpoint-ORIG-GUID: CUFGYc9fhM4CcYwFLp-vJC8jallGsXrc X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.980,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-10-19_16,2023-10-19_01,2023-05-22_02 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Sunil Kumar Kori In the continuation of following feedback https://patches.dpdk.org/project/dpdk/patch/20230425131516.3308612-5-vattunuru@marvell.com/ this patch series adds dpdk-graph application to exercise various usecases using graph. 1. Each use case is defined in terms of .cli file which will contain set of commands to configure the system and to create a graph for that use case. 2. Each module like ethdev, mempool, route etc exposes its set of commands to do global and node specific configuration. 3. Command parsing is backed by command line library. Rakesh Kudurumalla (5): app/graph: support mempool command line interfaces app/graph: support IPv6 lookup command line interfaces app/graph: support ethdev Rx command line interfaces app/graph: support graph command line interfaces app/graph: support l3fwd use case Sunil Kumar Kori (7): app/graph: support application CLI framework app/graph: support telnet connectivity framework app/graph: support parser utility APIs app/graph: support ethdev command line interfaces app/graph: support IPv4 lookup command line interfaces app/graph: support neigh command line interfaces app/graph: support CLI option to enable graph stats MAINTAINERS | 7 + app/graph/cli.c | 138 +++ app/graph/cli.h | 32 + app/graph/conn.c | 284 ++++++ app/graph/conn.h | 46 + app/graph/ethdev.c | 890 +++++++++++++++++++ app/graph/ethdev.h | 40 + app/graph/ethdev_priv.h | 112 +++ app/graph/ethdev_rx.c | 165 ++++ app/graph/ethdev_rx.h | 37 + app/graph/ethdev_rx_priv.h | 39 + app/graph/examples/l3fwd.cli | 73 ++ app/graph/examples/l3fwd_pcap.cli | 71 ++ app/graph/graph.c | 550 ++++++++++++ app/graph/graph.h | 21 + app/graph/graph_priv.h | 70 ++ app/graph/ip4_route.c | 224 +++++ app/graph/ip6_route.c | 229 +++++ app/graph/l3fwd.c | 136 +++ app/graph/l3fwd.h | 11 + app/graph/main.c | 237 +++++ app/graph/mempool.c | 140 +++ app/graph/mempool.h | 24 + app/graph/mempool_priv.h | 34 + app/graph/meson.build | 25 + app/graph/module_api.h | 31 + app/graph/neigh.c | 364 ++++++++ app/graph/neigh.h | 17 + app/graph/neigh_priv.h | 49 + app/graph/route.h | 40 + app/graph/route_priv.h | 44 + app/graph/utils.c | 156 ++++ app/graph/utils.h | 14 + app/meson.build | 1 + doc/guides/rel_notes/release_23_11.rst | 7 + doc/guides/tools/graph.rst | 314 +++++++ doc/guides/tools/img/graph-usecase-l3fwd.svg | 210 +++++ doc/guides/tools/index.rst | 1 + 38 files changed, 4883 insertions(+) create mode 100644 app/graph/cli.c create mode 100644 app/graph/cli.h create mode 100644 app/graph/conn.c create mode 100644 app/graph/conn.h create mode 100644 app/graph/ethdev.c create mode 100644 app/graph/ethdev.h create mode 100644 app/graph/ethdev_priv.h create mode 100644 app/graph/ethdev_rx.c create mode 100644 app/graph/ethdev_rx.h create mode 100644 app/graph/ethdev_rx_priv.h create mode 100644 app/graph/examples/l3fwd.cli create mode 100644 app/graph/examples/l3fwd_pcap.cli create mode 100644 app/graph/graph.c create mode 100644 app/graph/graph.h create mode 100644 app/graph/graph_priv.h create mode 100644 app/graph/ip4_route.c create mode 100644 app/graph/ip6_route.c create mode 100644 app/graph/l3fwd.c create mode 100644 app/graph/l3fwd.h create mode 100644 app/graph/main.c create mode 100644 app/graph/mempool.c create mode 100644 app/graph/mempool.h create mode 100644 app/graph/mempool_priv.h create mode 100644 app/graph/meson.build create mode 100644 app/graph/module_api.h create mode 100644 app/graph/neigh.c create mode 100644 app/graph/neigh.h create mode 100644 app/graph/neigh_priv.h create mode 100644 app/graph/route.h create mode 100644 app/graph/route_priv.h create mode 100644 app/graph/utils.c create mode 100644 app/graph/utils.h create mode 100644 doc/guides/tools/graph.rst create mode 100644 doc/guides/tools/img/graph-usecase-l3fwd.svg