From patchwork Sat Jun 8 00:19:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 54553 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 30A7F1BC91; Sat, 8 Jun 2019 02:20:16 +0200 (CEST) Received: from mail-pg1-f193.google.com (mail-pg1-f193.google.com [209.85.215.193]) by dpdk.org (Postfix) with ESMTP id 0864B1BC20 for ; Sat, 8 Jun 2019 02:20:13 +0200 (CEST) Received: by mail-pg1-f193.google.com with SMTP id f25so1954677pgv.10 for ; Fri, 07 Jun 2019 17:20:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=lx7mNNtKZOJfi54i/SUlINrC4myA0zQHh+IpidBgz5c=; b=nPJGiB1Cy/NhNzdjD3KSHv/xVGMYS2e8Ncjrs6zTvIwgV/oiUpG3UKK1dmv1gZ3WNf ncPFDkX6b+ZPZq0DadKlNt4vFOT7ZvBZMJpnbl8qtR6FILNbm1KpF8AeNR867TlpC87M MFoP0pWnxWMww/dvQIeUGryzQGM2MuFbfmVExMByHgQe+secNQUY5rFA3xxdEpPvzwBl chSrZG3xOy8o+OfrfDBLRZfCbqGNLU1GU97LqDQ6tcOif2h9QOtkedhQmeP/8854GUna 6hbHeqej/SD44jtmzArqCYNteM+4R2KspvX/vcmzKYy6oiObxUWM6EUP0sw51/maMt8f a4mA== 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:mime-version:content-transfer-encoding; bh=lx7mNNtKZOJfi54i/SUlINrC4myA0zQHh+IpidBgz5c=; b=FJjrazGcUO6+RvFkQ7fR00xQNs4LPn/zzqDalBpP7seDQJgKCfhYbHG1b+dLk5mHHk SwEf1L7XTu/7g7Um2x8uUtjWVBSTWCvKU2w7jriY3DdInHU+tRhwIYmMJeZXdkhvhI5n gsT5hoysLzkuqFMkLU0urq4nymXRBnQqc0mD69HvRTK3LgeRpYzskUJQEY3wkkHAT00H jBAJZCp6r9CvI9OwhYwcNpcp6ZCUFhs1DBe/7SQ3C2ISPrGD7kWjgd/QAO4b1nod8m1E U2qhEWpmIT3sjD0BIKDA6FXnkqQfVH6Zog4ondy5IIqOm1L4NvPimL9PxS5uClT/hTmN pgXA== X-Gm-Message-State: APjAAAVtqwK9wcZw5bbpTxAPmzCBG6ss7zJElh7gDwQjIXG6HeJich8p 40uu5XjNbLJFm/nxW7ca5h0bNQ== X-Google-Smtp-Source: APXvYqw/hgz0HEwtGthLPjdDt/Jq5VvqmuC0clAwPGkJ1lvr2p6dLc8+szloZ85KuExYsbXRzBKVhw== X-Received: by 2002:a17:90a:9905:: with SMTP id b5mr2567732pjp.70.1559953212244; Fri, 07 Jun 2019 17:20:12 -0700 (PDT) Received: from hermes.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id n184sm4012463pfn.21.2019.06.07.17.20.11 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Fri, 07 Jun 2019 17:20:11 -0700 (PDT) From: Stephen Hemminger To: ferruh.yigit@intel.com Cc: dev@dpdk.org, Stephen Hemminger Date: Fri, 7 Jun 2019 17:19:55 -0700 Message-Id: <20190608002003.19942-2-stephen@networkplumber.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190608002003.19942-1-stephen@networkplumber.org> References: <20190608002003.19942-1-stephen@networkplumber.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 1/9] kni: don't need stubs for rx_mode or ioctl 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" The netdev subsystem already handles case where network sevice does not support ioctl. If device has no rx_mode hook it is not called. Signed-off-by: Stephen Hemminger --- kernel/linux/kni/kni_net.c | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/kernel/linux/kni/kni_net.c b/kernel/linux/kni/kni_net.c index ad8365877cda..c86337d099ab 100644 --- a/kernel/linux/kni/kni_net.c +++ b/kernel/linux/kni/kni_net.c @@ -593,23 +593,6 @@ kni_net_tx_timeout(struct net_device *dev) netif_wake_queue(dev); } -/* - * Ioctl commands - */ -static int -kni_net_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) -{ - pr_debug("kni_net_ioctl group:%d cmd:%d\n", - ((struct kni_dev *)netdev_priv(dev))->group_id, cmd); - - return -EOPNOTSUPP; -} - -static void -kni_net_set_rx_mode(struct net_device *dev) -{ -} - static int kni_net_change_mtu(struct net_device *dev, int new_mtu) { @@ -758,8 +741,6 @@ static const struct net_device_ops kni_net_netdev_ops = { .ndo_change_rx_flags = kni_net_set_promiscusity, .ndo_start_xmit = kni_net_tx, .ndo_change_mtu = kni_net_change_mtu, - .ndo_do_ioctl = kni_net_ioctl, - .ndo_set_rx_mode = kni_net_set_rx_mode, .ndo_get_stats = kni_net_stats, .ndo_tx_timeout = kni_net_tx_timeout, .ndo_set_mac_address = kni_net_set_mac, From patchwork Sat Jun 8 00:19:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 54554 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 C4EE31BC99; Sat, 8 Jun 2019 02:20:18 +0200 (CEST) Received: from mail-pl1-f193.google.com (mail-pl1-f193.google.com [209.85.214.193]) by dpdk.org (Postfix) with ESMTP id 235591BC84 for ; Sat, 8 Jun 2019 02:20:14 +0200 (CEST) Received: by mail-pl1-f193.google.com with SMTP id bi6so1008303plb.12 for ; Fri, 07 Jun 2019 17:20:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=VLK4KVn81E10EBS5qXls3g7KXlhM31ZSO449iJbEFmE=; b=uIljI+cttZOf9SwS0j4EiRElfqlCIcJj0n3G7q6VdlzTVxUAddxhH0/rmcHmmmwawT DNV9suRNFxM2muYnaTx5+NvowMhpjr6znp9KL0gAnZkYkDDtfocwgSDOlyYITBSJpRg6 3GAnH6brV8+oIgu8GgHqWc8NuzfCvS1ghCrSqo8Suy890cDE0yOu3Fw1MTUd9jPwhPp/ oEWch2HbsMrgSvB6xouljPGXgXbSU1vjYz8g2u5NY7wXwESVKPfg2k4eTWf1l/3N7c8f fJ0wmpZ76uTKOoYSEjaQBcrf4L3inEOnbjET3zWh+/V528aUWl2TBgpDJ8rsB9Djt7wy FNCQ== 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:mime-version:content-transfer-encoding; bh=VLK4KVn81E10EBS5qXls3g7KXlhM31ZSO449iJbEFmE=; b=bj3w0P3JSMXGvbdnQZq3CsQxHCm1vzPXX1KzY8MqHByrxIvBDZ2xZAYJJHV/BabHAq jKMSAM6gBjaVrBo21ATr1/zbFVqy1mcBhvh3n8U/mJPcUC1b3hXC2I8x3W6TIdMPTTeR fkwdYGfn6zS+pTlMsrlptyBm/6UhRkps6AOa7yWUTQxrwmaCWGNc1N/XGq76x1jEhxSo a+MDzCuSCQH7Ao0zyiCD06xPlPzvFoaLwtkjPP6qs+4J8NPgIecmR/di7BLvyfxhGfqC Y5rcgAc5ZmwOVzswrHvgChcBAZ7zZNVmNW0+tUPIjYGZKkb+BIEwjG2GqSsQs4wyzoja R9hg== X-Gm-Message-State: APjAAAWP03wxHTIkN7KZpMHWuAz9FOYeXOSZYkBj6nMx5WSvL8cBkHi1 5cOmm2P+oaZk4/SrQv1ZcuFhpQ== X-Google-Smtp-Source: APXvYqynM/zVRQwkIiBMi4rma0idAMSJT4BY7/QcZUamqnCs9ud4o/Izo8NNv/5iE2HI3EWIYwZxbg== X-Received: by 2002:a17:902:934b:: with SMTP id g11mr46123420plp.245.1559953213361; Fri, 07 Jun 2019 17:20:13 -0700 (PDT) Received: from hermes.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id n184sm4012463pfn.21.2019.06.07.17.20.12 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Fri, 07 Jun 2019 17:20:12 -0700 (PDT) From: Stephen Hemminger To: ferruh.yigit@intel.com Cc: dev@dpdk.org, Stephen Hemminger Date: Fri, 7 Jun 2019 17:19:56 -0700 Message-Id: <20190608002003.19942-3-stephen@networkplumber.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190608002003.19942-1-stephen@networkplumber.org> References: <20190608002003.19942-1-stephen@networkplumber.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 2/9] kni: use netdev_alloc_skb 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" netdev_alloc_skb is optimized to any alignment or setup of skb->dev that is required. The kernel has chosen to not pad packets on x86 (for many years), because it is faster. Signed-off-by: Stephen Hemminger --- kernel/linux/kni/kni_net.c | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/kernel/linux/kni/kni_net.c b/kernel/linux/kni/kni_net.c index c86337d099ab..2f2c30cc13ff 100644 --- a/kernel/linux/kni/kni_net.c +++ b/kernel/linux/kni/kni_net.c @@ -340,16 +340,13 @@ kni_net_rx_normal(struct kni_dev *kni) data_kva = kva2data_kva(kva); kni->va[i] = pa2va(kni->pa[i], kva); - skb = dev_alloc_skb(len + 2); + skb = netdev_alloc_skb(dev, len + 2); if (!skb) { /* Update statistics */ kni->stats.rx_dropped++; continue; } - /* Align IP on 16B boundary */ - skb_reserve(skb, 2); - if (kva->nb_segs == 1) { memcpy(skb_put(skb, len), data_kva, len); } else { @@ -368,7 +365,6 @@ kni_net_rx_normal(struct kni_dev *kni) } } - skb->dev = dev; skb->protocol = eth_type_trans(skb, dev); skb->ip_summed = CHECKSUM_UNNECESSARY; @@ -512,26 +508,20 @@ kni_net_rx_lo_fifo_skb(struct kni_dev *kni) data_kva = kva2data_kva(kva); kni->va[i] = pa2va(kni->pa[i], kva); - skb = dev_alloc_skb(len + 2); + skb = netdev_alloc_skb(dev, len + 2); if (skb) { - /* Align IP on 16B boundary */ - skb_reserve(skb, 2); memcpy(skb_put(skb, len), data_kva, len); - skb->dev = dev; skb->ip_summed = CHECKSUM_UNNECESSARY; dev_kfree_skb(skb); } /* Simulate real usage, allocate/copy skb twice */ - skb = dev_alloc_skb(len + 2); + skb = netdev_alloc_skb(dev, len + 2); if (skb == NULL) { kni->stats.rx_dropped++; continue; } - /* Align IP on 16B boundary */ - skb_reserve(skb, 2); - if (kva->nb_segs == 1) { memcpy(skb_put(skb, len), data_kva, len); } else { @@ -550,7 +540,6 @@ kni_net_rx_lo_fifo_skb(struct kni_dev *kni) } } - skb->dev = dev; skb->ip_summed = CHECKSUM_UNNECESSARY; kni->stats.rx_bytes += len; From patchwork Sat Jun 8 00:19:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 54555 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 8EF9A1BCA1; Sat, 8 Jun 2019 02:20:21 +0200 (CEST) Received: from mail-pl1-f193.google.com (mail-pl1-f193.google.com [209.85.214.193]) by dpdk.org (Postfix) with ESMTP id 34BAF1BC8B for ; Sat, 8 Jun 2019 02:20:15 +0200 (CEST) Received: by mail-pl1-f193.google.com with SMTP id f97so1411447plb.5 for ; Fri, 07 Jun 2019 17:20:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=xZP8uuHnMPF6SsL5oCR0LwKIQA7DxoryoCZLk7YFjuU=; b=LDDqNQoZW1QEUK1YMHe2h0pIgkg9EjxEvWa7lK13fe89xy5ri2/sIkfBuPDR0h5iY/ N//z8GfvEAmmyvLdBzGCPhtp0KWnyavP62bxQvJCcnsBLxN6VJ0YDloM89IAUyvFnrBU lpNMax57/ZQ9IALS5bSht2N+ZlPFCjwVYNjOMkERl7gG+Ex2Q36+q7iazxr5H721Au/8 VopOm6gYPVCRipZYHRDeUKfX6n6lQhA1549CW9QpQZP0IHqbPSpRNWygsqZZRA9b66gC P1BQV1i/kFtEuxpu/7gYX4YdUNMO7Q5A7RGlnyhK3WaBhyUfiD6Ilj1NU7sPhWUqmlXH ikPg== 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:mime-version:content-transfer-encoding; bh=xZP8uuHnMPF6SsL5oCR0LwKIQA7DxoryoCZLk7YFjuU=; b=nmb53VopGebILXPUf7FCyq7DeHxoSzOefLcXzUrcIeQIHtwrKr7xp+yNFYuSPB/DqT R2/CqZSoZUL3XPFCKDZXOKkqRGPFzBsnMu7UC1Rg1HK75riBDQpwtDyROTJpd5GkRK0U ORWQBk6uukfwuHnCnZKhgD2qljvy27pLZN9RifyIHHj6K1vlPjEhM1WBUV3OTiY5qryt WIJNImTlHeVADIRDAh9NLXdbVfphzyT/MatliX9W80R8kWVvazEwO9Lh0csK3BMF/gpB KXvI/bKMtSakX8xCxPY78R+qzNMukHLweFAM2O9dAV7cLdpV6IfGFQLRGyM1e9+JMNMk /Mig== X-Gm-Message-State: APjAAAWAgijJO1NmvbRx0Q3CFp20bgZLXvTb5uni6uPCzqxAhtpDWhot Ug7N6wWObpuJfA+7XyNpQjiFTQ== X-Google-Smtp-Source: APXvYqwoBIjKiHMFNitT35ka/IQWvDKl8wCmWEbG78NJuQl9tGtf4Bn+z90YQvQubLSdFajDf1+mew== X-Received: by 2002:a17:902:bc8a:: with SMTP id bb10mr9336676plb.310.1559953214425; Fri, 07 Jun 2019 17:20:14 -0700 (PDT) Received: from hermes.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id n184sm4012463pfn.21.2019.06.07.17.20.13 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Fri, 07 Jun 2019 17:20:13 -0700 (PDT) From: Stephen Hemminger To: ferruh.yigit@intel.com Cc: dev@dpdk.org, Stephen Hemminger Date: Fri, 7 Jun 2019 17:19:57 -0700 Message-Id: <20190608002003.19942-4-stephen@networkplumber.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190608002003.19942-1-stephen@networkplumber.org> References: <20190608002003.19942-1-stephen@networkplumber.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 3/9] kni: drop unused field 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" The kni net structure only exists in driver no API/ABI. Signed-off-by: Stephen Hemminger --- kernel/linux/kni/kni_dev.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/kernel/linux/kni/kni_dev.h b/kernel/linux/kni/kni_dev.h index 44a5a61f7279..0117941e5a6c 100644 --- a/kernel/linux/kni/kni_dev.h +++ b/kernel/linux/kni/kni_dev.h @@ -83,9 +83,6 @@ struct kni_dev { /* mbuf size */ uint32_t mbuf_size; - /* synchro for request processing */ - unsigned long synchro; - /* buffers */ void *pa[MBUF_BURST_SZ]; void *va[MBUF_BURST_SZ]; From patchwork Sat Jun 8 00:19:58 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 54556 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 902491BCA8; Sat, 8 Jun 2019 02:20:23 +0200 (CEST) Received: from mail-pl1-f196.google.com (mail-pl1-f196.google.com [209.85.214.196]) by dpdk.org (Postfix) with ESMTP id 2C4261BC90 for ; Sat, 8 Jun 2019 02:20:16 +0200 (CEST) Received: by mail-pl1-f196.google.com with SMTP id e5so1396763pls.13 for ; Fri, 07 Jun 2019 17:20:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0BF7TvQ3KRCQ5/+FDBE4nRbCnyCJ5/a43U8y9ZsxCi8=; b=vV4HhRYlQvyBXLeqgbSkgGSGyeZQ2kYLut/z0KlKOasyvJYfALdxW+CYPxXFRr+xJZ lNHfq287WOEPD49x5dGrLoNJQx5R0xbuoV/D8N1FmPhun0Y5aFaxMmRfDx29BJNAm4WI wBV0URQUtSlu/RHW2f7+xbaw4Gzb502oXUmofV9+Idj/5JmXXD+IWF7e85X6eqkRj6IH wNyy/2QSTApPTzLFW1C2qOhzd4mB6Oc14ZUJHdvk+TQIFOrfJA1DzFakz10kDiPCzz4D qWfxS/jVy1IApQfuch76SJTpyAycu6CO1F07vmejIVaEV95AANW7wVKL+NumNiVXNcyp +ALQ== 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:mime-version:content-transfer-encoding; bh=0BF7TvQ3KRCQ5/+FDBE4nRbCnyCJ5/a43U8y9ZsxCi8=; b=fU8BmBiMuju/YD4ObnZIIgTa0BHEaIMsFWS8ztyrIrhHMc68LnTCJb/wY67idOBOeb yMJlnW/Xhvfi6V//+FTSYcYceZY3s83omDtBtJ0pmX03zt7ufCF2eyiVTh0vb1XJ5kUc b50rptDJRbJ0kqezo3KdZA02XjRysHVibA49WtR7AKC/bWi4YG76vjNIC6cCDhlJIqWv yN+rwvbaxZ1AvHQx3t3qXMu2R+flOmMC7Fu4iWrhW0SFhd1r9CJ0AALMRmIgslZU2o69 BtRRitH+/rZvVR61Gm3Lnh+HcNg8NlL20Y5FrBFzGpCfrMJzqVws7HuAquEd3ON29hKf 5D1g== X-Gm-Message-State: APjAAAUe4l672KtmwTo78VAUIRWvulLlnj7CVM1FjCfgQ0F1ue57Oo4S J/z/LkuwyvlbBg7RZ5Gco8OjzQ== X-Google-Smtp-Source: APXvYqxSUEOvX1up7V0lfC0dp4magVm1ddBRQyFWyGyuf742vYKLAqeN8+4ZpByG06bssAVcFlga+Q== X-Received: by 2002:a17:902:b682:: with SMTP id c2mr59530855pls.9.1559953215355; Fri, 07 Jun 2019 17:20:15 -0700 (PDT) Received: from hermes.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id n184sm4012463pfn.21.2019.06.07.17.20.14 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Fri, 07 Jun 2019 17:20:14 -0700 (PDT) From: Stephen Hemminger To: ferruh.yigit@intel.com Cc: dev@dpdk.org, Stephen Hemminger Date: Fri, 7 Jun 2019 17:19:58 -0700 Message-Id: <20190608002003.19942-5-stephen@networkplumber.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190608002003.19942-1-stephen@networkplumber.org> References: <20190608002003.19942-1-stephen@networkplumber.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 4/9] kni: don't keep stats in kni_net 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" Since kernel 2.6.28 the network subsystem has provided dev->stats for devices to use statistics handling and is the default if no ndo_get_stats is provided. This allow allows for 64 bit (rather than just 32 bit) statistics with KNI. Signed-off-by: Stephen Hemminger --- kernel/linux/kni/kni_dev.h | 1 - kernel/linux/kni/kni_net.c | 43 +++++++++++++------------------------- 2 files changed, 15 insertions(+), 29 deletions(-) diff --git a/kernel/linux/kni/kni_dev.h b/kernel/linux/kni/kni_dev.h index 0117941e5a6c..ca3b07678b96 100644 --- a/kernel/linux/kni/kni_dev.h +++ b/kernel/linux/kni/kni_dev.h @@ -39,7 +39,6 @@ struct kni_dev { /* kni list */ struct list_head list; - struct net_device_stats stats; int status; uint16_t group_id; /* Group ID of a group of KNI devices */ uint32_t core_id; /* Core ID to bind */ diff --git a/kernel/linux/kni/kni_net.c b/kernel/linux/kni/kni_net.c index 2f2c30cc13ff..564b9de3db87 100644 --- a/kernel/linux/kni/kni_net.c +++ b/kernel/linux/kni/kni_net.c @@ -291,15 +291,15 @@ kni_net_tx(struct sk_buff *skb, struct net_device *dev) /* Free skb and update statistics */ dev_kfree_skb(skb); - kni->stats.tx_bytes += len; - kni->stats.tx_packets++; + dev->stats.tx_bytes += len; + dev->stats.tx_packets++; return NETDEV_TX_OK; drop: /* Free skb and update statistics */ dev_kfree_skb(skb); - kni->stats.tx_dropped++; + dev->stats.tx_dropped++; return NETDEV_TX_OK; } @@ -343,7 +343,7 @@ kni_net_rx_normal(struct kni_dev *kni) skb = netdev_alloc_skb(dev, len + 2); if (!skb) { /* Update statistics */ - kni->stats.rx_dropped++; + dev->stats.rx_dropped++; continue; } @@ -372,8 +372,8 @@ kni_net_rx_normal(struct kni_dev *kni) netif_rx_ni(skb); /* Update statistics */ - kni->stats.rx_bytes += len; - kni->stats.rx_packets++; + dev->stats.rx_bytes += len; + dev->stats.rx_packets++; } /* Burst enqueue mbufs into free_q */ @@ -396,6 +396,7 @@ kni_net_rx_lo_fifo(struct kni_dev *kni) void *data_kva; struct rte_kni_mbuf *alloc_kva; void *alloc_data_kva; + struct net_device *dev = kni->net_dev; /* Get the number of entries in rx_q */ num_rq = kni_fifo_count(kni->rx_q); @@ -443,8 +444,8 @@ kni_net_rx_lo_fifo(struct kni_dev *kni) alloc_kva->pkt_len = len; alloc_kva->data_len = len; - kni->stats.tx_bytes += len; - kni->stats.rx_bytes += len; + dev->stats.tx_bytes += len; + dev->stats.rx_bytes += len; } /* Burst enqueue mbufs into tx_q */ @@ -464,8 +465,8 @@ kni_net_rx_lo_fifo(struct kni_dev *kni) * Update statistic, and enqueue/dequeue failure is impossible, * as all queues are checked at first. */ - kni->stats.tx_packets += num; - kni->stats.rx_packets += num; + dev->stats.tx_packets += num; + dev->stats.rx_packets += num; } /* @@ -518,7 +519,7 @@ kni_net_rx_lo_fifo_skb(struct kni_dev *kni) /* Simulate real usage, allocate/copy skb twice */ skb = netdev_alloc_skb(dev, len + 2); if (skb == NULL) { - kni->stats.rx_dropped++; + dev->stats.rx_dropped++; continue; } @@ -542,8 +543,8 @@ kni_net_rx_lo_fifo_skb(struct kni_dev *kni) skb->ip_summed = CHECKSUM_UNNECESSARY; - kni->stats.rx_bytes += len; - kni->stats.rx_packets++; + dev->stats.rx_bytes += len; + dev->stats.rx_packets++; /* call tx interface */ kni_net_tx(skb, dev); @@ -573,12 +574,10 @@ kni_net_rx(struct kni_dev *kni) static void kni_net_tx_timeout(struct net_device *dev) { - struct kni_dev *kni = netdev_priv(dev); - pr_debug("Transmit timeout at %ld, latency %ld\n", jiffies, jiffies - dev_trans_start(dev)); - kni->stats.tx_errors++; + dev->stats.tx_errors++; netif_wake_queue(dev); } @@ -627,17 +626,6 @@ kni_net_poll_resp(struct kni_dev *kni) wake_up_interruptible(&kni->wq); } -/* - * Return statistics to the caller - */ -static struct net_device_stats * -kni_net_stats(struct net_device *dev) -{ - struct kni_dev *kni = netdev_priv(dev); - - return &kni->stats; -} - /* * Fill the eth header */ @@ -730,7 +718,6 @@ static const struct net_device_ops kni_net_netdev_ops = { .ndo_change_rx_flags = kni_net_set_promiscusity, .ndo_start_xmit = kni_net_tx, .ndo_change_mtu = kni_net_change_mtu, - .ndo_get_stats = kni_net_stats, .ndo_tx_timeout = kni_net_tx_timeout, .ndo_set_mac_address = kni_net_set_mac, #ifdef HAVE_CHANGE_CARRIER_CB From patchwork Sat Jun 8 00:19:59 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 54557 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 807691BCAE; Sat, 8 Jun 2019 02:20:25 +0200 (CEST) Received: from mail-pf1-f194.google.com (mail-pf1-f194.google.com [209.85.210.194]) by dpdk.org (Postfix) with ESMTP id 3AE141BC90 for ; Sat, 8 Jun 2019 02:20:17 +0200 (CEST) Received: by mail-pf1-f194.google.com with SMTP id x15so2065642pfq.0 for ; Fri, 07 Jun 2019 17:20:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=MyR0bTf4Mt+he7JIm/J3aX664JMTwBCJZQUUdrjjaXE=; b=qD44xcJWdg0VBS+LLyUehorG052dRyCX2NHEeM4cxj6DZHSqKYZ25Qt8hvGwMJAsPO o9p93+vIIlbwCSSTnK/r4oSO9D3RiT9CUvCQwLhRutiVgNiLUDJqy2q3HPF4Lsl1FZDE v6kX178ENqkN5vkgS1ZSPnpTydpEXCMQ/pKT6bJPncEZXDGLejJrLCN0sNS+qjPwH9SA e9YPeoL3B6yVgRSIQ4Y6cBfTWUrjsLcYI2p4Cq6N7cbFSz0RjjmPQ7j+3JBDrxxqhBVQ lCJ4g9BXF5ZcBEfE32iFuNIb2z/eYl8gbCxDj+sqcX7s3Nz+E7BMX3Ncmt/ikb6o4kgo LetQ== 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:mime-version:content-transfer-encoding; bh=MyR0bTf4Mt+he7JIm/J3aX664JMTwBCJZQUUdrjjaXE=; b=uYp3LUdW+RfCV0fvg7Vabv0VSljsXtA4CZzOLuxWtoJHKMb9kKcFVoqid6FePebwx0 JTjU/2nguBDFcD3XC3iI58jZs6wdCLFeOq2MyUxaqj7b+2T8gLFHqqix6gFYci9AEhix TbVf2zfIhXyDRVYWM9/u2GRWUrc03+xaRso24ZFoKCElAzDog5VjlIO8Mb03zIlWq8c6 OZSEojwi/0q//Nv1rzIQ2zeo/jcfn385Cdcvs5zLEsfMv+U+Pc3irL0SgWctqBaGIte0 /Kmov8FqstOxOaXSNO9rG3pl0sqpYRRIX4Nn5Yyo88/sa4TRt2dD2arU9k22iQl54cQd hCXw== X-Gm-Message-State: APjAAAWt4j+4jQKXlXRnH9TUs5+xaw/i1oalnCI0amHDsg0Or+n7PEpa NmnzOB7eqg7Ds3ULj7H5NF9o50kdZZU= X-Google-Smtp-Source: APXvYqzaZ9+owUCJI5fW3JTtD4oX9DCJRSkCA73C5gUGeSV3IWbq9ELBrfYnGIg8I5ebeHCTumU+Dw== X-Received: by 2002:a17:90a:62cb:: with SMTP id k11mr8257620pjs.26.1559953216422; Fri, 07 Jun 2019 17:20:16 -0700 (PDT) Received: from hermes.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id n184sm4012463pfn.21.2019.06.07.17.20.15 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Fri, 07 Jun 2019 17:20:15 -0700 (PDT) From: Stephen Hemminger To: ferruh.yigit@intel.com Cc: dev@dpdk.org, Stephen Hemminger Date: Fri, 7 Jun 2019 17:19:59 -0700 Message-Id: <20190608002003.19942-6-stephen@networkplumber.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190608002003.19942-1-stephen@networkplumber.org> References: <20190608002003.19942-1-stephen@networkplumber.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 5/9] kni: drop unused group_id and device_id 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" Kni devices no longer are restricted to PCI and device_id in kni_dev is no longer used. The group_id is set but never used. The fields do need to stay in the ABI (dev_info) but kernel can ignore them. Signed-off-by: Stephen Hemminger --- kernel/linux/kni/kni_dev.h | 4 ---- kernel/linux/kni/kni_misc.c | 1 - 2 files changed, 5 deletions(-) diff --git a/kernel/linux/kni/kni_dev.h b/kernel/linux/kni/kni_dev.h index ca3b07678b96..e39af97feaa7 100644 --- a/kernel/linux/kni/kni_dev.h +++ b/kernel/linux/kni/kni_dev.h @@ -40,7 +40,6 @@ struct kni_dev { struct list_head list; int status; - uint16_t group_id; /* Group ID of a group of KNI devices */ uint32_t core_id; /* Core ID to bind */ char name[RTE_KNI_NAMESIZE]; /* Network device name */ struct task_struct *pthread; @@ -49,9 +48,6 @@ struct kni_dev { wait_queue_head_t wq; struct mutex sync_lock; - /* PCI device id */ - uint16_t device_id; - /* kni device */ struct net_device *net_dev; diff --git a/kernel/linux/kni/kni_misc.c b/kernel/linux/kni/kni_misc.c index af18c67c422f..6a206d883c0d 100644 --- a/kernel/linux/kni/kni_misc.c +++ b/kernel/linux/kni/kni_misc.c @@ -346,7 +346,6 @@ kni_ioctl_create(struct net *net, uint32_t ioctl_num, kni = netdev_priv(net_dev); kni->net_dev = net_dev; - kni->group_id = dev_info.group_id; kni->core_id = dev_info.core_id; strncpy(kni->name, dev_info.name, RTE_KNI_NAMESIZE); From patchwork Sat Jun 8 00:20:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 54558 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 6F2201BCBF; Sat, 8 Jun 2019 02:20:27 +0200 (CEST) Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) by dpdk.org (Postfix) with ESMTP id 449101BC90 for ; Sat, 8 Jun 2019 02:20:18 +0200 (CEST) Received: by mail-pl1-f172.google.com with SMTP id bi6so1008341plb.12 for ; Fri, 07 Jun 2019 17:20:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=DkMICJC44FpioI1l97G6gdFzwIiAPIkef35HJZnz2sQ=; b=0vu6VCD/+m7JRnH7i0jRU64AqfmDJe/aYnfu0npBq1si7OpkVC1jZ7keCYNnoNq7m0 F4U7Cag6yWNNlY3nDICZQ/LVS7CA3hWt4Y+vKKuk9y33pNBTVS3pa/YW0j8hgRxeAeAq axX5Tyu9KhFW3mNzxlY6PVhpKIBOPmk9qkqu5SjUCJokIX5cpWyk3sEIndq5MUKAmtYw 75Rz3WYDiAhatcB4DbavTwCtTK9ooGr5kSGhfgiPWDoMcxD5LrHPkK8GGz9TOGUjrIjC A0LGFWjfF3TcBGD9NAZBZloDf921arECvEZWGPTQ1oOJbC3kH7uNgAaaQIpWFCQOftFY 8lcg== 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:mime-version:content-transfer-encoding; bh=DkMICJC44FpioI1l97G6gdFzwIiAPIkef35HJZnz2sQ=; b=hMvlrcgLV2MZhq25t/qrHMDIaNx9OHeZo0+lcEMz8bNypDcLuWwEB5gp7YC4glSh9Z YdjMsXIBU/7MJW/Jhue/l+wyBAlnrHBFPWBCgp1Y8G0esrAiNgZNt9quKJFPejfreDOB 4eeIQZs7mlCFB5x30QLyWspS2DNOHXKym51rtBijy8/mAmcpZqjC+HtQ004U260nXmYy chm2wwJASFny1adw/85Q2zJ1dbuaAPRxFF5PASea5P0+wKnN6DYf8K4tZVlnx/Fra87O wbZbJiM8Z+dc6WCCG6MuWHE6wp/C+dUuaN9BIBq/Zp9I6G1n1zyvolQ27u5U0IvHpJfc 5lUw== X-Gm-Message-State: APjAAAU4VCjtiaZKByv+fQcjTorgnGbOHu2rqwx2yKA8roelIDuJeFxo YxT48B8Xv5qlUzRz4Y7RsAp5Jg== X-Google-Smtp-Source: APXvYqzNl7VgJQRye0l6l7b0CFjiW//3XgCrk3FWBEUj2hjOOzLFlo4uN+dtIptes9Ok1Poatgsa2A== X-Received: by 2002:a17:902:aa08:: with SMTP id be8mr57465243plb.177.1559953217521; Fri, 07 Jun 2019 17:20:17 -0700 (PDT) Received: from hermes.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id n184sm4012463pfn.21.2019.06.07.17.20.16 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Fri, 07 Jun 2019 17:20:16 -0700 (PDT) From: Stephen Hemminger To: ferruh.yigit@intel.com Cc: dev@dpdk.org, Stephen Hemminger Date: Fri, 7 Jun 2019 17:20:00 -0700 Message-Id: <20190608002003.19942-7-stephen@networkplumber.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190608002003.19942-1-stephen@networkplumber.org> References: <20190608002003.19942-1-stephen@networkplumber.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 6/9] kni: drop unused status element 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" Yet another ethtool leftover. Signed-off-by: Stephen Hemminger --- kernel/linux/kni/kni_dev.h | 1 - 1 file changed, 1 deletion(-) diff --git a/kernel/linux/kni/kni_dev.h b/kernel/linux/kni/kni_dev.h index e39af97feaa7..f3e6c3ca4efa 100644 --- a/kernel/linux/kni/kni_dev.h +++ b/kernel/linux/kni/kni_dev.h @@ -39,7 +39,6 @@ struct kni_dev { /* kni list */ struct list_head list; - int status; uint32_t core_id; /* Core ID to bind */ char name[RTE_KNI_NAMESIZE]; /* Network device name */ struct task_struct *pthread; From patchwork Sat Jun 8 00:20:01 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 54559 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 253851BCC8; Sat, 8 Jun 2019 02:20:29 +0200 (CEST) Received: from mail-pl1-f196.google.com (mail-pl1-f196.google.com [209.85.214.196]) by dpdk.org (Postfix) with ESMTP id 602A81BC9C for ; Sat, 8 Jun 2019 02:20:19 +0200 (CEST) Received: by mail-pl1-f196.google.com with SMTP id cl9so1398176plb.10 for ; Fri, 07 Jun 2019 17:20:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=MaX/9U1VKQDRlwJP1eh9LKqP+HAkhTNljy8r1/SknpU=; b=xV1aLb9eawlaYSRvSpjMH6mG1a3h7Qn+XApJUUObSW4xznEeUq5QjlZlHJEtWn9tWO Jz8SppAR2CVMGNIwGi9F0/dlx8Bm5eTAJK9Q1T9XGO7V8EdBCggXTjYFNp7+NzyREPKi mF92ebKYLad5hGwFbbMxlDgBxuSnMmObtPknAXoQdVX8Z7vXiMOabLQBd8y+OcGPN0GQ xXj4W2ZBpGeITwGP65ztssJSpcTePpv27AtLJlBjkmE/Cp+F0VZuiDw1G0xMBBK2DScT WlDg35PDwEPGr2hfCswGfYEJ03M3ogttLzbEcauo2ESmURx8q4/qAu22AyLVtgj1adWI XZWQ== 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:mime-version:content-transfer-encoding; bh=MaX/9U1VKQDRlwJP1eh9LKqP+HAkhTNljy8r1/SknpU=; b=ImaPXy7Yc4nxxZvLyQGkUzDuxqdtGcmKEOU2BuekWniGKg0zh3gaqXBiRu96m1zk5w 01wFqIockGhL8ALlaD9mSdnJ/8GSwzoo+lv+dvl3ktFySNvFxJAehOkXiS/2PjlYZS0P yu/lRBSlU0ZfrsBv8n9IuFcr+dNYN6xCOQkOTMk0U9EujI4/6NE5fpntaAaN/OuXsdtA k8rDi6r9vTLyqwqmBAOgwUDSXHdtz5nzhpPQukRNqpEtaXXsX8ZTWlWsh+i+rlSoDiau 6p7s7m5ZJHJJNQ5qj1xcm0dDP5Dqwcs2vLruTlKyFthtsj0I2Lsn9MSJnN5+xmMHK3ZB UFbQ== X-Gm-Message-State: APjAAAUSP3Oewhc1wcIWGWarqtBBqYq8oYzD3L45LWdEYUvlqFfT4QS2 mFaB1aC47OOhZEHPhjGmoh4I2g== X-Google-Smtp-Source: APXvYqz1PguDsfBzC6MVfbqGdZUZ/+/r2ZIjG75dEe05oVz0iM5gFBD4t5JBiVIEQoCaJ1WuMz3Xeg== X-Received: by 2002:a17:902:e30e:: with SMTP id cg14mr4750681plb.161.1559953218649; Fri, 07 Jun 2019 17:20:18 -0700 (PDT) Received: from hermes.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id n184sm4012463pfn.21.2019.06.07.17.20.17 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Fri, 07 Jun 2019 17:20:18 -0700 (PDT) From: Stephen Hemminger To: ferruh.yigit@intel.com Cc: dev@dpdk.org, Stephen Hemminger Date: Fri, 7 Jun 2019 17:20:01 -0700 Message-Id: <20190608002003.19942-8-stephen@networkplumber.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190608002003.19942-1-stephen@networkplumber.org> References: <20190608002003.19942-1-stephen@networkplumber.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 7/9] kni: use proper type for kni fifo's 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" Using void * instead of proper type is unsafe practice. Signed-off-by: Stephen Hemminger --- kernel/linux/kni/kni_dev.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/kernel/linux/kni/kni_dev.h b/kernel/linux/kni/kni_dev.h index f3e6c3ca4efa..ceba5f73c1d9 100644 --- a/kernel/linux/kni/kni_dev.h +++ b/kernel/linux/kni/kni_dev.h @@ -51,22 +51,22 @@ struct kni_dev { struct net_device *net_dev; /* queue for packets to be sent out */ - void *tx_q; + struct rte_kni_fifo *tx_q; /* queue for the packets received */ - void *rx_q; + struct rte_kni_fifo *rx_q; /* queue for the allocated mbufs those can be used to save sk buffs */ - void *alloc_q; + struct rte_kni_fifo *alloc_q; /* free queue for the mbufs to be freed */ - void *free_q; + struct rte_kni_fifo *free_q; /* request queue */ - void *req_q; + struct rte_kni_fifo *req_q; /* response queue */ - void *resp_q; + struct rte_kni_fifo *resp_q; void *sync_kva; void *sync_va; From patchwork Sat Jun 8 00:20:02 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 54560 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 A4B591BCCF; Sat, 8 Jun 2019 02:20:30 +0200 (CEST) Received: from mail-pl1-f194.google.com (mail-pl1-f194.google.com [209.85.214.194]) by dpdk.org (Postfix) with ESMTP id 574B11BC9C for ; Sat, 8 Jun 2019 02:20:20 +0200 (CEST) Received: by mail-pl1-f194.google.com with SMTP id e5so1396807pls.13 for ; Fri, 07 Jun 2019 17:20:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1NDmwzHrmZPX3u9NF7x3GeKUDjSznkLaHCXozcreu7g=; b=vYWljLV84nYy7LAjidpKaA1ljLSa85uyLJ1wcWbhXWP+la1iH5qST7h9tFrEdvQc+I lFckYKiyME1upwnYcITsB7zDj2C7HdPRKe/XUmpeplbbHbpctA71hi/e2J5RXMstBJMc uk6fVu1hnRkzJ1HfTJ5hCaWO489VZ4pYTe1Y0O1oZ8AhLcIicmxspf5yWbYaUZWgWi+t kHEu/xbLfiOqQxRsKy2qjeL2lzwepS5GfU//u2QdsINg/kYWcpOYQIxcY+iQMlYMGv91 y9g4biE6UT2fhBMKHpYxuhGfzXQl88jiM4GvNDnpIKFkqpQZmWh5RUt/tDxUDXSEHHZM DyDQ== 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:mime-version:content-transfer-encoding; bh=1NDmwzHrmZPX3u9NF7x3GeKUDjSznkLaHCXozcreu7g=; b=PrRuzP1BX1491mNoKIKZFt3s0YHFZ6Fejzuoqkio5zIFJyMlgzr7lVnNMW1w59n9kz qux/mHVvVGc0Y47cvklifh0PErQ3EQXzOYCrYbhY5aToaPDccpE7/ZZDl3dWxr30SIWr wYBCH43VRxhCvgETFpeOyjdE+uyEXsxWumef0JMyodRdyvUZ2qgsho5GZtEvtLjFBUP/ gWQkldkhYo53yxdA1nFUVwmrpDtqUHtSnxbus2mwnvbGvIQ75Z/nfAmh+LmmXvgJ6PMW Lh0WGj7sXTWztgfUpKjEIp6sndwcV2r5xmj6PxSwQeMqLvpIvnoKiwBIzzoP2pz74Irl Dwwg== X-Gm-Message-State: APjAAAV805fw17WHHzQiQsLGn5wv18gghrKGhI8hjXKDtJpPsHDB0Rh6 /hMxn7fEqK6iq+j6Xq8Ei/fP5g== X-Google-Smtp-Source: APXvYqzSCCk5NBjVAX/QIob02M1LpxUhqXT3BgS3s9UErHZyCIxOhQy+BYb0rv2varnvd5Fq3M1lsQ== X-Received: by 2002:a17:902:e582:: with SMTP id cl2mr43731522plb.60.1559953219605; Fri, 07 Jun 2019 17:20:19 -0700 (PDT) Received: from hermes.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id n184sm4012463pfn.21.2019.06.07.17.20.18 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Fri, 07 Jun 2019 17:20:18 -0700 (PDT) From: Stephen Hemminger To: ferruh.yigit@intel.com Cc: dev@dpdk.org, Stephen Hemminger Date: Fri, 7 Jun 2019 17:20:02 -0700 Message-Id: <20190608002003.19942-9-stephen@networkplumber.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190608002003.19942-1-stephen@networkplumber.org> References: <20190608002003.19942-1-stephen@networkplumber.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 8/9] kni: return -EFAULT if copy_from_user fails 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" The correct thing to return if user gives a bad data is to return -EFAULT. Logging is also discouraged because it could be used as a DoS attack. Signed-off-by: Stephen Hemminger --- kernel/linux/kni/kni_misc.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/kernel/linux/kni/kni_misc.c b/kernel/linux/kni/kni_misc.c index 6a206d883c0d..a67991066cd9 100644 --- a/kernel/linux/kni/kni_misc.c +++ b/kernel/linux/kni/kni_misc.c @@ -301,11 +301,8 @@ kni_ioctl_create(struct net *net, uint32_t ioctl_num, return -EINVAL; /* Copy kni info from user space */ - ret = copy_from_user(&dev_info, (void *)ioctl_param, sizeof(dev_info)); - if (ret) { - pr_err("copy_from_user in kni_ioctl_create"); - return -EIO; - } + if (copy_from_user(&dev_info, (void *)ioctl_param, sizeof(dev_info))) + return -EFAULT; /* Check if name is zero-ended */ if (strnlen(dev_info.name, sizeof(dev_info.name)) == sizeof(dev_info.name)) { @@ -433,15 +430,12 @@ kni_ioctl_release(struct net *net, uint32_t ioctl_num, if (_IOC_SIZE(ioctl_num) > sizeof(dev_info)) return -EINVAL; - ret = copy_from_user(&dev_info, (void *)ioctl_param, sizeof(dev_info)); - if (ret) { - pr_err("copy_from_user in kni_ioctl_release"); - return -EIO; - } + if (copy_from_user(&dev_info, (void *)ioctl_param, sizeof(dev_info))) + return -EFAULT; /* Release the network device according to its name */ if (strlen(dev_info.name) == 0) - return ret; + return -EINVAL; down_write(&knet->kni_list_lock); list_for_each_entry_safe(dev, n, &knet->kni_list_head, list) { From patchwork Sat Jun 8 00:20:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 54561 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 6807A1BCDF; Sat, 8 Jun 2019 02:20:32 +0200 (CEST) Received: from mail-pl1-f194.google.com (mail-pl1-f194.google.com [209.85.214.194]) by dpdk.org (Postfix) with ESMTP id 8CADB1BCA0 for ; Sat, 8 Jun 2019 02:20:21 +0200 (CEST) Received: by mail-pl1-f194.google.com with SMTP id e5so1396825pls.13 for ; Fri, 07 Jun 2019 17:20:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=zwcpHj9mObwR/3WCwV5l4XnojjP3r4EDgCtfcfF1G0s=; b=y68dwzlp/uKX/ODO60y/TWPyhj9crd49HaKpu5GVO5B197xLS0n0l+ROid+V6J5tgG X+P+i6C4emv+911Nts4fFP2mwMnGaWqU9FmuVd1KlQz/rNZeEm+rhc+N6xbIRZ3Y+KRl w6Tz784L2fbffRS2Ib9pyH2r5J1boMIbpL7aESoghjs6qjixu/p2SXkhfX25xSGeXRb3 MSxEN4DfZxlJvacvT5ipTuVKhCQON6+T+yuntS8SffU+4J11GWT2MthBEYcmGbzdn0VP o7xKqLhFa1Gi9exKle97yqLXIbWzth/kjW1Pwr6TESbrR7GCzmOCng9G/7tCSekkabfY 4bsQ== 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:mime-version:content-transfer-encoding; bh=zwcpHj9mObwR/3WCwV5l4XnojjP3r4EDgCtfcfF1G0s=; b=fttdamlECm+JexC/x76yTrq2bm7qU7GdOLVMVDu3AtGX4v6YZmSOgtzycluAKYAy3R EiUbOw1LPAqa7r159rt4m4e6Wd7D5ACBkM44Xh4cUaECxsi8YZRt2d2vL/1D/wEgKe8W qwqJJsXQDTrr4VuKUfn/X+T6LNAoJQYlXkd/OAY76p3pWIPkYmXYoRPfHr/fmtnFQjyu M2VZRCA8GFtOj7yKKumyvECG4k4Gj/OJ51sbFcsTvUHgsVbnV5EJAfYefsj5GyKce6Wr lek4++TY4l0aG/Jjj3eUCZtWYk3Ig8SpwWS/iGwrjl5tIE83YbaJ9sWIaZAjA4A1ZJgw pgLg== X-Gm-Message-State: APjAAAWep2TCBEZU1dGjtF3ZVW3nm114hvJPsLsFXKGe/QbCChH+0+DD 6nUyAYHYHtXZf7n2q1u30CDIFc2vuVs= X-Google-Smtp-Source: APXvYqwl78dZq6+FChK+VUbHarjou18rwDUzEfI7PGqUZg9FVWOOL+6zJf6oh54N+VwWxABAENk6Ew== X-Received: by 2002:a17:902:67:: with SMTP id 94mr59568467pla.64.1559953220782; Fri, 07 Jun 2019 17:20:20 -0700 (PDT) Received: from hermes.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id n184sm4012463pfn.21.2019.06.07.17.20.19 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Fri, 07 Jun 2019 17:20:19 -0700 (PDT) From: Stephen Hemminger To: ferruh.yigit@intel.com Cc: dev@dpdk.org, Stephen Hemminger Date: Fri, 7 Jun 2019 17:20:03 -0700 Message-Id: <20190608002003.19942-10-stephen@networkplumber.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190608002003.19942-1-stephen@networkplumber.org> References: <20190608002003.19942-1-stephen@networkplumber.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 9/9] doc: update KNI documentation 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" Make the KNI documentation reflect modern kernel networking. Ifconfig has been superseded by iproute2 for 15 years. Iproute2 is well maintained, supports current feature set. Ethtool is no longer supported by KNI. Tshark is a better replacement for tcpdump. Signed-off-by: Stephen Hemminger --- .../sample_app_ug/kernel_nic_interface.rst | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/doc/guides/sample_app_ug/kernel_nic_interface.rst b/doc/guides/sample_app_ug/kernel_nic_interface.rst index a7e549d5213a..422bd8c98465 100644 --- a/doc/guides/sample_app_ug/kernel_nic_interface.rst +++ b/doc/guides/sample_app_ug/kernel_nic_interface.rst @@ -21,14 +21,14 @@ The FIFO queues contain pointers to data packets in the DPDK. This: * Provides a faster mechanism to interface with the kernel net stack and eliminates system calls -* Facilitates the DPDK using standard Linux* userspace net tools (tcpdump, ftp, and so on) +* Facilitates the DPDK using standard Linux* userspace net tools (tshark, rsync, and so on) * Eliminate the copy_to_user and copy_from_user operations on packets. The Kernel NIC Interface sample application is a simple example that demonstrates the use of the DPDK to create a path for packets to go through the Linux* kernel. This is done by creating one or more kernel net devices for each of the DPDK ports. -The application allows the use of standard Linux tools (ethtool, ifconfig, tcpdump) with the DPDK ports and +The application allows the use of standard Linux tools (iproute, tshark) with the DPDK ports and also the exchange of packets between the DPDK application and the Linux* kernel. The Kernel NIC Interface sample application requires that the @@ -220,13 +220,13 @@ Enable KNI interface and assign an IP address: .. code-block:: console - # ifconfig vEth0_0 192.168.0.1 + # ip addr add dev vEth0_0 192.168.0.1 Show KNI interface configuration and statistics: .. code-block:: console - # ifconfig vEth0_0 + # ip -s -d addr show vEth0_0 The user can also check and reset the packet statistics inside the ``kni`` application by sending the app the USR1 and USR2 signals: @@ -234,16 +234,16 @@ application by sending the app the USR1 and USR2 signals: .. code-block:: console # Print statistics - # kill -SIGUSR1 `pidof kni` + # pkill -USR1 kni # Zero statistics - # kill -SIGUSR2 `pidof kni` + # pkill -USR2 kni Dump network traffic: .. code-block:: console - # tcpdump -i vEth0_0 + # tshark -n -i vEth0_0 The normal Linux commands can also be used to change the MAC address and MTU size used by the physical NIC which corresponds to the KNI interface. @@ -254,13 +254,13 @@ Change the MAC address: .. code-block:: console - # ifconfig vEth0_0 hw ether 0C:01:02:03:04:08 + # ip link set dev vEth0_0 lladdr 0C:01:02:03:04:08 Change the MTU size: .. code-block:: console - # ifconfig vEth0_0 mtu 1450 + # ip link set dev vEth0_0 mtu 1450 When the ``kni`` application is closed, all the KNI interfaces are deleted from the Linux kernel.