From patchwork Fri Jul 27 23:02:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 10547805 X-Patchwork-Delegate: idosch@idosch.org Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 23364112B for ; Fri, 27 Jul 2018 23:03:29 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1505D2C6DA for ; Fri, 27 Jul 2018 23:03:29 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 091B92C6DE; Fri, 27 Jul 2018 23:03:29 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED,MAILING_LIST_MULTI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.ozlabs.org (lists.ozlabs.org [203.11.71.2]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 26B022C6DA for ; Fri, 27 Jul 2018 23:03:28 +0000 (UTC) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 41ckz23VJwzF0pD for ; Sat, 28 Jul 2018 09:03:26 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dmarc=pass (p=none dis=none) header.from=mellanox.com Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="MxksqIUl"; dkim-atps=neutral X-Original-To: linux-mlxsw@lists.ozlabs.org Delivered-To: linux-mlxsw@lists.ozlabs.org Authentication-Results: lists.ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=mellanox.com (client-ip=40.107.0.42; helo=eur02-am5-obe.outbound.protection.outlook.com; envelope-from=petrm@mellanox.com; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=pass (p=none dis=none) header.from=mellanox.com Authentication-Results: lists.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="MxksqIUl"; dkim-atps=neutral Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00042.outbound.protection.outlook.com [40.107.0.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 41ckyx4VFzzF09Y for ; Sat, 28 Jul 2018 09:03:21 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=M5IsvNx5e8H+7C3PuIRVuOzv7g/ZzU2ubmUNXPaaDAk=; b=MxksqIUleP/yqJ56iZKoFVmigz1JKTz42NTlpxkn7mQ3J42RNxIsfQ031gOsrtGEw8kV954gxmM6vR5VqkhjeYpt7DeD30nA6Y+45PmZoPB2CvqybKQuehfrLwnFjLlMmMoEpMIYfMxdWLS0AdWYJbI4ym9Rlgz2S6fPxnTxIM4= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=petrm@mellanox.com; Received: from t540p (89.176.83.59) by VI1PR05MB4191.eurprd05.prod.outlook.com (2603:10a6:803:4e::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.973.21; Fri, 27 Jul 2018 23:03:14 +0000 From: Petr Machata To: Subject: [PATCH net-next mlxsw v2 1/6] net: ipv4: Control SKB reprioritization after forwarding In-Reply-To: References: Message-Id: Date: Sat, 28 Jul 2018 01:02:36 +0200 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 X-Originating-IP: [89.176.83.59] X-ClientProxiedBy: VI1PR04CA0112.eurprd04.prod.outlook.com (2603:10a6:803:64::47) To VI1PR05MB4191.eurprd05.prod.outlook.com (2603:10a6:803:4e::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e9eb0b26-5c43-4a8f-f51e-08d5f4152200 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:VI1PR05MB4191; X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB4191; 3:HmMc1fbKE8sDVvTHYfAGo2OI6TL1dwY7fUZkD3ueaxSwa5C/g51Dfjy+2e2gyC4p7mDqASKhFwH8gh/myHvqWcEnkmTf2NexKjwxkw6n4rouf1TB4HMVvDm3zshnA/57aAGBFQKE8BR0B2rLh+R/2fCS+k6F5Wxycp2sybw8F23SbhXt+cqA8jh0L+BFu+obVdj8sRQ/Iuagkvj1aWEysX8+iGYV22FcpG49sQ3OQTbRe6fccUBtymBY7CkmPiI6; 25:DcuCmHTEHYZ6N2z0xPaB+JOojr/PUq/i3b9sxTAlh+r/NqsmXkAzYsB+OkPdSQ6RiydlPVWirr6XDw4MUZHrIViTMi3sbEyL+A/FWOqLZ80Uo2jgpaSBrt5dfdIBVOGlsNillXoJMz9wAXjjpbOwVVJKgvZBZTkxavImB/erO99NQMPi7vKO1pXUQYLv9H07fFCNoUcvJ+WZpiuL1jWQKy00eDU7Tb7LHs+9SanLY//Nm75Shz6uYTItlM3dBTJ2Q/yeZCkI2n2IhpsyzaV3u00Res9QSYeCO6vLT5g9os/gsCT4aWoDMPgaY3s8s/i3lQQM/qQxH+RcMj3OdrwDzg==; 31:YqeeVKwB6n+FX3KYpV/vgqvCWaEDUgKIJIbFA3rBv2umUrX5edkqqI6RDuTFPuAgLymX60dv8ERqYL8MHdg/92R/NW8TKqmCEm7bMaiIk6in7Cp11rVkvql+3+ydrlZqOUh2kMzf6OTVEtNDdXWtDkv6M110JIkZ9JAgskIPQhBInk7QpxNOy3etiKxfFZT0wlauI5Kyfd1e+GWulSlBZ72HmcV/2T7IJ+HW4bn7FQ8= X-MS-TrafficTypeDiagnostic: VI1PR05MB4191: X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB4191; 20:Y+43G7iKLG/VniXT8YF84Z3o+ZcR4WZW3MnXpoqbAC5RN0n83v4bb8xYGOH3VgxbMFJDiVBUllQXD/nTFZoMtv0oevp7aT4AbsA/n5CTbl85DoeIrmofIRplfm8FMS04a8x1IxA/4Yaeq6r37vtnMUakyzdxWIgXEqkf467DlRq2KkZkBRjrjrmE/HhIrR5EcHEv+4XeO+Mk0Mup9hz/mDyLEE5U9/HMstnP5lwbWBv9M7XjyAy01m7t5/wLGOaUW+91D/bz9oqIFVPmxUzWQ4mx5nggPlDX6PfmrrwGGJRKdMgKmyNVlwrK+qSvGW12ZuBScbZYC7ihzGie1IElo4O5bpz78cZ40uFsiCz2PMqX7sQ2/7BpfSIyV6aG5/gouI9scYPISDGB7rDcTFuW8QGRYKtcltA+3ko9+ksUBgCK1IXKs+ty/WzDvWGvn9i1ZK+WCOWHBJRBiREHqklfpmQSRnf8AFe2v5knXcggkRi9lmSFlWUs7YQx5zrYi8/F; 4:WW0ni+YBgwBvKg+P3m14SUxVdI0Q27+k8rn4zZD82ESb1EzaV1mxtvHkfSfxjvDLO2Bb0OvsIQsH4G5G7rABi5Q96et72fS55VCFgHrdj90rt/tFOCnKHUk8WTFaUJVnpckBRHBTu6y5eziDcmZlBSrQT+2P6BBjvxFpHwrfwpM3Rv5wEaNUMquAnYOVHtxnZWDvPH18SHgcAYjLa2iVNZ2FlVb1ECdkQWNVXzQce9THPwE3ASpxjvjAO7sZBhVTnRpDFLzfdZbIhRknQzL5wg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(10201501046)(93006095)(93001095)(3231311)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:VI1PR05MB4191; BCL:0; PCL:0; RULEID:; SRVR:VI1PR05MB4191; X-Forefront-PRVS: 07467C4D33 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(376002)(39860400002)(366004)(396003)(136003)(189003)(199004)(2906002)(52116002)(5660300001)(81156014)(6636002)(66066001)(6666003)(53936002)(81166006)(6862004)(47776003)(8676002)(16586007)(58126008)(11346002)(16526019)(446003)(186003)(86362001)(575784001)(37006003)(26005)(386003)(14444005)(51416003)(76176011)(6496006)(48376002)(97736004)(50466002)(2351001)(25786009)(7736002)(305945005)(106356001)(316002)(105586002)(3846002)(486006)(8936002)(118296001)(68736007)(2616005)(476003)(956004)(478600001)(6486002)(36756003)(6116002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB4191; H:t540p; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR05MB4191; 23:AICHq65yqgxNkwFaAcvBkl2bsJWBpf7SBHu0zWNTm?= e0U7YOLlWRezlGSbqn7DFyYVNvS7jyyk2Z1bwXekLKcW+8lNi+/WUk8sZ5EemjlCrp0ShN41xhrPAM3W/0B0ooA66CvEPE/q8fPCYQAA32tE1znYQ/YVFwcSzk3aw0PICCyoq2W+n3AEXmvIdB69+ZbQoKUw9WVrVr9rIv4mc15Op30nIFPEscFSsh8a4ogv25dzYBxD3YqY4X8VgCYaRCJPph0q/vNGpc4i6zuEX0ixt35ze8IfNx5tUnWElby5AkGD/CdWdYFTFvTcHUCTYILy0hkkid0uA60sxUISNtYyXAskw49KNsRoWgPZP8x4r/DmN/yQwqZ6E4oEIAcnA9hbeKZ0+6bZJyl8xtRL2VeyTh366ToH6C9c3aXbwep4X/vg6Y8YJkrEfQYvL8owqLr++sh8e1Pu1rhskpYNk2V9AgKxdIVARkKHD9mYBR0ezu2TGx3IL5HpC/bPMV9uu2uDObgTv7JzWYqYNGbLwSMJ0az8UFeDZpXBAt7AWMZNiuWSiD9sX4s5cYPw4KcKg3Xwnk6ZCp0fYE/dUx+HSISKs3FAMPhZfMqKVIQBntciZ9dBIi0adPaxA5m8I9m0rrVq03grUTQ4W0wNKha0KAHBIsQQVreFNcMBbVCyflLSi9/jl5Fk8RpF6b5I+TjfNkxLR9YgjnzPemQC+92KdRUKL8SeaQ8iYp7FiQltTU0vuEOSB+nLj0/nMTpWRnPyfIVAYs4P6hAQIOewRH0uJCZ2X/oZK7KfArlsyHvNKI5vLoCdydOcxcDbCS0nonEvX/mGuxALz1Owy9kU9Y4ug55URzG4lUPX9jNKI0iGxB1ggmecR2ROlotLVYMU5exkKz9XPy65+6a5Vy/RaHTTgnKNn0TpGQ8JLLISuYju2hzHyI+rC1913sU3+Wn0NXOMRNItGRYjY9SEcTFbzKTqfc+9ksIzzYAPMjWFzapIvtvsgZeUa8RELMP7kY2W+CEBZJC0MDVwO4Hdgw4jH3evyCAKFyD3p0kZKop4ThmBE1eI0MjD33yTxn5P3eb7fh1iP+4m2XhgOsIYDVXvwQc/sGLVcU1PE9ZMZ2RXx9odNX7Ug6GT6+YMDRJmprtc2yWJen7Lqn0EuPZTv1CLFQCVFREaH22HqbZ4ShNCTuKq9M/yYzTzolodykbwdSMwVGeNdkGcnfXsd2Ebai0uFBLXwVNbHu+c3E4Vx9gphKrHMiLxOw= X-Microsoft-Antispam-Message-Info: zH90N733pDLTPW1YfA2GUgunSGJ8ZR68XjaMIVZIsWyR4YtcfvpiVjD1uecpSVeQ8Hh0/CXMKKXWNXdzLpMCtrTZ3H+EmZG4LmXVPgmJj67JAxaLGTIWglHY+GFo2cdBCa508oe1lwRA7w6UbTb5qysguLyPXZQiEN3Vdi9asLLl3WVUqwxC20LAe+4UwFf6ahGF22IRgx/rA627YqicV4In8NOiZxiY7qOAkZzcFL45cHs7n4GrMZiZjscnLC8hhnr+kJyq4EFT0NnHUHZTbDCPOPfho9/6ZlfsUVkmdHeQ8SBPU6L9xS/AyK82l6pPipCU/iZiQnfRZeIc3V03t+OFbTuj8WGnDoRSALVcFjw= X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB4191; 6:Z3hbq0NAolkZlatjlgY7iSoXOTmy/IPlz+dtsD/5cmuxuXjLrZRT8tddHf440/KJ5Je85x1+k/X2J+nZnj/vbhj34mV3pQXnQoiJmn+jcf4jt1hA8YY/kprVa28BKUHHzbr2qurAcNTgoTDN6mORk1WzhgIBQDAbEl431RmDfg0DgsLTq/i44LZIWcA7VKtLRsYptSBgqls5XTlPjHuCLDNs+djqO5SkEfDAUuEcpJKepa70ETjSCvhwGHgX76qwI9+2H1yTyIHmiKBJn/P4zlaUqpvT3IDkVe+apUs1ElDGzi7vAAW9RWKGFstJitRZZBPGD1Eee47EtTDZmpa8Ag5umUZc73VJeVaebqQqCvP7bjHnp0a8+JUtssilWEwbif73f+Z1709UlAJ9ivdGk7P5Hb/u/WA4K2WJEolRzJh6xPBR4SnIzzNggOWxyMXuWZInDJqtmCXXh/Q6oHhLqg==; 5:Sjks6PTM2FRIZHHfZWgxFRKxr0xSgXsFofrkn05xD0pF23WpsZH6E59J4bB1sfEm4C6tjunsKa7Z8EwwYHZ4TYcxlZzlyKB/eyoUb0Y0EuNLnBHEYyCW4YndbcfTv2lFXn9qEklc95vR0tXxIfzE6sTGU7crr2NS7vr7bIpEdm4=; 7:1VLZVNKdmeJDu+3PXK3/CPTqPmAElDlirwm0+8fiMAcOmRMMO03XZbSROqoJ3lXsPlNPNbCfRhRLfc/XOeoTWRFo8vO3yYusUmUf7tq1wTakvLQCJpk/wmVLm0fbTfB7W2a1sivS3KQP4C+wH7mzrGGzU8cDUspt3VqAjKmMpAW/gWaG2IT41btNmeMjX64GaDnAX305eqzNh0drhlyb8WBnwdNcUsiY9wHmbdIxXz6e7XidpI57yLFOc1hNebi8 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jul 2018 23:03:14.3678 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e9eb0b26-5c43-4a8f-f51e-08d5f4152200 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB4191 X-BeenThere: linux-mlxsw@lists.ozlabs.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: mlxsw driver development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linux-mlxsw-bounces+patchwork-linux-mlxsw=patchwork.kernel.org@lists.ozlabs.org X-Virus-Scanned: ClamAV using ClamSMTP After IPv4 packets are forwarded, the priority of the corresponding SKB is updated according to the TOS field of IPv4 header. This overrides any prioritization done earlier by e.g. an skbedit action or ingress-qos-map defined at a vlan device. Such overriding may not always be desirable. Even if the packet ends up being routed, which implies this is an L3 network node, an administrator may wish to preserve whatever prioritization was done earlier on in the pipeline. Therefore introduce a sysctl that controls this behavior. Keep the default value at 1 to maintain backward-compatible behavior. Signed-off-by: Petr Machata --- Documentation/networking/ip-sysctl.txt | 9 +++++++++ include/net/netevent.h | 1 + include/net/netns/ipv4.h | 1 + net/ipv4/af_inet.c | 1 + net/ipv4/ip_forward.c | 3 ++- net/ipv4/sysctl_net_ipv4.c | 26 ++++++++++++++++++++++++++ 6 files changed, 40 insertions(+), 1 deletion(-) diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt index 77c37fb0b6a6..e74515ecaa9c 100644 --- a/Documentation/networking/ip-sysctl.txt +++ b/Documentation/networking/ip-sysctl.txt @@ -81,6 +81,15 @@ fib_multipath_hash_policy - INTEGER 0 - Layer 3 1 - Layer 4 +ip_forward_update_priority - INTEGER + Whether to update SKB priority from "TOS" field in IPv4 header after it + is forwarded. The new SKB priority is mapped from TOS field value + according to an rt_tos2priority table (see e.g. man tc-prio). + Default: 1 (Update priority.) + Possible values: + 0 - Do not update priority. + 1 - Update priority. + route/max_size - INTEGER Maximum number of routes allowed in the kernel. Increase this when using large numbers of interfaces and/or routes. diff --git a/include/net/netevent.h b/include/net/netevent.h index d9918261701c..4107016c3bb4 100644 --- a/include/net/netevent.h +++ b/include/net/netevent.h @@ -28,6 +28,7 @@ enum netevent_notif_type { NETEVENT_DELAY_PROBE_TIME_UPDATE, /* arg is struct neigh_parms ptr */ NETEVENT_IPV4_MPATH_HASH_UPDATE, /* arg is struct net ptr */ NETEVENT_IPV6_MPATH_HASH_UPDATE, /* arg is struct net ptr */ + NETEVENT_IPV4_FWD_UPDATE_PRIORITY_UPDATE, /* arg is struct net ptr */ }; int register_netevent_notifier(struct notifier_block *nb); diff --git a/include/net/netns/ipv4.h b/include/net/netns/ipv4.h index 661348f23ea5..e47503b4e4d1 100644 --- a/include/net/netns/ipv4.h +++ b/include/net/netns/ipv4.h @@ -98,6 +98,7 @@ struct netns_ipv4 { int sysctl_ip_default_ttl; int sysctl_ip_no_pmtu_disc; int sysctl_ip_fwd_use_pmtu; + int sysctl_ip_fwd_update_priority; int sysctl_ip_nonlocal_bind; /* Shall we try to damage output packets if routing dev changes? */ int sysctl_ip_dynaddr; diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c index f2a0a3bab6b5..d3cfbd89ca3a 100644 --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c @@ -1802,6 +1802,7 @@ static __net_init int inet_init_net(struct net *net) * We set them here, in case sysctl is not compiled. */ net->ipv4.sysctl_ip_default_ttl = IPDEFTTL; + net->ipv4.sysctl_ip_fwd_update_priority = true; net->ipv4.sysctl_ip_dynaddr = 0; net->ipv4.sysctl_ip_early_demux = 1; net->ipv4.sysctl_udp_early_demux = 1; diff --git a/net/ipv4/ip_forward.c b/net/ipv4/ip_forward.c index b54b948b0596..32662e9e5d21 100644 --- a/net/ipv4/ip_forward.c +++ b/net/ipv4/ip_forward.c @@ -143,7 +143,8 @@ int ip_forward(struct sk_buff *skb) !skb_sec_path(skb)) ip_rt_send_redirect(skb); - skb->priority = rt_tos2priority(iph->tos); + if (net->ipv4.sysctl_ip_fwd_update_priority) + skb->priority = rt_tos2priority(iph->tos); return NF_HOOK(NFPROTO_IPV4, NF_INET_FORWARD, net, NULL, skb, skb->dev, rt->dst.dev, diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c index 5fa335fd3852..6fcd1173ef9b 100644 --- a/net/ipv4/sysctl_net_ipv4.c +++ b/net/ipv4/sysctl_net_ipv4.c @@ -201,6 +201,23 @@ static int ipv4_ping_group_range(struct ctl_table *table, int write, return ret; } +static int ipv4_fwd_update_priority(struct ctl_table *table, int write, + void __user *buffer, + size_t *lenp, loff_t *ppos) +{ + struct net *net; + int ret; + + net = container_of(table->data, struct net, + ipv4.sysctl_ip_fwd_update_priority); + ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos); + if (write && ret == 0) + call_netevent_notifiers( + NETEVENT_IPV4_FWD_UPDATE_PRIORITY_UPDATE, net); + + return ret; +} + static int proc_tcp_congestion_control(struct ctl_table *ctl, int write, void __user *buffer, size_t *lenp, loff_t *ppos) { @@ -664,6 +681,15 @@ static struct ctl_table ipv4_net_table[] = { .proc_handler = proc_dointvec, }, { + .procname = "ip_forward_update_priority", + .data = &init_net.ipv4.sysctl_ip_fwd_update_priority, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = ipv4_fwd_update_priority, + .extra1 = &zero, + .extra2 = &one, + }, + { .procname = "ip_nonlocal_bind", .data = &init_net.ipv4.sysctl_ip_nonlocal_bind, .maxlen = sizeof(int),