Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964811AbcK3O6p (ORCPT ); Wed, 30 Nov 2016 09:58:45 -0500 Received: from mail-lf0-f46.google.com ([209.85.215.46]:36751 "EHLO mail-lf0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933530AbcK3O6f (ORCPT ); Wed, 30 Nov 2016 09:58:35 -0500 Subject: DSA vs envelope frames To: Toshiaki Makita , Andy Duan , "David S. Miller" , Troy Kisky , Andrew Lunn , Eric Nelson , Philippe Reynes , Johannes Berg , "netdev@vger.kernel.org" References: <1480444528-30054-1-git-send-email-nikita.yoush@cogentembedded.com> Cc: Chris Healy , Fabio Estevam , "linux-kernel@vger.kernel.org" , Vivien Didelot , lorian Fainelli From: Nikita Yushchenko X-Enigmail-Draft-Status: N1110 Message-ID: Date: Wed, 30 Nov 2016 17:58:31 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Icedove/45.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1550 Lines: 38 >> (1) When DSA is in use, frames processed by FEC chip contain DSA tag and >> thus can be larger than hardcoded limit of 1522. This issue is not >> FEC-specific, any driver that hardcodes maximum frame size to 1522 (many >> do) will have this issue if used with DSA. > > BTW I'm trying to introduce envelope frames to solve this kind of problems. > http://marc.info/?t=147496691500005&r=1&w=2 > http://marc.info/?t=147496691500003&r=1&w=2 > http://marc.info/?t=147496691500002&r=1&w=2 > http://marc.info/?t=147496691500004&r=1&w=2 > http://marc.info/?t=147496691500001&r=1&w=2 > > It needs jumbo frame support of NICs though. Thanks for pointing to this. Indeed frame with DSA tag conceptually is an envelope frame. ndev->env_hdr_len introduced by your patches, actually is explicitly handled difference between (MTU + 18) and frame that HW should allow. If this is known, hardware can be configured to work with DSA. At least FEC hardware that can send and receive "slightly larger" frames after simple register configuration. Furthermore, since DSA configuration is known statically (it comes from device tree), ndo_set_env_hdr_len method could be automatically called at init, making setup working by default if driver supports that. And if not, perhaps can automatically lower MTU. Looks like a solution :) What's current status of this work? What is not really clear - what if several tagging protocols are used together. AFAIU, things may be more complex that simple appending of tags, e.g. EDSA tag can carry VLAN id inside. Nikita