From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5DDE145B45; Wed, 16 Oct 2024 12:00:45 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0CF9C40144; Wed, 16 Oct 2024 12:00:45 +0200 (CEST) Received: from mail-qt1-f178.google.com (mail-qt1-f178.google.com [209.85.160.178]) by mails.dpdk.org (Postfix) with ESMTP id 37874400D6 for ; Wed, 16 Oct 2024 12:00:43 +0200 (CEST) Received: by mail-qt1-f178.google.com with SMTP id d75a77b69052e-460464090d5so60192731cf.2 for ; Wed, 16 Oct 2024 03:00:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1729072842; x=1729677642; darn=dpdk.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=ZhXID7ImWLGzZokjgnRBNZpxT6pYhyMPpXyMnVFeHrc=; b=C4KaM/F+L6BmdBPjhhnEuKQQrq0BBU0ANLpEoRMSX2knhHPNgXN0aRDj9wP0so7Heo BW3CVHSuRhXRLU3uEu4mY0RFL5LII5Y8ErUoPA6NJbuSzhWFlE+V+6oEqq+EDC/sdr5n p1W12ECecp6G4unfpRfFrVGSL41PCnwO6TCxhl01G8nQiklZGUzfT8lPEIZXglgzOUQ0 G63ZmtHGO+AfXJU69YBUZXmvxXIlOhFdpILE49UxyUiXskxq5sCV83WNhvNpeYc0VOZo bAijt2gp7SkBAMQw+FffQUUMjsWCpNgN9oazGJznJZAzIRxhY3qFYj5gkZTkPGbVia4t q2jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729072842; x=1729677642; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZhXID7ImWLGzZokjgnRBNZpxT6pYhyMPpXyMnVFeHrc=; b=vXUi8+DBYaKLbah78rst+16kvm0c7uMA/LysjkGf/D5RRpyfpva0j8CM66ZSXsU5Vh j6bpefZ/gSGDvW5mi1khq9BulCOcclrH/1loUmuI1sM5CbCJIsMPbMpKCmeLohOkSwgG GhIyiF1H0t7X6LNDFE43kwq9hb74SSnHjWsBbJYK/6C/TkDVpXkXGakcVrnd8JipKxwH B/JZsxXpBctQAT3TsesIVpgpYWIhJSB7hAOVCrc/6y1nQnbrTrzjWiTksNspzoMxE7zr gvJWCWS8XuL+s2nxHZR+NNidB4yG60AyvGPtAXFCh9LQmAoT2P0AmJ4l+/0s9239Du58 wMPQ== X-Forwarded-Encrypted: i=1; AJvYcCXxIziWTIc+cWTZCS8dv8mQmM+AlDmeU9lUTNUoZ8NjGhfA+4F+LJAXItx6tGMrQgvZoXE=@dpdk.org X-Gm-Message-State: AOJu0YzC5kOA7SqMYRJfK/dGkZKMY2eiQXGjpz78xuaEaOmo1XDggMEc j/n6oo1ytlHicR//DHIqNecXAptgTFMnyFx5TQHIPnPYqj1S3mIWBdsYUEX/m5hjcIAkqJ+AMka YKkHvPCNPUuyqO7L+K9eAvYvebUc= X-Google-Smtp-Source: AGHT+IHu2AfGmxyvmd4NkUvuERKnk5nQpjyFHBzEPFaNz0iODQvELnByLpzZcTOQKQf28ANIsE1EEWPj3TNXv2fZQK8= X-Received: by 2002:ac8:5dd3:0:b0:460:902a:698c with SMTP id d75a77b69052e-460902a6c40mr17507881cf.20.1729072842193; Wed, 16 Oct 2024 03:00:42 -0700 (PDT) MIME-Version: 1.0 References: <20240907070503.1529918-1-nsaxena@marvell.com> <20240907070503.1529918-2-nsaxena@marvell.com> In-Reply-To: <20240907070503.1529918-2-nsaxena@marvell.com> From: Jerin Jacob Date: Wed, 16 Oct 2024 15:30:15 +0530 Message-ID: Subject: Re: [RFC PATCH 1/3] graph: add feature arc support To: Nitin Saxena Cc: Jerin Jacob , Kiran Kumar K , Nithin Dabilpuram , Zhirun Yan , dev@dpdk.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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 On Sat, Sep 7, 2024 at 1:07=E2=80=AFPM Nitin Saxena w= rote: > > add feature arc to allow dynamic steering of packets across graph nodes > based on protocol features enabled on incoming or outgoing interface > > Signed-off-by: Nitin Saxena > --- > lib/graph/graph_feature_arc.c | 959 +++++++++++++++++++++++ > lib/graph/meson.build | 2 + > lib/graph/rte_graph_feature_arc.h | 373 +++++++++ > lib/graph/rte_graph_feature_arc_worker.h | 548 +++++++++++++ > lib/graph/version.map | 17 + > 5 files changed, 1899 insertions(+) > create mode 100644 lib/graph/graph_feature_arc.c > create mode 100644 lib/graph/rte_graph_feature_arc.h > create mode 100644 lib/graph/rte_graph_feature_arc_worker.h Missed adding these new files in doc/api/doxy-api-index.md > > diff --git a/lib/graph/graph_feature_arc.c b/lib/graph/graph_feature_arc.= c > new file mode 100644 > index 0000000000..3b05bac137 > --- /dev/null > +++ b/lib/graph/graph_feature_arc.c > @@ -0,0 +1,959 @@ > +/* SPDX-License-Identifier: BSD-3-Clause > + * Copyright(C) 2024 Marvell International Ltd. > + */ > + > +#include "graph_private.h" Internal header files, move after public header files. > +#include > +#include > + > +#define __RTE_GRAPH_FEATURE_ARC_MAX 32 Internal symbols may not need __RTE_... > + > +#define ARC_PASSIVE_LIST(arc) (arc->active_feature_list ^ 0x1) > + > +#define rte_graph_uint_cast(x) ((unsigned int)x) Internal symbols may not need rte_ > +#define feat_dbg graph_err > + > +rte_graph_feature_arc_main_t *__feature_arc_main; No global variables, please. It will break the multiprocess. use memzone_lookup() scheme instead. > + > +/* Make sure fast path cache line is compact */ > +_Static_assert((offsetof(struct rte_graph_feature_arc, slow_path_variabl= es) > + - offsetof(struct rte_graph_feature_arc, fast_path_variab= les)) > + <=3D RTE_CACHE_LINE_SIZE); use static_assert or RTE_BUILD_BUG_ON from rte_common.h > + > diff --git a/lib/graph/meson.build b/lib/graph/meson.build > index 0cb15442ab..d916176fb7 100644 > --- a/lib/graph/meson.build > +++ b/lib/graph/meson.build > @@ -14,11 +14,13 @@ sources =3D files( > 'graph_debug.c', > 'graph_stats.c', > 'graph_populate.c', > + 'graph_feature_arc.c', > 'graph_pcap.c', > 'rte_graph_worker.c', > 'rte_graph_model_mcore_dispatch.c', > ) > headers =3D files('rte_graph.h', 'rte_graph_worker.h') > +headers +=3D files('rte_graph_feature_arc.h', 'rte_graph_feature_arc_wor= ker.h') > indirect_headers +=3D files( > 'rte_graph_model_mcore_dispatch.h', > 'rte_graph_model_rtc.h', > diff --git a/lib/graph/rte_graph_feature_arc.h b/lib/graph/rte_graph_feat= ure_arc.h > new file mode 100644 > index 0000000000..e3bf4eb73d > --- /dev/null > +++ b/lib/graph/rte_graph_feature_arc.h > @@ -0,0 +1,373 @@ > +/* SPDX-License-Identifier: BSD-3-Clause > + * Copyright(C) 2024 Marvell International Ltd. > + */ > + > +#ifndef _RTE_GRAPH_FEATURE_ARC_H_ > +#define _RTE_GRAPH_FEATURE_ARC_H_ > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +#include > +#include > +#include > +#include > +#include > + > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/** > + * @file > + * > + * rte_graph_feature_arc.h Not yet reviewed the full API spec, will do a bit later.