From patchwork Thu Feb 13 11:00:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Seiderer X-Patchwork-Id: 864978 Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8484A214238; Thu, 13 Feb 2025 11:00:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.17.22 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739444440; cv=none; b=ehvYxtoZvoTrJIfx4dORUdrEwH9lfZN0kOPU7bx0KNUQBwqUqcDX1MHo+c01eLiP/AYLwBGNX5e6gyU3ho36fIeMcq4Nx+j06IqJsw+yM5XY0v6Wn60LuBba00IuYqfbc6oKNe5MTU0udmzYbzq2bX2GpWYAONDLPzwAbOU8M6E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739444440; c=relaxed/simple; bh=NFumM+nkeTzxl6RxAwljlRDkX4GxZMjLy9i+2b9B9Sk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=l12Q72sW/SXwf/R+uEOPiO0cT34U4Lstjy9XHpeZZ4aFOnEPczi6zC+sdkqT2UkVD+fSdnJiuVLfWzSnTIUa+TbYx8etZS/Bi62OlIyHqXloJn707DXuyd8sD4dbTP6feUUc9p57Aq0NoNOqpgDXFMB3NnUQ9HjH9LYs4d3rcyY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net; spf=pass smtp.mailfrom=gmx.net; dkim=pass (2048-bit key) header.d=gmx.net header.i=ps.report@gmx.net header.b=hlq93+a9; arc=none smtp.client-ip=212.227.17.22 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.net header.i=ps.report@gmx.net header.b="hlq93+a9" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1739444433; x=1740049233; i=ps.report@gmx.net; bh=NFumM+nkeTzxl6RxAwljlRDkX4GxZMjLy9i+2b9B9Sk=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=hlq93+a9n6fJmDplz9E5dVtuQvaYBPWKBAwJeMxV1ExrNY7h4VGQHbW4nbfWoSCK fnT52i6Pa06M9DkceFdn4YXZl6t1YREAIqOsEkfehGG/5rK6RUpMVfXwIldgjpbXZ fSIcmKLsWB4vIlVnP5IjheZqP71MB4YHTdiTjk0GgKUiLSAJsOutbmPDy5/9Kkzor EGsXf7dhVmPotxvHzDKRenGkV2LUfaQbFi6LVBpQmYecHAM8H0gweGVimrptiLN6O Yt0PDcWwC5Q/DJA4F5XmKevwZsc/eNr4OpSBrd12Lxt5w7kMY2/zms6cegMwvxnzm 3K8Z9a/J5pVhWWFC2Q== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([82.135.81.197]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MPGRp-1u0skn45Ub-00UDM7; Thu, 13 Feb 2025 12:00:33 +0100 From: Peter Seiderer To: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan , Peter Seiderer , Artem Chernyshev , Nam Cao , Frederic Weisbecker Subject: [PATCH net-next v5 8/8] net: pktgen: use defines for the various dec/hex number parsing digits lengths Date: Thu, 13 Feb 2025 12:00:25 +0100 Message-ID: <20250213110025.1436160-9-ps.report@gmx.net> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250213110025.1436160-1-ps.report@gmx.net> References: <20250213110025.1436160-1-ps.report@gmx.net> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Provags-ID: V03:K1:MLSCPxcGlxDC8r66ZPsUvMBGVJaGVcaRifQf7cmWQo0kmBLjHd0 hzMfwyUefiyTrwELha4GZvjtTaomuANdU9SjRS/jQfLbFfVOYFS8CLdlI0qeGzYlbFPn+Sn qf0vOJ2NLWPyan6C1XAkpQQSUD9jtuJEcejjxODjz7hOUWR8TEaDG0tskXuoYCnLlJEuRkd 0Lmw4u8xQf45xesu0EsaQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:hmKdCqa57Sw=;vrQrjbOCdXg5JESNjGiQgEgLqyW 8ctcbjydkb89BTbS05H/OdhngHg7CHXZ6x1PLRyxVsLQxkFTcSuf3/23aLSq6cdTetZYmdbBg DS7S0ALZwjGQ5f95h9f7SoG0xGVmXQpTkMQAgneSSLCA0/E8XfzGtb4jWp9gZstpw6tP7HIOo RYDPVNDal8YBH/kApyfRX/YaoJ8u5mQya7eShWO45ymC0FLm4Qu2m5sUf2qQZoQLLHTCKr5h/ 6gWXSdWSl7yKxlgqrcIoXeP7wln6c/bIThoZgreZChoX254ahcnQVJ4d58kfTE9lOpJ+YauCc smZ1L9xA6BTeoE1dqsCuSU7wEJUHxTSDivA8Z/IQWmdTukLahOnoQTkUdR7sGNmKpkKAAeNQK 0AGZqaWH23JNCHHgs50vi7wnSid9zB+A/hHDPp2CCn+RS8j4/uZyb3lMjXel0E5PzMuGkNxSI HbUa4Dl4j/A09fSbQSmf3/x3BP5FIfuswCB43CMbngGe73pa3YHBXg3jdHonKMEqtopKYPPQB u6/7mLBaaWscwew/nHc/UjdLARFV51jEekXD+tvRFxc/SdGLcZa6pEHtl/CWbk1Towxpcs2vs NQ2jXWDbVdObOu0vf/HRmipV9ZDk5GMoKqm5xZ/nKVzWb41ZaultS4fNCEWKwlvF67yaqh/Kw LX8YHDIYowPzK3SJmYwsZaE03DIvxhFWVBPqjPAz7GLrCvRR/CAfC4GJnbIRNcLBbW4XnuIig utr7DOhggCYJFKZL1FH6Tu44qv2rSHcLJk8e+jAa0VagNK1Sfo9RpIxxliH/N26/MM0fopDTx JpoO0ihI5amSJGYneCYi7mVvP7FWvYQsS5TY/IvIvQ5iS3NUg+2YFgYqR9G0ooyfLxNyRkU/M dwkrh1Qp++flMxNVEaVpJLAeCl4Vt8GFQ37itqiY6z3WIvBq931MH987wT5lgAGB8oJ2HnxFJ oID/sbFMN8AFjpboBgarpzTnuW5DHV/7jItjjLZn0IcKbSjFayg0ZSo2r3eWly+Rrn7WHkBoL OecfK2T3ruroHzRzCRgpIdbjALgwbglk+vexbiqgJBY69DClJ+R2nu1GmMcvhw2O0w5uJHY0u 59VXYQ9NF6lzIhh2u2p73zA1rut85DpfmAIldbDAzWKAW7xxhfIBqRm2Bc7QjD+/OSn7j3wfr J/6EP765xBPzpKvEwuBA8kHSCASiosJwQ4pqV2oj4QS59MlKFJrW7uTWJcbAqE9xnIzgJMq5Q E2RyHSKCvhzDvU6y1a9yTL75n7btArVnMsO2AX0O/d0NvOgYCIiTOYZr245ZLJ00nDlEkUli4 zhFLJeCD9lDK0Jn0LEhNKyuQ5qt9bvjIHSX+1u6Hqw7jx07+8DFhQP68AR8la+F6C/LSh9O/O WkCqhXgjBG4ETCFVM/Jlphqzkjk63YV8CZXo3bkQmEGhtnzF0PrnKZTe38 Use defines for the various dec/hex number parsing digits lengths (hex32_arg/num_arg calls). Signed-off-by: Peter Seiderer Reviewed-by: Simon Horman --- Changes v4 -> v5 - split up patchset into part i/ii (suggested by Simon Horman) - add rev-by Simon Horman Changes v3 -> v4 - new patch (suggested by Simon Horman) --- net/core/pktgen.c | 80 ++++++++++++++++++++++++++--------------------- 1 file changed, 44 insertions(+), 36 deletions(-) diff --git a/net/core/pktgen.c b/net/core/pktgen.c index 55064713223e..4f201a2db2dc 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -179,6 +179,15 @@ #define MAX_IMIX_ENTRIES 20 #define IMIX_PRECISION 100 /* Precision of IMIX distribution */ +#define DEC_1_DIGITS 1 +#define DEC_4_DIGITS 4 +#define DEC_5_DIGITS 5 +#define DEC_9_DIGITS 9 +#define DEC_10_DIGITS 10 + +#define HEX_2_DIGITS 2 +#define HEX_8_DIGITS 8 + #define func_enter() pr_debug("entering %s\n", __func__); #define PKT_FLAGS \ @@ -844,7 +853,6 @@ static int strn_len(const char __user * user_buffer, unsigned int maxlen) static ssize_t get_imix_entries(const char __user *buffer, struct pktgen_dev *pkt_dev) { - const int max_digits = 10; int i = 0; long len; char c; @@ -858,7 +866,7 @@ static ssize_t get_imix_entries(const char __user *buffer, if (pkt_dev->n_imix_entries >= MAX_IMIX_ENTRIES) return -E2BIG; - len = num_arg(&buffer[i], max_digits, &size); + len = num_arg(&buffer[i], DEC_10_DIGITS, &size); if (len < 0) return len; i += len; @@ -872,7 +880,7 @@ static ssize_t get_imix_entries(const char __user *buffer, if (size < 14 + 20 + 8) size = 14 + 20 + 8; - len = num_arg(&buffer[i], max_digits, &weight); + len = num_arg(&buffer[i], DEC_10_DIGITS, &weight); if (len < 0) return len; if (weight <= 0) @@ -902,7 +910,7 @@ static ssize_t get_labels(const char __user *buffer, struct pktgen_dev *pkt_dev) pkt_dev->nr_labels = 0; do { __u32 tmp; - len = hex32_arg(&buffer[i], 8, &tmp); + len = hex32_arg(&buffer[i], HEX_8_DIGITS, &tmp); if (len <= 0) return len; pkt_dev->labels[n] = htonl(tmp); @@ -1008,7 +1016,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "min_pkt_size")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1025,7 +1033,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "max_pkt_size")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1044,7 +1052,7 @@ static ssize_t pktgen_if_write(struct file *file, /* Shortcut for min = max */ if (!strcmp(name, "pkt_size")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1075,7 +1083,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "debug")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1086,7 +1094,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "frags")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1096,7 +1104,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "delay")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1111,7 +1119,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "rate")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1126,7 +1134,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "ratep")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1141,7 +1149,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "udp_src_min")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1154,7 +1162,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "udp_dst_min")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1167,7 +1175,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "udp_src_max")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1180,7 +1188,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "udp_dst_max")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1193,7 +1201,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "clone_skb")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; /* clone_skb is not supported for netif_receive xmit_mode and @@ -1214,7 +1222,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "count")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1225,7 +1233,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "src_mac_count")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1239,7 +1247,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "dst_mac_count")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1253,7 +1261,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "burst")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1272,7 +1280,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "node")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1592,7 +1600,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "flows")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1606,7 +1614,7 @@ static ssize_t pktgen_if_write(struct file *file, } #ifdef CONFIG_XFRM if (!strcmp(name, "spi")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1617,7 +1625,7 @@ static ssize_t pktgen_if_write(struct file *file, } #endif if (!strcmp(name, "flowlen")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1628,7 +1636,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "queue_map_min")) { - len = num_arg(&user_buffer[i], 5, &value); + len = num_arg(&user_buffer[i], DEC_5_DIGITS, &value); if (len < 0) return len; @@ -1639,7 +1647,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "queue_map_max")) { - len = num_arg(&user_buffer[i], 5, &value); + len = num_arg(&user_buffer[i], DEC_5_DIGITS, &value); if (len < 0) return len; @@ -1673,7 +1681,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "vlan_id")) { - len = num_arg(&user_buffer[i], 4, &value); + len = num_arg(&user_buffer[i], DEC_4_DIGITS, &value); if (len < 0) return len; @@ -1700,7 +1708,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "vlan_p")) { - len = num_arg(&user_buffer[i], 1, &value); + len = num_arg(&user_buffer[i], DEC_1_DIGITS, &value); if (len < 0) return len; @@ -1715,7 +1723,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "vlan_cfi")) { - len = num_arg(&user_buffer[i], 1, &value); + len = num_arg(&user_buffer[i], DEC_1_DIGITS, &value); if (len < 0) return len; @@ -1730,7 +1738,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "svlan_id")) { - len = num_arg(&user_buffer[i], 4, &value); + len = num_arg(&user_buffer[i], DEC_4_DIGITS, &value); if (len < 0) return len; @@ -1757,7 +1765,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "svlan_p")) { - len = num_arg(&user_buffer[i], 1, &value); + len = num_arg(&user_buffer[i], DEC_1_DIGITS, &value); if (len < 0) return len; @@ -1772,7 +1780,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "svlan_cfi")) { - len = num_arg(&user_buffer[i], 1, &value); + len = num_arg(&user_buffer[i], DEC_1_DIGITS, &value); if (len < 0) return len; @@ -1788,7 +1796,7 @@ static ssize_t pktgen_if_write(struct file *file, if (!strcmp(name, "tos")) { __u32 tmp_value = 0; - len = hex32_arg(&user_buffer[i], 2, &tmp_value); + len = hex32_arg(&user_buffer[i], HEX_2_DIGITS, &tmp_value); if (len < 0) return len; @@ -1804,7 +1812,7 @@ static ssize_t pktgen_if_write(struct file *file, if (!strcmp(name, "traffic_class")) { __u32 tmp_value = 0; - len = hex32_arg(&user_buffer[i], 2, &tmp_value); + len = hex32_arg(&user_buffer[i], HEX_2_DIGITS, &tmp_value); if (len < 0) return len; @@ -1819,7 +1827,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "skb_priority")) { - len = num_arg(&user_buffer[i], 9, &value); + len = num_arg(&user_buffer[i], DEC_9_DIGITS, &value); if (len < 0) return len;