From patchwork Thu Mar 28 19:26:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiner Kallweit X-Patchwork-Id: 1068615 X-Patchwork-Delegate: linville@tuxdriver.com Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="jTNMsJnz"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44VZgF5jTXz9sRM for ; Fri, 29 Mar 2019 06:29:13 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726311AbfC1T3M (ORCPT ); Thu, 28 Mar 2019 15:29:12 -0400 Received: from mail-wm1-f67.google.com ([209.85.128.67]:52410 "EHLO mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725885AbfC1T3M (ORCPT ); Thu, 28 Mar 2019 15:29:12 -0400 Received: by mail-wm1-f67.google.com with SMTP id a184so45753wma.2 for ; Thu, 28 Mar 2019 12:29:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=rS4bQQB+J+XhCtx/inr8A3/QnSTixc2mEFjfxNEVV4g=; b=jTNMsJnzYyOXNmjfeIu65MJZrWDJ3DJh4fk6EwNhnd+e3TLyWSDkd1jvn9fx40YZPO H30VPE/l0GRRQGahoyNxKWmVq2z93xPkX0lnCO95hRwQki5s+cz8yXCBkKZhAHvvSC4C 9GC1EIXs3HG4X/5sAsay6W2MQFK94NJ26b3kzKxqEiTWnt/EgTqJ7rZ56fGVTySdd8Tr LAAfAovuFLdMVYxaDbGML7zZWMdIPjqQeelPTzAA4E+KvxeXWS3jO5fMMHUA+9Cz+rTS LtzHVvowvy8MYu9SXmyqwHq12h4xnLtYMnMr8vEPcM27+Hg/DahsV0sw4BKBQj17loED DTkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=rS4bQQB+J+XhCtx/inr8A3/QnSTixc2mEFjfxNEVV4g=; b=rGm+2ywQOkr6lXftwxwdoSjXhNtGZEXmD4EV3Rgq0OrD4ng4lltlsUROFh3yX98MwR S4aWtQL6iocAI/hAhz7sTt4qrzkII1mND/2c4ibrAbL6y7ALzYvMLwee9PM+h7zYKM3D VZ9JZespwDnHXl655Q3S64D2uAHrA0x6b7Bh2XlY7TGF+fEzxWNGGiQhcJApIbIXcG4B MeaiLaGVyfctmLLPPVC3y5rfbzU1xvekh6u46+WsE+RKzaF7oCYOerhZFo3M5KuDdH8c uDAm2uH90BMcLyxk1ppFXvSWMGFZYnGbbBteD/Tj4T8o4JJaXcMDiob+9MDQto1MYnl1 REMA== X-Gm-Message-State: APjAAAV1A330vooVHbFBWwKjOSwplJdbW8D79S31UdwFz3kLDumnyQ/i ISZe8Xyg3kHzT/TTceYqfFrk99v8 X-Google-Smtp-Source: APXvYqxs5vpaZAgZDyjiGXOE0FUrni5Z4jXLUhV7G6x7Nqm01b1JbzcKzOblcOmThUD4v0nlavXY1g== X-Received: by 2002:a1c:f414:: with SMTP id z20mr1031766wma.100.1553801349611; Thu, 28 Mar 2019 12:29:09 -0700 (PDT) Received: from ?IPv6:2003:ea:8bc4:dc00:347a:eb2e:ca45:166d? (p200300EA8BC4DC00347AEB2ECA45166D.dip0.t-ipconnect.de. [2003:ea:8bc4:dc00:347a:eb2e:ca45:166d]) by smtp.googlemail.com with ESMTPSA id t2sm53158413wra.9.2019.03.28.12.29.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Mar 2019 12:29:08 -0700 (PDT) Subject: [PATCH 1/4] ethtool: sync ethtool-copy.h with linux-next from 03/28/2019 From: Heiner Kallweit To: John Linville , Andrew Lunn , Florian Fainelli Cc: "netdev@vger.kernel.org" References: <7abec5a5-8087-8591-8619-83605de6dddc@gmail.com> Message-ID: Date: Thu, 28 Mar 2019 20:26:25 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <7abec5a5-8087-8591-8619-83605de6dddc@gmail.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Sync ethtool-copy.h with linux-next from 03/28/2019. This provides access to the new PHY tunable for Fast Link Down support. Signed-off-by: Heiner Kallweit --- ethtool-copy.h | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/ethtool-copy.h b/ethtool-copy.h index 1204076..92ab10d 100644 --- a/ethtool-copy.h +++ b/ethtool-copy.h @@ -89,10 +89,6 @@ * %ETHTOOL_GSET to get the current values before making specific * changes and then applying them with %ETHTOOL_SSET. * - * Drivers that implement set_settings() should validate all fields - * other than @cmd that are not described as read-only or deprecated, - * and must ignore all fields described as read-only. - * * Deprecated fields should be ignored by both users and drivers. */ struct ethtool_cmd { @@ -254,9 +250,17 @@ struct ethtool_tunable { #define DOWNSHIFT_DEV_DEFAULT_COUNT 0xff #define DOWNSHIFT_DEV_DISABLE 0 +/* Time in msecs after which link is reported as down + * 0 = lowest time supported by the PHY + * 0xff = off, link down detection according to standard + */ +#define ETHTOOL_PHY_FAST_LINK_DOWN_ON 0 +#define ETHTOOL_PHY_FAST_LINK_DOWN_OFF 0xff + enum phy_tunable_id { ETHTOOL_PHY_ID_UNSPEC, ETHTOOL_PHY_DOWNSHIFT, + ETHTOOL_PHY_FAST_LINK_DOWN, /* * Add your fresh new phy tunable attribute above and remember to update * phy_tunable_strings[] in net/core/ethtool.c @@ -884,7 +888,7 @@ struct ethtool_rx_flow_spec { __u32 location; }; -/* How rings are layed out when accessing virtual functions or +/* How rings are laid out when accessing virtual functions or * offloaded queues is device specific. To allow users to do flow * steering and specify these queues the ring cookie is partitioned * into a 32bit queue index with an 8 bit virtual function id. @@ -893,7 +897,7 @@ struct ethtool_rx_flow_spec { * devices start supporting PCIe w/ARI. However at the moment I * do not know of any devices that support this so I do not reserve * space for this at this time. If a future patch consumes the next - * byte it should be aware of this possiblity. + * byte it should be aware of this possibility. */ #define ETHTOOL_RX_FLOW_SPEC_RING 0x00000000FFFFFFFFLL #define ETHTOOL_RX_FLOW_SPEC_RING_VF 0x000000FF00000000LL @@ -1434,6 +1438,13 @@ enum ethtool_link_mode_bit_indices { ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 29, ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 30, ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 31, + + /* Last allowed bit for __ETHTOOL_LINK_MODE_LEGACY_MASK is bit + * 31. Please do NOT define any SUPPORTED_* or ADVERTISED_* + * macro for bits > 31. The only way to use indices > 31 is to + * use the new ETHTOOL_GLINKSETTINGS/ETHTOOL_SLINKSETTINGS API. + */ + ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 32, ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 33, ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 34, @@ -1471,14 +1482,8 @@ enum ethtool_link_mode_bit_indices { ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 65, ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66, - /* Last allowed bit for __ETHTOOL_LINK_MODE_LEGACY_MASK is bit - * 31. Please do NOT define any SUPPORTED_* or ADVERTISED_* - * macro for bits > 31. The only way to use indices > 31 is to - * use the new ETHTOOL_GLINKSETTINGS/ETHTOOL_SLINKSETTINGS API. - */ - - __ETHTOOL_LINK_MODE_LAST - = ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT, + /* must be last entry */ + __ETHTOOL_LINK_MODE_MASK_NBITS }; #define __ETHTOOL_LINK_MODE_LEGACY_MASK(base_name) \ @@ -1814,14 +1819,9 @@ enum ethtool_reset_flags { * rejected. * * Deprecated %ethtool_cmd fields transceiver, maxtxpkt and maxrxpkt - * are not available in %ethtool_link_settings. Until all drivers are - * converted to ignore them or to the new %ethtool_link_settings API, - * for both queries and changes, users should always try - * %ETHTOOL_GLINKSETTINGS first, and if it fails with -ENOTSUPP stick - * only to %ETHTOOL_GSET and %ETHTOOL_SSET consistently. If it - * succeeds, then users should stick to %ETHTOOL_GLINKSETTINGS and - * %ETHTOOL_SLINKSETTINGS (which would support drivers implementing - * either %ethtool_cmd or %ethtool_link_settings). + * are not available in %ethtool_link_settings. These fields will be + * always set to zero in %ETHTOOL_GSET reply and %ETHTOOL_SSET will + * fail if any of them is set to non-zero value. * * Users should assume that all fields not marked read-only are * writable and subject to validation by the driver. They should use From patchwork Thu Mar 28 19:27:13 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiner Kallweit X-Patchwork-Id: 1068616 X-Patchwork-Delegate: linville@tuxdriver.com Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="iqL4iKLX"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44VZgH1b1Gz9sRM for ; Fri, 29 Mar 2019 06:29:15 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726476AbfC1T3O (ORCPT ); Thu, 28 Mar 2019 15:29:14 -0400 Received: from mail-wr1-f66.google.com ([209.85.221.66]:35187 "EHLO mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726047AbfC1T3N (ORCPT ); Thu, 28 Mar 2019 15:29:13 -0400 Received: by mail-wr1-f66.google.com with SMTP id w1so24412880wrp.2 for ; Thu, 28 Mar 2019 12:29:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=lzo6+RcvI/w2HqP2TXGZctH9r9jrj3Ntp/O1bfoZ7z0=; b=iqL4iKLXubkLblCr8U86UnVpg7uKKYjjxswmdl8oWVJdl0Xi8eDiGFtM1KdRTAgtTL WY9rAybGmcmcnJB52DGgBBX6KMgmcOJ2NXn8no7ayKmIKRCj80Hzf/sGxH34o76RTWDv 7hwcRxpRAglopV7ERFSE4jf6Q8byYutB+qL53CMt9ZpMcw4E3pzGw3fWafH82kOE0xI2 MmToqyTrHXU8yj7IjK58GlJBCZ1TmWpvVIizVPmPjkUCKkiDSCMoDPcMknoKGf6i9obs bNcKfDtSk9TUz65j/RJQ5mQAZzpfAzx8PrKsMtom3psqCVLgA1E2jogz5pk8Cxjyvh+B fnSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=lzo6+RcvI/w2HqP2TXGZctH9r9jrj3Ntp/O1bfoZ7z0=; b=qkMcYUIZlFFGZ+WUbqNgn9IHfR1z+3Og4l4QV3TSjgfNCMKLru7qiiIRRYmVRGlvKE rh0eaJK44pOR/UwVLYp648f+cmsKOJD+hDucIly9Y69YSjSULHPZQdLeEsHKPSdhqs9m 8oO+EzJBeAGeWbZrknwcxxZJRRTJn9iW05NJQile+4hc4pUVX1o2eWpephBniKYFfzm6 3JVC0XfLCJTJZa5PQRqqZhZC3qQkasZdnLzat2yrUcSnehiO1Ef9Bne/H7uPRKkR/Mho gRB/l8wlosptT0Ypyxody1iPP4u13zlY7IswpzGBYsE4Vo7ZVIXFKs3SoLiAZ1qbSCba Thpg== X-Gm-Message-State: APjAAAWeDRIXkSmigONN5P7bxMoEECLqG5uL2Jk+BRlmXmWkyZN0Os8Z m8XQRoojR6Tzg3DkfwdHJ47uFIQW X-Google-Smtp-Source: APXvYqwbUSp6yIqQ4snSEbEKvlcFqWhr1G9D22Snsn9j1BKbUeV3vGbhkFx32I1cPx778YsNwnjAuQ== X-Received: by 2002:adf:e407:: with SMTP id g7mr17609958wrm.47.1553801351587; Thu, 28 Mar 2019 12:29:11 -0700 (PDT) Received: from ?IPv6:2003:ea:8bc4:dc00:347a:eb2e:ca45:166d? (p200300EA8BC4DC00347AEB2ECA45166D.dip0.t-ipconnect.de. [2003:ea:8bc4:dc00:347a:eb2e:ca45:166d]) by smtp.googlemail.com with ESMTPSA id j22sm5250546wrd.91.2019.03.28.12.29.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Mar 2019 12:29:10 -0700 (PDT) Subject: [PATCH 2/4] ethtool: simplify handling of PHY tunable downshift From: Heiner Kallweit To: John Linville , Andrew Lunn , Florian Fainelli Cc: "netdev@vger.kernel.org" References: <7abec5a5-8087-8591-8619-83605de6dddc@gmail.com> Message-ID: Date: Thu, 28 Mar 2019 20:27:13 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <7abec5a5-8087-8591-8619-83605de6dddc@gmail.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In preparation of adding support for Fast Link Down as PHY tunable let's simplify the handling of PHY tunable downshift a little. Signed-off-by: Heiner Kallweit --- ethtool.c | 43 +++++++++++++------------------------------ 1 file changed, 13 insertions(+), 30 deletions(-) diff --git a/ethtool.c b/ethtool.c index 59131e8..f67cd1b 100644 --- a/ethtool.c +++ b/ethtool.c @@ -4818,28 +4818,15 @@ static int do_get_phy_tunable(struct cmd_context *ctx) { int argc = ctx->argc; char **argp = ctx->argp; - u8 downshift_changed = 0; - int i; if (argc < 1) exit_bad_args(); - for (i = 0; i < argc; i++) { - if (!strcmp(argp[i], "downshift")) { - downshift_changed = 1; - i += 1; - if (i < argc) - exit_bad_args(); - } else { - exit_bad_args(); - } - } - if (downshift_changed) { + if (!strcmp(argp[0], "downshift")) { struct { struct ethtool_tunable ds; - u8 __count; + u8 count; } cont; - u8 count = 0; cont.ds.cmd = ETHTOOL_PHY_GTUNABLE; cont.ds.id = ETHTOOL_PHY_DOWNSHIFT; @@ -4849,11 +4836,12 @@ static int do_get_phy_tunable(struct cmd_context *ctx) perror("Cannot Get PHY downshift count"); return 87; } - count = *((u8 *)&cont.ds.data[0]); - if (count) - fprintf(stdout, "Downshift count: %d\n", count); + if (cont.count) + fprintf(stdout, "Downshift count: %d\n", cont.count); else fprintf(stdout, "Downshift disabled\n"); + } else { + exit_bad_args(); } return 0; @@ -4995,17 +4983,12 @@ static int do_set_phy_tunable(struct cmd_context *ctx) u8 ds_cnt = DOWNSHIFT_DEV_DEFAULT_COUNT; u8 ds_changed = 0, ds_has_cnt = 0, ds_enable = 0; - if (ctx->argc == 0) - exit_bad_args(); - /* Parse arguments */ - while (ctx->argc) { - if (parse_named_bool(ctx, "downshift", &ds_enable)) { - ds_changed = 1; - ds_has_cnt = parse_named_u8(ctx, "count", &ds_cnt); - } else { - exit_bad_args(); - } + if (parse_named_bool(ctx, "downshift", &ds_enable)) { + ds_changed = 1; + ds_has_cnt = parse_named_u8(ctx, "count", &ds_cnt); + } else { + exit_bad_args(); } /* Validate parameters */ @@ -5029,14 +5012,14 @@ static int do_set_phy_tunable(struct cmd_context *ctx) if (ds_changed) { struct { struct ethtool_tunable ds; - u8 __count; + u8 count; } cont; cont.ds.cmd = ETHTOOL_PHY_STUNABLE; cont.ds.id = ETHTOOL_PHY_DOWNSHIFT; cont.ds.type_id = ETHTOOL_TUNABLE_U8; cont.ds.len = 1; - *((u8 *)&cont.ds.data[0]) = ds_cnt; + cont.count = ds_cnt; err = send_ioctl(ctx, &cont.ds); if (err < 0) { perror("Cannot Set PHY downshift count"); From patchwork Thu Mar 28 19:27:52 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiner Kallweit X-Patchwork-Id: 1068617 X-Patchwork-Delegate: linville@tuxdriver.com Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="AAtcBmPg"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44VZgK2wygz9sRM for ; Fri, 29 Mar 2019 06:29:17 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726508AbfC1T3Q (ORCPT ); Thu, 28 Mar 2019 15:29:16 -0400 Received: from mail-wm1-f68.google.com ([209.85.128.68]:33994 "EHLO mail-wm1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726414AbfC1T3P (ORCPT ); Thu, 28 Mar 2019 15:29:15 -0400 Received: by mail-wm1-f68.google.com with SMTP id o10so7994625wmc.1 for ; Thu, 28 Mar 2019 12:29:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=n+RK4xe3r/EwRgzdInN5e+q/rbfPZJDzqTuKJSugn/Y=; b=AAtcBmPgcf0RZPJvhdtpDxMrn6yTBjBCiDsYdUJ+HCudxT3R0GKQWjG5SRPiFujMb8 tey0615xXyaGjmvh65X/pXFdsIC1OZOoto1Pz6JBVxGAkJUd4/iIsU9lA9X+tPLxw7Qc dFZp+gjE48xS8hMEwNZM5L0tQ1i5Q+L+JWj0Gon1OQcecKXg+QGBFVZkliRA1uGTmSO0 SZK94Wh+iDBnNBpJjSzc48X2XtfKTKZ3hBiLp46cRkeZ2WGaMipSkirdBndKpIfMfhP/ Q2s+CsQf72jXEHi9+kZjYDAYdA8v5Cll9SkFuLiVgJF0wCT13+dIsBgVJVrM2AAg8Lta xTYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=n+RK4xe3r/EwRgzdInN5e+q/rbfPZJDzqTuKJSugn/Y=; b=eNSXJAFCI5WhG2UUHS+602n3faF5NgC1qIBeYio1AFjwgLdDmtaa1I570EOVzgdhvx 9F1GOjfWvsZh30zESV1lVOUtsOvKWX5f168GYZdQr3do/sX0fslOqn83lqXMQNx++ulV bNAwEsa8bGpOAxLycaA6fjBnvZ7msP5xHCS4AdGbHlbDnWI8AVhUUYTLDSKNVF4V0h3N 73YFjEtP6Uw65g5+SOBULCf0vL2NJ40pps6auUS59u34IdunkVkc3VpQY84Gqz4+cwW+ 307E6U5PIe+ZEoH8Clwdi+5SR0NJ4RKi2wLH3HeNif/VN/D/Z5AMbIVxskO+HAvhQAb8 gleQ== X-Gm-Message-State: APjAAAU5a5YYQvM9n2XZaWOZZoR/ngY+QAaXGVqeHjE7Tv5r3Q0Y6HDv 2Y11rcAyVnmsFYc7auV/DUrRAg+f X-Google-Smtp-Source: APXvYqxt6KXCOmPPQufR0VBu/DQotWhp2hbxBejqAAvnMCYCpnFBOV6r1/1YkpvZFi8mVWU7RgDuuw== X-Received: by 2002:a05:600c:cd:: with SMTP id u13mr1023685wmm.49.1553801353122; Thu, 28 Mar 2019 12:29:13 -0700 (PDT) Received: from ?IPv6:2003:ea:8bc4:dc00:347a:eb2e:ca45:166d? (p200300EA8BC4DC00347AEB2ECA45166D.dip0.t-ipconnect.de. [2003:ea:8bc4:dc00:347a:eb2e:ca45:166d]) by smtp.googlemail.com with ESMTPSA id 7sm86490154wrc.81.2019.03.28.12.29.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Mar 2019 12:29:12 -0700 (PDT) Subject: [PATCH 3/4] ethtool: add support for PHY tunable Fast Link Down From: Heiner Kallweit To: John Linville , Andrew Lunn , Florian Fainelli Cc: "netdev@vger.kernel.org" References: <7abec5a5-8087-8591-8619-83605de6dddc@gmail.com> Message-ID: <371bcc10-9089-bb5f-3396-4b7287e421a1@gmail.com> Date: Thu, 28 Mar 2019 20:27:52 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <7abec5a5-8087-8591-8619-83605de6dddc@gmail.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This patch adds support for PHY tunable Fast Link Down. Like downshift it uses an u8 parameter. Signed-off-by: Heiner Kallweit --- ethtool.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/ethtool.c b/ethtool.c index f67cd1b..f56a604 100644 --- a/ethtool.c +++ b/ethtool.c @@ -4840,6 +4840,28 @@ static int do_get_phy_tunable(struct cmd_context *ctx) fprintf(stdout, "Downshift count: %d\n", cont.count); else fprintf(stdout, "Downshift disabled\n"); + } else if (!strcmp(argp[0], "fast-link-down")) { + struct { + struct ethtool_tunable fld; + u8 msecs; + } cont; + + cont.fld.cmd = ETHTOOL_PHY_GTUNABLE; + cont.fld.id = ETHTOOL_PHY_FAST_LINK_DOWN; + cont.fld.type_id = ETHTOOL_TUNABLE_U8; + cont.fld.len = 1; + if (send_ioctl(ctx, &cont.fld) < 0) { + perror("Cannot Get PHY Fast Link Down value"); + return 87; + } + + if (cont.msecs == ETHTOOL_PHY_FAST_LINK_DOWN_ON) + fprintf(stdout, "Fast Link Down enabled\n"); + else if (cont.msecs == ETHTOOL_PHY_FAST_LINK_DOWN_OFF) + fprintf(stdout, "Fast Link Down disabled\n"); + else + fprintf(stdout, "Fast Link Down enabled, %d msecs\n", + cont.msecs); } else { exit_bad_args(); } @@ -4982,11 +5004,17 @@ static int do_set_phy_tunable(struct cmd_context *ctx) int err = 0; u8 ds_cnt = DOWNSHIFT_DEV_DEFAULT_COUNT; u8 ds_changed = 0, ds_has_cnt = 0, ds_enable = 0; + u8 fld_changed = 0, fld_enable = 0; + u8 fld_msecs = ETHTOOL_PHY_FAST_LINK_DOWN_ON; /* Parse arguments */ if (parse_named_bool(ctx, "downshift", &ds_enable)) { ds_changed = 1; ds_has_cnt = parse_named_u8(ctx, "count", &ds_cnt); + } else if (parse_named_bool(ctx, "fast-link-down", &fld_enable)) { + fld_changed = 1; + if (fld_enable) + parse_named_u8(ctx, "msecs", &fld_msecs); } else { exit_bad_args(); } @@ -5006,6 +5034,11 @@ static int do_set_phy_tunable(struct cmd_context *ctx) if (!ds_enable) ds_cnt = DOWNSHIFT_DEV_DISABLE; + } else if (fld_changed) { + if (!fld_enable) + fld_msecs = ETHTOOL_PHY_FAST_LINK_DOWN_OFF; + else if (fld_msecs == ETHTOOL_PHY_FAST_LINK_DOWN_OFF) + exit_bad_args(); } /* Do it */ @@ -5025,6 +5058,22 @@ static int do_set_phy_tunable(struct cmd_context *ctx) perror("Cannot Set PHY downshift count"); err = 87; } + } else if (fld_changed) { + struct { + struct ethtool_tunable fld; + u8 msecs; + } cont; + + cont.fld.cmd = ETHTOOL_PHY_STUNABLE; + cont.fld.id = ETHTOOL_PHY_FAST_LINK_DOWN; + cont.fld.type_id = ETHTOOL_TUNABLE_U8; + cont.fld.len = 1; + cont.msecs = fld_msecs; + err = send_ioctl(ctx, &cont.fld); + if (err < 0) { + perror("Cannot Set PHY Fast Link Down value"); + err = 87; + } } return err; @@ -5276,9 +5325,11 @@ static const struct option { " [ tx-lpi on|off ]\n" " [ tx-timer %d ]\n"}, { "--set-phy-tunable", 1, do_set_phy_tunable, "Set PHY tunable", - " [ downshift on|off [count N] ]\n"}, + " [ downshift on|off [count N] ]\n" + " [ fast-link-down on|off [msecs N] ]\n"}, { "--get-phy-tunable", 1, do_get_phy_tunable, "Get PHY tunable", - " [ downshift ]\n"}, + " [ downshift ]\n" + " [ fast-link-down ]\n"}, { "--reset", 1, do_reset, "Reset components", " [ flags %x ]\n" " [ mgmt ]\n" From patchwork Thu Mar 28 19:28:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiner Kallweit X-Patchwork-Id: 1068618 X-Patchwork-Delegate: linville@tuxdriver.com Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="msE8g5Dy"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44VZgL72mpz9sRM for ; Fri, 29 Mar 2019 06:29:18 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726543AbfC1T3S (ORCPT ); Thu, 28 Mar 2019 15:29:18 -0400 Received: from mail-wm1-f67.google.com ([209.85.128.67]:33996 "EHLO mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726047AbfC1T3Q (ORCPT ); Thu, 28 Mar 2019 15:29:16 -0400 Received: by mail-wm1-f67.google.com with SMTP id o10so7994689wmc.1 for ; Thu, 28 Mar 2019 12:29:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=zXCHXkVKrw3dzWZeGIfHb0oyKggnJuUPo7w+a9+gACU=; b=msE8g5DydxCNabjWpa1Av3do2rF8cTVZpvGOY3gZAiFZPM54L/9SBKqRG+jnDnOxKE LMe1MenTjyS4yBrZC/5SXSZFR+kIAuzfVi4UP4K35zlx8cM//xmm9n8EuWgP2IYb/95O A8Jy3v1Tnz9E16aj2afLu9wajMS7v34nHgLeY7/Ci+6egn45uwsS6nNP7e/S0TTKLnD3 fq4dCnzVR4ko/LWw4gFw3Oon88f1Jc0l8GORRd7Aqb9gPLFy/Jw7gLsgXcy9nkq3TXem bWL2OBUz2LDe8g9mA7JQtErEizx+R8C3BukSI+eeDaaN1auB0oOqX/CQ6DMJNMnNmmfr m+QA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=zXCHXkVKrw3dzWZeGIfHb0oyKggnJuUPo7w+a9+gACU=; b=O+MihoXNsUHDXU0e72KzD1ro01eC+Szswcu6B+poJdKfoGycK6PYSm/sYvIoD5okIm yN1Zqi1zehZIlma7Heewgvrl/PgnJHU94DcBSI7S/Uc95qko9SmElTHjoIZ5JE0vACSM DjNCVXs4mR0dXQVtGYfVCINsRhXrL0yMMxTd1eKIKGnxV0AEmdl6CbNcK0RldR/8InPj vor3YKFOyw5WzD1e3VxJzMBlqcgEDbdQTqxL3wEzpgXEjufnKZ8L0DZ8Hyh195ehe986 yfAl7d4P/uBOcliQk3SvGTJcDO9i9Y3J5srFYJsCPAJwx51FgA5DfTKBBkFsgI1wQs+X s9gw== X-Gm-Message-State: APjAAAV0k3n20XgNtx2rn87GgWLCmfwm7Ga/7iEJ38R4GXhO8CL2LmDK EiMt9vK/zbyZt09hpd+lSjRX+NHg X-Google-Smtp-Source: APXvYqyWojqCklZm4679TmbfSEer6DYXpqxGu+0RTJecnvNFfKsdUxltt5OgwWu07A8NOXn2/Xt5DA== X-Received: by 2002:a1c:730c:: with SMTP id d12mr1013132wmb.47.1553801354742; Thu, 28 Mar 2019 12:29:14 -0700 (PDT) Received: from ?IPv6:2003:ea:8bc4:dc00:347a:eb2e:ca45:166d? (p200300EA8BC4DC00347AEB2ECA45166D.dip0.t-ipconnect.de. [2003:ea:8bc4:dc00:347a:eb2e:ca45:166d]) by smtp.googlemail.com with ESMTPSA id f10sm4115364wrs.17.2019.03.28.12.29.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Mar 2019 12:29:14 -0700 (PDT) Subject: [PATCH 4/4] ethtool: add PHY Fast Link Down tunable to man page From: Heiner Kallweit To: John Linville , Andrew Lunn , Florian Fainelli Cc: "netdev@vger.kernel.org" References: <7abec5a5-8087-8591-8619-83605de6dddc@gmail.com> Message-ID: <2ca651c7-89b3-65fd-0941-b732692c8d41@gmail.com> Date: Thu, 28 Mar 2019 20:28:56 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <7abec5a5-8087-8591-8619-83605de6dddc@gmail.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Add description of new PHY tunable Fast Link Down to ethtool man page. Signed-off-by: Heiner Kallweit --- ethtool.8.in | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/ethtool.8.in b/ethtool.8.in index b878521..c2a97f2 100644 --- a/ethtool.8.in +++ b/ethtool.8.in @@ -355,10 +355,16 @@ ethtool \- query or control network driver and hardware settings .A1 on off .BN count .RB ] +.RB [ +.B fast\-link\-down +.A1 on off +.BN msecs +.RB ] .HP .B ethtool \-\-get\-phy\-tunable .I devname .RB [ downshift ] +.RB [ fast-link-down ] .HP .B ethtool \-\-reset .I devname @@ -1069,12 +1075,22 @@ Sets the PHY tunable parameters. .RS 4 .TP .A2 downshift on off -Specifies whether downshift should be enabled +Specifies whether downshift should be enabled. .TS nokeep; lB l. .BI count \ N -Sets the PHY downshift re-tries count. + Sets the PHY downshift re-tries count. +.TE +.TP +.A2 fast-link-down on off +Specifies whether Fast Link Down should be enabled and time until link down (if supported). +.TS +nokeep; +lB l. +.BI msecs \ N + Sets the period after which the link is reported as down. Note that the PHY may choose + the closest supported value. Only on reading back you get the actual value. .TE .PD .RE @@ -1090,6 +1106,14 @@ Link speed downshift after N failed 1000BASE-T auto-negotiation attempts. Downshift is useful where cable does not have the 4 pairs instance. Gets the PHY downshift count/status. +.TP +.B fast\-link\-down +Depending on the mode it may take 0.5s - 1s until a broken link is reported as down. +In certain use cases a link-down event needs to be reported as soon as possible. +Some PHYs support a Fast Link Down feature, and partially even allow to configure +the period until until a broken link is reported as being down. + +Gets the PHY Fast Link Down status / period. .RE .TP .B \-\-reset