From patchwork Thu Dec 8 08:05:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "lihuisong (C)" X-Patchwork-Id: 120572 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 23506A00C2; Thu, 8 Dec 2022 09:05:40 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3D78C4161A; Thu, 8 Dec 2022 09:05:36 +0100 (CET) Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by mails.dpdk.org (Postfix) with ESMTP id 7193040E28 for ; Thu, 8 Dec 2022 09:05:34 +0100 (CET) Received: from kwepemm600004.china.huawei.com (unknown [172.30.72.54]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4NSRWr6gFYzmW5s for ; Thu, 8 Dec 2022 16:04:40 +0800 (CST) Received: from localhost.localdomain (10.69.192.56) by kwepemm600004.china.huawei.com (7.193.23.242) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Thu, 8 Dec 2022 16:05:31 +0800 From: Huisong Li To: CC: , , , , Subject: [PATCH 0/8] fix possible data truncation and conversion error Date: Thu, 8 Dec 2022 16:05:32 +0800 Message-ID: <20221208080540.62913-1-lihuisong@huawei.com> X-Mailer: git-send-email 2.33.0 MIME-Version: 1.0 X-Originating-IP: [10.69.192.56] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To kwepemm600004.china.huawei.com (7.193.23.242) X-CFilter-Loop: Reflected 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 Some lib telemetry interfaces add the 'u32' and 'u64' data by the rte_tel_data_add_dict/array_int API. This may cause data conversion error or data truncation. The 'u32' data can not be assigned to signed 32-bit integer. However, assigning to u64 is very wasteful, after all, the buffer capacity of each transfer is limited. So it is necessary for 'u32' data to add usigned 32-bit integer type and a series of 'u32' operation APIs. And this patchset use the new 'u32' API to resolve the problem of data conversion error, and use the 'u64' API to add 'u64' data. Also, this patchset optimize the display of some capability related variables in ethdev by using hexadecimal data. Huisong Li (8): telemetry: move to header to controllable range telemetry: add u32 telemetry data type API test: add test cases for u32 telemetry data API ethdev: fix possible data truncation and conversion error mempool: fix possible data truncation and conversion error cryptodev: fix possible data conversion error mem: possible data truncation and conversion error ethdev: telemetry convert capability related variable to hex app/test/test_telemetry_data.c | 86 +++++++++++++++++++++++++++++- app/test/test_telemetry_json.c | 23 +++++++- lib/cryptodev/rte_cryptodev.c | 2 +- lib/eal/common/eal_common_memory.c | 14 ++--- lib/ethdev/rte_ethdev.c | 26 +++++---- lib/mempool/rte_mempool.c | 24 ++++----- lib/telemetry/rte_telemetry.h | 40 ++++++++++++-- lib/telemetry/telemetry.c | 25 ++++++++- lib/telemetry/telemetry_data.c | 52 ++++++++++++++---- lib/telemetry/telemetry_data.h | 2 + lib/telemetry/telemetry_json.h | 29 ++++++++++ lib/telemetry/version.map | 9 ++++ 12 files changed, 285 insertions(+), 47 deletions(-)