From patchwork Fri May 20 16:21:10 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ezequiel Garcia X-Patchwork-Id: 624550 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3rBCqp1QYwz9t7Y for ; Sat, 21 May 2016 02:21:42 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=vanguardiasur-com-ar.20150623.gappssmtp.com header.i=@vanguardiasur-com-ar.20150623.gappssmtp.com header.b=dzwzvDak; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755846AbcETQVi (ORCPT ); Fri, 20 May 2016 12:21:38 -0400 Received: from mail-qk0-f177.google.com ([209.85.220.177]:36365 "EHLO mail-qk0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755845AbcETQVe (ORCPT ); Fri, 20 May 2016 12:21:34 -0400 Received: by mail-qk0-f177.google.com with SMTP id x7so69378277qkd.3 for ; Fri, 20 May 2016 09:21:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vanguardiasur-com-ar.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id; bh=Z80kSFBq1eIu9A0H80WRvSZ6a0sxjNFmFN9fU+la88g=; b=dzwzvDakujCxZZiWoOoCF81APUj98RzzBPafaUPCVVK8ZouGmNMGYA6pag+Pp/6j4n e5TGfWDYP52nuywPSdz6H/uIblOfICjznSZlhPVdWY9yBdtKIe91xvsRmbaz2EwbF+JI sul0NbVqDS5m4wLb3BayfFVjSbA2vKOCcblAQxlCY9lfAU/31if2cg5VWwn7SQJH0Fny fngfktXHrrLhKTsarReVKSphWxspPErkaOvHUU7voncJ2+FsxRxrIn6JzaUzEAYIWzbr 20mdoICRfUmVb3QG4pHO9ARkhnRQbg2mBA6SpeDwbxmp2l+lUV3+fsZYXD7RlPX0AssV Q1Kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=Z80kSFBq1eIu9A0H80WRvSZ6a0sxjNFmFN9fU+la88g=; b=D1kyFQD2ofzrmjOi/htM/pQXf6kH9x1ooRbjn/0FSuw+NsmrpiCbP0xa3TBkJjzsma Ev/SSlvhgsKQzuow6tfUt0UU8ng/P9BDESmBhRVDE48gAaq5C5L3Z6QAJePjulL9Htw5 5pu5qXoqwE4j4P44HRRAHig1JckMgTcykZx5WSG1RXE0XA0H8FI6i5daGWlPcWqWuIIx qiywhecrJ8ifE3+CfMr6sCdYkBcbdgPsgjwWvpd4Jn45ti6rb++p4zT0+04A+z1eBqgK A6flBZ3FgYMIrYygGp+nZHg6M4uwdOaxF4n0h4ZyJrEAwMnco+D0fSozKooFyjcE6mNs 0blQ== X-Gm-Message-State: AOPr4FUqwk+LgA6phjkPUXGbPlWvjUZFyc+V4HEFDQ8SdNWRpa83nKm5g48PmKjr1Fu+3g== X-Received: by 10.55.20.167 with SMTP id 39mr4528853qku.197.1463761292917; Fri, 20 May 2016 09:21:32 -0700 (PDT) Received: from localhost.localdomain ([190.2.108.156]) by smtp.gmail.com with ESMTPSA id w6sm9065386qhb.2.2016.05.20.09.21.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 20 May 2016 09:21:31 -0700 (PDT) From: Ezequiel Garcia To: , Nikolay Borisov Cc: David Miller , kuznet@ms2.inr.ac.ru, jmorris@namei.org, yoshfuji@linux-ipv6.org, kaber@trash.net, Ezequiel Garcia Subject: [PATCH] ipv4: Fix non-initialized TTL when CONFIG_SYSCTL=n Date: Fri, 20 May 2016 13:21:10 -0300 Message-Id: <1463761270-8955-1-git-send-email-ezequiel@vanguardiasur.com.ar> X-Mailer: git-send-email 2.7.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Commit fa50d974d104 ("ipv4: Namespaceify ip_default_ttl sysctl knob") moves the default TTL assignment, and as side-effect IPv4 TTL now has a default value only if sysctl support is enabled (CONFIG_SYSCTL=y). The sysctl_ip_default_ttl is fundamental for IP to work properly, as it provides the TTL to be used as default. The defautl TTL may be used in ip_selected_ttl, through the following flow: ip_select_ttl ip4_dst_hoplimit net->ipv4.sysctl_ip_default_ttl This commit fixes the issue by assigning net->ipv4.sysctl_ip_default_ttl in net_init_net, called during ipv4's initialization. Without this commit, a kernel built without sysctl support will send all IP packets with zero TTL (unless a TTL is explicitly set, e.g. with setsockopt). Given a similar issue might appear on the other knobs that were namespaceify, this commit also moves them. Fixes: fa50d974d104 ("ipv4: Namespaceify ip_default_ttl sysctl knob") Signed-off-by: Ezequiel Garcia --- net/ipv4/af_inet.c | 8 ++++++++ net/ipv4/sysctl_net_ipv4.c | 4 ---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c index 2e6e65fc4d20..8d334816f89d 100644 --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c @@ -1697,6 +1697,14 @@ static __net_init int inet_init_net(struct net *net) */ net->ipv4.ping_group_range.range[0] = make_kgid(&init_user_ns, 1); net->ipv4.ping_group_range.range[1] = make_kgid(&init_user_ns, 0); + + /* Default values for sysctl-controlled parameters. + * We set them here, in case sysctl is not compiled. + */ + net->ipv4.sysctl_ip_default_ttl = IPDEFTTL; + net->ipv4.sysctl_ip_dynaddr = 0; + net->ipv4.sysctl_ip_early_demux = 1; + return 0; } diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c index bb0419582b8d..1cb67de106fe 100644 --- a/net/ipv4/sysctl_net_ipv4.c +++ b/net/ipv4/sysctl_net_ipv4.c @@ -999,10 +999,6 @@ static __net_init int ipv4_sysctl_init_net(struct net *net) if (!net->ipv4.sysctl_local_reserved_ports) goto err_ports; - net->ipv4.sysctl_ip_default_ttl = IPDEFTTL; - net->ipv4.sysctl_ip_dynaddr = 0; - net->ipv4.sysctl_ip_early_demux = 1; - return 0; err_ports: