From patchwork Thu Jan 10 16:14:02 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rafal Kozik X-Patchwork-Id: 49620 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 07E381B8CB; Thu, 10 Jan 2019 17:14:20 +0100 (CET) Received: from mail-lf1-f65.google.com (mail-lf1-f65.google.com [209.85.167.65]) by dpdk.org (Postfix) with ESMTP id E3F9C1B8C0 for ; Thu, 10 Jan 2019 17:14:18 +0100 (CET) Received: by mail-lf1-f65.google.com with SMTP id i26so8722152lfc.0 for ; Thu, 10 Jan 2019 08:14:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=sLVI7JI1iRDKM/QC4aAfsx+X1WLvJHR5xcXHAMEtfoM=; b=OLwW3Pu9xtcn2NNJVurpkLCGpbTAAna12Oi4WvCN7bcNJlgm+k/r4fjkP/FnUCh1gn uFqjkAEJk5aRTsSjSNbFpkjgsOnWWbgKHhAwsFrlSBrtXBkz9QGhy1H5AyimeqLcckoK FWDQM6yKCt4+xO9p0Gg/0i1e3RrPP2j5OxgAjy9dzfjh/WMiKxDODKFJiXiXAi1UT/UF UVLw1aaL4EYfE4kNHc9N5QDMnfrNif3Sz6pRilVb7VucIUgCX4wVsJMTydbqdLKXrXon sbNi1HKH7xw+PTcdCZirX8HEdUoqMYtA71ZgTmRPLnawHpMM5E/bW/pNMkq8i/ha7OYC UcmQ== 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=sLVI7JI1iRDKM/QC4aAfsx+X1WLvJHR5xcXHAMEtfoM=; b=XIs50mm9NjlHju9I5FQ7+2UiRLDdpGOEctsPd7UUcQi96o0KtaiFHW9oe8BFa7TA29 Q+73YVnZfrCocGvkezyfgjULSvkelpxU0uc/jiKDOxbX0Hh1XOOZToCn/VjaqkA0m/oZ TwWvaoA9aOBfIzk9tWDqCrCpsDWbAnbcug9yAZaQmZYI0d7I9VEFDpkwGU94RUN5uV0K 4BVue1hIYgsdSP+Hs9NL/WhlO81R9D5Nk8h0K3A52aGlmaijRezjf+oAY7l+EWREOIXN PutdLXP9Ks9AYCnOzxX7stZ99WY6ejYiageln1Lzb8vqKTBDBAYli+MNgQpldYvRGo21 o7pQ== X-Gm-Message-State: AJcUukcldG86sSjFd30k9CZ04EPqeTmYJ61iirhycSJ/rwaK6pM0up0O Vzx0HJSoXB4vH/H5lZdeVkAMQWBZONU= X-Google-Smtp-Source: ALg8bN6MTrIf6eKvqyFA83Fzjt2RM9h+nS0CXEQzTWHriptpFvpo7w7VlWnZ9y7viYAGOCOIY5xUzA== X-Received: by 2002:a19:db54:: with SMTP id s81mr6709817lfg.102.1547136858156; Thu, 10 Jan 2019 08:14:18 -0800 (PST) Received: from rafalkozik.semihalf.local (31-172-191-173.noc.fibertech.net.pl. [31.172.191.173]) by smtp.gmail.com with ESMTPSA id y81-v6sm15558112lje.30.2019.01.10.08.14.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 10 Jan 2019 08:14:17 -0800 (PST) From: Rafal Kozik To: dev@dpdk.org, keith.wiles@intel.com Cc: mw@semihalf.com, mk@semihalf.com, gtzalik@amazon.com, evgenys@amazon.com, matua@amazon.com, igorch@amazon.com, Rafal Kozik Date: Thu, 10 Jan 2019 17:14:02 +0100 Message-Id: <1547136846-23319-2-git-send-email-rk@semihalf.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1547136846-23319-1-git-send-email-rk@semihalf.com> References: <1547136846-23319-1-git-send-email-rk@semihalf.com> Subject: [dpdk-dev] [PATCH 1/5] [pktgen] fix race condition in start X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Flag SENDING_PACKETS must be set last. When it is set before SEND_FOREVER flag, Tx lcores start to call pktgen_send_pkts. But as current_tx_count is 0 and SEND_FOREVER is not yet set, SENDING_PACKETS will be cleared. This causes in some cases that start command will no take effect. Fixes: f5f901fdf52b ("Update for 1.8 rte_mbuf changes.") Signed-off-by: Rafal Kozik --- app/pktgen-cmds.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/pktgen-cmds.c b/app/pktgen-cmds.c index 95f6ef1..655f6bd 100644 --- a/app/pktgen-cmds.c +++ b/app/pktgen-cmds.c @@ -1412,10 +1412,10 @@ pktgen_start_transmitting(port_info_t *info) rte_atomic64_set(&info->current_tx_count, rte_atomic64_read(&info->transmit_count)); - pktgen_set_port_flags(info, SENDING_PACKETS); - if (rte_atomic64_read(&info->current_tx_count) == 0) pktgen_set_port_flags(info, SEND_FOREVER); + + pktgen_set_port_flags(info, SENDING_PACKETS); } } From patchwork Thu Jan 10 16:14:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rafal Kozik X-Patchwork-Id: 49621 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 157811B912; Thu, 10 Jan 2019 17:14:22 +0100 (CET) Received: from mail-lj1-f196.google.com (mail-lj1-f196.google.com [209.85.208.196]) by dpdk.org (Postfix) with ESMTP id AD05E1B90C for ; Thu, 10 Jan 2019 17:14:20 +0100 (CET) Received: by mail-lj1-f196.google.com with SMTP id l15-v6so10185713lja.9 for ; Thu, 10 Jan 2019 08:14:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=T6czS1TrkWpSZlZ5dBrUkN3HApCQD1NUAzQlIyLhtFI=; b=dP3dj7zgwzkrmKFUD2+rFHlJQ10M8YnAeDKFyokt8GBf4lbe1hvtGsUByjNHI6Ym7w snECLWRytkdECNk6rJ1xqGCBsRpSMi69neSkQpOmcorRb/CiR87xrZ7BXB1IV2aJZvsz iV0NqRP1sVNzYYNb6a93HpBXxd/+hGJ1ARCn9V9p0UYOI6nROrWsRn1gY2/uji72ASEL VOUVYYdLBg8axnQAtB1vrxonDfsdWU/T1Bzo6+DXAdYzRmAi6X4elnJfUqYNsDMysZm2 YTDrQS1KtOh6eHa5F8wdpaH8GzcWBMzIjhc/yFkKa61AO0CigUoKsgVcZnd/Xn4vkQJk NZ5w== 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=T6czS1TrkWpSZlZ5dBrUkN3HApCQD1NUAzQlIyLhtFI=; b=eZ8WFe0hyIZNDs2vkhUUoxTThGyILUucloLvkp8ZfFVK6reX7PgY4v1c/ASSteGWkB Q4GrjKLLnumk38w58DtTLUZcdIrri0aYU1UUH+m5/PvM+HoW4FqUhuQeOvidBBC/B4mH 6/MbLwfFAFIExYPzQ+ocWfo74+V4ZdwBknSFoHvWBLEVwhk1odAashq9q1vSVspbzu1l ONjZ/i6GNPcaN9lMmYZjzkiy5kb5V0TDFRkdIMqd7Bp9yKoI9E++WOwQwYqmhiageoPJ /paqLr7N+o2lZ5HkmGyN1lCRFjdoH6wgQyTt+wLANO6/GW28QB/0zda+y/hG2+JFk0sE uQGQ== X-Gm-Message-State: AJcUukeEMmq0RLOzrg6b+3QcJ08Z3Q1tvAwtDEztUiuNSZ8LCgLc+gCm AjclSk8fsT2F56OReJyqqUBnUO101ek= X-Google-Smtp-Source: ALg8bN5BIUG50Z09L5lEscbSaa18dqCkQUptGIVrJpKbH6jdGVx8ZTpQh/f6g3SuevRHFJAq5P5nwA== X-Received: by 2002:a2e:6503:: with SMTP id z3-v6mr6191340ljb.153.1547136859948; Thu, 10 Jan 2019 08:14:19 -0800 (PST) Received: from rafalkozik.semihalf.local (31-172-191-173.noc.fibertech.net.pl. [31.172.191.173]) by smtp.gmail.com with ESMTPSA id y81-v6sm15558112lje.30.2019.01.10.08.14.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 10 Jan 2019 08:14:19 -0800 (PST) From: Rafal Kozik To: dev@dpdk.org, keith.wiles@intel.com Cc: mw@semihalf.com, mk@semihalf.com, gtzalik@amazon.com, evgenys@amazon.com, matua@amazon.com, igorch@amazon.com, Rafal Kozik Date: Thu, 10 Jan 2019 17:14:03 +0100 Message-Id: <1547136846-23319-3-git-send-email-rk@semihalf.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1547136846-23319-1-git-send-email-rk@semihalf.com> References: <1547136846-23319-1-git-send-email-rk@semihalf.com> Subject: [dpdk-dev] [PATCH 2/5] [pktgen] different PCAP per each queue X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" In some test scenario it is necessary to configure different flow per each Tx queue. This patch adds possibility to provide list of PCAPs files. If number of files is smaller than number of queues, first PCAP file is used for the queues which number is above the number of files. To achieve uniform throughput, average length of packets in each PCAP needs to be the same. Signed-off-by: Rafal Kozik --- app/pktgen-main.c | 40 ++++++++++++++++++++++++++++++---------- app/pktgen-pcap.c | 12 ++++++------ app/pktgen-port-cfg.c | 8 +++++++- app/pktgen-port-cfg.h | 1 + 4 files changed, 44 insertions(+), 17 deletions(-) diff --git a/app/pktgen-main.c b/app/pktgen-main.c index b90da0c..68ffa13 100644 --- a/app/pktgen-main.c +++ b/app/pktgen-main.c @@ -81,6 +81,7 @@ pktgen_usage(const char *prgname) printf( "Usage: %s [EAL options] -- [-h] [-v] [-P] [-G] [-T] [-f cmd_file] [-l log_file] [-s P:PCAP_file] [-m ]\n" " -s P:file PCAP packet stream file, 'P' is the port number\n" + " -s P:file0,file1,... list of PCAP packet stream files per queue, 'P' is the port number\n" " -f filename Command file (.pkt) to execute or a Lua script (.lua) file\n" " -l filename Write log to filename\n" " -P Enable PROMISCUOUS mode on all ports\n" @@ -142,10 +143,10 @@ pktgen_usage(const char *prgname) static int pktgen_parse_args(int argc, char **argv) { - int opt, ret, port; + int opt, ret, port, q; char **argvopt; int option_index; - char *prgname = argv[0], *p; + char *prgname = argv[0], *p, *pc; static struct option lgopts[] = { {"crc-strip", 0, 0, 0}, {NULL, 0, 0, 0} @@ -187,14 +188,27 @@ pktgen_parse_args(int argc, char **argv) case 's': /* Read a PCAP packet capture file (stream) */ port = strtol(optarg, NULL, 10); p = strchr(optarg, ':'); - if ( (p == NULL) || - (pktgen.info[port].pcap = - _pcap_open(++p, port)) == NULL) { - pktgen_log_error( - "Invalid PCAP filename (%s) must include port number as P:filename", - optarg); - pktgen_usage(prgname); - return -1; + pc = strchr(optarg, ','); + if (p == NULL) + goto pcap_err; + if (pc == NULL) { + pktgen.info[port].pcap = _pcap_open(++p, port); + if (pktgen.info[port].pcap == NULL) + goto pcap_err; + } else { + q = 0; + while (p != NULL && q < NUM_Q) { + p++; + pc = strchr(p, ','); + if (pc != NULL) + *pc = '\0'; + pktgen.info[port].pcaps[q] = _pcap_open(p, port); + if (pktgen.info[port].pcaps[q] == NULL) + goto pcap_err; + p = pc; + q++; + } + pktgen.info[port].pcap = pktgen.info[port].pcaps[0]; } break; case 'P': /* Enable promiscuous mode on the ports */ @@ -257,6 +271,12 @@ pktgen_parse_args(int argc, char **argv) ret = optind - 1; optind = 1; /* reset getopt lib */ return ret; + +pcap_err: + pktgen_log_error("Invalid PCAP filename (%s) must include port number as P:filename", + optarg); + pktgen_usage(prgname); + return -1; } #define MAX_BACKTRACE 32 diff --git a/app/pktgen-pcap.c b/app/pktgen-pcap.c index dffdd13..e7ef9a2 100644 --- a/app/pktgen-pcap.c +++ b/app/pktgen-pcap.c @@ -343,9 +343,9 @@ pktgen_pcap_parse(pcap_info_t *pcap, port_info_t *info, unsigned qid) /* If count is greater then zero then we allocate and create the PCAP mbuf pool. */ if (elt_count > 0) { /* Create the average size packet */ - info->pcap->pkt_size = (pkt_sizes / elt_count); - info->pcap->pkt_count = elt_count; - info->pcap->pkt_idx = 0; + pcap->pkt_size = (pkt_sizes / elt_count); + pcap->pkt_count = elt_count; + pcap->pkt_idx = 0; _pcap_rewind(pcap); @@ -374,15 +374,15 @@ pktgen_pcap_parse(pcap_info_t *pcap, port_info_t *info, unsigned qid) scrn_printf(0, 0, "\r"); if (info->q[qid].pcap_mp == NULL) pktgen_log_panic("Cannot init port %d for %d PCAP packets", - info->pid, info->pcap->pkt_count); + info->pid, pcap->pkt_count); - data_size = (info->pcap->pkt_count * DEFAULT_MBUF_SIZE); + data_size = (pcap->pkt_count * DEFAULT_MBUF_SIZE); scrn_printf(0, 0, " Create: %-*s - Number of MBUFs %6u for %5d packets = %6u KB\n", 16, name, elt_count, - info->pcap->pkt_count, + pcap->pkt_count, (data_size + 1023) / 1024); pktgen.mem_used += data_size; pktgen.total_mem_used += data_size; diff --git a/app/pktgen-port-cfg.c b/app/pktgen-port-cfg.c index a1da13c..91ce694 100644 --- a/app/pktgen-port-cfg.c +++ b/app/pktgen-port-cfg.c @@ -318,7 +318,13 @@ pktgen_config_ports(void) pktgen_log_panic("Cannot init port %d for Special TX mbufs", pid); /* Setup the PCAP file for each port */ - if (pktgen.info[pid].pcap != NULL) + if (pktgen.info[pid].pcaps[q] != NULL) { + if (pktgen_pcap_parse(pktgen.info[pid].pcaps[q], info, q) == -1) { + pktgen_log_panic( + "Cannot load PCAP file for port %d queue %d", + pid, q); + } + } else if (pktgen.info[pid].pcap != NULL) if (pktgen_pcap_parse(pktgen.info[pid].pcap, info, q) == -1) pktgen_log_panic("Cannot load PCAP file for port %d", pid); diff --git a/app/pktgen-port-cfg.h b/app/pktgen-port-cfg.h index 89019e4..381ddfe 100644 --- a/app/pktgen-port-cfg.h +++ b/app/pktgen-port-cfg.h @@ -214,6 +214,7 @@ typedef struct port_info_s { int32_t rx_tapfd; /**< Rx Tap file descriptor */ int32_t tx_tapfd; /**< Tx Tap file descriptor */ pcap_info_t *pcap; /**< PCAP information header */ + pcap_info_t *pcaps[NUM_Q]; /**< Per Tx queue PCAP information headers */ uint64_t pcap_cycles; /**< number of cycles for pcap sending */ int32_t pcap_result; /**< PCAP result of filter compile */ From patchwork Thu Jan 10 16:14:04 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rafal Kozik X-Patchwork-Id: 49622 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A26E41B922; Thu, 10 Jan 2019 17:14:23 +0100 (CET) Received: from mail-lf1-f66.google.com (mail-lf1-f66.google.com [209.85.167.66]) by dpdk.org (Postfix) with ESMTP id 897071B917 for ; Thu, 10 Jan 2019 17:14:22 +0100 (CET) Received: by mail-lf1-f66.google.com with SMTP id y11so8709133lfj.4 for ; Thu, 10 Jan 2019 08:14:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=IRr55yITvF0QClg+ZSHLLLPpTi3X8XQGrfhrZbC3NqE=; b=gjoTktQf/H8Bn8r2ON1VCtkUaNwzjRN9OoLFIL8aCAD3vkJy9tT2gFv7RssVd4XcqB I3rMOvEF4CbyWoH3XYe5Bvr3oVtl1KbihmFdCtJwhudb5c/923hJE7BKPOXWBW162Eb0 62U1hPUjMZNtoape5dRuRjeTo5GVV+Io/2x1rBANNrhIPMCRl84sMv63W1VH4aokXQzT 5FR5ZB/jdJ/UYvzEepWlDW+ReQsyqdYnE55JBZZ7RhhMJN9Bf0gyCpymC764Cgz0cdLz 86fJeu+t/BA2KhUdrN1f2TjlTpZBRx7pCGaKx9lgLIWzcnXvjLx2J97LN7VLjxaZZT80 GM1w== 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=IRr55yITvF0QClg+ZSHLLLPpTi3X8XQGrfhrZbC3NqE=; b=rpQg/QpZSxLSDzOO59GZJNQLs5Ewxm6b3T+d2AlSdcLLXMoSHKOrHdMs6TJDmwQIe/ +wsrkoUmpuX3wL7+Gclgr3ha8uXVcNqmyMge+XAeStmUHPHPU71kmqEe1oArXcWY+aCB ao5+fffWt/XHHI9+WL6ltuwoR2azAALpN8ohlZTYSmsyb/R4do1KYkNhQHaDoTEoNMwV 3qEYnhwtFP5PAgSLoFFbqjgcOfkVJdub3fEMcVg7mKgMiM3bOwUXa+cX+98LKLunOVmD DrJHCwo1uApYuyaGDibtg7DsTAre36jeVFB2FwgoZ8g6Sr8042HyF1mV0l+kNK2s5xY0 J0uw== X-Gm-Message-State: AJcUukduBSmmLAg+EBfreiUTF/bFRBCaXy7GyB9MyXF9Fz2gvdYTcKLq qBOIWfQVhLJ4lY+HsVmmtnWO4UbtGvM= X-Google-Smtp-Source: ALg8bN692/D9jQuu9IQ+jnFohMOWrwAIcswtd+CMPW2LTuH1Lb/KMho+CU7zM7Cy7ZakEs9ItjGVmQ== X-Received: by 2002:a19:8096:: with SMTP id b144mr6695057lfd.8.1547136861630; Thu, 10 Jan 2019 08:14:21 -0800 (PST) Received: from rafalkozik.semihalf.local (31-172-191-173.noc.fibertech.net.pl. [31.172.191.173]) by smtp.gmail.com with ESMTPSA id y81-v6sm15558112lje.30.2019.01.10.08.14.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 10 Jan 2019 08:14:21 -0800 (PST) From: Rafal Kozik To: dev@dpdk.org, keith.wiles@intel.com Cc: mw@semihalf.com, mk@semihalf.com, gtzalik@amazon.com, evgenys@amazon.com, matua@amazon.com, igorch@amazon.com, Rafal Kozik Date: Thu, 10 Jan 2019 17:14:04 +0100 Message-Id: <1547136846-23319-4-git-send-email-rk@semihalf.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1547136846-23319-1-git-send-email-rk@semihalf.com> References: <1547136846-23319-1-git-send-email-rk@semihalf.com> Subject: [dpdk-dev] [PATCH 3/5] [pktgen] use constants for PCAP creation X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Instead of magic number and DPDK constants use, constants defined in PKTGEN. It allows to easily adjust packets size for users needs. For example jumbo packets could be supported by just increasing DEFAULT_MBUF_SIZE and MAX_PKT_SIZE. Signed-off-by: Rafal Kozik --- app/pktgen-pcap.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/app/pktgen-pcap.c b/app/pktgen-pcap.c index e7ef9a2..7f380f6 100644 --- a/app/pktgen-pcap.c +++ b/app/pktgen-pcap.c @@ -43,7 +43,7 @@ pktgen_print_pcap(uint16_t pid) pcap_info_t *pcap; pcaprec_hdr_t pcap_hdr; char buff[64]; - char pkt_buff[2048]; + char pkt_buff[DEFAULT_MBUF_SIZE]; pktgen_display_set_color("top.page"); display_topline(""); @@ -216,7 +216,7 @@ pktgen_pcap_mbuf_ctor(struct rte_mempool *mp, uint32_t mbuf_size, buf_len, priv_size = 0; pcaprec_hdr_t hdr; ssize_t len = -1; - char buffer[2048]; + char buffer[DEFAULT_MBUF_SIZE]; pcap_info_t *pcap = (pcap_info_t *)opaque_arg; #if RTE_VERSION >= RTE_VERSION_NUM(16, 7, 0, 0) @@ -274,10 +274,10 @@ pktgen_pcap_mbuf_ctor(struct rte_mempool *mp, len = hdr.incl_len; /* Adjust the packet length if not a valid size. */ - if (len < (ETHER_MIN_LEN - 4) ) - len = (ETHER_MIN_LEN - 4); - else if (len > (ETHER_MAX_LEN - 4) ) - len = (ETHER_MAX_LEN - 4); + if (len < MIN_PKT_SIZE) + len = MIN_PKT_SIZE; + else if (len > MAX_PKT_SIZE) + len = MAX_PKT_SIZE; m->data_len = len; m->pkt_len = len; @@ -309,7 +309,7 @@ pktgen_pcap_parse(pcap_info_t *pcap, port_info_t *info, unsigned qid) pcaprec_hdr_t hdr; uint32_t elt_count, data_size, len, i; uint64_t pkt_sizes = 0; - char buffer[2048]; + char buffer[DEFAULT_MBUF_SIZE]; char name[RTE_MEMZONE_NAMESIZE]; if ( (pcap == NULL) || (info == NULL) ) @@ -327,10 +327,10 @@ pktgen_pcap_parse(pcap_info_t *pcap, port_info_t *info, unsigned qid) /* Skip any jumbo packets or packets that are too small */ len = hdr.incl_len; - if (len < (ETHER_MIN_LEN - 4) ) - len = (ETHER_MIN_LEN - 4); - else if (len > (ETHER_MAX_LEN - 4) ) - len = (ETHER_MAX_LEN - 4); + if (len < MIN_PKT_SIZE) + len = MIN_PKT_SIZE; + else if (len > MAX_PKT_SIZE) + len = MAX_PKT_SIZE; elt_count++; From patchwork Thu Jan 10 16:14:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rafal Kozik X-Patchwork-Id: 49623 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id EB26A1B934; Thu, 10 Jan 2019 17:14:25 +0100 (CET) Received: from mail-lf1-f68.google.com (mail-lf1-f68.google.com [209.85.167.68]) by dpdk.org (Postfix) with ESMTP id AA5921B925 for ; Thu, 10 Jan 2019 17:14:23 +0100 (CET) Received: by mail-lf1-f68.google.com with SMTP id b20so8662373lfa.12 for ; Thu, 10 Jan 2019 08:14:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Bohjeb4APpfeM4vYWtCCmXmUOjDsoUZK1F86hT2/wJE=; b=bJ56x14cFg8KRP7vqxFn/kfFdBD5tCFEtYMsxBwzQq0UBGZscPMty7tVw8P4Hfh6ot 2p638+rENMJxMhdzSIHfkK1FZT4qEkgz/QNS3s25EfThfS8NLgz+wGo4viNvBb7KfqA1 95nSAOe7JAx/NMMFy4xivnfQnKHspNveDisyROwQbOrNdnCMzEPchX5nms425AS1tI71 3FGGCvMlRgiIiv+y6XtEnz/MsxFezcla5RM7MA0Ui5VZiB+Ezp+NIfEIbBNF9f3tUWz1 maB3IcKkkmbOlAx174BcUqgIuHeuf/sR9ia6Oi5aD84lF528VibtOBvSaxoYGiSsKfC/ 2nVw== 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=Bohjeb4APpfeM4vYWtCCmXmUOjDsoUZK1F86hT2/wJE=; b=g/kLgXTtslsbwB+SDd6KpYuQefVGauGM5azN7yIJCMqeklWR2/qY8c4FtJeQ430jyl dFIlyrCKPhLI/s/uFNy1V6cXIlaylJJ68B4AEkFX861tP1LcYcqMCguXtS3f3xfU3Hzv q/19oct/Y0lqto/tCPRdMrzc+GVIQWDdsn8zk+Nz20O4FVvnQmGVpqmJ//v4cE5aNDrl N/uOjMSSeCOpiVYUYf9T4LJpc4iIKzbF68aWKMNngVTXXICkQ4q3bV818F+ih2dHR1DK HlRH4Z3e9ZH5hV1NWguBA/XGvmMI8SpEVhSPZCWSQfXsizq3cNR6c9eDB5/wtFWzuO5S 7/2A== X-Gm-Message-State: AJcUukfOytPaFr/p43tZnytG7ams0lhxmIbDynkg8weR5jZ9Tty0itcK VuSB92vef83mdH6D4MQjUO2WeewqQ+k= X-Google-Smtp-Source: ALg8bN6IA9PReFEbF/wAtxRmLRkWzvIiBReIJksAUqYkgks1unecyu4V0oA9w0oBCm5t4zdxNDGwHA== X-Received: by 2002:a19:1d0d:: with SMTP id d13mr5993349lfd.74.1547136863072; Thu, 10 Jan 2019 08:14:23 -0800 (PST) Received: from rafalkozik.semihalf.local (31-172-191-173.noc.fibertech.net.pl. [31.172.191.173]) by smtp.gmail.com with ESMTPSA id y81-v6sm15558112lje.30.2019.01.10.08.14.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 10 Jan 2019 08:14:22 -0800 (PST) From: Rafal Kozik To: dev@dpdk.org, keith.wiles@intel.com Cc: mw@semihalf.com, mk@semihalf.com, gtzalik@amazon.com, evgenys@amazon.com, matua@amazon.com, igorch@amazon.com, Rafal Kozik Date: Thu, 10 Jan 2019 17:14:05 +0100 Message-Id: <1547136846-23319-5-git-send-email-rk@semihalf.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1547136846-23319-1-git-send-email-rk@semihalf.com> References: <1547136846-23319-1-git-send-email-rk@semihalf.com> Subject: [dpdk-dev] [PATCH 4/5] [pktgen] expose number of missed Rx packets X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Expose number of missed Rx packets from DPDK NIC statistics to Lua API. Signed-off-by: Rafal Kozik --- app/lpktgenlib.c | 1 + 1 file changed, 1 insertion(+) diff --git a/app/lpktgenlib.c b/app/lpktgenlib.c index 9a6307c..e9c7241 100644 --- a/app/lpktgenlib.c +++ b/app/lpktgenlib.c @@ -2888,6 +2888,7 @@ port_stats(lua_State *L, port_info_t *info, char *type) setf_integer(L, "ierrors", stats.ierrors); setf_integer(L, "oerrors", stats.oerrors); setf_integer(L, "rx_nombuf", stats.rx_nombuf); + setf_integer(L, "imissed", stats.imissed); if (strcmp(type, "rate") == 0) { setf_integer(L, "pkts_rx", stats.ipackets); From patchwork Thu Jan 10 16:14:06 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rafal Kozik X-Patchwork-Id: 49624 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2752C1B93F; Thu, 10 Jan 2019 17:14:27 +0100 (CET) Received: from mail-lj1-f193.google.com (mail-lj1-f193.google.com [209.85.208.193]) by dpdk.org (Postfix) with ESMTP id 3612F1B933 for ; Thu, 10 Jan 2019 17:14:25 +0100 (CET) Received: by mail-lj1-f193.google.com with SMTP id x85-v6so10227848ljb.2 for ; Thu, 10 Jan 2019 08:14:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Mj9Dpo3Yq/eDtRSH3MNJBYSMy9iKYe0jBxns12R441w=; b=Qxw17zPPmYNL5OPZ7JbAHTVa0QQJFvOjy9Cwo3T7sGHX6NDqkMqyIoAFX2vAOtWmNl n3Ts10EyFsTFTAdBQatuvIwPoEPXclnMpVAhp7UZ4omC6J8TSxubwh0IWmm7SKpPB9UC PUu7s+6xP0cBACX8wDMc35DUzBolSinre1hBauUL/OnPXhF5JcCHFDNtaTVZepjLQhnw iw5w8oBWImFvpQCmmeCnKj/1d5ejxJ8+NmVNI/ujq+4SjliyWOZhUhCCKWnvNs1mgqxZ WDTzJOfP2W4gM2opweq1fRPKwB8aMlhuJ+5hoqI0fkSkYiTUcEFgDyavL2PmdHw54KIk PcIg== 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=Mj9Dpo3Yq/eDtRSH3MNJBYSMy9iKYe0jBxns12R441w=; b=m8IE7+ZeDJk175l6jUiufj+IiBlXizQucvbee7LgiwYxHX+n2IKifqjqRQ0t9cPxV9 JOC+M1/UMK+pidv9HYcU8tcPnN847HHDc0irTEbGaq3WBaL6tBWroIbzRzgde3TGvt6w 2QFhTD832trXIAM+BkkZuHYS6OQCz81g0o2qbWGWkG/o2KY7XquVlR7PskB7moSJDYv+ fOG3DTVs8ig52zgxH5xjddZo5Tz0wz7HPG+pDz/6RKpeeCOrHHB7mzLRlR0q4VO0v+18 QCJM1sMZ/cRHwsAWH7XGpNhZML1Yh5lwnljkJvaF8aH/n8TImERcrlpIXL639ySdjRaD gUQg== X-Gm-Message-State: AJcUukf4MFo/xkQxtg3bu263W9IjqxFqacvw+mzSRxJaPMh5qneiaE+v Th15s9nU6TkqR1ndcteBjet1+MJ9jfM= X-Google-Smtp-Source: ALg8bN6XPzPgE930UMCNZ13v38dL66uTZBwTvIREKbZ1KZNU+yTP5vrTrYUsz/vLTlshYEnfXg3pyQ== X-Received: by 2002:a2e:5747:: with SMTP id r7-v6mr6209899ljd.141.1547136864487; Thu, 10 Jan 2019 08:14:24 -0800 (PST) Received: from rafalkozik.semihalf.local (31-172-191-173.noc.fibertech.net.pl. [31.172.191.173]) by smtp.gmail.com with ESMTPSA id y81-v6sm15558112lje.30.2019.01.10.08.14.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 10 Jan 2019 08:14:23 -0800 (PST) From: Rafal Kozik To: dev@dpdk.org, keith.wiles@intel.com Cc: mw@semihalf.com, mk@semihalf.com, gtzalik@amazon.com, evgenys@amazon.com, matua@amazon.com, igorch@amazon.com, Rafal Kozik Date: Thu, 10 Jan 2019 17:14:06 +0100 Message-Id: <1547136846-23319-6-git-send-email-rk@semihalf.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1547136846-23319-1-git-send-email-rk@semihalf.com> References: <1547136846-23319-1-git-send-email-rk@semihalf.com> Subject: [dpdk-dev] [PATCH 5/5] [pktgen] fix cleanup of not sent packets X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Not sent packets are copied to the beginning of array to be reused in next iteration. But as in some cases more than half of mbuf could not be sent, source and destination locations would overlap. In such case rte_memcpy cannot be used. One of side effects is double sending the same mbuf and as a consequence double returning it to the mempool. Fixes: 2bf1eecea240 ("fixup code for 18.05 and cleanup") Signed-off-by: Rafal Kozik --- app/pktgen.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/pktgen.c b/app/pktgen.c index f7eee07..c1039a6 100644 --- a/app/pktgen.c +++ b/app/pktgen.c @@ -272,11 +272,10 @@ _send_burst_fast(port_info_t *info, uint16_t qid) { struct mbuf_table *mtab = &info->q[qid].tx_mbufs; struct rte_mbuf **pkts; - uint32_t ret, cnt, sav, retry; + uint32_t ret, cnt, retry, i; cnt = mtab->len; mtab->len = 0; - sav = cnt; pkts = mtab->m_table; @@ -299,8 +298,8 @@ _send_burst_fast(port_info_t *info, uint16_t qid) } } if (cnt) { - rte_memcpy(&mtab->m_table[0], &mtab->m_table[sav - cnt], - sizeof(char *) * cnt); + for (i = 0; i < cnt; i++) + mtab->m_table[i] = pkts[i]; mtab->len = cnt; } }