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 435D9A00C3; Tue, 1 Feb 2022 15:11:32 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2325A411B8; Tue, 1 Feb 2022 15:11:32 +0100 (CET) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id 0BD3840691 for ; Tue, 1 Feb 2022 15:11:29 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1643724690; x=1675260690; h=message-id:date:to:cc:references:from:subject: in-reply-to:content-transfer-encoding:mime-version; bh=M8Obgz4Gb+Q1I+FsbR9nIsPEYwiewW9nsEzYmyL6Fqw=; b=C1m5CoX1DpfKMVBhOhBjovy6Wp9+bsixG3JrkOvSlhcpQCNirUmhQboM e8tsPLIt35w0wSCtd2r9j7kARLqc1ynbIDSdGS5SlwltJ1xcBuvJPORMn bRZwCIw3qUl3xLkHaqWZPPQyR2aDLmd7MPRWzDgpJ4dB0/4fuBNwfqNqg SUbku1fSB7eZYBy0FIe0uzNUQqOh7Hg6vWY5DHz4e+c9VW0UBEWJKBl45 sgH6Xee8g3TIpNwXcsfMruO9w0Ziz0vCmnUP7S5cWJ+s5dz0tlMgfoSVG snmJHtK/SieIEnbQlIlLni1i8pcGgDaCI1d9YOkCvUBT7cOxrfNH8nBF2 w==; X-IronPort-AV: E=McAfee;i="6200,9189,10244"; a="247648649" X-IronPort-AV: E=Sophos;i="5.88,334,1635231600"; d="scan'208";a="247648649" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Feb 2022 06:11:28 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,334,1635231600"; d="scan'208";a="479701280" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga003.jf.intel.com with ESMTP; 01 Feb 2022 06:11:27 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 1 Feb 2022 06:11:27 -0800 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 1 Feb 2022 06:11:26 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Tue, 1 Feb 2022 06:11:26 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.172) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Tue, 1 Feb 2022 06:11:26 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cHglk6ivq9BykUAdHO6GBzrWcwKoI/qTqgBF2/RyiwZNyV9uV0gzGieWEJLiRL33CFrTv7IgStoQsAd2B3XH0effKUCol/lU1444ehtyknlGENSF/nZKWamkRI749PCHzymYEFTuvCH5mdV9JAz/hF43jQjbwprIF1MMHKO7sBglB/bqRmr+HNLAgW7Ljfrz8tNra/6I7P5lZJjFnBjWWQr9aVvgqOj7Vi3xNBoKC4ISIqeBUsuix0vph+f20zYHETpP6XzuHPF3vvn1xdV33BXCSrvOYPN9/FG4lBJUBrcIUFp/bGuBenZ9ZQ5Dftiv/G5razXz6crb15wfhYYTTg== 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=d0gdKK14gtOoFPvjXzX9HtR6Ep6zvVFbelJCwqvncvs=; b=bTL3qlyAJbodAYVjfKoE2BBj7DZxsQy/R/WSt33EEDvsiBBepI/I4hpolat/VCFQFaO8lU0J0CpEYDksG8A4Uh9A/+8/TO0dnAjQmc1euuXqu/4ptxnepZOoEOm5fmASdqQ4uT9/arykD69viKgfr9B5HFuIBgLpzWQUl+n6j9TYPD/UzBsM69PCJjDE3oqdOwi7iq/gt635VVOk6IMLGHTGSb1NtaJEHxYzwAMzixgJgv+W3NdljdTwIZBAIuBUAAtaTEfF29gGbMxrohl6A7pQBx+Z3AIxjZdLMeSC5TMbdH5aYiWmndAyqLMHIvdIhznpkbBdsKFP3cQ8llKFHg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from PH0PR11MB5000.namprd11.prod.outlook.com (2603:10b6:510:41::19) by BL0PR11MB3073.namprd11.prod.outlook.com (2603:10b6:208:7c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4930.15; Tue, 1 Feb 2022 14:11:24 +0000 Received: from PH0PR11MB5000.namprd11.prod.outlook.com ([fe80::5046:8550:928d:850e]) by PH0PR11MB5000.namprd11.prod.outlook.com ([fe80::5046:8550:928d:850e%7]) with mapi id 15.20.4930.022; Tue, 1 Feb 2022 14:11:24 +0000 Message-ID: Date: Tue, 1 Feb 2022 14:11:17 +0000 Content-Language: en-US To: Akhil Goyal , CC: , , , , , , , , References: <20220120162627.4155695-1-gakhil@marvell.com> <20220130175935.1947730-1-gakhil@marvell.com> <20220130175935.1947730-2-gakhil@marvell.com> From: Ferruh Yigit Subject: Re: [PATCH v3 1/4] ethdev: introduce IP reassembly offload X-User: ferruhy In-Reply-To: <20220130175935.1947730-2-gakhil@marvell.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO4P123CA0211.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1a5::18) To PH0PR11MB5000.namprd11.prod.outlook.com (2603:10b6:510:41::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1f8c5f27-915d-4a3f-2ee0-08d9e58cbac6 X-MS-TrafficTypeDiagnostic: BL0PR11MB3073:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pGSp5wxiprhWZ6BccoPIzP6p7csQ8e/rfDHjHUgsMvh78qXiJugqv29onS3oTxHL8wuOwytduuXWXuO9SAlDdaS2quSB6pGXOq6/i8UKnVF1TgPoJI3tl2r6jGGPJJw24PSnj9ZojJ9J612vk0AKJmakaHBBvMwAT6Rw2JfBUJp9v9ZFbPC/N61rWtsdQOyC6ZdOayzW5XIJ86J/Wch0oWsO62DxDEse674UdJlgupHZlOTGx54SWym3sf9fsSp7GoW1VA/Hqjdw3sUZHDHS2vmuagLnmWBs4rfgeqZAredYaDSsxo3b36covajXY4QD31En/6sAfQvoqeVcvKCW24WVtI89Je2glSdsPFmilgiN5YYUKyUO9xRCuFCKaL6wg3eNFBCkjoMfjVo6mQI6PvJQyjsW+8oeC6O7ntFLhJf+ADXx/WzyvAnhxbt+neGemBeMKbbrSpNE4yFd1GO7mPB51iLO+VDT1Ex9FM9f+V2jS3KS7MTKWt9KZCP+WMyiXm2ZGiJPXjiDJcYuJDjbKaKopRemKEYecRvgI+U468q8ghVYsnJ+vB1wZZw0HMDDeT8dgPgRypiGea0deeK7UkKoYMDzbjgz8KlyHx7tK73g37kmuhW3pWZ86eowdUI7ot4RsjDXPhwNHsC11/GcwMWamxM9WENR9P5EKma7s3hGL1jQx+V85EkCWQYWj8tqr6eg5+kR79Gg85KLgjltBuNkwx1OtbRX6X54oTKJ8es= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR11MB5000.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(66946007)(31686004)(6486002)(31696002)(44832011)(2906002)(82960400001)(5660300002)(316002)(36756003)(6512007)(86362001)(38100700002)(8676002)(8936002)(4326008)(186003)(2616005)(6506007)(6666004)(26005)(66476007)(83380400001)(508600001)(53546011)(55236004)(66556008)(21314003)(45980500001)(20210929001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Nm1PQnVVV0VBQjJUejZubVdhMkYyVnY4NWpyK1pCbVQyT2FRNHRRSThXcEpx?= =?utf-8?B?L1I0YnJ0ajd2NEY2eWZTeEpmM3JoZEh3YmFUaVNiQUpBZlZTZ3UyTkhkTGx6?= =?utf-8?B?Uy9YMzFpZUJMK3F6OUhSNHZKc0wyU3Y2QS9ad0k3TWg4Q2pLbTBEdGk5Y0Zr?= =?utf-8?B?ZitEc2dMQzVmS09MNHROdUMvRjRaeE52UUZueTdkalFzV0pCYUc0MjZvZjky?= =?utf-8?B?a0I2VmoxYlVFUi9sdkt5dFpWL2FkM0NCQXN3OTVKdlNYZWl6WEZudVpwOUV1?= =?utf-8?B?TTVrQnBRNFQrSzhUZ0ZoN1FJS0RhRmVETHJXT3JhM1d6RjMrN1RZa2s5QjR4?= =?utf-8?B?VElYTTNmRHFTaFEwRjVQbXZFVlp4S01vdWpmeEtpRkk0RHNtOHRHMmJOSnlK?= =?utf-8?B?bGxrbTdQSmIxZEJpdlBnRE9XckpzUnBFb2FPOVlYbG44SHp4L3l6bUlZUmRa?= =?utf-8?B?czFxTk9kT25Cc1ZuZG5VNk51dTlZaXhnUW9ib3lXQmYzTThzMndTY1RmR1Jt?= =?utf-8?B?dTVkSjNEOUtJcVB4V09NRUdyclE3SlQ0RzBCaUlGNklMejhFWU5oTHh6akds?= =?utf-8?B?ZVV1ckFlMm81c2wrT1pHdytvSFpsN1psQytLbm0zMXlLak9RbVhjTWFuK2xo?= =?utf-8?B?dVJRam1iMWpreXI3MGlJaXFVdkVVYlVWRUFyOFNhcmtLeERxK3piZ053cDZW?= =?utf-8?B?VkdFS2cyOG1rVVZzNnpjK1V0cENzcDFhVHRSb2xvb2FNNzNKVlBhbVl2QkhE?= =?utf-8?B?WkZDaE1adi96di9sVE5FMHVmNEh4NFZFWjZOUnVMR01ZMlk2dlpPOWZ4WTJo?= =?utf-8?B?aUg5M3dlYWRMYWo2ZXc4ZW43VDlSVWhvVW5YL1UyT21jTHFjRlh6TzVYaWlh?= =?utf-8?B?TmNoaHFPUEQzbHFVQnkwTFhoM3lpUVp6TmhBWVZ6TkZDd3ArTkZsajgzb0pw?= =?utf-8?B?aGRFbW9WZjRyOU4wVVJDUVpqcitpZGFKVk9oZ2pFZTNCK3hRa0RqWkREMHdB?= =?utf-8?B?eUxwM2poSlNsajV2TmsrT2t0d2sreU4xcnpYVy9MQzJHWk1GMU96dDR6OUxs?= =?utf-8?B?cVhJVFZmenZRLzdJWlVDOHlLVk0xdnlsMnFIWEdUT3lDQ1ZsOG1jNlZnN1ph?= =?utf-8?B?b1FHK1EwWWxWZEpLdTBHTlJWWTJyRWFJbFhHUzlHSDgxZitTUjU2VmJPZjQ0?= =?utf-8?B?MHBySTZqbnZrYml4T2k3Qy80TWZNRjg3TUp5VWJ6aThsOWJhZUFuSnpuSmhO?= =?utf-8?B?VDB1Z1JBNVBIMXhoN1RCK1BZOTN0YklCaHA0NmhPMTNCUXBwMTB0ZUxpQmhF?= =?utf-8?B?Nzhrb1JIRVlOSXRKSHZpQU55bC9MaCtHUUlHbEhmaUw0K1ZEc01BbGlvMWNU?= =?utf-8?B?SFZrWHRrTjFEKzdVVDlCMXYrbHhvZ3JFNHV6SjZsNXI3THp1T1ZLY1RhbGto?= =?utf-8?B?QSt4U2JoMTcrTXBaMEI2eHdPbW13NTFicXYzNGpnREZhTGlvRFNLMGNBeDhH?= =?utf-8?B?S2QxYk5ZU3lQRmpMY3dNcmtiWW1DVHFuQmFEVTNxQmJpT3I1b3RxMkhWbTlk?= =?utf-8?B?aEs2bjViSzU1UHgveVBiM29oTHBLdUY3UGQxY0l6eUNrYVdVczA0aWV0ZEJJ?= =?utf-8?B?MU5KSFJJZS9NWEYvazBUVkRrT29EYk8rL0NURkxFOGc3RWVMeWE5RG9IZUlB?= =?utf-8?B?aURJbWhaWGhPZzBycVZuTXllcnpyZlFRNlVqZm5iQ1krcktZQWJPNlRkeDA0?= =?utf-8?B?dDJJMkZxMmdyeGpoaGlmcGxTWFd4NU5iaXp4amV4Vm5USzRlMHV6bWtZOVhB?= =?utf-8?B?ejIxeWxPM2FtcXVyVXpTQVZkS2tCZmhJMFRwV1IyUzBVSEZzUWs2YjkzUDNN?= =?utf-8?B?czRjT2NaSmczNG16OFVpUkFXWTMzVnpscnhVSk5xbGltRVh3ODFDaVpDMlZM?= =?utf-8?B?WmRwTDZnTWJrQjhEYVp0RnJLNlJyRnhHR0ovdXpSUHkzRTZ3MEJOU2xxSFo5?= =?utf-8?B?azZLVkRWZmFHczdCVnV2bFI1bjlOSzJMSDhDbWlHcVZIZldDTllTOVQxYytD?= =?utf-8?B?aEhOZzRGSjZsb0MvN3o1b3FIN200TnhzVU5WNkI1enlmMlJRSzJQZmFRNDJh?= =?utf-8?B?OG9HbURLTzhvVXFURnNwdFR6QXZiZk1QMXlDSGgvb0lZSXI4Y25CRGpUYmdl?= =?utf-8?Q?ckS3MK+f08pc1s6LDFWURk8=3D?= X-MS-Exchange-CrossTenant-Network-Message-Id: 1f8c5f27-915d-4a3f-2ee0-08d9e58cbac6 X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5000.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Feb 2022 14:11:24.3711 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: daovd/BoEs83NR+5XyNW4LqhHADIVyKijWATl2wEvpxZ3bGJybyzH0QzPsOfzmlrIJSSTTXDrOdBEy2TnyRrlg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR11MB3073 X-OriginatorOrg: intel.com 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 1/30/2022 5:59 PM, Akhil Goyal wrote: > IP Reassembly is a costly operation if it is done in software. > The operation becomes even more costlier if IP fragments are encrypted. > However, if it is offloaded to HW, it can considerably save application > cycles. > > Hence, a new offload RTE_ETH_RX_OFFLOAD_IP_REASSEMBLY is introduced in > ethdev for devices which can attempt reassembly of packets in hardware. > rte_eth_dev_info is updated with the reassembly capabilities which a device > can support. > > The resulting reassembled packet would be a typical segmented mbuf in > case of success. > > And if reassembly of fragments is failed or is incomplete (if fragments do > not come before the reass_timeout), the mbuf ol_flags can be updated. > This is updated in a subsequent patch. > > Signed-off-by: Akhil Goyal > Acked-by: Konstantin Ananyev > --- > devtools/libabigail.abignore | 5 +++++ > doc/guides/nics/features.rst | 11 +++++++++++ > lib/ethdev/rte_ethdev.c | 1 + > lib/ethdev/rte_ethdev.h | 28 +++++++++++++++++++++++++++- > 4 files changed, 44 insertions(+), 1 deletion(-) > > diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore > index 4b676f317d..90f449c43a 100644 > --- a/devtools/libabigail.abignore > +++ b/devtools/libabigail.abignore > @@ -11,3 +11,8 @@ > ; Ignore generated PMD information strings > [suppress_variable] > name_regexp = _pmd_info$ > + > +; Ignore fields inserted in place of reserved_64s of rte_eth_dev_info > +[suppress_type] > + name = rte_eth_dev_info > + has_data_member_inserted_between = {offset_of(reserved_64s), end} > diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst > index 27be2d2576..b45bce4a78 100644 > --- a/doc/guides/nics/features.rst > +++ b/doc/guides/nics/features.rst > @@ -602,6 +602,17 @@ Supports inner packet L4 checksum. > ``tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM``. > > > +.. _nic_features_ip_reassembly: > + > +IP reassembly > +------------- > + > +Supports IP reassembly in hardware. > + > +* **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:RTE_ETH_RX_OFFLOAD_IP_REASSEMBLY``. > +* **[provides] rte_eth_dev_info**: ``reass_capa``. > + > + > .. _nic_features_shared_rx_queue: > > Shared Rx queue > diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c > index a1d475a292..d9a03f12f9 100644 > --- a/lib/ethdev/rte_ethdev.c > +++ b/lib/ethdev/rte_ethdev.c > @@ -126,6 +126,7 @@ static const struct { > RTE_RX_OFFLOAD_BIT2STR(OUTER_UDP_CKSUM), > RTE_RX_OFFLOAD_BIT2STR(RSS_HASH), > RTE_RX_OFFLOAD_BIT2STR(BUFFER_SPLIT), > + RTE_RX_OFFLOAD_BIT2STR(IP_REASSEMBLY), > }; > > #undef RTE_RX_OFFLOAD_BIT2STR > diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h > index fa299c8ad7..cfaf7a5afc 100644 > --- a/lib/ethdev/rte_ethdev.h > +++ b/lib/ethdev/rte_ethdev.h > @@ -1586,6 +1586,7 @@ struct rte_eth_conf { > #define RTE_ETH_RX_OFFLOAD_RSS_HASH RTE_BIT64(19) > #define DEV_RX_OFFLOAD_RSS_HASH RTE_ETH_RX_OFFLOAD_RSS_HASH > #define RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT RTE_BIT64(20) > +#define RTE_ETH_RX_OFFLOAD_IP_REASSEMBLY RTE_BIT64(21) > > #define RTE_ETH_RX_OFFLOAD_CHECKSUM (RTE_ETH_RX_OFFLOAD_IPV4_CKSUM | \ > RTE_ETH_RX_OFFLOAD_UDP_CKSUM | \ > @@ -1781,6 +1782,29 @@ enum rte_eth_representor_type { > RTE_ETH_REPRESENTOR_PF, /**< representor of Physical Function. */ > }; > > +/* Flag to offload IP reassembly for IPv4 packets. */ > +#define RTE_ETH_DEV_REASSEMBLY_F_IPV4 (RTE_BIT32(0)) > +/* Flag to offload IP reassembly for IPv6 packets. */ > +#define RTE_ETH_DEV_REASSEMBLY_F_IPV6 (RTE_BIT32(1)) > +/** > + * A structure used to get/set IP reassembly configuration. > + * > + * If RTE_ETH_RX_OFFLOAD_IP_REASSEMBLY flag is set in offloads field, > + * the PMD will attempt IP reassembly for the received packets as per > + * properties defined in this structure. > + */ > +struct rte_eth_ip_reass_params { As a generic comment, what do you think to use full 'reassembly' instead of 'reass' short version, to clarify/simplify the meaning? > + /** Maximum time in ms which PMD can wait for other fragments. */ > + uint32_t reass_timeout_ms; > + /** Maximum number of fragments that can be reassembled. */ > + uint16_t max_frags; > + /** > + * Flags to enable reassembly of packet types - > + * RTE_ETH_DEV_REASSEMBLY_F_xxx. > + */ > + uint16_t flags; > +}; > + > /** > * A structure used to retrieve the contextual information of > * an Ethernet device, such as the controlling driver of the > @@ -1841,8 +1865,10 @@ struct rte_eth_dev_info { > * embedded managed interconnect/switch. > */ > struct rte_eth_switch_info switch_info; > + /** IP reassembly offload capabilities that a device can support. */ > + struct rte_eth_ip_reass_params reass_capa; > "struct rte_eth_dev_info" & 'rte_eth_dev_info_get()' are very common, all applications that use net devices and even some internal APIs rely on this struct and API. It makes me uneasy to extend this struct with rarely used features, worrying on loading to much (capability/status/config) on single API/struct can cause an unmaintainable code by time. Also most of the time (if not always) offload flag is just an on/off flag to the PMD, application set/unset offload flag and PMD knows what to do. But for this case some capability variables, and a configuration API is required/involved. For considering above two cases, what do you think implement this as control plane APIs instead of offload flag? There are already 'conf_set()' and 'conf_get()' APIs introduced in coming patches, introducing an additional 'capability_get()' API removes the need of change in "struct rte_eth_dev_info" and 'RTE_ETH_RX_OFFLOAD_IP_REASSEMBLY' can be removed. Thomas, Andrew, what do you think? > - uint64_t reserved_64s[2]; /**< Reserved for future fields */ > + uint64_t reserved_64s[1]; /**< Reserved for future fields */ > void *reserved_ptrs[2]; /**< Reserved for future fields */ > }; >