From patchwork Mon Jun 10 17:51:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 54624 X-Patchwork-Delegate: thomas@monjalon.net 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 632951C137; Mon, 10 Jun 2019 19:52:03 +0200 (CEST) Received: from mail-pg1-f196.google.com (mail-pg1-f196.google.com [209.85.215.196]) by dpdk.org (Postfix) with ESMTP id 68C201C0C5 for ; Mon, 10 Jun 2019 19:52:00 +0200 (CEST) Received: by mail-pg1-f196.google.com with SMTP id a3so5431394pgb.3 for ; Mon, 10 Jun 2019 10:52:00 -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=X1yVQGqrZQ8ggLucTFmm4o9ozoX09oUCiOVVwP9qWrKSyJulDbaeenJ3WK1d7UhYHZ Bdp1WLXhnj2eK3irGeZGtXeQ9n5eLyEMMhsREl96ennHaMOFP4XXSfUmyHKYdEClSpD+ 6e0/Dyb1enVYpt3ktnO7olbQ/DR2yHhwEwyQ8uh+H/b5c4te2L91MWynnZUeeJBZk26q SnSLvrbugQYPpmKA0nEFg0+vvqk0l1nEVi99a7NExIWq+dkVWzxhKNSv2VhHq7UjPFts KPDx4+1IXPpJzMfM27+tgXA/VRLQDC0caSMrp1RpC5mGvRVG5YFSquTlozZBn4zuvFan ehSg== 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=rldxsX3utU7ikoOh6uZLxwUCZW3Fz1/4X9uVuuCxXZ6mErmoQqYrqfI7NrPxrXt3zB 5SNm6LNf+pdbqo86waYCytNWfhz0VGAucJNbaK2BRkZNmzr6+pEH984oEh092ECjhKWE gwKPVO/aZZY27DVqJLKeX4xLej5DwKUZdqApTdRaEhDNZV6Uv3RcIrEqQ+Du0KNP3Xd8 DnOgRajj6DuVJ5MfBtCfi75XdG/0rcl9BXls2c9ErJKbszGFjqioRY/AnAiSa5t/ymof zhvrgZO0xM2ANjILbGsQVwT8f/ZND+kwkzg5/F5h+4qO1xxno+qBGUgx/OVW56w3xjxp YosQ== X-Gm-Message-State: APjAAAUCK6yjTRzLiZYxnEmuylRXhYpdK2tTUIK+dr+8kj09KYmf5VEG vbEcOZef3yAqs8BBTQWHrpr0Lg== X-Google-Smtp-Source: APXvYqyJP6i5LxGEo4q895TB0mjMugPG01ieUJGJ+RPApich82qCl8bBZRIiotUXRWRSq/UKEWHlzQ== X-Received: by 2002:a65:6210:: with SMTP id d16mr15158335pgv.180.1560189119528; Mon, 10 Jun 2019 10:51:59 -0700 (PDT) Received: from hermes.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id l38sm131656pje.12.2019.06.10.10.51.58 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Mon, 10 Jun 2019 10:51:58 -0700 (PDT) From: Stephen Hemminger To: ferruh.yigit@intel.com Cc: dev@dpdk.org, Stephen Hemminger Date: Mon, 10 Jun 2019 10:51:49 -0700 Message-Id: <20190610175155.21374-2-stephen@networkplumber.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190610175155.21374-1-stephen@networkplumber.org> References: <20190610175155.21374-1-stephen@networkplumber.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v2 1/7] 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 Mon Jun 10 17:51:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 54625 X-Patchwork-Delegate: thomas@monjalon.net 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 F274D1C18E; Mon, 10 Jun 2019 19:52:05 +0200 (CEST) Received: from mail-pg1-f196.google.com (mail-pg1-f196.google.com [209.85.215.196]) by dpdk.org (Postfix) with ESMTP id B7BC01C12F for ; Mon, 10 Jun 2019 19:52:01 +0200 (CEST) Received: by mail-pg1-f196.google.com with SMTP id w34so5410907pga.12 for ; Mon, 10 Jun 2019 10:52:01 -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=3nH3VS2nrDhr++GW5IK4H1gOU9hAjtyIvaPds5/nwF4=; b=0zVCJjRpRJ2q2RzltXvValRWeX1sDfBvV+NFk5N9XoiXOq7vsoWRCcCIe8JHjuOOkk 3nq1yp2Xo9GIWYAeexlHiUzGLlysEGzr2m9/KRQWNEXYmTv6k3iDVlQoC8sUd6dnTw1J 5I/fsyT8TMyFzmXCUk60BsdW7nyK9icTP6QLyAQzfldJ1E2Ipw+Q4YJ4AJTIX2LyWNyW ijMtVRE8tTP1wF7eUqAreTrQE66PAYt4UIZpE/uLBGERZs6VosMFmGuhs/9vxA9WDE4t BAM3/nuo/FH0OCHsCQrlmuCYPCB5tMsdUaz8AOU04gwXI3cbivedsWirqAJw1ROuC2LG Welg== 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=3nH3VS2nrDhr++GW5IK4H1gOU9hAjtyIvaPds5/nwF4=; b=Fp5Y1y5pMKr4uXAREH0KeVILcUxjwRmyYG0rRZ865yo3ZWqudMFDOPS6fwHLUS+TH2 h8iBhMMOCMABRQYPozaRukryw/fK9k+TgGkyk6NdasC2Pt8ojmXeeKnMSXeB9OkfXrm7 iOzHv1tkyz4EaACSWvrrdEGOz46RE3XIU3Ug1VJzKBa9/Fi04zFX/5D13+MlvqJBntr7 zvJJrtLvYeuLOlyWhnDboLR4+9VT7wnlluEE7oBENvS4UH8x+2LPJw77BH3FL2iLW8oa ps0ctUnz9WAk3UW+NpvbzxZWzM2hxGIZZy7DVCMJGTbFypArUfYR/wezpqgEynzcsNjC KSjw== X-Gm-Message-State: APjAAAW0kdjLxKVvSZtvSjAM0J0O8YTUi5DYVJdFlunKb1D9Lm2syIFZ 69S4sy6ceQHvnID5Arwqx5DkNw== X-Google-Smtp-Source: APXvYqxXF97m6TeGnme0G2dbZhJANYev6Iddqt/pqsQSuhuJ591+PB4gDgAiWsGw5zS2sWZPyvuP8w== X-Received: by 2002:aa7:956d:: with SMTP id x13mr36332710pfq.132.1560189120830; Mon, 10 Jun 2019 10:52:00 -0700 (PDT) Received: from hermes.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id l38sm131656pje.12.2019.06.10.10.51.59 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Mon, 10 Jun 2019 10:51:59 -0700 (PDT) From: Stephen Hemminger To: ferruh.yigit@intel.com Cc: dev@dpdk.org, Stephen Hemminger Date: Mon, 10 Jun 2019 10:51:50 -0700 Message-Id: <20190610175155.21374-3-stephen@networkplumber.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190610175155.21374-1-stephen@networkplumber.org> References: <20190610175155.21374-1-stephen@networkplumber.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v2 2/7] 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 intentionall does not pad packets on x86, 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..cce5e7eb991f 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); 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); 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); 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 Mon Jun 10 17:51:51 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 54626 X-Patchwork-Delegate: thomas@monjalon.net 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 25E021C19F; Mon, 10 Jun 2019 19:52:09 +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 552D71C135 for ; Mon, 10 Jun 2019 19:52:03 +0200 (CEST) Received: by mail-pl1-f193.google.com with SMTP id s24so3944479plr.8 for ; Mon, 10 Jun 2019 10:52:03 -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=OH52MxMRMjy/HTl4GmZ41r6TteVocQkiPJ2dOPMWinc=; b=Zi90oVvhpOhb5YinY7amWQ3zF0BjC2mcOCF1Z4TErHqt2DJ7iXYn2sw0o0l8Hp6IK/ Xqfp7LPDpBQk8M6F82ZKMXDaMIyl2HKdBPKojpVK2pyLHPADL5NMirTyVhCZAPg8jmV6 Zvc/Fntngv7N0UeSU+Qls7k/gPjxbLf+/MoapoRp410sIVRG0/hkgeWYjACXrE4rL13v 7ywgbbmCt9Z99HfwNyBhGHdlmgiDowZUA7RBIUZXvqMUBxI7p0N8XRwu3sT7Vd6oG9Mq 8K1esOXvVCOlWS7uEp8/WT2oULaDN4XThKgxIqv3W8ck7OfaAJGs4nbYVDY7/wcBqzB1 kSUA== 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=OH52MxMRMjy/HTl4GmZ41r6TteVocQkiPJ2dOPMWinc=; b=OTOHF9OUDHwgfjX8lQqa5s9XNF7t7eKljdq5QkvSeNZcnHOHdfDib559m6g3FyubRW Jbk1ytRJ/iNwQJaoKcska3GwhDZhV8Cw+scl6sVubprw2+Ju2ZULvl8gzAqBQz4zHEBk GwgNM313jaucwracaFDo8DNIX9n4Glc7gG1ymheI/12DSxUba+DSWZcGSpwfmNAyTteI 26FWYAjxMgvsV71jUoQZ3BbtbCE9DA4BX9gNoVQKJIbbVPbBjtC81jqmscw5/KE725W9 5xvZn1S3Dh5/ZfYxjgrrLt6Su1lg7g2LBp9oawSQc05P3SLfovFB8qz52x235gLs18ea bk5g== X-Gm-Message-State: APjAAAU+u+Wv3nygUTBdjJJCTjcM2Ps5C+dvXa/sTdIT1JoXkPTHifVv qfU4SXGUtzQRz2lrSjP6Pv3ZOQ== X-Google-Smtp-Source: APXvYqy4mY1gjfLNUvHJ66iWl1JaZfppZ5bRuPwC/aBKmADs5iJEbqrl9ONgeGZpZTI+PxNUsJjWWQ== X-Received: by 2002:a17:902:8209:: with SMTP id x9mr72134171pln.327.1560189122486; Mon, 10 Jun 2019 10:52:02 -0700 (PDT) Received: from hermes.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id l38sm131656pje.12.2019.06.10.10.52.00 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Mon, 10 Jun 2019 10:52:01 -0700 (PDT) From: Stephen Hemminger To: ferruh.yigit@intel.com Cc: dev@dpdk.org, Stephen Hemminger Date: Mon, 10 Jun 2019 10:51:51 -0700 Message-Id: <20190610175155.21374-4-stephen@networkplumber.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190610175155.21374-1-stephen@networkplumber.org> References: <20190610175155.21374-1-stephen@networkplumber.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v2 3/7] 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 44a5a61f7279..f3a1f60d4bdc 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 cce5e7eb991f..06310fec57bb 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); 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); 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 Mon Jun 10 17:51:52 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 54627 X-Patchwork-Delegate: thomas@monjalon.net 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 8CC681C1A8; Mon, 10 Jun 2019 19:52:11 +0200 (CEST) Received: from mail-pg1-f194.google.com (mail-pg1-f194.google.com [209.85.215.194]) by dpdk.org (Postfix) with ESMTP id BA82E1C135 for ; Mon, 10 Jun 2019 19:52:04 +0200 (CEST) Received: by mail-pg1-f194.google.com with SMTP id 196so5429647pgc.6 for ; Mon, 10 Jun 2019 10:52:04 -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=1pSTZV4+/Q1KZc07u24BEg4URuj4PrYE5hFyVDmyCkQ=; b=ui6XvEq2HAhl+Mn4ZNUIR0+PIjTJQTGH5YiDNHnIooYkf4S85M75CJy1m2VSGe/vcp m3ybpBb2edBulJ/lkqn4d+KTS/ZyCnEYkFpTRcrNcLvOJBH7B74xsx9YqKJs+YGIJAha IDfb3pVgpAxdtZmf+o2ZIFuP+OnQuc1XzrwdSG92mjgO/ENKesKztFGO887Ti9rsGi5r 8rQnwOmFxmpWgOqHUGMaDmkJ2YclGTiBS/2lazHSV4j9bzGsvl7SUqUDSzzP9wn0tKwp +KivNS7lhNhIQ86wFz9NBidmOyUKkYEQq10ewGFJlzdOGLfvQf8ZFnAC4vmAqDoG9Gvd 1VgA== 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=1pSTZV4+/Q1KZc07u24BEg4URuj4PrYE5hFyVDmyCkQ=; b=I3rJj1yQ2uqM1+nOPOn9XQ+JbMg3aX0GuThn8hB+Wrc7H5oz2tYDy6xjMO5uw9pPPv 74OWDz0uXcp+txdjeiXmKmyB2py7V3nxwWeDDjLFFGTSHy5Py8xCvvn0f7LZYkRBOW4h IltqN/fRhVvPtUGnIEvEY4d0P3obMe1ARuX/UllTvZySnBD6SlBdX0GhpzaS+s1xYMr4 rbeFbxZM/GQFkSWHkIrMjIEPV6nvhFX5G4k28qbkkatikFcz5pQdmdXC/IvMLkMmMNYD rRot2PnSh1zjNqvzK1l5N2bO1tz0NkWdoXM0sp18h3nAQp6d6pL9JwSI3K1bQUBGImUA kQfQ== X-Gm-Message-State: APjAAAVIxeHRv5A+hKR6TEwsU9xTF5SwEvleLuwQ1UhM4JARzhx2gEqo A4LvuAMzE6lt+anVdgojA3hFGw== X-Google-Smtp-Source: APXvYqwx7oR1kSuNE+NYh/iojy3je7EKvFpCWpNOthY4Hi5K8VvhX1EaWzchKDa83iKFAdWGTXZ59g== X-Received: by 2002:a63:6105:: with SMTP id v5mr16592270pgb.312.1560189123877; Mon, 10 Jun 2019 10:52:03 -0700 (PDT) Received: from hermes.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id l38sm131656pje.12.2019.06.10.10.52.02 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Mon, 10 Jun 2019 10:52:02 -0700 (PDT) From: Stephen Hemminger To: ferruh.yigit@intel.com Cc: dev@dpdk.org, Stephen Hemminger Date: Mon, 10 Jun 2019 10:51:52 -0700 Message-Id: <20190610175155.21374-5-stephen@networkplumber.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190610175155.21374-1-stephen@networkplumber.org> References: <20190610175155.21374-1-stephen@networkplumber.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v2 4/7] kni: drop unused fields 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. Several fields were either totally unused or set and never used. Signed-off-by: Stephen Hemminger --- kernel/linux/kni/kni_dev.h | 8 -------- kernel/linux/kni/kni_misc.c | 1 - 2 files changed, 9 deletions(-) diff --git a/kernel/linux/kni/kni_dev.h b/kernel/linux/kni/kni_dev.h index f3a1f60d4bdc..f3e6c3ca4efa 100644 --- a/kernel/linux/kni/kni_dev.h +++ b/kernel/linux/kni/kni_dev.h @@ -39,8 +39,6 @@ struct kni_dev { /* kni list */ 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 +47,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; @@ -82,9 +77,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]; 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 Mon Jun 10 17:51:53 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 54628 X-Patchwork-Delegate: thomas@monjalon.net 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 407881C1AF; Mon, 10 Jun 2019 19:52:13 +0200 (CEST) Received: from mail-pg1-f195.google.com (mail-pg1-f195.google.com [209.85.215.195]) by dpdk.org (Postfix) with ESMTP id 0AB3F1C18F for ; Mon, 10 Jun 2019 19:52:06 +0200 (CEST) Received: by mail-pg1-f195.google.com with SMTP id l19so2824384pgh.9 for ; Mon, 10 Jun 2019 10:52:05 -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=hIvjCiWQYNPBc9jHxV6ypMMauQl+MwhXQziimacjCDO/UVfsavYjONek6p+xRa7cQJ N7zYKRBa7XYUp4sythvbZiiXZz6BJLxlFdrYMCucBIW0GSTniCl0BdNKjnnxPSEOkgXD ck39/mTrbIJ5iwTTLRi9QGsUKJo5NK5QJlGj7qpV+FshVt/R5XxeY02DCbycvl3rPSrS T6hihyHqh1Io3Ww+K/FR8yqsdY53KReJ0jv2AK00FFLjoyOoLl1VOnsj1EzWLjZFcce3 cIcO8hOaWpb9wxkyIeLGjm4CEO70ugGUo26wVerb66gIg/GOZjpO/TMtZGCdg3wzLGsl Y1Lw== 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=FZBR8ppc2dYmXZyIuBI9B+Ot5Cgydb2rIvMrSYDPViD3dJuDefp/4j+XQNz0E6dOKE YPl85d4wuK/J9SmZFCa5yD9Ym8R+jNIZ5WDi/GivjrMTzSgQK05c+buBtnIbQBf+Mwua 2kSf9obgrLPNwei99Qt9jj4/OEuMFbIKTeldMU0bKWyXsYSbBqQm42GHlezsZYajo65v HzHzOWMDJPgLMFAvjEuPSsIjq3+1fERBtEZsADOvwSOvP8QwwzqDWQsm8xxmfLlSN2vT 4HLxq1hCNfl3155CRVX3Qmz9suNVi0q3sRpMXV35KokVqaDuNAmT8zjY1bqRs2gLPhLu w/KQ== X-Gm-Message-State: APjAAAUsVFuPFBt8XdntZz5Tf2HYTr3krHOD5ODLwDIL67+785vtf7pG XePYV06dwKwhGJL83iiJPPJyMMf4zCM= X-Google-Smtp-Source: APXvYqxdnXYMpsvwGRCEgnbF5n69f+6YmKd67hT/yNp/+5AkWFplqBH/OWBiPEbMcJhqouubSXbnRQ== X-Received: by 2002:a17:90a:270f:: with SMTP id o15mr10315930pje.56.1560189125189; Mon, 10 Jun 2019 10:52:05 -0700 (PDT) Received: from hermes.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id l38sm131656pje.12.2019.06.10.10.52.04 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Mon, 10 Jun 2019 10:52:04 -0700 (PDT) From: Stephen Hemminger To: ferruh.yigit@intel.com Cc: dev@dpdk.org, Stephen Hemminger Date: Mon, 10 Jun 2019 10:51:53 -0700 Message-Id: <20190610175155.21374-6-stephen@networkplumber.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190610175155.21374-1-stephen@networkplumber.org> References: <20190610175155.21374-1-stephen@networkplumber.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v2 5/7] 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 Mon Jun 10 17:51:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 54629 X-Patchwork-Delegate: thomas@monjalon.net 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 985B71C1B6; Mon, 10 Jun 2019 19:52:15 +0200 (CEST) Received: from mail-pg1-f194.google.com (mail-pg1-f194.google.com [209.85.215.194]) by dpdk.org (Postfix) with ESMTP id 23DC41C136 for ; Mon, 10 Jun 2019 19:52:07 +0200 (CEST) Received: by mail-pg1-f194.google.com with SMTP id v11so5423029pgl.5 for ; Mon, 10 Jun 2019 10:52:07 -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=u1V9T0BQ1st5o44n5rvzwGumdNLUrxJAALPcWLKCX3fgjjeJTmJNqnCIy9X87ERnF/ 1FzSCE346YTcWnTsu/sFIpcuH+PpPydGjEQ/bXGvajrcbWgbk8W0dtM3Fxmc7mGgL47W qqeR1mexu4Ie1KIykWF2ri6mKTtjQqhzRsRtAdXLr5kAuhN/WBMZ9rJ7PdpnLxS7bDPz ZsWsA0rxIxtEwJPYdtN9oiVZgUYsOKwSOjVA13+C5KUIVx+lHsNJIBVkqtMFLyG9l20U bklaC4ftDvUVOysk1QTzjD5PrkWgyYtwHGQ10u9ZhvFsTUrWf63gBns5HPbQPxbujfCC S8FA== 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=Mo83NKINMjNPHNC1Gnzwt8gXr/+WUOvWYUKg0zXud7sMgj2niXSS1usKHoJy7ZgzxW /WXkUtCjMvXrG7VF0X/MbXW/r39+zIJ+l6MPBECnnG/ttoFCX7REwmDFy0FSBVyGN0A6 qFsF0jZ6KnzM4jXxw+TQe7b52u17ECYK+gW1l5WCmXtM/KpVtGCt6R9HgEiBEBL4oKQN 06b38yygW6msMvFlUZLIr2ETyN6E2seUHygP8rpX60/RG0T/1QBl4sjOXZOc3gYSnqJX c0IaFv9p3qrWFRcr+5x6afYPv5kPRvXkgXiNeE1nfAA34VCUm36CdwPVb7kFWrOcwK5V lf6Q== X-Gm-Message-State: APjAAAUgbkEUKbHdrpaGWY93Seie1YOpuvml+oATyONiw56nM5crSy1g BHoNEizFQcjt2ClBhYPT2orQ3nqNUNY= X-Google-Smtp-Source: APXvYqyjIF2QMrhwNqJZZukyNJcXHII+yj5VGtDXEq4Vjw1WLWCdDMuIOcyg90/r2An3bHLFLupqFQ== X-Received: by 2002:a63:545a:: with SMTP id e26mr16453089pgm.162.1560189126265; Mon, 10 Jun 2019 10:52:06 -0700 (PDT) Received: from hermes.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id l38sm131656pje.12.2019.06.10.10.52.05 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Mon, 10 Jun 2019 10:52:05 -0700 (PDT) From: Stephen Hemminger To: ferruh.yigit@intel.com Cc: dev@dpdk.org, Stephen Hemminger Date: Mon, 10 Jun 2019 10:51:54 -0700 Message-Id: <20190610175155.21374-7-stephen@networkplumber.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190610175155.21374-1-stephen@networkplumber.org> References: <20190610175155.21374-1-stephen@networkplumber.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v2 6/7] 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 Mon Jun 10 17:51: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: 54630 X-Patchwork-Delegate: thomas@monjalon.net 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 1895D1C1C0; Mon, 10 Jun 2019 19:52:17 +0200 (CEST) Received: from mail-pg1-f196.google.com (mail-pg1-f196.google.com [209.85.215.196]) by dpdk.org (Postfix) with ESMTP id 5A63E1C193 for ; Mon, 10 Jun 2019 19:52:08 +0200 (CEST) Received: by mail-pg1-f196.google.com with SMTP id v9so3712808pgr.13 for ; Mon, 10 Jun 2019 10:52:08 -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=RFyvWUw0c9nZ2Q0h5BC3ZnT/BCYtY/GUEeJemXY/7z94A9ZQfeyh9Cwe06ZcHdlhEg 1edOtPhP7+dZXylcoVqyCx4OA5SKZUlWlMDHB1wx1pVYdfK7/N70xhD9waK7KF+SGDRm r6uCbWqWJniAwkiNLcOHviXRfyHbdkY0ZUHK2jzQZ+s/MzoHp4lqRQsMcaD3EXI25q0n cxXHHy30LfZ3Lnjw5bJnvDt/fpyIeP2mxoYmLoOtYINRROamWjYBMn3Z5B4/mMCTdQ2m Ire3imZWPaFkU4J2Pw41mZ/U9Oebrknpw2lO2zRVd0Jdt1lbOLgGhPKDjT2LSwAtSZ4L TFMg== 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=obXUw5jLc8yKYJRS62a8Lr8nB43paBN5naLvsj6XNVUqEieHRkCSZ3mG1aqzPWlgL4 W2tdKKUGtRZTD43w+kXSiJIqsoofYYzBQAtD9rqiqBC/vzfO4IrpblLwhtMIsYfvCCyG t1tUnpkfMkGK68XzYhqNuoQ2V1T97+W3cpxEUUXDg+iEDrhLaIQrIqVXGoxNwihETaxj n8NkOY1GWRi+9dz6jbG3MH/i5WnpqEoGVvNGzEpDuIdGmTJRWqb2q4ntEIyDvyIWzKQ2 x1uPrEmLIX+X7UwKnRiEMu+NaKce3pFx7kOr8/d3AATn7qRn5kMaJRMLtt5Tj2xN70FS f/bg== X-Gm-Message-State: APjAAAVVcXnLk/Sw0veomoXCCGZ4TbWauljzJK1t4RqOUT1RhgeTqQiS jJstm0s64PmGgVMpoJxDxCJ5lw== X-Google-Smtp-Source: APXvYqz3kD6ZasfSFZ7Pb80gPMNnehddSdOLQluBl+JrLUU25FOFIiWh/6JkpOC3eJSd8C6B9WnWgw== X-Received: by 2002:a63:1e59:: with SMTP id p25mr16476698pgm.270.1560189127458; Mon, 10 Jun 2019 10:52:07 -0700 (PDT) Received: from hermes.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id l38sm131656pje.12.2019.06.10.10.52.06 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Mon, 10 Jun 2019 10:52:06 -0700 (PDT) From: Stephen Hemminger To: ferruh.yigit@intel.com Cc: dev@dpdk.org, Stephen Hemminger Date: Mon, 10 Jun 2019 10:51:55 -0700 Message-Id: <20190610175155.21374-8-stephen@networkplumber.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190610175155.21374-1-stephen@networkplumber.org> References: <20190610175155.21374-1-stephen@networkplumber.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v2 7/7] 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.