From patchwork Thu Jan 18 18:31:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Safonov X-Patchwork-Id: 863066 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=arista.com header.i=@arista.com header.b="Xn2TTs64"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zMsy26mfcz9sNr for ; Fri, 19 Jan 2018 05:32:26 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755891AbeARScW (ORCPT ); Thu, 18 Jan 2018 13:32:22 -0500 Received: from mail-wm0-f66.google.com ([74.125.82.66]:42593 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755683AbeARSbo (ORCPT ); Thu, 18 Jan 2018 13:31:44 -0500 Received: by mail-wm0-f66.google.com with SMTP id b141so23993419wme.1 for ; Thu, 18 Jan 2018 10:31:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arista.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=99YlOWnOoUKVxmW8ynS+SOLCYQl0CaHs2iIJrS+/Yfc=; b=Xn2TTs64CUvSudDcjrsf/dVXeDJa9ayfz3MRudEwNpbw7XTj6FeULD3/UQRBZ6xrZd LJ86jrgUQnu4iQsl98GIe3h8PBPFNppPgV+cuPHxRXoMbSwqrGlsn4Ytep7ujGhdDj+7 pl+VtZQA161xEOrpVp7nYddFpS18wgz3OpebM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=99YlOWnOoUKVxmW8ynS+SOLCYQl0CaHs2iIJrS+/Yfc=; b=PJzVDxZ7JWsdsjaCtCyjajuDLQfQJW0aHU2QLCYeercJfypfffMjodR08GhpUC5Ngp sw1W+2P/RAbdNsfNchPtM1srYqQ3FLGFD3arKDyQskJ9lDsgpUlvxpA8zgLG8ChslanK H12JprUiNTZGySoXgT7lC5AxV7VXZlou4N94pS+XYkk7xlfTT9znm3NUIgd0yZQM/f1h H88P/bhzf98bh8AQ0P/szz4LMfmB38sUMr/ftwB5Np/4MAwqj5x1RRLSKJzyaBtFuon/ TlIxzHa2V0BxIzJazxnGbLGLjGvXicEZre1VlokqYALL+JdRS/gD23HpSnuQKpaREs7v GZNw== X-Gm-Message-State: AKwxytfNuqhB8pyo5A8sC8/diis2lpYN6NMerNixRjoJVApy4J00Ndi+ F7fQW1A8EqbKKMFl7wqQ6Mv8zw== X-Google-Smtp-Source: ACJfBotQ6UgB52mKB3B/HjWA1Dc8zbNHQKa4f42LNfj1gKou+XS9n5Q8Q6OALXDQcV9Sfvyw5ckdQA== X-Received: by 10.80.204.140 with SMTP id q12mr9237212edi.176.1516300303268; Thu, 18 Jan 2018 10:31:43 -0800 (PST) Received: from dhcp.ire.aristanetworks.com ([217.173.96.166]) by smtp.gmail.com with ESMTPSA id k90sm4528935edc.20.2018.01.18.10.31.42 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 18 Jan 2018 10:31:42 -0800 (PST) From: Dmitry Safonov To: linux-kernel@vger.kernel.org Cc: Dmitry Safonov , Arnd Bergmann , "David S. Miller" , David Windsor , Eric Dumazet , Ingo Molnar , Johannes Berg , Mark Rutland , Radu Rendec , "Reshetova, Elena" , netdev@vger.kernel.org Subject: [PATCHv2 4/5] pktgen: Remove brute-force printing of flags Date: Thu, 18 Jan 2018 18:31:36 +0000 Message-Id: <20180118183137.16053-5-dima@arista.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20180118183137.16053-1-dima@arista.com> References: <20180118183137.16053-1-dima@arista.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Add macro generated pkt_flag_names array, with a little help of which the flags can be printed by using an index. Signed-off-by: Dmitry Safonov --- net/core/pktgen.c | 77 ++++++++++++++----------------------------------------- 1 file changed, 19 insertions(+), 58 deletions(-) diff --git a/net/core/pktgen.c b/net/core/pktgen.c index 596fadcd8bb8..f9883139e311 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -215,6 +215,14 @@ enum pkt_flags { PKT_FLAGS #undef pf +#define pf(flag) __stringify(flag), +static char *pkt_flag_names[] = { + PKT_FLAGS +}; +#undef pf + +#define NR_PKT_FLAGS ARRAY_SIZE(pkt_flag_names) + /* Thread control flag bits */ #define T_STOP (1<<0) /* Stop run */ #define T_RUN (1<<1) /* Start run */ @@ -546,6 +554,7 @@ static int pktgen_if_show(struct seq_file *seq, void *v) { const struct pktgen_dev *pkt_dev = seq->private; ktime_t stopped; + unsigned int i; u64 idle; seq_printf(seq, @@ -607,7 +616,6 @@ static int pktgen_if_show(struct seq_file *seq, void *v) pkt_dev->src_mac_count, pkt_dev->dst_mac_count); if (pkt_dev->nr_labels) { - unsigned int i; seq_puts(seq, " mpls: "); for (i = 0; i < pkt_dev->nr_labels; i++) seq_printf(seq, "%08x%s", ntohl(pkt_dev->labels[i]), @@ -643,68 +651,21 @@ static int pktgen_if_show(struct seq_file *seq, void *v) seq_puts(seq, " Flags: "); - if (pkt_dev->flags & F_IPV6) - seq_puts(seq, "IPV6 "); - - if (pkt_dev->flags & F_IPSRC_RND) - seq_puts(seq, "IPSRC_RND "); - - if (pkt_dev->flags & F_IPDST_RND) - seq_puts(seq, "IPDST_RND "); - - if (pkt_dev->flags & F_TXSIZE_RND) - seq_puts(seq, "TXSIZE_RND "); - - if (pkt_dev->flags & F_UDPSRC_RND) - seq_puts(seq, "UDPSRC_RND "); - - if (pkt_dev->flags & F_UDPDST_RND) - seq_puts(seq, "UDPDST_RND "); - - if (pkt_dev->flags & F_UDPCSUM) - seq_puts(seq, "UDPCSUM "); - - if (pkt_dev->flags & F_NO_TIMESTAMP) - seq_puts(seq, "NO_TIMESTAMP "); - - if (pkt_dev->flags & F_MPLS_RND) - seq_puts(seq, "MPLS_RND "); - - if (pkt_dev->flags & F_QUEUE_MAP_RND) - seq_puts(seq, "QUEUE_MAP_RND "); - - if (pkt_dev->flags & F_QUEUE_MAP_CPU) - seq_puts(seq, "QUEUE_MAP_CPU "); + for (i = 0; i < NR_PKT_FLAGS; i++) { + if (i == F_FLOW_SEQ) + if (!pkt_dev->cflows) + continue; - if (pkt_dev->cflows) { - if (pkt_dev->flags & F_FLOW_SEQ) - seq_puts(seq, "FLOW_SEQ "); /*in sequence flows*/ - else - seq_puts(seq, "FLOW_RND "); - } + if (pkt_dev->flags & (1 << i)) + seq_printf(seq, "%s ", pkt_flag_names[i]); + else if (i == F_FLOW_SEQ) + seq_puts(seq, "FLOW_RND "); #ifdef CONFIG_XFRM - if (pkt_dev->flags & F_IPSEC) { - seq_puts(seq, "IPSEC "); - if (pkt_dev->spi) + if (i == F_IPSEC && pkt_dev->spi) seq_printf(seq, "spi:%u", pkt_dev->spi); - } #endif - - if (pkt_dev->flags & F_MACSRC_RND) - seq_puts(seq, "MACSRC_RND "); - - if (pkt_dev->flags & F_MACDST_RND) - seq_puts(seq, "MACDST_RND "); - - if (pkt_dev->flags & F_VID_RND) - seq_puts(seq, "VID_RND "); - - if (pkt_dev->flags & F_SVID_RND) - seq_puts(seq, "SVID_RND "); - - if (pkt_dev->flags & F_NODE) - seq_puts(seq, "NODE_ALLOC "); + } seq_puts(seq, "\n");