Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp12192pxb; Mon, 8 Feb 2021 13:42:51 -0800 (PST) X-Google-Smtp-Source: ABdhPJz42iCYFjQp0/8Zj2hXA4KyFJSf6t0TK/Hhhd662KcD06zSHKd5+SbwWyh9mKd0WNAW0PTV X-Received: by 2002:a17:906:fa98:: with SMTP id lt24mr18960699ejb.213.1612820571361; Mon, 08 Feb 2021 13:42:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612820571; cv=none; d=google.com; s=arc-20160816; b=k/+smd0bvkruRGcCEtyV+G6zqTnVXX4PYBmEYsU/iD6MK5HUVtmxhABq+wD87yfMtZ NEhz5ofSFSfP4gLsJYXIgjwYcXy5uLmf9HfsJl0fHzxN2JpOLYCi/BdrhC9FUKH5vSJv mkZ3fXIXfOt6ElT7RBSyQxt1lDdZ/n47MEV2Mqi5eDgj9vhbkhpnocCIEWl2bvkBtveG job7k/W5b9ONlltkENlcG84lPvWEeUFFmvOYjQXQZmtmbsRccgplv42FGUQILJAw0Ao+ TCoI3c8ndelZH7YgfGaFGVBn+yOmu/pV8FKcLTF/ZooR35wJ6sWinIHTAOOvMbQwy0e7 Bmzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=7aLgTN4kOpKLwrtt2lez4x5Fo82BFOC4e205tAKP7TM=; b=FSBed8mb/xcvY9aYUbkXEdWIM015FGVdbzRchd51WCUPgdnBZtAJWI0FbJwPXta2Si qHUWNJW7bp4TYJQz0xC40qv910vQd9TqvtH43txT7vVN1UiUcm+ZXYZ3JzgwmXPvJOkP ZmEu8Iu4xoJslqdbhm5uvNAHGCPbX+E5fLS3uon++CBXI1wge3PiE5G7yH0fUSCXpu2Z l/ijJYxA35mOkmb9Q3DF438168nEI4f9NhoNVr/7WMNWMWR4Z5jaWop4M8t4u6Bij4jx 8ms/KrHp++g4YuP2zeBQisW/cxgtHWzbfsnEZfkJXxHELgdroMP1c/Q/SlU+xnUyZw5l lORg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="chwcVp/R"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id gv44si11948917ejc.44.2021.02.08.13.42.27; Mon, 08 Feb 2021 13:42:51 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="chwcVp/R"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236916AbhBHVll (ORCPT + 99 others); Mon, 8 Feb 2021 16:41:41 -0500 Received: from mail.kernel.org ([198.145.29.99]:59834 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235208AbhBHVGj (ORCPT ); Mon, 8 Feb 2021 16:06:39 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 5BF1164E8C; Mon, 8 Feb 2021 21:05:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1612818358; bh=FK1I/k8wX1BxFESt2f7/PabmUo1u8EhCiol1GuP7Enw=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=chwcVp/RravmxujX3V/5ZSkSMQp/n79yAFzPDtuNg5I39lKIW8NNrJPnj0Vqwb+M1 +Ba/uWsMhkWs1dnN/84I6OK//0U0lpeSmyalZuTNKM+2n8HeItA++9eFfhCVwn5oAE trBtEpiZRFPqvxXEKXs9t4kdygg9I8f6VkQg7ecAUgMll4R4PsDdkpDwc9eP6QxLjt mWOYl2v1MHePRQCW2nMjgr/BhrtEw/+FfKHNqkCxugDUFZH1jTOm2CyIhyMuUZkAY2 xzayHH1wdsAbT6bDpYSXwaoBzeEccHv7LE9OiW7ET1qObc7Mb/FIM70VoU2zE3NvyN h3vHwW22VINqQ== Date: Mon, 8 Feb 2021 13:05:57 -0800 From: Jakub Kicinski To: Tobias Waldekranz Cc: Vadym Kochan , "David S. Miller" , netdev@vger.kernel.org, Mickey Rachamim , linux-kernel@vger.kernel.org, Vladimir Oltean Subject: Re: [PATCH net-next 5/7] net: marvell: prestera: add LAG support Message-ID: <20210208130557.56b14429@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> In-Reply-To: <87v9b249oq.fsf@waldekranz.com> References: <20210203165458.28717-1-vadym.kochan@plvision.eu> <20210203165458.28717-6-vadym.kochan@plvision.eu> <20210204211647.7b9a8ebf@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> <87v9b249oq.fsf@waldekranz.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 08 Feb 2021 20:54:29 +0100 Tobias Waldekranz wrote: > On Thu, Feb 04, 2021 at 21:16, Jakub Kicinski wrote: > > On Wed, 3 Feb 2021 18:54:56 +0200 Vadym Kochan wrote: > >> From: Serhiy Boiko > >> > >> The following features are supported: > >> > >> - LAG basic operations > >> - create/delete LAG > >> - add/remove a member to LAG > >> - enable/disable member in LAG > >> - LAG Bridge support > >> - LAG VLAN support > >> - LAG FDB support > >> > >> Limitations: > >> > >> - Only HASH lag tx type is supported > >> - The Hash parameters are not configurable. They are applied > >> during the LAG creation stage. > >> - Enslaving a port to the LAG device that already has an > >> upper device is not supported. > > > > Tobias, Vladimir, you worked on LAG support recently, would you mind > > taking a look at this one? > > I took a quick look at it, and what I found left me very puzzled. I hope > you do not mind me asking a generic question about the policy around > switchdev drivers. If someone published a driver using something similar > to the following configuration flow: > > iproute2 daemon(SDK) > | ^ | > : : : user/kernel boundary > v | | > netlink | | > | | | > v | | > driver | | > | | | > '--------' | > : kernel/hardware boundary > v > ASIC > > My guess is that they would be (rightly IMO) told something along the > lines of "we do not accept drivers that are just shims for proprietary > SDKs". > > But it seems like if that same someone has enough area to spare in their > ASIC to embed a CPU, it is perfectly fine to run that same SDK on it, > call it "firmware", and then push a shim driver into the kernel tree. > > iproute2 > | > : user/kernel boundary > v > netlink > | > v > driver > | > | > : kernel/hardware boundary > '-------------. > v > daemon(SDK) > | > v > ASIC > > What have we, the community, gained by this? In the old world, the > vendor usually at least had to ship me the SDK in source form. Having > seen the inside of some of those sausage factories, they are not the > kinds of code bases that I want at the bottom of my stack; even less so > in binary form where I am entirely at the vendor's mercy for bugfixes. > > We are talking about a pure Ethernet fabric here, so there is no fig > leaf of "regulatory requirements" to hide behind, in contrast to WiFi > for example. > > Is it the opinion of the netdev community that it is OK for vendors to > use this model? I ask myself that question pretty much every day. Sadly I have no clear answer. Silicon is cheap, you can embed a reasonable ARM or Risc-V core in the chip for the area and power draw comparable to one high speed serdes lane. The drivers landing in the kernel are increasingly meaningless. My day job is working for a hyperscaler. Even though we have one of the most capable kernel teams on the planet most of issues with HW we face result in "something is wrong with the FW, let's call the vendor". And even when I say "drivers landing" it is an overstatement. If you look at high speed anything these days the drivers cover multiple generations of hardware, seems like ~5 years ago most NIC vendors reached sufficient FW saturation to cover up differences between HW generations. At the same time some FW is necessary. Certain chip functions, are best driven by a micro-controller running a tight control loop. The complexity of FW is a spectrum, from basic to Qualcomm. The problem is there is no way for us to know what FW is hiding by just looking at the driver. Where do we draw the line? Personally I'd really like to see us pushing back stronger.