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 0438242C5C; Thu, 8 Jun 2023 13:43:43 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7EBAA406B5; Thu, 8 Jun 2023 13:43:43 +0200 (CEST) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2040.outbound.protection.outlook.com [40.107.236.40]) by mails.dpdk.org (Postfix) with ESMTP id 592A140042 for ; Thu, 8 Jun 2023 13:43:42 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UiypG1q84eojUvYMwcvE4huPFh4ih0zvHH13luoU/IvumAvlACKCcD0doP7Kk02EXh7o0Dy58VWBFnsmFYPVaninzENYpo51//cXqbursVM/IQ13dV+EqJzPRmx+7TnYNghP7zPFGo1gi6JR2SLQEnhXnjPbNETdFc9pEOgOHLBYEdhT2gGGoThb/MnbHjnW99oJzg2gCLYfPvU9M4KslOd/bCSzpNWPUVa5TUlAy68pVR7ZXKhsB70QrWgU1ZWN7ftrJPqRQMOZWkuthrRgAGL0BtmB7dV6gDoO3gMe+8OArCdzStEi/owt0rBm6GsueTV13pSyh6p2ugQv02gIrQ== 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=2QuSEYN49CGv7lQf68tkcNJEA5bGvvk4Acl1a3ocKiY=; b=dwDtDe6aSkH+JAk3G8u4vTLTwBeceAS1JQDb0+PQA7x+uB1lEjjlnvkTH9usFuDz24/bcQZ/Ut54mDOBQ6m5gCit92Wpa70hoGkrhcRbrTb0nrpRwwytldGH41g1ACER2xLK2beu2ujOZ4Ln9Iqc5Jtt1fdHGd6pR+mqTSUFtKQWJ+WKzHfuTT/XF1TGkjJD42DiRbvfzgRzhvBFC2oTqfDZKVuwo40YsQg+J9sijG9xo2yIZKZsYeuFSshI1ra8Ke/UtFTKsbTjMKrD3QMBulwDg+UOzhEP+kZEgy8tXRCXuyqu1XIq9n/T+GHpOwyIDi1vsMjRftw8bApqld755A== 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=2QuSEYN49CGv7lQf68tkcNJEA5bGvvk4Acl1a3ocKiY=; b=Ab3x/rjAxxZL3DjiS0jpYm81j2+bOT7B3Bk8YoNP4iVM8s3vsmYMEDkH1uyTaYl+IvcaqblYXf8i9cIHqUrBbHfei/S74Xg1axCW2yVRI68q5Jmhlfhreq3/gY/Ou6A13PC0pWM4rK97zomh4RlJCVwnu/aukjz55hulbskkWPc= 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 DS0PR12MB7900.namprd12.prod.outlook.com (2603:10b6:8:14e::10) 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 11:43:40 +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 11:43:40 +0000 Message-ID: Date: Thu, 8 Jun 2023 12:42:32 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.11.2 Content-Language: en-US To: Mike Pattrick Cc: Aman Singh , Yuying Zhang , ktraynor@redhat.com, dev@dpdk.org References: <20230606211242.2855795-1-mkp@redhat.com> <20230608095907.557698-1-mkp@redhat.com> <18a33036-d4bc-7500-884f-c9fad506ed3b@amd.com> From: Ferruh Yigit Subject: Re: [PATCH v6] app/testpmd: expand noisy neighbour forward mode support In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: LO4P265CA0133.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2c4::8) To CH2PR12MB4294.namprd12.prod.outlook.com (2603:10b6:610:a9::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB4294:EE_|DS0PR12MB7900:EE_ X-MS-Office365-Filtering-Correlation-Id: 682c3a2b-d4d4-4b6b-e22e-08db68159a67 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MeXGaOjj7FAcjdTKe7qSlGLOEsQmGF6F7IGoj5GnYga+xk6WRSCBeppWtjC6t/UHJS8YBL8rarRMiD6kQp2YPB4a+bqFovlBKfYU7Nrr+rV5o9U1HBus//LOqLkfamffDGWNdp/9vB6VKfhcooTfiL/ZaWhYozj822QiETRtb/A8HnIw13x7X7WYekAnZtu5iaacuFMlvj7l5IX95k3A4bZS13dp11kdF73uzDjq5yMJsOpkBtSX2N+b/s59KveVunOziEiDduTQZfqVfCaH96M3Km8Qp+rvr3Km04kq3Mr2fZTNvUU/ZKxGA/vIvDVgbgD/K8rE6ql/S/u1BCbbbz4sJcPLM6YmghsGA2G2wmFgZYxh1WoNboIQ8UhhM/C0Qkv5D6gMgjG0hREdi7ViWw1AxthA8qDHXXjLIJ9IlQTGiG32bkO/GzSlksk/mj0xM3Xgk/DhFanTVqjHj/SYgsNI1Qtv6Y+vCP9G99xP1y6KHmM+zP6m9iw1zWy1fE9L2Tf0ZstZBMCJWnpOOiUcQSKJ+wvgsECeA7+mBkQuX+dgqILKe3vgqsUJwz/0T+aa0k1xj1iar/Lmm5ta/Udo4QQ0cpFUBp3BQjzgYa2pNZxA5ZYfQIDLiE/dxYjikwWxqU0geqBsJ4m/gHzlb1jEIw== 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)(39860400002)(136003)(346002)(376002)(366004)(396003)(451199021)(6512007)(26005)(6506007)(186003)(53546011)(2616005)(83380400001)(31686004)(6666004)(66556008)(2906002)(66946007)(66476007)(6486002)(8676002)(86362001)(44832011)(38100700002)(5660300002)(36756003)(54906003)(478600001)(41300700001)(4326008)(316002)(31696002)(8936002)(6916009)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QjdBUW0zR0FvQW5XMlJnSzBhcEhDdUNSd2lKYmp1NXBwS2NHWnBaTWhVaW5w?= =?utf-8?B?TFdEK0ROcTZuajRkaGdjWjJvM2pMc1lEbEdzZHF4azFTUXhQbmt1QWJ2b05x?= =?utf-8?B?azRHVjlCTWNSSkwySDJDcmVXY3lWbkRIdUxSRVgzOXJTNU1zOVg4QXAzSFN5?= =?utf-8?B?UkJkUWlmZ3hBbW5td3pPUjY0NThubk5GVGxzQjNsRVBLY1NmS1VCOVlUVnpM?= =?utf-8?B?a1pmM2ZBVm5UMUdqRHVPUDVQL0MrVEx2R0tSdjlTdEQ0VUh4UmlrVCt1UFd2?= =?utf-8?B?OWxrZ1FqNG1DQ2pSZENzVHNDNUhSRG1nS3A5TW93MEZjZ0g5Y0EySmlmN3k5?= =?utf-8?B?eW9TWHVGZmhzRDRJUGRwT0dObnNGeHYrcnEyZGw0dzJrM1RFdVREOUJRQTR5?= =?utf-8?B?MkRWTVgrYmRYTjBrdnhoL0Y0MFlBc1NlbjZQM3lTTzdyajJhQjNIQlRvWEtq?= =?utf-8?B?WWQzaUh3NmhlWU84eWlQQlphdWVWZ1lwTlJNQ1JoZnZlZE5TbDNPK0xNYyt4?= =?utf-8?B?TzJrcExMaEdYdWRsbE5LNEkzUHVpQVZuN3NHcnJ5bVU2ckFnTkpBb21EdUY3?= =?utf-8?B?Q1E3K3NmMUVKS2tKbTB1L2FGUjVnbUlOSGxaNm1FT2F5VFJidzNJWWcxNlRx?= =?utf-8?B?MnJVVDc2aG5NN1kydGFrRFdOa3NUcjE4UTJDOGhjUmNYeHQ5Z1lGL0xDbmhi?= =?utf-8?B?RjNNY2YxYjhockpSTVM0QWxPRmx5Q3RNSUlLcGJwbHF2OWlmelFKdUQrSjFB?= =?utf-8?B?QVI2aG9pUFFyQ2JPaUFrWi9XQnh6RVk3WnlFT2M3NXQweHhwQjE1NFNGOFcw?= =?utf-8?B?NXJKdlYvNG1taE1WYmIwbHRvNXNpdUcxSlZtUDQ2eTVRUmVhRzNmYmtUQmNI?= =?utf-8?B?ZHdja1lueE9NSUJ1WldObE9lMW95TDh0YW9kdFFvY1hDV2VJbDFLRW5WUTR4?= =?utf-8?B?aHRTNENMcmhWZEZZU3pFcmVvWWJWcjQ2eGlvYzFwODc4NDRSeE9GOVFMblJz?= =?utf-8?B?Yk1mZmtUeUpBYUVJSm5jUERqblhZLzJJbERTV2xtYXc3blRkTkNIdFdjOEVi?= =?utf-8?B?MGdmNXdiT08vM1gvaERVRzUwc3RpcExIZnJTWnBUaDFpZTdjSlo3RU9zZVRD?= =?utf-8?B?VXdsZFpVT3ZkUlJRVGtNZkhzM0diaU1tVzFad2xva2lPUVV1OWdPUjA4Yzdp?= =?utf-8?B?c0ViR1RleEFZUlgxUFptMVVnUDM4MDRDSmtpemYycTRSeE1ZWUdNQk1QYXlP?= =?utf-8?B?ZjJMS09NZVovVDY4TTBFeE10ZGFpRzFCNGg0ZnltR3pxTStzMUpNNWlhYmZo?= =?utf-8?B?VW1ScVMveEh5bWEzaXg2K1p5ZSs0ZVZTaFlmVk4vbmhHY3hGR21JbXNKd0h1?= =?utf-8?B?ZGluVFhkWnhCVlZwcjAyTzd5YTVyMXM2MnNtRzQ2ajlaSXJ4cEhyd3RaNlZ5?= =?utf-8?B?K0lOdTVvMU9TaGwwQkgxMlc5LzZtQ1dFaEJ0RW9WV3dBUEFlOXUzY2ltV3Bm?= =?utf-8?B?UlFMcURnbXg0a0hnY1hmMHJRM2FyVkxwM0o1MTRpNDJIOU8walIxNk91WFlh?= =?utf-8?B?d2pzZXM0NjV4MmZSVW1zUFE1T1FVZWZLeEZacE1FMnVUTDRTbjZWT2NHdTBu?= =?utf-8?B?cWw5ZnQyanROSTFkZys2c3NPTVFMQ1JJcDAwV3JYYWNmQWxQcVlsL3A4UWtj?= =?utf-8?B?NVlvVjBUZW51ODhoaCt1VEJ6TUdlNDNtNlByaFhBVUIveEl4eVUzN0daeXJD?= =?utf-8?B?YUd1OGxZaHNHNXFhS1AzYXIwQzltSWxUczVXZzhiemx5SFpmeEEwR2xkL0N4?= =?utf-8?B?VFdLZTZIcU5JNllPV3NPU282R3ZIQ2lsLzFTUVZsZ0NueDVnOWE3b3gyYkVK?= =?utf-8?B?ZHdOSXd6aGlVWmJDWi9obk11U2tCeWtLSnRnVHhlTVBaQzFQb3pBVHkwejhV?= =?utf-8?B?R1pNZWFLZjh0NjI5Wk5UMTd2UE14SmV4MmM3V1BlejNjZ0lEb1NCRlVYMWdo?= =?utf-8?B?bHB0Rk43TUJySndDa1M2THF0WkN1ZGZZR1M2aFdRcXcyek9uVUQyZ0hkV09N?= =?utf-8?B?Zmh1WHZQUFdlazM1NmdsYUsxcHdDNkNwTEoySmtkZEZEelJqcUlNZ2tlSThB?= =?utf-8?Q?7ZagSlCpoRxuF99IqXEzlEUwV?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 682c3a2b-d4d4-4b6b-e22e-08db68159a67 X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB4294.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2023 11:43:39.8743 (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: SRFyGQqZyTenUzrT/BiJrXlvDVrUjTuNSO3taLfPh9GVXrbY70u8niMxpFZeXjSq X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7900 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 11:43 AM, Mike Pattrick wrote: > On Thu, Jun 8, 2023 at 6:25 AM Ferruh Yigit wrote: >> >> 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. > > I worried that this would interfere with set_pkt_forwarding_mode() > among other functions. The .fwd_mode_name seems to play double duty as > view and model. > You are right. > I was also thinking about adding another member to struct fwd_engine > to display subtype / internal status. But I couldn't think of a > compelling use case in the other modules. So I leaned towards this > implementation. > > Which do you prefer? > I think adding a new field is more proper, although I don't expect to have subtype for other forwarding modes, perhaps adding something like "internal status" may be useful later. >> >> <...> >> >>> +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. >> >> >