From patchwork Thu Oct 19 10:49:48 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: 281 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 79E70431A9; Thu, 19 Oct 2023 12:50:10 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5297340279; Thu, 19 Oct 2023 12:50:10 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id EDF624021F for ; Thu, 19 Oct 2023 12:50:07 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 39J8fBd3027248 for ; Thu, 19 Oct 2023 03:50:07 -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=MlHZqwPJYljGBipoMoiTscVyDOYgjjDg4R9izifuyh0=; b=dSnOVoA9StmsVWo+dFOjFGGM1qkO488eanWCyrQUGjp6PsbKrxU6XzePzXtH2gq1WTEZ 2sBu5fZQoB00VGLHTmuHjWptt3E1bJ7hicQ91wS2H5yQ2IWum3MuLV6/qfHT4sOkeulP uCTtGNQjwW6Ltof8Rc6qIaiWe1LNT8IR9MfzEhBKvQUsep6P3hbvXEjV0s/cFD0whi2Q 6E8Y2NpRoTBqBhlVylFTFsUTUbgSpNqzRugzHzzSO+1PVy8jK/Gbw8w5VVFETokC3fWD jWFYuU7z638R8PjcPheqXVtsY6iRi6I5XdN9SbNHPGsoM/VIp1CEkWsAzncAeplB/HNb ow== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3tstb41v4b-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Thu, 19 Oct 2023 03:50:06 -0700 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.48; Thu, 19 Oct 2023 03:50:05 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.48 via Frontend Transport; Thu, 19 Oct 2023 03:50:05 -0700 Received: from localhost.localdomain (unknown [10.28.34.25]) by maili.marvell.com (Postfix) with ESMTP id 5E8FD5B6959; Thu, 19 Oct 2023 03:50:04 -0700 (PDT) From: To: CC: , Sunil Kumar Kori Subject: [PATCH v10 00/12] add CLI based graph application Date: Thu, 19 Oct 2023 16:19:48 +0530 Message-ID: <20231019105000.520914-1-skori@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231018063347.68081-13-skori@marvell.com> References: <20231018063347.68081-13-skori@marvell.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: ggSra8yTKhY4GVplp804_0lEn7DsDHbh X-Proofpoint-GUID: ggSra8yTKhY4GVplp804_0lEn7DsDHbh 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_08,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 | 885 +++++++++++++++++++ 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 | 334 +++++++ doc/guides/tools/img/graph-usecase-l3fwd.svg | 210 +++++ doc/guides/tools/index.rst | 1 + 38 files changed, 4898 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