From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pavan Nikhilesh Bhagavatula Subject: [PATCH v6 1/4] app/testpmd: move eth header generation outside the loop Date: Tue, 2 Apr 2019 09:53:25 +0000 Message-ID: <20190402095255.848-1-pbhagavatula@marvell.com> References: <20190228194128.14236-1-pbhagavatula@marvell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Cc: "dev@dpdk.org" , Pavan Nikhilesh Bhagavatula To: Jerin Jacob Kollanukkaran , "thomas@monjalon.net" , "arybchenko@solarflare.com" , "ferruh.yigit@intel.com" , "bernard.iremonger@intel.com" , "alialnu@mellanox.com" Return-path: Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 917CA2B99 for ; Tue, 2 Apr 2019 11:53:35 +0200 (CEST) In-Reply-To: <20190228194128.14236-1-pbhagavatula@marvell.com> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Pavan Nikhilesh Testpmd txonly copies the src/dst mac address of the port being processed to ethernet header structure on the stack for every packet. Move it outside the loop and reuse it. Signed-off-by: Pavan Nikhilesh --- v6 Changes - Rebase onto ToT. - Split the changes further v5 Changes - Remove unnecessary change to struct rte_port *txp (movement). (Bernard) v4 Changes: - Fix packet len calculation. v3 Changes: - Split the patches for easier review. (Thomas) - Remove unnecessary assignments to 0. (Bernard) v2 Changes: - Use bulk ops for fetching segments. (Andrew Rybchenko) - Fallback to rte_mbuf_raw_alloc if bulk get fails. (Andrew Rybchenko) - Fix mbufs not being freed when there is no more mbufs available for segments. (Andrew Rybchenko) app/test-pmd/txonly.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/app/test-pmd/txonly.c b/app/test-pmd/txonly.c index def52a048..0d411dbf4 100644 --- a/app/test-pmd/txonly.c +++ b/app/test-pmd/txonly.c @@ -190,6 +190,14 @@ pkt_burst_transmit(struct fwd_stream *fs) ol_flags |=3D PKT_TX_QINQ_PKT; if (tx_offloads & DEV_TX_OFFLOAD_MACSEC_INSERT) ol_flags |=3D PKT_TX_MACSEC; + + /* + * Initialize Ethernet header. + */ + ether_addr_copy(&peer_eth_addrs[fs->peer_addr], ð_hdr.d_addr); + ether_addr_copy(&ports[fs->tx_port].eth_addr, ð_hdr.s_addr); + eth_hdr.ether_type =3D rte_cpu_to_be_16(ETHER_TYPE_IPv4); + for (nb_pkt =3D 0; nb_pkt < nb_pkt_per_burst; nb_pkt++) { pkt =3D rte_mbuf_raw_alloc(mbp); if (pkt =3D=3D NULL) { @@ -226,13 +234,6 @@ pkt_burst_transmit(struct fwd_stream *fs) } pkt_seg->next =3D NULL; /* Last segment of packet. */ - /* - * Initialize Ethernet header. - */ - ether_addr_copy(&peer_eth_addrs[fs->peer_addr],ð_hdr.d_addr); - ether_addr_copy(&ports[fs->tx_port].eth_addr, ð_hdr.s_addr); - eth_hdr.ether_type =3D rte_cpu_to_be_16(ETHER_TYPE_IPv4); - /* * Copy headers in first packet segment(s). */ -- 2.21.0