From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f46.google.com (mail-wm0-f46.google.com [74.125.82.46]) by dpdk.org (Postfix) with ESMTP id 45E3E36E for ; Mon, 6 Mar 2017 14:59:53 +0100 (CET) Received: by mail-wm0-f46.google.com with SMTP id n11so65179769wma.0 for ; Mon, 06 Mar 2017 05:59:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:in-reply-to:references :organization:mime-version:content-transfer-encoding; bh=MdJoUgf4RE+wa3DqrR7kld3Ml6nP0fWMKeqOxPonVtE=; b=kbv1+oZk+CIP2GxN3IrHTqO8QmdcH07zScNJPQUaO1VhTJQtqdUhK2LvwR6JRTYTok r43OsVxkdxZI7niZ+syPpcUP3pXZLHXBIyh7K81MCrxdBGQdwfpkkjvdlZRs47Y9Ho6c oTPzJGc31qz4IvwoPAfcWIyF2vljfc26O19+fwZJgdXrax2ndu5toMDov/onivb19o32 ihPJQ9b92NLLKHmR/SFjtj7r9DKjBJDeyTu+bfsORSB1vSbkz9zoayp6CiqASRQh0r0f kifLaizc5taxTf7s/DIL6flmOmrvIBbhPP4OZY51zISmB7YIo7jHZ5jsMi9ASsqlM5xM psTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to :references:organization:mime-version:content-transfer-encoding; bh=MdJoUgf4RE+wa3DqrR7kld3Ml6nP0fWMKeqOxPonVtE=; b=d9+u57P16XX/dGnwCv1sJz7sd8P0Z3+l8A3+yAVN7VKGPHCJS/5BjbQpit5ioykFuS j94VqdJxZxvPJGk257RykgYfWx6FQkYT+ynb9gF8GuEWD78V/thkpyOUOQrV+QaOgWOW zWlgw/rGyn2gEwHrOdUSD9madGsP/EVH4/B4b4PK6ay7ymEF49HN79TQIBmtaKIyndGV c0kUeLgUzEFEHC3Jj+xIV+4s/FHp9+jcRnt8ploT1ygrKWflvnOyjKOs5EauRkDOcj+r MUg07TCEtofDHn4qtFVdGTSDZA9mvn+B+SFuZQ9iMSVCgfMWUHLcpmcKATAlXGbemZJQ Nphg== X-Gm-Message-State: AMke39nt7NqTYFctbHhmnf3krTYtI8OkWrHYwrTVmHGqzVt+XnYv7qsCXjIvQwI3UVsKrxqO X-Received: by 10.28.55.3 with SMTP id e3mr9338608wma.141.1488808792968; Mon, 06 Mar 2017 05:59:52 -0800 (PST) Received: from paques.dev.6wind.com (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id y49sm4907475wry.18.2017.03.06.05.59.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Mar 2017 05:59:52 -0800 (PST) Date: Mon, 6 Mar 2017 14:59:43 +0100 From: Pascal Mazon To: "Wiles, Keith" Cc: "dev@dpdk.org" Message-ID: <20170306145943.209d1b49@paques.dev.6wind.com> In-Reply-To: <7E5FD024-6F74-4B19-9E1C-E31F45A00611@intel.com> References: <7E5FD024-6F74-4B19-9E1C-E31F45A00611@intel.com> Organization: 6WIND X-Mailer: Claws Mail 3.11.1 (GTK+ 2.24.25; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH 4/6] net/tap: add MTU management 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: , X-List-Received-Date: Mon, 06 Mar 2017 13:59:53 -0000 On Fri, 3 Mar 2017 15:23:28 +0000 "Wiles, Keith" wrote: > > > On Mar 3, 2017, at 3:46 AM, Pascal Mazon > > wrote: > > > > The MTU is assigned to the tap netdevice according to the argument, > > but packet transmission and reception just write/read on an fd with > > the default limit being the socket buffer size. > > > > Signed-off-by: Pascal Mazon > > --- > > doc/guides/nics/features/tap.ini | 1 + > > drivers/net/tap/rte_eth_tap.c | 37 > > +++++++++++++++++++++++++++++++++++++ 2 files changed, 38 > > insertions(+) > > > > diff --git a/doc/guides/nics/features/tap.ini > > b/doc/guides/nics/features/tap.ini index 6878a9b8fd17..6aa11874e2bc > > 100644 --- a/doc/guides/nics/features/tap.ini > > +++ b/doc/guides/nics/features/tap.ini > > @@ -9,6 +9,7 @@ Jumbo frame = Y > > Promiscuous mode = Y > > Allmulticast mode = Y > > Basic stats = Y > > +MTU update = Y > > Multicast MAC filter = Y > > Speed capabilities = Y > > Unicast MAC filter = Y > > diff --git a/drivers/net/tap/rte_eth_tap.c > > b/drivers/net/tap/rte_eth_tap.c index 131c09fbc1a5..64b84cd76321 > > 100644 --- a/drivers/net/tap/rte_eth_tap.c > > +++ b/drivers/net/tap/rte_eth_tap.c > > @@ -724,6 +724,42 @@ tap_set_mc_addr_list(struct rte_eth_dev *dev > > __rte_unused, return 0; > > } > > > > +static int > > +tap_mtu_set(struct rte_eth_dev *dev, uint16_t mtu) > > +{ > > + struct pmd_internals *pmd = dev->data->dev_private; > > + struct ifreq ifr; > > + int err, s; > > + > > + s = socket(AF_INET, SOCK_DGRAM, 0); > > + if (s < 0) { > > + RTE_LOG(ERR, PMD, > > + "Unable to get a socket for %s to set > > flags: %s\n", > > + pmd->name, strerror(errno)); > > + return -1; > > + } > > + memset(&ifr, 0, sizeof(ifr)); > > + strncpy(ifr.ifr_name, pmd->name, IFNAMSIZ); > > This needs to be converted to a snprintf() to avoid overflow. > Ok, I'll do that in version 2. Regards, Pascal > > + err = ioctl(s, SIOCGIFMTU, &ifr); > > + if (err < 0) { > > + RTE_LOG(WARNING, PMD, "Unable to get %s device > > MTU: %s\n", > > + pmd->name, strerror(errno)); > > + close(s); > > + return -1; > > + } > > + ifr.ifr_mtu = mtu; > > + err = ioctl(s, SIOCSIFMTU, &ifr); > > + if (err < 0) { > > + RTE_LOG(WARNING, PMD, "Unable to set %s mtu %d: > > %s\n", > > + pmd->name, mtu, strerror(errno)); > > + close(s); > > + return -1; > > + } > > + close(s); > > + dev->data->mtu = mtu; > > + return 0; > > +} > > + > > static const struct eth_dev_ops ops = { > > .dev_start = tap_dev_start, > > .dev_stop = tap_dev_stop, > > @@ -745,6 +781,7 @@ static const struct eth_dev_ops ops = { > > .mac_addr_add = tap_mac_add, > > .mac_addr_set = tap_mac_set, > > .set_mc_addr_list = tap_set_mc_addr_list, > > + .mtu_set = tap_mtu_set, > > .stats_get = tap_stats_get, > > .stats_reset = tap_stats_reset, > > }; > > -- > > 2.8.0.rc0 > > > > Regards, > Keith >