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 843B142C5C; Thu, 8 Jun 2023 12:25:12 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 16C58406B5; Thu, 8 Jun 2023 12:25:12 +0200 (CEST) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2047.outbound.protection.outlook.com [40.107.244.47]) by mails.dpdk.org (Postfix) with ESMTP id 721E840042 for ; Thu, 8 Jun 2023 12:25:10 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NyoYAfEKrBkTo16xj7FWltZyCh3y0/sykffwKUURqncIF4JwRTazE/8djIKEaMO9C/QUkeXUsNzsMlS7BqIazvaYg4FfBQ84h+nWq/5QtuBUIdVZg5/oP+JC/n/GXglXv+NRZ2yfUbWLJaVnKmzmNy6m9BHgy1YKqF4tQiXzIAorHXLKpfV9zjmk3aeqjvlM8XzfWNR08UhMbKFvOElIPgUc1mujnfLKHap+zLS/W9jla/NfQ24j3QElTicwZTK63VyIuRBN3YSBHE4RY9olLanJGeyEBkMn0P7CkXnLphxk3RYZkxPl7lkXZ2FeWRhQXLxRhQ4oTVcuS76dBqzGHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=FY17SNBlotmSwcheu4D7qJ/tZy2KliEngkH2H7IS+u0=; b=TOdJq57yOcYC+jaDRJxulSPqKlqisdUNU0/rVlufZYjDYHLHCH3NUtnFVqD1awt0caKRTgWi/6mZWaN0g1ge5bmY03x7csTMfdBKw6yPhIJnUqfR19fZnIAU00uecymEX2aibvCTeUr8xcaQtg5KOrREGHhGQRy/Qh7Kc6LhFvZmJBLvT9PlfCxzn8COIjTNlZEneEUH/Kdsr5hH2n6TaDOtwAKf9Xap5mV7Bf7bEU1Xi/9Lo6LujAw60C2ADo88Lk0AjHUtY3XvNU3+GwJba4rDh5pM9txLgkMigCSTWPF6Fm/Tfub7UA0mE9wFZO0JVYKzYRi2JpT8pmQxVo/qYQ== 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=FY17SNBlotmSwcheu4D7qJ/tZy2KliEngkH2H7IS+u0=; b=vSXdepT+ToMVIY0054Jb8tiOaC1LQc/1CCDo7kRZ0BrbNMOHBW5Q62Xp3FZhWS5ZTrLJh5o6u4V9XBm2PnoQVZS69GlmcD3f/dZqiCdfcdpw89VKEU4qqUlKmtBU3hDv4RCOGBLAMk555uwuQwDLmN5xr3ZIoF36+JS+pQcpwgo= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from CH2PR12MB4294.namprd12.prod.outlook.com (2603:10b6:610:a9::11) by CY5PR12MB6597.namprd12.prod.outlook.com (2603:10b6:930:43::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.33; Thu, 8 Jun 2023 10:25:08 +0000 Received: from CH2PR12MB4294.namprd12.prod.outlook.com ([fe80::16e3:326c:5c2a:be42]) by CH2PR12MB4294.namprd12.prod.outlook.com ([fe80::16e3:326c:5c2a:be42%3]) with mapi id 15.20.6455.037; Thu, 8 Jun 2023 10:25:08 +0000 Message-ID: <18a33036-d4bc-7500-884f-c9fad506ed3b@amd.com> Date: Thu, 8 Jun 2023 11:25:02 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.11.2 To: Mike Pattrick , Aman Singh , Yuying Zhang Cc: ktraynor@redhat.com, dev@dpdk.org References: <20230606211242.2855795-1-mkp@redhat.com> <20230608095907.557698-1-mkp@redhat.com> Content-Language: en-US From: Ferruh Yigit Subject: Re: [PATCH v6] app/testpmd: expand noisy neighbour forward mode support In-Reply-To: <20230608095907.557698-1-mkp@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO6P123CA0025.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:313::18) To CH2PR12MB4294.namprd12.prod.outlook.com (2603:10b6:610:a9::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB4294:EE_|CY5PR12MB6597:EE_ X-MS-Office365-Filtering-Correlation-Id: 63083cce-c9cb-48ca-7878-08db680aa1de X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: eDXlPzWj5cz7cO7jefepghLNy7PulrmPgVdH/fcDMO70h0OMf6CcDEjR3GqflCnDlQ3uou0tPN6J2zaiZMpbpIHwSFx7z/e6JTTHAJVJVuYjYiPSdNpPeoglZzuhSZAEjdXE+wKMxax38Lf/3B6GemO9AJ+Ub/ylvqr/RQZN/QUVcZ1bkrVEBVIVB6/DbBs41OfMxOxTsu0RAQ9qhLp6yHWWxQBLuztzIK25IyM84OqVsxFVy+I1P3XMyFLXI66hqyF10trquyC1GQL6npb2Kfjd5YKnIMQxoQxMgwzcw3k92LcuScxDAjyiFuQ+eFfSPq91g2e4ZhHNOl1e512Gjf8OKe0CcW7umbxNBDVXJyEvHj36YGIqVj8VAkTWD4MoaR6iEHQuujqTqp+LbT173xxQyLsJU8sOXROLh0vJ7X7TSNSZMVlaYIQP+uteyXGs6MWLHl8gW/9KInOoB1G0gI8yOC87OpLj7U3WvnaORo6TpPoiPRK2wNnZJ90UzJWnTdzdpalfk4Gyabc5Bo/iLNHlilyBlcyartuiczz2PwjxeuIcyGXFLNgcAEMcsnWHHeRjA+30Dvq5yxNQ4TdoUJoUXhF8vyezkKO1hkRNn/95R5AOwMvmY0TC0fqagF55x3mmkRIUxVzUjMrRWFTIWQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR12MB4294.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(136003)(376002)(366004)(396003)(39860400002)(346002)(451199021)(6506007)(53546011)(26005)(6512007)(31686004)(186003)(2616005)(83380400001)(86362001)(6486002)(36756003)(2906002)(8676002)(8936002)(110136005)(478600001)(6666004)(44832011)(5660300002)(316002)(41300700001)(4326008)(38100700002)(66476007)(31696002)(66946007)(66556008)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dnpnc3pNZWZqSFgvOGtrUzd6dDV3UTBBQkVnMnpNc1VscTJUVTNTUTBjMEd0?= =?utf-8?B?Zzh2OENVNWhSUitxS3o2Mis1Y0hVVzh1RyszcGtET2JGMC9XL29Call5RDBq?= =?utf-8?B?Ky8rVWkyR1hkbHorY0hBbjFDbUkvNkNFVWd3NTN3MWdBanBOREtsMHNaS3FY?= =?utf-8?B?Mmh5VEErcFJNeU5vaEc5ZkdjVS9xRjkxWFNvNy9UbUlzTmk0eUJVVUZnR3or?= =?utf-8?B?S1k2aXlCL2pvanFNc3U4MFNVM3VwMXloN2cxRkptaHczL3Q5d1VpenZma3V5?= =?utf-8?B?MkNUSjRwZUoxdng2SStldFRkTVF3WEhUVlg2TG1YYXBzM2xPTVRSaHNRV0g1?= =?utf-8?B?MmxwSWIwZUg4a2VVRXc2N0JvdzZ2cWJYSU9rb3JhMXpGV21XMDVxTlBMcFln?= =?utf-8?B?RWFBNVhEZHZxUlZMeks3VFNleUtQRUtmTHVnZzhoeXE3UkhUTXE2TmdFTkEy?= =?utf-8?B?RFFXTUhvUGxKeGtETStCSFNkV0ZwVnVPeUt1TGVReDJVVSt5MzBPOTVRVnFn?= =?utf-8?B?dUQrd0lBbEZCd1JXMjNzeEtvZUNYaktsZWVhN0xpSVhtcVlPZlpIemJNMWZM?= =?utf-8?B?K0hYS2RxK2VwOEsxSDl2RUdMRDRxVzluZUMwRVZqSmVEdEg1Sk5KVUR2UVZT?= =?utf-8?B?aWJKQzJqeUpCS1FNSGlidmVMV0k4L0RrMWdQWUtNSzVFQVc3ZGpCUnV0eitJ?= =?utf-8?B?cUg5Z2s2RTF1eXEzMFNORjI0akpYY3R3UWR1WXlsTks3MDM3akxGVzdaN0hW?= =?utf-8?B?aFBNRWRqd3hLOG9pdUI4UDFuMk9QVjUwTlY4VWVwVXhaQXJUVUgybHlrcE0r?= =?utf-8?B?YnJJdkI5Wm9nOHJCTUtocjhwRjhsdXhQUnllYXFoSFZKTS95K0p5M2hIWGR2?= =?utf-8?B?QnpoRGNPQk02WnF2K0FYZGhoaStxaHNGbUQ4ZUhoYlVxa1czOFRsbGZCa3FD?= =?utf-8?B?cEhYd0FsN0c3UVRCdUhzZWhlSnNpN08vUTdaZlI4djc0NWRNRUN4OFhneVN5?= =?utf-8?B?dFZuR1EyeTlMZitYZnB2OHlVTmpYU2dYczViejU5YllOTTduUUtad294Ry9i?= =?utf-8?B?VTR0dy9ucS9pdUdnUWNIcUx3TjVncmVHWlNTNk4wbHJ3alNkQ2I4QmpNOVJu?= =?utf-8?B?bXZMajJwTEJZU1NIdGc3eVByK3RHS1dpQUltQm5DNjNmRkxZY1lZc0pVcVB2?= =?utf-8?B?Z24zeUU5KzNsbWQ3cHJoa0xFdHd6T2N1UHFRVjlzRFB6RnlmcEZrVGlqN0xU?= =?utf-8?B?YzkxMVZxSnBma25KVmgzWGVnUEw3aU15VUNlekdDd1RuSW9HV09tMlpJSzRn?= =?utf-8?B?L1RvWklNbFVGeTJDQmkwVkRPL0tRUGZrcnVaNlhNdVFEV1FCeWswcmhoSWpl?= =?utf-8?B?OTFYaXFGaWNiaHdFQ2N2VEEwd25WUFN0cHhWSHZkajdMSjdtZTFTeXpOOXJH?= =?utf-8?B?VmYvbXRLQW5hVUowT2J2RGdZbE95UnlIejYrS2dLNnBwbkNsRlhjbmV0Vjgy?= =?utf-8?B?L2pDUzZSSUNIVjVRNnNadk95NGhwUjFoUVFkdzF2RUVLR21nUktMdlFJVjNX?= =?utf-8?B?Nkswak1jV1pycEtUOUduVmpTUDNtU0dLNVRuOTluUUhVSXl6Y2s4R3RnVXY5?= =?utf-8?B?NnhRTkk4VitBOEZIbWdOZS9WaTZNa0ZGd1h6ZXdtOFZYdlhtb3hHekt2OU9m?= =?utf-8?B?RUFZWUJKMlJIM3M4d3dVLzJxZ2dWZ1BpNVlwY1hUWDBxMmp5aW9ZOGpEVzFm?= =?utf-8?B?bVlJdEFQRHFiT2dzRjE4emY1OEd1Nlg5bUF2MjVXQkI0MkNTNmVRa3dCVjJU?= =?utf-8?B?dkJSS2taTDgvRTFOL3ZuL21Yd3FibG83eWJ2OVpQWjg4dzR5cFV2ZTlIUGVl?= =?utf-8?B?QUZRWStPNVJJUVZhMG92T3d0ZS9oOHRnQXJQM0dHMCtmLzE5WEgxVWw1TFgx?= =?utf-8?B?OSttQXpUVld6U0xqcWJ0d1ZQZHZ6VE1zYTFiYnFwQ0VBNXlpT2pmYllhT1Fm?= =?utf-8?B?dWZLTHc1aWxRTGJDRDFQMHpMVVdQM002SHdxcXNxTis4RGppbm5VbGFmZ3Y4?= =?utf-8?B?WXJJWHhnZ1RRWkwzRmJzS2x3TkZSN1JIUFF4U2xYVTFoNlUzV0loUEdnZzBj?= =?utf-8?Q?190gp5QR8OE8NCs7T6S0nJ+NP?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 63083cce-c9cb-48ca-7878-08db680aa1de X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB4294.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2023 10:25:07.9874 (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: L0Pl4V+40rNS26U9d0YSAEXkflWB02EQ5iOcD65qcmxnUWf9fAg6e+2EQw0RIW6J X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6597 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 6/8/2023 10:59 AM, Mike Pattrick wrote: > Previously the noisy neighbour vnf simulation would only operate in io > mode, forwarding packets as is. However, this limited the usefulness of > noisy neighbour simulation. > > This feature has now been expanded to supporting mac, macswap, and > 5tswap modes. To facilitate adding this support, some new header files > were added. > > Signed-off-by: Mike Pattrick > --- > v2: Reverted changes to random memory lookup > v3: Refactored entire patch > v4: Implemented recommended formatting changes > v5: Corrected copyright statement and formatting changes > v6: Reordered some variables, preserved noisy subtype for display > --- > app/test-pmd/5tswap.c | 118 +---------------------- > app/test-pmd/5tswap.h | 130 ++++++++++++++++++++++++++ > app/test-pmd/config.c | 18 +++- > app/test-pmd/macfwd.c | 33 +------ > app/test-pmd/macfwd.h | 45 +++++++++ > app/test-pmd/noisy_vnf.c | 106 +++++++++++++++++---- > app/test-pmd/parameters.c | 15 +++ > app/test-pmd/testpmd.c | 14 +++ > app/test-pmd/testpmd.h | 10 ++ > doc/guides/testpmd_app_ug/run_app.rst | 9 ++ > 10 files changed, 334 insertions(+), 164 deletions(-) > create mode 100644 app/test-pmd/5tswap.h > create mode 100644 app/test-pmd/macfwd.h > <...> > diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c > index 096c218c12..a3e2c2ac15 100644 > --- a/app/test-pmd/config.c > +++ b/app/test-pmd/config.c > @@ -4052,9 +4052,16 @@ rxtx_config_display(void) > { > portid_t pid; > queueid_t qid; > + char buf[32]; > + > + if (cur_fwd_eng == &noisy_vnf_engine) > + snprintf(buf, sizeof(buf), " (%s)", noisy_fwd_mode_desc[noisy_fwd_mode]); > + else > + buf[0] = '\0'; > > - printf(" %s packet forwarding%s packets/burst=%d\n", > + printf(" %s%s packet forwarding%s packets/burst=%d\n", > cur_fwd_eng->fwd_mode_name, > + buf, > retry_enabled == 0 ? "" : " with retry", > nb_pkt_per_burst); > > @@ -4816,10 +4823,17 @@ pkt_fwd_config_display(struct fwd_config *cfg) > struct fwd_stream *fs; > lcoreid_t lc_id; > streamid_t sm_id; > + char buf[32]; > + > + if (cfg->fwd_eng == &noisy_vnf_engine) > + snprintf(buf, sizeof(buf), " (%s)", noisy_fwd_mode_desc[noisy_fwd_mode]); > + else > + buf[0] = '\0'; > > - printf("%s packet forwarding%s - ports=%d - cores=%d - streams=%d - " > + printf("%s%s packet forwarding%s - ports=%d - cores=%d - streams=%d - " > "NUMA support %s, MP allocation mode: %s\n", > cfg->fwd_eng->fwd_mode_name, > + buf, > retry_enabled == 0 ? "" : " with retry", > cfg->nb_fwd_ports, cfg->nb_fwd_lcores, cfg->nb_fwd_streams, > numa_support == 1 ? "enabled" : "disabled", This works but I wonder if we can keep the display functions generic (as much as possible), without forwarding enginee specific checks. What about the idea to update '.fwd_mode_name' in 'noisy_fwd_begin()'? That way generic display code can stay as it is. <...> > +static bool > +pkt_burst_mac(struct fwd_stream *fs) > +{ > + struct rte_mbuf *pkts_burst[MAX_PKT_BURST]; > + uint16_t nb_rx; > + uint16_t nb_tx; > + > + nb_rx = common_fwd_stream_receive(fs, pkts_burst, nb_pkt_per_burst); > + if (likely(nb_rx != 0)) > + do_macfwd(pkts_burst, nb_rx, fs); > + nb_tx = noisy_eth_tx_burst(fs, nb_rx, pkts_burst); > + > + return nb_rx > 0 || nb_tx > 0; > +} > +static bool > +pkt_burst_macswap(struct fwd_stream *fs) > +{ > + struct rte_mbuf *pkts_burst[MAX_PKT_BURST]; > + uint16_t nb_rx; > + uint16_t nb_tx; > + > + nb_rx = common_fwd_stream_receive(fs, pkts_burst, nb_pkt_per_burst); > + if (likely(nb_rx != 0)) > + do_macswap(pkts_burst, nb_rx, &ports[fs->tx_port]); > + nb_tx = noisy_eth_tx_burst(fs, nb_rx, pkts_burst); > + > + return nb_rx > 0 || nb_tx > 0; > +} > +static bool > +pkt_burst_5tswap(struct fwd_stream *fs) > +{ > + struct rte_mbuf *pkts_burst[MAX_PKT_BURST]; > + uint16_t nb_rx; > + uint16_t nb_tx; > + > + nb_rx = common_fwd_stream_receive(fs, pkts_burst, nb_pkt_per_burst); > + if (likely(nb_rx != 0)) > + do_5tswap(pkts_burst, nb_rx, fs); > + nb_tx = noisy_eth_tx_burst(fs, nb_rx, pkts_burst); > + > + return nb_rx > 0 || nb_tx > 0; > +} > Empty lines are missing between functions.