From patchwork Mon Feb 20 16:41:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 124196 X-Patchwork-Delegate: ferruh.yigit@amd.com 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 A707141CEC; Mon, 20 Feb 2023 17:42:14 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A0816430A1; Mon, 20 Feb 2023 17:41:58 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id 1F9BD430B0 for ; Mon, 20 Feb 2023 17:41:57 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676911316; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=msC5NooUBh3r7dfSHmstQlRD+XJEp4AP2zh5O3gMnLE=; b=dVhFpq44YNWs5C/6J3ScJWeD5d1CNgweKOdGl6NaF5URuOS//2/2DGllDyjqhoQl31zRjt aqvAMR1uuFBa2zLK2tKgw1UPgSe4pedxTb4ALHE7F4nmyyeOxC436m4FKJDsk8u8rBYzT2 OZQpiZ5UTs3JgUCxcKj9kJNVMxaaL+w= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-486-TwgCR8NWMJS5QI8DcCZTkg-1; Mon, 20 Feb 2023 11:41:53 -0500 X-MC-Unique: TwgCR8NWMJS5QI8DcCZTkg-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id F2B6F3C10222; Mon, 20 Feb 2023 16:41:52 +0000 (UTC) Received: from dmarchan.redhat.com (unknown [10.45.224.55]) by smtp.corp.redhat.com (Postfix) with ESMTP id C6C43C15BAD; Mon, 20 Feb 2023 16:41:51 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Ferruh Yigit , Aman Singh , Yuying Zhang , Robin Jarry Subject: [PATCH v2 7/9] app/testpmd: factorize fwd engine init Date: Mon, 20 Feb 2023 17:41:01 +0100 Message-Id: <20230220164103.3041538-8-david.marchand@redhat.com> In-Reply-To: <20230220164103.3041538-1-david.marchand@redhat.com> References: <20230124104742.1265439-1-david.marchand@redhat.com> <20230220164103.3041538-1-david.marchand@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.8 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.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 Reduce code duplication by introducing a helper that takes care of initialising the fs object. While at it, remove unneeded initialisation of fwd_engine empty fields. Signed-off-by: David Marchand Reviewed-by: Ferruh Yigit --- Changes since v1: - updated ieee1588, --- app/test-pmd/5tswap.c | 16 +--------------- app/test-pmd/csumonly.c | 16 +--------------- app/test-pmd/flowgen.c | 15 +-------------- app/test-pmd/icmpecho.c | 16 +--------------- app/test-pmd/ieee1588fwd.c | 8 +------- app/test-pmd/iofwd.c | 16 +--------------- app/test-pmd/macfwd.c | 16 +--------------- app/test-pmd/macswap.c | 16 +--------------- app/test-pmd/noisy_vnf.c | 14 +------------- app/test-pmd/rxonly.c | 2 -- app/test-pmd/shared_rxq_fwd.c | 2 -- app/test-pmd/testpmd.c | 10 ++++++++++ app/test-pmd/testpmd.h | 2 ++ app/test-pmd/txonly.c | 1 - 14 files changed, 21 insertions(+), 129 deletions(-) diff --git a/app/test-pmd/5tswap.c b/app/test-pmd/5tswap.c index 0a3a897e7b..7b5f58f4d4 100644 --- a/app/test-pmd/5tswap.c +++ b/app/test-pmd/5tswap.c @@ -180,22 +180,8 @@ pkt_burst_5tuple_swap(struct fwd_stream *fs) return true; } -static void -stream_init_5tuple_swap(struct fwd_stream *fs) -{ - bool rx_stopped, tx_stopped; - - rx_stopped = ports[fs->rx_port].rxq[fs->rx_queue].state == - RTE_ETH_QUEUE_STATE_STOPPED; - tx_stopped = ports[fs->tx_port].txq[fs->tx_queue].state == - RTE_ETH_QUEUE_STATE_STOPPED; - fs->disabled = rx_stopped || tx_stopped; -} - struct fwd_engine five_tuple_swap_fwd_engine = { .fwd_mode_name = "5tswap", - .port_fwd_begin = NULL, - .port_fwd_end = NULL, - .stream_init = stream_init_5tuple_swap, + .stream_init = common_fwd_stream_init, .packet_fwd = pkt_burst_5tuple_swap, }; diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c index 07850501f4..f72e2d74c7 100644 --- a/app/test-pmd/csumonly.c +++ b/app/test-pmd/csumonly.c @@ -1201,22 +1201,8 @@ pkt_burst_checksum_forward(struct fwd_stream *fs) return true; } -static void -stream_init_checksum_forward(struct fwd_stream *fs) -{ - bool rx_stopped, tx_stopped; - - rx_stopped = ports[fs->rx_port].rxq[fs->rx_queue].state == - RTE_ETH_QUEUE_STATE_STOPPED; - tx_stopped = ports[fs->tx_port].txq[fs->tx_queue].state == - RTE_ETH_QUEUE_STATE_STOPPED; - fs->disabled = rx_stopped || tx_stopped; -} - struct fwd_engine csum_fwd_engine = { .fwd_mode_name = "csum", - .port_fwd_begin = NULL, - .port_fwd_end = NULL, - .stream_init = stream_init_checksum_forward, + .stream_init = common_fwd_stream_init, .packet_fwd = pkt_burst_checksum_forward, }; diff --git a/app/test-pmd/flowgen.c b/app/test-pmd/flowgen.c index b3bd4f7c65..6f42019353 100644 --- a/app/test-pmd/flowgen.c +++ b/app/test-pmd/flowgen.c @@ -199,22 +199,9 @@ flowgen_begin(portid_t pi) return 0; } -static void -flowgen_stream_init(struct fwd_stream *fs) -{ - bool rx_stopped, tx_stopped; - - rx_stopped = ports[fs->rx_port].rxq[fs->rx_queue].state == - RTE_ETH_QUEUE_STATE_STOPPED; - tx_stopped = ports[fs->tx_port].txq[fs->tx_queue].state == - RTE_ETH_QUEUE_STATE_STOPPED; - fs->disabled = rx_stopped || tx_stopped; -} - struct fwd_engine flow_gen_engine = { .fwd_mode_name = "flowgen", .port_fwd_begin = flowgen_begin, - .port_fwd_end = NULL, - .stream_init = flowgen_stream_init, + .stream_init = common_fwd_stream_init, .packet_fwd = pkt_burst_flow_gen, }; diff --git a/app/test-pmd/icmpecho.c b/app/test-pmd/icmpecho.c index 5ef1116141..eba8b99f1e 100644 --- a/app/test-pmd/icmpecho.c +++ b/app/test-pmd/icmpecho.c @@ -507,22 +507,8 @@ reply_to_icmp_echo_rqsts(struct fwd_stream *fs) return true; } -static void -icmpecho_stream_init(struct fwd_stream *fs) -{ - bool rx_stopped, tx_stopped; - - rx_stopped = ports[fs->rx_port].rxq[fs->rx_queue].state == - RTE_ETH_QUEUE_STATE_STOPPED; - tx_stopped = ports[fs->tx_port].txq[fs->tx_queue].state == - RTE_ETH_QUEUE_STATE_STOPPED; - fs->disabled = rx_stopped || tx_stopped; -} - struct fwd_engine icmp_echo_engine = { .fwd_mode_name = "icmpecho", - .port_fwd_begin = NULL, - .port_fwd_end = NULL, - .stream_init = icmpecho_stream_init, + .stream_init = common_fwd_stream_init, .packet_fwd = reply_to_icmp_echo_rqsts, }; diff --git a/app/test-pmd/ieee1588fwd.c b/app/test-pmd/ieee1588fwd.c index 103c01fcb7..fd8ba27b2f 100644 --- a/app/test-pmd/ieee1588fwd.c +++ b/app/test-pmd/ieee1588fwd.c @@ -215,16 +215,10 @@ port_ieee1588_fwd_end(portid_t pi) static void port_ieee1588_stream_init(struct fwd_stream *fs) { - bool rx_stopped, tx_stopped; - /* Force transmission on reception port */ fs->tx_port = fs->rx_port; - rx_stopped = ports[fs->rx_port].rxq[fs->rx_queue].state == - RTE_ETH_QUEUE_STATE_STOPPED; - tx_stopped = ports[fs->tx_port].txq[fs->tx_queue].state == - RTE_ETH_QUEUE_STATE_STOPPED; - fs->disabled = rx_stopped || tx_stopped; + common_fwd_stream_init(fs); } struct fwd_engine ieee1588_fwd_engine = { diff --git a/app/test-pmd/iofwd.c b/app/test-pmd/iofwd.c index 9d0af5f667..12be06fa79 100644 --- a/app/test-pmd/iofwd.c +++ b/app/test-pmd/iofwd.c @@ -82,22 +82,8 @@ pkt_burst_io_forward(struct fwd_stream *fs) return true; } -static void -stream_init_forward(struct fwd_stream *fs) -{ - bool rx_stopped, tx_stopped; - - rx_stopped = ports[fs->rx_port].rxq[fs->rx_queue].state == - RTE_ETH_QUEUE_STATE_STOPPED; - tx_stopped = ports[fs->tx_port].txq[fs->tx_queue].state == - RTE_ETH_QUEUE_STATE_STOPPED; - fs->disabled = rx_stopped || tx_stopped; -} - struct fwd_engine io_fwd_engine = { .fwd_mode_name = "io", - .port_fwd_begin = NULL, - .port_fwd_end = NULL, - .stream_init = stream_init_forward, + .stream_init = common_fwd_stream_init, .packet_fwd = pkt_burst_io_forward, }; diff --git a/app/test-pmd/macfwd.c b/app/test-pmd/macfwd.c index 3a840247c7..953d9ea089 100644 --- a/app/test-pmd/macfwd.c +++ b/app/test-pmd/macfwd.c @@ -113,22 +113,8 @@ pkt_burst_mac_forward(struct fwd_stream *fs) return true; } -static void -stream_init_mac_forward(struct fwd_stream *fs) -{ - bool rx_stopped, tx_stopped; - - rx_stopped = ports[fs->rx_port].rxq[fs->rx_queue].state == - RTE_ETH_QUEUE_STATE_STOPPED; - tx_stopped = ports[fs->tx_port].txq[fs->tx_queue].state == - RTE_ETH_QUEUE_STATE_STOPPED; - fs->disabled = rx_stopped || tx_stopped; -} - struct fwd_engine mac_fwd_engine = { .fwd_mode_name = "mac", - .port_fwd_begin = NULL, - .port_fwd_end = NULL, - .stream_init = stream_init_mac_forward, + .stream_init = common_fwd_stream_init, .packet_fwd = pkt_burst_mac_forward, }; diff --git a/app/test-pmd/macswap.c b/app/test-pmd/macswap.c index 14b3eefffd..062542dc53 100644 --- a/app/test-pmd/macswap.c +++ b/app/test-pmd/macswap.c @@ -92,22 +92,8 @@ pkt_burst_mac_swap(struct fwd_stream *fs) return true; } -static void -stream_init_mac_swap(struct fwd_stream *fs) -{ - bool rx_stopped, tx_stopped; - - rx_stopped = ports[fs->rx_port].rxq[fs->rx_queue].state == - RTE_ETH_QUEUE_STATE_STOPPED; - tx_stopped = ports[fs->tx_port].txq[fs->tx_queue].state == - RTE_ETH_QUEUE_STATE_STOPPED; - fs->disabled = rx_stopped || tx_stopped; -} - struct fwd_engine mac_swap_engine = { .fwd_mode_name = "macswap", - .port_fwd_begin = NULL, - .port_fwd_end = NULL, - .stream_init = stream_init_mac_swap, + .stream_init = common_fwd_stream_init, .packet_fwd = pkt_burst_mac_swap, }; diff --git a/app/test-pmd/noisy_vnf.c b/app/test-pmd/noisy_vnf.c index 396fdd7814..7bcab84db3 100644 --- a/app/test-pmd/noisy_vnf.c +++ b/app/test-pmd/noisy_vnf.c @@ -278,22 +278,10 @@ noisy_fwd_begin(portid_t pi) return 0; } -static void -stream_init_noisy_vnf(struct fwd_stream *fs) -{ - bool rx_stopped, tx_stopped; - - rx_stopped = ports[fs->rx_port].rxq[fs->rx_queue].state == - RTE_ETH_QUEUE_STATE_STOPPED; - tx_stopped = ports[fs->tx_port].txq[fs->tx_queue].state == - RTE_ETH_QUEUE_STATE_STOPPED; - fs->disabled = rx_stopped || tx_stopped; -} - struct fwd_engine noisy_vnf_engine = { .fwd_mode_name = "noisy", .port_fwd_begin = noisy_fwd_begin, .port_fwd_end = noisy_fwd_end, - .stream_init = stream_init_noisy_vnf, + .stream_init = common_fwd_stream_init, .packet_fwd = pkt_burst_noisy_vnf, }; diff --git a/app/test-pmd/rxonly.c b/app/test-pmd/rxonly.c index ad4597cf9a..d4bff9b5ea 100644 --- a/app/test-pmd/rxonly.c +++ b/app/test-pmd/rxonly.c @@ -71,8 +71,6 @@ stream_init_receive(struct fwd_stream *fs) struct fwd_engine rx_only_engine = { .fwd_mode_name = "rxonly", - .port_fwd_begin = NULL, - .port_fwd_end = NULL, .stream_init = stream_init_receive, .packet_fwd = pkt_burst_receive, }; diff --git a/app/test-pmd/shared_rxq_fwd.c b/app/test-pmd/shared_rxq_fwd.c index 4902ec407e..67e5494735 100644 --- a/app/test-pmd/shared_rxq_fwd.c +++ b/app/test-pmd/shared_rxq_fwd.c @@ -114,8 +114,6 @@ shared_rxq_stream_init(struct fwd_stream *fs) struct fwd_engine shared_rxq_engine = { .fwd_mode_name = "shared_rxq", - .port_fwd_begin = NULL, - .port_fwd_end = NULL, .stream_init = shared_rxq_stream_init, .packet_fwd = shared_rxq_fwd, }; diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index cf2215d390..99eea989ae 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -2386,6 +2386,16 @@ launch_packet_forwarding(lcore_function_t *pkt_fwd_on_lcore) } } +void +common_fwd_stream_init(struct fwd_stream *fs) +{ + bool rx_stopped, tx_stopped; + + rx_stopped = (ports[fs->rx_port].rxq[fs->rx_queue].state == RTE_ETH_QUEUE_STATE_STOPPED); + tx_stopped = (ports[fs->tx_port].txq[fs->tx_queue].state == RTE_ETH_QUEUE_STATE_STOPPED); + fs->disabled = rx_stopped || tx_stopped; +} + /* * Launch packet forwarding configuration. */ diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h index ce47d1ed92..4b28cd0d0d 100644 --- a/app/test-pmd/testpmd.h +++ b/app/test-pmd/testpmd.h @@ -392,6 +392,8 @@ struct fwd_engine { packet_fwd_t packet_fwd; /**< Mandatory. */ }; +void common_fwd_stream_init(struct fwd_stream *fs); + #define FLEX_ITEM_MAX_SAMPLES_NUM 16 #define FLEX_ITEM_MAX_LINKS_NUM 16 #define FLEX_MAX_FLOW_PATTERN_LENGTH 64 diff --git a/app/test-pmd/txonly.c b/app/test-pmd/txonly.c index 63ad5e69bf..b80ab6f5df 100644 --- a/app/test-pmd/txonly.c +++ b/app/test-pmd/txonly.c @@ -508,7 +508,6 @@ tx_only_stream_init(struct fwd_stream *fs) struct fwd_engine tx_only_engine = { .fwd_mode_name = "txonly", .port_fwd_begin = tx_only_begin, - .port_fwd_end = NULL, .stream_init = tx_only_stream_init, .packet_fwd = pkt_burst_transmit, };