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 1673945C0D; Wed, 30 Oct 2024 02:56:17 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 058C042FE7; Wed, 30 Oct 2024 02:56:17 +0100 (CET) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2063.outbound.protection.outlook.com [40.107.237.63]) by mails.dpdk.org (Postfix) with ESMTP id E906C42FD7 for ; Wed, 30 Oct 2024 02:56:14 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bDl1zfIzqRHwZEIqouOFmzwdaUycYeB+78HsyXFGRDRl0w6QrLR9U2wL5iaIeypJm+7dprMA5PkvmwVYy/kUd8EpMF3t2hLCdEmLJimS2hp0oXZHqcdcUPoNJVbsGofyAFYeNbubLfzrsdJZq16836x6+hztYMd8CoZ1VB1Cb95dvMpAcmlONsTnNsCwsE9/y1sZIYVMTJXeDnt6toEFxilMkJ7qrz6t9rZmQ7YI256dPFg/RyLeIq1Zsa+XBCWSvxFQvoQmGmbUcJitwlhAO5SFXLxKX74CK9RRSkCIWx8B4XmYRTkiZlK2utqi6EhlBS0vepHMORECgO6My5+noA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=SmCIympruDXe0r0hMllW9VhMGh2W6Wl3mdeNg29cHhM=; b=i4ECNfBMG1mcziU19f9X7J/Hid/BxjOJbBriYmupyJPowqeTgo5KHgcVVQV8RS3WKUqVD0HP2ZtMC2rKYUk9+HQCTGvyJSQGfn4dfy8J+QPpltxYcqlZ2EEffQyALSKGlfJFph55pWEjs8H2Km6zaokSaQlzhlhT79v1UtHj5SVXqAku/QznjUKHRv3pTuI1+UZvtowORRG5/Dqxda0QvZ6DSEEwKFKEv1ktBokNs5qocyYcN5DXetFIsXJuNlIntM+jFgCKzr7C43ePjKExW9mwSglu/43diLFzKy1EFWunWMfub/JnjZXl2YJ/1GB1XQg1EChy+1AhD2ahbdMLTw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SmCIympruDXe0r0hMllW9VhMGh2W6Wl3mdeNg29cHhM=; b=b2k7cKdpE0WTRBxXvEhQaYWf5xzs6ri7SGBZZgypZ50tI7KVBj8vmNYKHgFFMCyY6xCa9UZyTw1ug+iiC1KPEmA4YLWgiNUvmlU0i8ZlOufSAoZkEHUZObWO/wUnh8ACoS7SwxaJ6JjwvJUikgq6LdWYVJKow6nzEfF2ww7nRq0= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from SJ2PR12MB8830.namprd12.prod.outlook.com (2603:10b6:a03:4d0::9) by SA1PR12MB8843.namprd12.prod.outlook.com (2603:10b6:806:379::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.20; Wed, 30 Oct 2024 01:56:12 +0000 Received: from SJ2PR12MB8830.namprd12.prod.outlook.com ([fe80::c3eb:df02:eaa9:2055]) by SJ2PR12MB8830.namprd12.prod.outlook.com ([fe80::c3eb:df02:eaa9:2055%4]) with mapi id 15.20.8093.024; Wed, 30 Oct 2024 01:56:12 +0000 Message-ID: <70ea8bae-a599-481d-86b8-93d002bd2a81@amd.com> Date: Wed, 30 Oct 2024 01:56:04 +0000 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v4 05/86] net/ntnic: add minimal NT flow inline profile To: Serhii Iliushyk , dev@dpdk.org Cc: mko-plv@napatech.com, ckm@napatech.com, andrew.rybchenko@oktetlabs.ru, stephen@networkplumber.org References: <20241021210527.2075431-1-sil-plv@napatech.com> <20241029164243.1648775-1-sil-plv@napatech.com> <20241029164243.1648775-6-sil-plv@napatech.com> Content-Language: en-US From: Ferruh Yigit Autocrypt: addr=ferruh.yigit@amd.com; keydata= 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 8Zk= In-Reply-To: <20241029164243.1648775-6-sil-plv@napatech.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: DB8P191CA0012.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:130::22) To SJ2PR12MB8830.namprd12.prod.outlook.com (2603:10b6:a03:4d0::9) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ2PR12MB8830:EE_|SA1PR12MB8843:EE_ X-MS-Office365-Filtering-Correlation-Id: 04df82c7-effe-4bdc-e3ff-08dcf88607c7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?ODJJUkc5bG5aK3lQcVM4eFhwR1YxM0xFOHJCY2xsLzdGSXNHR2pzK2E4ZGZM?= =?utf-8?B?WDRoNW9ubHVEQUNtM25TU285RDRsYWZZYXBHa0dCVHptNVQ4Vm1Cc3NPc2FI?= =?utf-8?B?MitjNzNsbktsQzlKeGg3SklvNzdDMWpUOEJ6aWZsdEtmejF4ampRVm45dzRn?= =?utf-8?B?Zk1DK1V6OEtzNjBSd2x3WU1kWk1RY1g2SmZGZDNLTjRZSU1NYWxtR1h2NURt?= =?utf-8?B?N29XaDczWlVwZEduSHlUZUVLaXpMTldrN3lSZTVRem9qMWROc3Z1Rldhb3FO?= =?utf-8?B?b0ZKdklHNE5YTE41aDdXTEJvZmxkVDNzcmFaREhzcVhYRGY4eHdIU0pCOUZt?= =?utf-8?B?OU9CemZrcllCR2FnOXRqSndUK2ZFd2JOcUFsRFpSY3FYbUhHaktycFBRek14?= =?utf-8?B?MDM5WjdGZzFJWnpyaXVIZzFaL0N2T2h5ZUtnR1RWSlFyL2R2S3NvV0pML1BI?= =?utf-8?B?RmZYUUgzTmY5dmtzR2lEWk1zSkh5UFJ5dmM4d0NZM3phd2M3YnJSdk9MSjlD?= =?utf-8?B?ZmZJR2tvbU5ON2MvdWVFbXVGdEM3ZG5kQ29kRmQ2VktqOE8vMThxSlJNdUhR?= =?utf-8?B?L1oyQW5DeG5qZVJKYTA5bXRQa0M3KzFxSFlKR3pPa3VmN0QrME5RQ0NYTU5y?= =?utf-8?B?VTh5UzJLZ2Jpb2pneDd1L1VXMy9QM1FxTmZjclVXMzM2SlBVc21ZMlZJdUVt?= =?utf-8?B?cHJ5ek9yNWJoVXZ0ckl5MzNqdm5WbG4yMk1uS0F2QVF5b2x3dCt0c2JBd3Nn?= =?utf-8?B?eHdXbmVrWFNKZHpHamVsTUtyQ2xLejYvSjB0OXdDUGozVWxFYjNuWkdORU16?= =?utf-8?B?ZUU3Vmk4VVlxanQ0V1Ira3BlUTlnc1VDdTFHVEJmdXpRYkRWZk8rdVVBQ0Fv?= =?utf-8?B?VW5ITjFEblVJd0FqTXJuOWJaYnNDQUJHekRYd25Rb0l0RUdOd0pEcVVRUStk?= =?utf-8?B?ZloyeGZsOHlMRXM4VndGQVFrQVhha1B4QWN1aWdRaGRvKzZnV2VJcHdJSHRz?= =?utf-8?B?bEtuOUVJRkxlRm1iampCQmFGRjIwZTVGc0VNcmtrdnVqRXBGUTljd1FQY0lu?= =?utf-8?B?OFdXdHBweXBZUEd4dG5GV3dxL3Z0eTIyS0hOVkdOcldUZ1AzQkIyakRBTHFt?= =?utf-8?B?b3dGbmcvUzhWUFg5dW5Kb0NzbVpMTm9oVDIvUXRNOWFrTEJPTUdrbmF0R2g4?= =?utf-8?B?SURoNmhHUEdFWVE1cUlqOSt2V2FIa3Y5MzRzR2d6Zzh1TXpITm1zSllyTzI1?= =?utf-8?B?b2NOb2dRQ3lJclV5M1o0aGRNaWo1T3NBOEIwSE1sdHNXTTlPdkU2TlpnSVdQ?= =?utf-8?B?bmxGTUY3Q2JGMWFvRFdleElNdUhvSjJ6dXFUUjlFWEI0aVlHRVpjSnpicDNQ?= =?utf-8?B?eDB3bHZ2KzZYcEZQcndSMnAzbkp6UWJUTm5IQXJlWVRLUmw1T3czU3RKVDJT?= =?utf-8?B?eUNENlJKU0hKdE1RYXQxTkJUNkx6enlHRnZxc3lLMXJuL2Y5QnpjVWNKb0JL?= =?utf-8?B?eURXN0tUV0Fac0x3YVR1RHYrOENkSW05NGp2MW5QQVFpRC94RVVlUTdIYnFa?= =?utf-8?B?bVgvTlcvTGYrRk0vYVE5MDdLVUxnWmx0OElybDA5ZlpSOUFRRzVUZGx6TVhQ?= =?utf-8?B?aC9IVmZoK2VOa3NhVTdFRDFtU2lreGhwUW5ySnVBcjVFaHJpblNEMG1xNjNz?= =?utf-8?B?Y1VkaGJFQUcwdko1cXYyR2hDczBIR0RycVlQaXdncnBkcXcwcUhoS0xla2NS?= =?utf-8?Q?2ZUwWp0ZVe3R7qYridUJVr+gsUFtBmYIEkRfBJx?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ2PR12MB8830.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NE5qNGtocmRsVXBvNXNxcXlEVFU2czQ5SWE3SkRlZXNoQjkzMjdjejZyd1VZ?= =?utf-8?B?VkxLbE5YMElOMUNGN3NmekpJV2RoZ29FVk1wYlFRQXMrN3FocUhCWlNoclpm?= =?utf-8?B?eTRqTzQ3T21FS2tiRjdkb3JqZFlvajZnbzNTbklneFFVbGhwTUFVZDc1M1dT?= =?utf-8?B?TXVZUnczZlc2MWlaYUZpNDUzM2FvYmVQVmloZkRVY2cyRTJnOHF3RHBYZ0Fu?= =?utf-8?B?SWs5eEkxTUJFVGM4YnBjTGVqaXU3RDhFY3M3Um5MOEJCT003eEl0V01IOWZP?= =?utf-8?B?alNvbUhEWU8vMWl1M01wMlJnNktCWnFuV3VRbDk1RTZ1TDBjTW93and6RENo?= =?utf-8?B?aVA3eHpCc2MyOFBQVUM4L0xWYS96c0gwR0N0UFBTYzNsR0QwUWFLdkNMTzRX?= =?utf-8?B?R29pblN1bWdHdkpuQmh3TTRkdzNQM2dQT3JjWkVCL1Y1bFFCNUoyR1I5WWl5?= =?utf-8?B?cXVWRDN1Z0twWm1TbzNCWXdqM05La2tVeVdtRnlsR2R4amZCM3pJSmJUWk5L?= =?utf-8?B?NE9FYkdxMklmQzVsUlZKa2dEdi9DMzY1RkthOWRDMllVb29NK3JxUkZsRS9O?= =?utf-8?B?WnVmQ3IwNUE0RGU0RmlxVWFsRVc1TGhvM3ZjSkxaZ3ZkdTlaaVYvRUlCc1Jo?= =?utf-8?B?UFg2K0I1L1FkN29xRkJZNmRJNHBYeGE4RXNSYjVZMndVR3FKNTFhMW85S3l6?= =?utf-8?B?RXpEVUplcTJuYm5RZXNDREdGQko1VW5zUFhBb2txb2t6c1duWldva2pWelJ6?= =?utf-8?B?WVI4azk3aVRJd1dpNnJtRGkvbGl3Q3pjaFhCQ2xydk90M0c4aTU4ZzBqeWVV?= =?utf-8?B?ZVBLQzZBVUdhMzQvdHZwa0dtQ0taQi9mZU9OM1RVUkxqTm9CV1E5VitIK2NT?= =?utf-8?B?MEY1TnhBNWVBS01ucDlsanR5SGZOdmc4NHZrdHFtclQwcUIwRm51VDVZcGhR?= =?utf-8?B?TnowcDJVNU5hM2JjK1VjdE40UTFtS0doR2pPM0ErYWs3czYzWDJNdENDY2xj?= =?utf-8?B?RnZjNXdnbGFWTzErVW16dEpnRmFHMXFDc2F4bllCZTE2a0M2UXR2WXFyQTdm?= =?utf-8?B?cjFOYytPZ1FpNUZTNkZEVFNOTTc1SkNsRzdQTnNWTjZtaGErZlpkWER4QVBu?= =?utf-8?B?SExGQnhDdHMwdytJSUNzZTM3RkhoWStXbm1oVFMwWlZGTG1rQzZ1aGl3cTRX?= =?utf-8?B?Ukd2UzI4YmNxUXJHdUpiUHZ0N1l0eWJhb0FwbHM2dmNrcXppdi9MZ2hMd2Z3?= =?utf-8?B?Tndjamh5ZjhWTnpEbXZiS3NldlJ1R2M4SHlMUGkvVzJQcG5oRi9oNkUrMFRL?= =?utf-8?B?Y0pRV1hIY0ZmYndkcFNwNmtyWVhhelBMbVc0TTZCdGpFTjNoR0JkL3BVRHRF?= =?utf-8?B?cWowU3VoWUdlNVZUOHlsdW0zVXh3V0VaUVhHbmduVzcyV2FkMVBWb1RuT3lp?= =?utf-8?B?WFU2bzA0VWRrUXFvNnY5VFVpRDZoRlp1aFBEd3h5U2d2TG5NUFpKcVNVKzJY?= =?utf-8?B?UFF6UlNuenVPWVVLUmNJQnA1QlFIbC9rSVJLQ0xoRmQvQ2Y5SnJZRk1Wc2c5?= =?utf-8?B?cCtFUCtPbG8zTW80L3dTOE9ad25RcHlWbkxOdUIrcU1HTnFoSXdiMFNwL1ha?= =?utf-8?B?TlQvUkVoVEpYblgrRG5vbUdjbWVFZFM4M2VtVVhNOExMTHg5ekc1Qi9WNDJU?= =?utf-8?B?TWZyS2NpZHZqV0ZTS09mQThibEZvNkVSZFJ0NVEyL3VCTW5vd3ZjektBUisz?= =?utf-8?B?ak40b2xtNmZmYnArYWJNTFNoYW1melAyc3RnNjh5WGFiYTZsTHBQSnczOVN2?= =?utf-8?B?L1g3QThvZGl2QTlvelNvTFVZa0hHVFRVRTBUb3RPWVhSSkNWbVJrN2QzZjdI?= =?utf-8?B?a01hRnh0NzFXd3NVdjZncTRwcC9tQ2k2cXdNZFlRUDl4c05IRnNTTFlvdmIx?= =?utf-8?B?M0NSUDc2SVZ0TlNYa1pDNXczZ0kzdlYwS1o4bzY4aFc0OGRPYTFxRGJ6NWJ1?= =?utf-8?B?eWc0ci9GQmRUaTN1Z0pjZ1ZWeXdmZ1VRMlNQYVdFa0hFVmJpOTZKL1MyWHRW?= =?utf-8?B?WjA4QXU3eUZ6aU5GdWJ2cHdtU3RocEd5cy9WbGxKemhVcnV4ZktUNnV2KzRt?= =?utf-8?Q?qLKwkLz5QNVDwDHzddr+aQ2ne?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 04df82c7-effe-4bdc-e3ff-08dcf88607c7 X-MS-Exchange-CrossTenant-AuthSource: SJ2PR12MB8830.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2024 01:56:12.1874 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 0s3rmExVTCpGKAiiHkOyVIf42bP/yX8phPc3S94ZfbUVX8jxB67y+rHoXm4TWO8r X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8843 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 10/29/2024 4:41 PM, Serhii Iliushyk wrote: > The flow profile implements a all flow related operations > Can you please give some more details about the profiles, and "inline profile" mentioned? > Signed-off-by: Serhii Iliushyk > --- > drivers/net/ntnic/include/flow_api.h | 15 +++++ > drivers/net/ntnic/meson.build | 1 + > drivers/net/ntnic/nthw/flow_api/flow_api.c | 28 +++++++- > .../profile_inline/flow_api_profile_inline.c | 65 +++++++++++++++++++ > .../profile_inline/flow_api_profile_inline.h | 33 ++++++++++ > drivers/net/ntnic/ntnic_mod_reg.c | 12 +++- > drivers/net/ntnic/ntnic_mod_reg.h | 23 +++++++ > 7 files changed, 174 insertions(+), 3 deletions(-) > create mode 100644 drivers/net/ntnic/nthw/flow_api/profile_inline/flow_api_profile_inline.c > create mode 100644 drivers/net/ntnic/nthw/flow_api/profile_inline/flow_api_profile_inline.h > > diff --git a/drivers/net/ntnic/include/flow_api.h b/drivers/net/ntnic/include/flow_api.h > index c80906ec50..3bdfdd4f94 100644 > --- a/drivers/net/ntnic/include/flow_api.h > +++ b/drivers/net/ntnic/include/flow_api.h > @@ -74,6 +74,21 @@ struct flow_nic_dev { > struct flow_nic_dev *next; > }; > > +enum flow_nic_err_msg_e { > + ERR_SUCCESS = 0, > + ERR_FAILED = 1, > + ERR_OUTPUT_TOO_MANY = 3, > + ERR_MATCH_INVALID_OR_UNSUPPORTED_ELEM = 12, > + ERR_MATCH_RESOURCE_EXHAUSTION = 14, > + ERR_ACTION_UNSUPPORTED = 28, > + ERR_REMOVE_FLOW_FAILED = 29, > + ERR_OUTPUT_INVALID = 33, > + ERR_ACTION_MULTIPLE_PORT_ID_UNSUPPORTED = 40, > + ERR_MSG_NO_MSG > +}; > + > +void flow_nic_set_error(enum flow_nic_err_msg_e msg, struct rte_flow_error *error); > + > /* > * Resources > */ > diff --git a/drivers/net/ntnic/meson.build b/drivers/net/ntnic/meson.build > index d272c73c62..f5605e81cb 100644 > --- a/drivers/net/ntnic/meson.build > +++ b/drivers/net/ntnic/meson.build > @@ -47,6 +47,7 @@ sources = files( > 'nthw/core/nthw_sdc.c', > 'nthw/core/nthw_si5340.c', > 'nthw/flow_api/flow_api.c', > + 'nthw/flow_api/profile_inline/flow_api_profile_inline.c', > 'nthw/flow_api/flow_backend/flow_backend.c', > 'nthw/flow_api/flow_filter.c', > 'nthw/flow_api/flow_kcc.c', > diff --git a/drivers/net/ntnic/nthw/flow_api/flow_api.c b/drivers/net/ntnic/nthw/flow_api/flow_api.c > index d779dc481f..d0dad8e8f8 100644 > --- a/drivers/net/ntnic/nthw/flow_api/flow_api.c > +++ b/drivers/net/ntnic/nthw/flow_api/flow_api.c > @@ -36,6 +36,29 @@ const char *dbg_res_descr[] = { > static struct flow_nic_dev *dev_base; > static pthread_mutex_t base_mtx = PTHREAD_MUTEX_INITIALIZER; > > +/* > + * Error handling > + */ > + > +static const struct { > + const char *message; > +} err_msg[] = { > + /* 00 */ { "Operation successfully completed" }, > + /* 01 */ { "Operation failed" }, > + /* 29 */ { "Removing flow failed" }, > +}; > + > +void flow_nic_set_error(enum flow_nic_err_msg_e msg, struct rte_flow_error *error) > +{ > + assert(msg < ERR_MSG_NO_MSG); > + > + if (error) { > + error->message = err_msg[msg].message; > + error->type = (msg == ERR_SUCCESS) ? RTE_FLOW_ERROR_TYPE_NONE : > + RTE_FLOW_ERROR_TYPE_UNSPECIFIED; > + } > +} > + > /* > * Resources > */ > @@ -136,7 +159,8 @@ static struct flow_handle *flow_create(struct flow_eth_dev *dev __rte_unused, > return NULL; > } > > - return NULL; > + return profile_inline_ops->flow_create_profile_inline(dev, attr, > + forced_vlan_vid, caller_id, item, action, error); > } > > static int flow_destroy(struct flow_eth_dev *dev __rte_unused, > @@ -149,7 +173,7 @@ static int flow_destroy(struct flow_eth_dev *dev __rte_unused, > return -1; > } > > - return -1; > + return profile_inline_ops->flow_destroy_profile_inline(dev, flow, error); > } > > /* > diff --git a/drivers/net/ntnic/nthw/flow_api/profile_inline/flow_api_profile_inline.c b/drivers/net/ntnic/nthw/flow_api/profile_inline/flow_api_profile_inline.c > new file mode 100644 > index 0000000000..a6293f5f82 > --- /dev/null > +++ b/drivers/net/ntnic/nthw/flow_api/profile_inline/flow_api_profile_inline.c > @@ -0,0 +1,65 @@ > +/* > + * SPDX-License-Identifier: BSD-3-Clause > + * Copyright(c) 2023 Napatech A/S > + */ > + > +#include "ntlog.h" > + > +#include "flow_api_profile_inline.h" > +#include "ntnic_mod_reg.h" > + > +struct flow_handle *flow_create_profile_inline(struct flow_eth_dev *dev, > + const struct rte_flow_attr *attr, > + uint16_t forced_vlan_vid, > + uint16_t caller_id, > + const struct rte_flow_item elem[], > + const struct rte_flow_action action[], > + struct rte_flow_error *error) > +{ > + return NULL; > +} > + > +int flow_destroy_locked_profile_inline(struct flow_eth_dev *dev, > + struct flow_handle *fh, > + struct rte_flow_error *error) > +{ > + assert(dev); > + assert(fh); > + > + int err = 0; > + > + flow_nic_set_error(ERR_SUCCESS, error); > + > + return err; > +} > + > +int flow_destroy_profile_inline(struct flow_eth_dev *dev, struct flow_handle *flow, > + struct rte_flow_error *error) > +{ > + int err = 0; > + > + flow_nic_set_error(ERR_SUCCESS, error); > + > + if (flow) { > + /* Delete this flow */ > + pthread_mutex_lock(&dev->ndev->mtx); > + err = flow_destroy_locked_profile_inline(dev, flow, error); > + pthread_mutex_unlock(&dev->ndev->mtx); > + } > + > + return err; > +} > + > +static const struct profile_inline_ops ops = { > + /* > + * Flow functionality > + */ > + .flow_destroy_locked_profile_inline = flow_destroy_locked_profile_inline, > + .flow_create_profile_inline = flow_create_profile_inline, > + .flow_destroy_profile_inline = flow_destroy_profile_inline, > +}; > + > +void profile_inline_init(void) > +{ > + register_profile_inline_ops(&ops); > +} > diff --git a/drivers/net/ntnic/nthw/flow_api/profile_inline/flow_api_profile_inline.h b/drivers/net/ntnic/nthw/flow_api/profile_inline/flow_api_profile_inline.h > new file mode 100644 > index 0000000000..a83cc299b4 > --- /dev/null > +++ b/drivers/net/ntnic/nthw/flow_api/profile_inline/flow_api_profile_inline.h > @@ -0,0 +1,33 @@ > +/* > + * SPDX-License-Identifier: BSD-3-Clause > + * Copyright(c) 2023 Napatech A/S > + */ > + > +#ifndef _FLOW_API_PROFILE_INLINE_H_ > +#define _FLOW_API_PROFILE_INLINE_H_ > + > +#include > + > +#include "flow_api.h" > +#include "stream_binary_flow_api.h" > + > +/* > + * Flow functionality > + */ > +int flow_destroy_locked_profile_inline(struct flow_eth_dev *dev, > + struct flow_handle *fh, > + struct rte_flow_error *error); > + > +struct flow_handle *flow_create_profile_inline(struct flow_eth_dev *dev, > + const struct rte_flow_attr *attr, > + uint16_t forced_vlan_vid, > + uint16_t caller_id, > + const struct rte_flow_item elem[], > + const struct rte_flow_action action[], > + struct rte_flow_error *error); > + > +int flow_destroy_profile_inline(struct flow_eth_dev *dev, > + struct flow_handle *flow, > + struct rte_flow_error *error); > + > +#endif /* _FLOW_API_PROFILE_INLINE_H_ */ > diff --git a/drivers/net/ntnic/ntnic_mod_reg.c b/drivers/net/ntnic/ntnic_mod_reg.c > index ad2266116f..593b56bf5b 100644 > --- a/drivers/net/ntnic/ntnic_mod_reg.c > +++ b/drivers/net/ntnic/ntnic_mod_reg.c > @@ -118,9 +118,19 @@ const struct flow_backend_ops *get_flow_backend_ops(void) > return flow_backend_ops; > } > > +static const struct profile_inline_ops *profile_inline_ops; > + > +void register_profile_inline_ops(const struct profile_inline_ops *ops) > +{ > + profile_inline_ops = ops; > +} > + > const struct profile_inline_ops *get_profile_inline_ops(void) > { > - return NULL; > + if (profile_inline_ops == NULL) > + profile_inline_init(); > + > + return profile_inline_ops; > } > > static const struct flow_filter_ops *flow_filter_ops; > diff --git a/drivers/net/ntnic/ntnic_mod_reg.h b/drivers/net/ntnic/ntnic_mod_reg.h > index ec8c1612d1..d133336fad 100644 > --- a/drivers/net/ntnic/ntnic_mod_reg.h > +++ b/drivers/net/ntnic/ntnic_mod_reg.h > @@ -225,7 +225,30 @@ void register_flow_backend_ops(const struct flow_backend_ops *ops); > const struct flow_backend_ops *get_flow_backend_ops(void); > void flow_backend_init(void); > > +struct profile_inline_ops { > + /* > + * Flow functionality > + */ > + int (*flow_destroy_locked_profile_inline)(struct flow_eth_dev *dev, > + struct flow_handle *fh, > + struct rte_flow_error *error); > + > + struct flow_handle *(*flow_create_profile_inline)(struct flow_eth_dev *dev, > + const struct rte_flow_attr *attr, > + uint16_t forced_vlan_vid, > + uint16_t caller_id, > + const struct rte_flow_item elem[], > + const struct rte_flow_action action[], > + struct rte_flow_error *error); > + > + int (*flow_destroy_profile_inline)(struct flow_eth_dev *dev, > + struct flow_handle *flow, > + struct rte_flow_error *error); > +}; > + > +void register_profile_inline_ops(const struct profile_inline_ops *ops); > const struct profile_inline_ops *get_profile_inline_ops(void); > +void profile_inline_init(void); > > struct flow_filter_ops { > int (*flow_filter_init)(nthw_fpga_t *p_fpga, struct flow_nic_dev **p_flow_device,