Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754643AbaBSQqP (ORCPT ); Wed, 19 Feb 2014 11:46:15 -0500 Received: from mx1.redhat.com ([209.132.183.28]:17067 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754021AbaBSQqM (ORCPT ); Wed, 19 Feb 2014 11:46:12 -0500 Message-ID: <1392828325.21976.6.camel@dcbw.local> Subject: Re: [RFC v2 2/4] net: enables interface option to skip IP From: Dan Williams To: "Luis R. Rodriguez" Cc: "netdev@vger.kernel.org" , xen-devel@lists.xenproject.org, kvm@vger.kernel.org, "linux-kernel@vger.kernel.org" , "David S. Miller" , Alexey Kuznetsov , James Morris , Hideaki YOSHIFUJI , Patrick McHardy Date: Wed, 19 Feb 2014 10:45:25 -0600 In-Reply-To: References: <1392433180-16052-1-git-send-email-mcgrof@do-not-panic.com> <1392433180-16052-3-git-send-email-mcgrof@do-not-panic.com> <1392668638.21106.5.camel@dcbw.local> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 2014-02-18 at 13:19 -0800, Luis R. Rodriguez wrote: > On Mon, Feb 17, 2014 at 12:23 PM, Dan Williams wrote: > > On Fri, 2014-02-14 at 18:59 -0800, Luis R. Rodriguez wrote: > >> From: "Luis R. Rodriguez" > >> > >> Some interfaces do not need to have any IPv4 or IPv6 > >> addresses, so enable an option to specify this. One > >> example where this is observed are virtualization > >> backend interfaces which just use the net_device > >> constructs to help with their respective frontends. > >> > >> This should optimize boot time and complexity on > >> virtualization environments for each backend interface > >> while also avoiding triggering SLAAC and DAD, which is > >> simply pointless for these type of interfaces. > > > > Would it not be better/cleaner to use disable_ipv6 and then add a > > disable_ipv4 sysctl, then use those with that interface? > > Sure, but note that the both disable_ipv6 and accept_dada sysctl > parameters are global. ipv4 and ipv6 interfaces are created upon > NETDEVICE_REGISTER, which will get triggered when a driver calls > register_netdev(). The goal of this patch was to enable an early > optimization for drivers that have no need ever for ipv4 or ipv6 > interfaces. Each interface gets override sysctls too though, eg: /proc/sys/net/ipv6/conf/enp0s25/disable_ipv6 which is the one I meant; you're obviously right that the global ones aren't what you want here. But the specific ones should be suitable? If you set that on a per-interface basis, then you'll get EPERM or something whenever you try to add IPv6 addresses or do IPv6 routing. > Zoltan has noted though some use cases of IPv4 or IPv6 addresses on > backends though, as such this is no longer applicable as a > requirement. The ipv4 sysctl however still seems like a reasonable > approach to enable optimizations of the network in topologies where > its known we won't need them but -- we'd need to consider a much more > granular solution, not just global as it is now for disable_ipv6, and > we'd also have to figure out a clean way to do this to not incur the > cost of early address interface addition upon register_netdev(). > > Given that we have a use case for ipv4 and ipv6 addresses on > xen-netback we no longer have an immediate use case for such early > optimization primitives though, so I'll drop this. > > > The IFF_SKIP_IP seems to duplicate at least part of what disable_ipv6 is > > already doing. > > disable_ipv6 is global, the goal was to make this granular and skip > the cost upon early boot, but its been clarified we don't need this. Like Stephen says, you need to make sure you set them before IFF_UP, but beyond that, wouldn't the interface-specific sysctls work? Dan -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/