Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp1281647pxb; Fri, 22 Jan 2021 11:23:15 -0800 (PST) X-Google-Smtp-Source: ABdhPJxCUFev7EJ373BTtcY8qDNOic6mNqjfvtjwHrWsXFQkfO6OkEo7iZF0tKNAeUuYDxX7+N+h X-Received: by 2002:a17:906:2898:: with SMTP id o24mr3899126ejd.215.1611343395499; Fri, 22 Jan 2021 11:23:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1611343395; cv=none; d=google.com; s=arc-20160816; b=kSX9/+KugN03qrYCGLMNDFkGNivAfCkX9Xd3QUP0VDMMHo/ijiECws0qnIaShLYYfp NrMqn94HG9pEd4MslB+tIf9PwUjXbSTsTSqN18PMTCgpDTs+BxJF2f2vHRf5xZ9OgWbT AoFMjRN718RxOTgwZm2jhbIHSGIa71Yx+2sgsucQWMciaxl1NKYp+orrXOrXBmAm3deV wQvB7IiClv/HBBHVFrZ2GazCfjToOOYUhLr2vGA0tZtP/VpbHtu2aN1wxyYPNn9KuHvZ faJq9cN7x4iW6CKJ2XwzZ5ibsfGQD8GYX7IxHgg/Lvh6UuKbQVeZkMKpZLlZZetcFiAP C9xA== 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:reply-to:cc:from:to :dkim-signature:date; bh=ZSWUd1j5nvzNHtj2fSy/5cVq2S7UqJlndcG8EsavUw8=; b=vDdD4bIxk7epC/UllT3Ps1JSBLVMCqDnWiVLrvIAIfOtl8RXyfiKXK8G+hWoxljCIT yQmLBkYNkumNmfITQmMg8YfRLMbTATHJy9Yz+xp9p7Xpe6rd/3oZsiTOufbVROFD157B U0aa35ABt2nEyFdaMOBK1rEj6xE9XqOsHfu2RQvfeXybvAYrW2VSUNOPLimpxazC6dLc TXabXUrXxXYBCl77grmreThBWhtkJdGL1alvwb5b6tPYZcgmkl2ABWMssy/PEgzCX4Z+ itI2dLOKRzU0QtkuZsnbd2tYrKv3NPl4dfa9NELuUOzqQ83JvCxA2K2vQe3+CKp7KDRx 5BQw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@pm.me header.s=protonmail header.b="f/6gnqOu"; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=pm.me Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a42si4356646edf.469.2021.01.22.11.22.51; Fri, 22 Jan 2021 11:23:15 -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=@pm.me header.s=protonmail header.b="f/6gnqOu"; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=pm.me Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730120AbhAVSnu (ORCPT + 99 others); Fri, 22 Jan 2021 13:43:50 -0500 Received: from mail-40133.protonmail.ch ([185.70.40.133]:44197 "EHLO mail-40133.protonmail.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728826AbhAVSVA (ORCPT ); Fri, 22 Jan 2021 13:21:00 -0500 Date: Fri, 22 Jan 2021 18:19:48 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pm.me; s=protonmail; t=1611339592; bh=ZSWUd1j5nvzNHtj2fSy/5cVq2S7UqJlndcG8EsavUw8=; h=Date:To:From:Cc:Reply-To:Subject:In-Reply-To:References:From; b=f/6gnqOurPgFa/tJuMScK8/V/wtpQ63IoM8UAXSJFBqb7g1IfkNni+K0GZhcT0eXv rDBI3V9/JbOQJ/TFMmdXNmstQDS015ru+vHaoks7x43Ba0srDZRXW1RjIFXQ5HkazP xg6rgDuUGW2ffxj3b1LU0hk8rA+4am4f1Zq1ucZqXyTbBRJepj+zn3pqFLcQW3SH8U VuDwnOEd9Gl1Bm74c6OwqxKCQu+vyex1msS+ZLKzP8jsnA81Dqw0oUKSY3dt83IYVu KLGvZdXRsmzmlnpW6Rxs7rP6HUm85fDgCAhRICOWijQpwNsSnOyQjt8fkTYJeDhCo0 yR9k63ltrZAYQ== To: "David S. Miller" , Jakub Kicinski From: Alexander Lobakin Cc: Hideaki YOSHIFUJI , Willem de Bruijn , Steffen Klassert , Alexander Duyck , Paolo Abeni , Alexander Lobakin , Igor Russkikh , Mauro Carvalho Chehab , Miaohe Lin , Antoine Tenart , Michal Kubecek , Andrew Lunn , Meir Lichtinger , Aya Levin , Florian Fainelli , linux-kernel@vger.kernel.org, netdev@vger.kernel.org Reply-To: Alexander Lobakin Subject: [PATCH v4 net-next 1/2] net: introduce a netdev feature for UDP GRO forwarding Message-ID: <20210122181909.36340-2-alobakin@pm.me> In-Reply-To: <20210122181909.36340-1-alobakin@pm.me> References: <20210122181909.36340-1-alobakin@pm.me> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.2 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mailout.protonmail.ch Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Introduce a new netdev feature, NETIF_F_GRO_UDP_FWD, to allow user to turn UDP GRO on and off for forwarding. Defaults to off to not change current datapath. Suggested-by: Paolo Abeni Signed-off-by: Alexander Lobakin --- include/linux/netdev_features.h | 4 +++- net/ethtool/common.c | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/include/linux/netdev_features.h b/include/linux/netdev_feature= s.h index 934de56644e7..c06d6aaba9df 100644 --- a/include/linux/netdev_features.h +++ b/include/linux/netdev_features.h @@ -84,6 +84,7 @@ enum { =09NETIF_F_GRO_FRAGLIST_BIT,=09/* Fraglist GRO */ =20 =09NETIF_F_HW_MACSEC_BIT,=09=09/* Offload MACsec operations */ +=09NETIF_F_GRO_UDP_FWD_BIT,=09/* Allow UDP GRO for forwarding */ =20 =09/* =09 * Add your fresh new feature above and remember to update @@ -157,6 +158,7 @@ enum { #define NETIF_F_GRO_FRAGLIST=09__NETIF_F(GRO_FRAGLIST) #define NETIF_F_GSO_FRAGLIST=09__NETIF_F(GSO_FRAGLIST) #define NETIF_F_HW_MACSEC=09__NETIF_F(HW_MACSEC) +#define NETIF_F_GRO_UDP_FWD=09__NETIF_F(GRO_UDP_FWD) =20 /* Finds the next feature with the highest number of the range of start ti= ll 0. */ @@ -234,7 +236,7 @@ static inline int find_next_netdev_feature(u64 feature,= unsigned long start) #define NETIF_F_SOFT_FEATURES=09(NETIF_F_GSO | NETIF_F_GRO) =20 /* Changeable features with no special hardware requirements that defaults= to off. */ -#define NETIF_F_SOFT_FEATURES_OFF=09NETIF_F_GRO_FRAGLIST +#define NETIF_F_SOFT_FEATURES_OFF=09(NETIF_F_GRO_FRAGLIST | NETIF_F_GRO_UD= P_FWD) =20 #define NETIF_F_VLAN_FEATURES=09(NETIF_F_HW_VLAN_CTAG_FILTER | \ =09=09=09=09 NETIF_F_HW_VLAN_CTAG_RX | \ diff --git a/net/ethtool/common.c b/net/ethtool/common.c index 24036e3055a1..181220101a6e 100644 --- a/net/ethtool/common.c +++ b/net/ethtool/common.c @@ -68,6 +68,7 @@ const char netdev_features_strings[NETDEV_FEATURE_COUNT][= ETH_GSTRING_LEN] =3D { =09[NETIF_F_HW_TLS_RX_BIT] =3D=09 "tls-hw-rx-offload", =09[NETIF_F_GRO_FRAGLIST_BIT] =3D=09 "rx-gro-list", =09[NETIF_F_HW_MACSEC_BIT] =3D=09 "macsec-hw-offload", +=09[NETIF_F_GRO_UDP_FWD_BIT] =3D=09 "rx-udp-gro-forwarding", }; =20 const char --=20 2.30.0