Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp2878718imm; Wed, 3 Oct 2018 10:30:34 -0700 (PDT) X-Google-Smtp-Source: ACcGV63r5WolEQQRUxgqVg1SGTDnTPJU4qFho1quEIAMsEbX/la+bM9doXMVJBH9xMRKhd01wK7H X-Received: by 2002:a17:902:1744:: with SMTP id i62-v6mr2679354pli.315.1538587834013; Wed, 03 Oct 2018 10:30:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538587833; cv=none; d=google.com; s=arc-20160816; b=p39AwdYQDMSGlXR3JbDv+7/4OHis4plMALEWPuGKnClAk97zY77ajHzn47iZYRtQ3l E93MdBOePUtovzfC6229vCe5DUtK13jUe3oSpHySOmXFxdxQGy0By61IR86N0BNY2UDi bQ1rOxwFGapQ92wYXJBBCZ8dSci3bdcmcDul6bZ+t6m89Pyxwe4Tge1+hJibC6RkwuBl xNIvhUXNsWYEhlEoJF/pHE7BuNPatR1y1+dpcYOXnxPS7PB/n1sFEj0KlN+PCE5L+Y38 bOLNEWGG/Og8/zFoiWrpYDcZFdkekNXqHb3DZlTjVYvgUv5Dqsqv0i6l8MaAcyj7xswp y9rw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=YLLgdNqTYo8gcp/kwsvLkrnQICnyFyO3IbBK2xL1F+o=; b=JDVTRBWOl2d8WTueqOQ6sFa4cvJVB6HtLRR2VXwPWqIp24AQAB1Z4do7sL8anKDIe/ H8xWo9lIgOQkILZeJpjGG8vAH6VADa3hQwp6nnIXyKvvEzEP8cbEt+jwvQRT4htRcuIP n7cgQsdRKA4SD6aoV5IGSqozczi2y8s3zcY8fpAp2/7JbH/LvFMTwRQoiO0MfJz+PYf0 2zcfWjRThYAGJsv4Rwy3SzF/eHsI3CFwJj2p+vSN6hyt5LsVPXxpW4RGXwFfciy1hH35 pilOmMwnFd8D1Io4yLf5l+9jtwNfhEbrNla/H+jGBQg9aHFPljJghkWzYeXnDdR3niQn om0Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=LimrfKpv; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e1-v6si1913682pgc.233.2018.10.03.10.30.17; Wed, 03 Oct 2018 10:30:33 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=LimrfKpv; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727030AbeJDATa (ORCPT + 99 others); Wed, 3 Oct 2018 20:19:30 -0400 Received: from mail-qk1-f194.google.com ([209.85.222.194]:33515 "EHLO mail-qk1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726884AbeJDATa (ORCPT ); Wed, 3 Oct 2018 20:19:30 -0400 Received: by mail-qk1-f194.google.com with SMTP id 84-v6so3979361qkf.0; Wed, 03 Oct 2018 10:30:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=YLLgdNqTYo8gcp/kwsvLkrnQICnyFyO3IbBK2xL1F+o=; b=LimrfKpvwrDGDhkSp4DYzb+7N1lqSAdLIA+dnRb45QVyOufsjc76Gy0F5bjqFRY5dq uWP21k5ijUvPReF1XjlkpPkED/eXnA52jpyGDrsqQewG8RcJ5gtzojW4eDlKcZBBOn3f zrjI4P1N5lVQd823bRl/G3xR9qJUp3oARpQCG2PTKs9SnF7Kbl8O+Ue9GzuZlJRivNjZ Wpo/USrrG4ziEjtzLa4Myd77Zcv8FytDA81Sq70/fhZZfmJg48ZZ9WouVSBXv6+b66OO 6MdT+073uiAhdWqjAdFCE6JhdDRr+KairXw/zPlkqP+9QQN8EWVF6SsmKvOcJVzYB7BV Q4Pw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=YLLgdNqTYo8gcp/kwsvLkrnQICnyFyO3IbBK2xL1F+o=; b=roXl28I7/9Y8uQB8pdeBMiExzixUNLZ2KWCNqxGcjUTbmuDgHWzPde2/TCA7cKAKFi pvMd2+Q7avw+nzSow7Vy42sXr8Tm/na6c31E07bUOooM/ywCQMgWsbqCoLguvLGK8mJ+ nadxxb8Fv30yFnWmhyTVmaTEC1xo4BZ0wriWHxRmp5FEL65AS0uuSZe75EUOAqn2i0b9 BCS4qWUM5ILQzafWiFVu5iJ9wY4nKB7PNDDhJ2NRqPwtZP28tZKgHJ26vVIhSoOC+RCq JlrBZ9bygA9qplrFBLDCbH9sjDqSU+2aAd1GDjFnvWf/7i1hWyHqlSJgWG30mFBEBayb N50A== X-Gm-Message-State: ABuFfojPC8/wphMq3gvVScipsNSoluGQcg3j/ElD1VO/e/P9LvtE93IH 9Xtx8cR6xRF7/3LhJdKFPmhI9nD2 X-Received: by 2002:a37:7883:: with SMTP id t125-v6mr2022466qkc.334.1538587808171; Wed, 03 Oct 2018 10:30:08 -0700 (PDT) Received: from [192.168.1.10] (pool-96-255-82-34.washdc.fios.verizon.net. [96.255.82.34]) by smtp.gmail.com with ESMTPSA id a50-v6sm955398qtc.93.2018.10.03.10.30.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Oct 2018 10:30:07 -0700 (PDT) Subject: Re: [PATCH] team: set IFF_SLAVE on team ports To: Jiri Pirko Cc: Stephen Hemminger , Jan Blunck , LKML , netdev@vger.kernel.org References: <20150709100727.GE2270@nanopsycho.orion> <20150710064147.GA2204@nanopsycho.orion> <20180930071414.GF2209@nanopsycho.orion> <20180930113805.3b8e62a1@shemminger-XPS-13-9360> <20180930093452.GG2209@nanopsycho.orion> <20181002111215.GA2222@nanopsycho> <20181003104436.GB2222@nanopsycho> From: Chas Williams <3chas3@gmail.com> Message-ID: <526bd655-5816-69dd-ac75-bdd4f85f1ce9@gmail.com> Date: Wed, 3 Oct 2018 13:30:06 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <20181003104436.GB2222@nanopsycho> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/03/18 06:44, Jiri Pirko wrote: > Tue, Oct 02, 2018 at 11:20:25PM CEST, 3chas3@gmail.com wrote: >> >> >> On 10/02/18 07:12, Jiri Pirko wrote: >>> Mon, Oct 01, 2018 at 04:06:16PM CEST, 3chas3@gmail.com wrote: >>>> >>>> >>>> On 09/30/18 05:34, Jiri Pirko wrote: >>>>> Sun, Sep 30, 2018 at 11:38:05AM CEST, stephen@networkplumber.org wrote: >>>>>> On Sun, 30 Sep 2018 09:14:14 +0200 >>>>>> Jiri Pirko wrote: >>>>>> >>>>>>> Thu, Sep 27, 2018 at 04:04:26PM CEST, 3chas3@gmail.com wrote: >>>>>>>> >>>>>>>> >>>>>>>> On 07/10/15 02:41, Jiri Pirko wrote: >>>>>>>>> Thu, Jul 09, 2015 at 05:36:55PM CEST, jblunck@infradead.org wrote: >>>>>>>>>> On Thu, Jul 9, 2015 at 12:07 PM, Jiri Pirko wrote: >>>>>>>>>>> Thu, Jul 09, 2015 at 11:58:34AM CEST, jblunck@infradead.org wrote: >>>>>>>>>>>> The code in net/ipv6/addrconf.c:addrconf_notify() tests for IFF_SLAVE to >>>>>>>>>>>> decide if it should start the address configuration. Since team ports >>>>>>>>>>>> shouldn't get link-local addresses assigned lets set IFF_SLAVE when linking >>>>>>>>>>>> a port to the team master. >>>>>>>>>>> >>>>>>>>>>> I don't want to use IFF_SLAVE in team. Other master-slave devices are >>>>>>>>>>> not using that as well, for example bridge, ovs, etc. >>>>>>>>>> >>>>>>>>>> Maybe they need to get fixed too. I've used that flag because it is >>>>>>>>>> documented as >>>>>>>>>> a "slave of a load balancer" which describes what a team port is. >>>>>>>>>> >>>>>>>>>>> I think that this should be fixed in addrconf_notify. It should lookup >>>>>>>>>>> if there is a master on top and bail out in that case. >>>>>>>>>> >>>>>>>>>> There are other virtual interfaces that have a master assigned and want to >>>>>>>>>> participate in IPv6 address configuration. >>>>>>>>> >>>>>>>>> Can you give me an example? >>>>>>>> >>>>>>>> I would like to revisit this patch (yes, I know it has been a while). I >>>>>>>> believe the VRF implementation uses master to group the interfaces under >>>>>>>> a single interface. >>>>>>>> >>>>>>>> I don't see a reason not to use IFF_SLAVE since team and bonding are fairly >>>>>>>> similar. >>>>>>> >>>>>>> Again, why do you need team port to have IFF_SLAVE flag? What do you >>>>>>> want to achieve >>>>>> >>>>>> Without setting this flag IPv6 will try and make a link specific address. >>> >>> You are talking about addrconf_notify() right? Easy to fix to check >>> something more convenient. Like netif_is_lag_port() if you want to avoid >>> it for bond/team. netif_is_ovs_port(), netif_is_bridge_port() etc. Lot's >>> of helpers to cover this. >> >> OK, IPv6 should probably be using this. >> >>> >>> >>> >>>>> >>>>> Why is it not an issue with bridge, ovs, and other master-slave devices? >>>>> >>>> >>>> It very well might be an issue for bridge and ovs. Other master-slave >>>> devices include the existing VRF implementation in the kernel and those slave >>>> interfaces will certainly want to use IPv6. >>>> >>>> However, IFF_SLAVE has a specific meaning: >>>> >>>> ./include/uapi/linux/if.h: * @IFF_SLAVE: slave of a load balancer. Volatile. >>> >>> I know that some userspace apps are using this flag to determine a >>> "bonding slave". I don't think that they care much about eql... >>> >>> >>>> >>>> The bonding driver is not the only user: >>>> >>>> ./drivers/net/eql.c:#define eql_is_slave(dev) ((dev->flags & IFF_SLAVE) == >>>> IFF_SLAVE) >>>> ./drivers/net/eql.c: slave->dev->flags &= ~IFF_SLAVE; >>>> ./drivers/net/eql.c: slave->dev->flags |= IFF_SLAVE; >>>> >>>> The team driver would like to use this same flag since it is a load balancer >>>> as well. The side effect of not assigning IPv6 is a bonus. The fact that >>> >>> No, please leave IFF_SLAVE as it is. Both kernel and userspace have >>> their clear indications right now about the master/slave relationships. >> >> The team driver does create a master/slave relationship. The team slaves are >> literally slaves of the master device. It's not clear to me >> why you we can't mark the slaves of the team master as actually being >> slave interfaces? > > So? IFF_SLAVE flag serves a different purpose. That's it. Team does not > need it, bridge does not need it, macvlan does not need it, etc. I agree. But team *is* a load balancer. Why can't team mark its slave interfaces as IFF_SLAVE? They are literally slaves of a load balancer which is the exact meaning of the IFF_SLAVE flag. > > >> >>> >>> >>>> bridges and ovs are also likely broken is a different issue. Should there be >>>> a another flag that says "layer 2 only"? Very possibly, but that is >>>> something all these interfaces should be using to include bonding, team, eql, >>>> obs, bridge etc. That's not a reasonable objection to labeling the team >>>> slave as slaves since they are literally slaves of a load balancer. >>>> >>>> >>>>