From patchwork Tue Sep 26 10:57:30 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: 187 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 03FE542642; Tue, 26 Sep 2023 12:57:51 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 89F65402AA; Tue, 26 Sep 2023 12:57:51 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id DE76F40269 for ; Tue, 26 Sep 2023 12:57:49 +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 38QAIp4j025962 for ; Tue, 26 Sep 2023 03:57:49 -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=xkNgLULqbMRwd1/yBBvBhBZje7WvDpqVNqBfZ+PWNkE=; b=fPlb4PuaT7mGRkU6iriJYAsnhthiZyvFSvdeDCcLg+l7myys7vmrb9r6c8lP5dD7s5eD Ew1JXTO6cRn5E74JOkexTJAq6EeJ2BXjpByBZc7eRJBIJgPaLsli2SrMTzMvzUSg+8QU BRGes1CPcyJqxGzAe2U6sALYNjgIFR5UIlpIG1H1zvW8mQRA/TRzkjZDGLeJft8F0/X+ NI4sJaGdq5wXqqw0b1yMLSgVbtWwmCldGuu5BQHdSvXRAHXDbqriu9E89si4QqubxrCI OTRoEmDyas8gg79BUUvTuzDPjSEWaEGoluk5z6bHsXlinjwn+30t7vW1Uu19sBB+gMug dg== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3t9yhm0kfj-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Tue, 26 Sep 2023 03:57:49 -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; Tue, 26 Sep 2023 03:57:46 -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; Tue, 26 Sep 2023 03:57:46 -0700 Received: from localhost.localdomain (unknown [10.28.34.25]) by maili.marvell.com (Postfix) with ESMTP id D73F23F70A6; Tue, 26 Sep 2023 03:57:45 -0700 (PDT) From: To: CC: , Sunil Kumar Kori Subject: [PATCH v6 00/12] add CLI based graph application Date: Tue, 26 Sep 2023 16:27:30 +0530 Message-ID: <20230926105742.2638594-1-skori@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230921100832.2036256-13-skori@marvell.com> References: <20230921100832.2036256-13-skori@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: g2NeA2hcfFqYyCfGuJdoMmPswo_uXGsw X-Proofpoint-ORIG-GUID: g2NeA2hcfFqYyCfGuJdoMmPswo_uXGsw X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.980,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-09-26_07,2023-09-25_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: add mempool command line interfaces app/graph: add ipv6_lookup command line interfaces app/graph: add ethdev_rx command line interfaces app/graph: add graph command line interfaces app/graph: add l3fwd use case Sunil Kumar Kori (7): app/graph: add application framework to read CLI app/graph: add telnet connectivity framework app/graph: add parser utility APIs app/graph: add ethdev command line interfaces app/graph: add ipv4_lookup command line interfaces app/graph: add neigh command line interfaces app/graph: add CLI option to enable graph stats MAINTAINERS | 7 + app/graph/cli.c | 136 +++ app/graph/cli.h | 32 + app/graph/conn.c | 282 ++++++ 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 | 87 ++ app/graph/graph.c | 536 +++++++++++ app/graph/graph.h | 20 + app/graph/graph_priv.h | 70 ++ app/graph/ip4_route.c | 205 +++++ app/graph/ip6_route.c | 210 +++++ 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 | 24 + app/graph/module_api.h | 31 + app/graph/neigh.c | 331 +++++++ 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/tools/graph.rst | 241 +++++ doc/guides/tools/img/graph-usecase-l3fwd.svg | 210 +++++ doc/guides/tools/index.rst | 1 + 36 files changed, 4650 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/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