From patchwork Fri Apr 13 16:36:33 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Ahern X-Patchwork-Id: 898015 X-Patchwork-Delegate: shemminger@vyatta.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="Xhx0FLcW"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40N3My1b3bz9s0x for ; Sat, 14 Apr 2018 02:37:18 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752912AbeDMQhQ (ORCPT ); Fri, 13 Apr 2018 12:37:16 -0400 Received: from mail-pf0-f194.google.com ([209.85.192.194]:39068 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752913AbeDMQhO (ORCPT ); Fri, 13 Apr 2018 12:37:14 -0400 Received: by mail-pf0-f194.google.com with SMTP id c78so6321848pfj.6 for ; Fri, 13 Apr 2018 09:37:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=ZUfjYI3AtcezobFJkY9OEQKoG9lNV57tiSBRpBdQ/bg=; b=Xhx0FLcWC8CyZzykzz4hXjiqgYYhTvN9k0AJBBBDsIX25dMmdw8wn+/ocgMjtexHWf jQXyrtFyt2WQAPpTtlp4nwj01uHysrxn6zv8Xyg1x7dGfb3oIxELiASjBUQWm8e6/H9C 6ZcYRw6O5OZIm026SrNVrzUxHoqK1XO4sOcRRmBqyz2o5m+CgMa2qRypmOVqL0+xxBut uPd6xJfS1gSCRVVqf1VvEMvYHa9VMCBi6NUlVgaUEUXfaL84F3h9/N6n4cDdzsK+mpD9 DPbLN5JxXQiWW0QYBi+Qw5/6d1sWufOZCtHfYVMZYSZB0PREtKhqEXDiA3QBUiiSG4iF ucbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=ZUfjYI3AtcezobFJkY9OEQKoG9lNV57tiSBRpBdQ/bg=; b=MBFPKDusP+jUFqusfcRaDG2dvg6bXiSxK45FDo9SwpGjCAcgr9kIP9C8whMLJZYyjl yH7lfzadMs9u2CW0ERn4OjjrWrzakjGRG0OuVDTMJnuIuaArysS5fS3H5s8rlt/BEhoM f8vnwpqXWVoBUSi+MQLP9wpUuB4TtYI24xaVHrbZE7tSw/yE5I1iXdhd/Zt78ve/KAzo vcCUYuSA91s58bIyVHhQ+X5aq+5ErQ8mB69y8rYB5RL+9K0H4q0qEr10gDmPFwTNmFtL l+l+zsnM6dsfnSsviPrmBMcJJjzKUx9SmZEY870J1H5KXDjhl0JH2aBQwVA9LfUJJNQK FZ8w== X-Gm-Message-State: ALQs6tBzBrE38WbpzUcEyltRlGbTzVLyx2cbbcoxWeDyiEvAm7J2gWQC 4SRTokLgI3lUdSlXDcHQySZsBg== X-Google-Smtp-Source: AIpwx4+W5T7a0shYXRXtbeRmkeL2zixW2fhrMr5NJCmaKHCxosexbFD45u/9pOz8g4kXREuAv+MR6A== X-Received: by 10.98.202.24 with SMTP id n24mr12230708pfg.45.1523637433478; Fri, 13 Apr 2018 09:37:13 -0700 (PDT) Received: from kenny.it.cumulusnetworks.com. (fw.cumulusnetworks.com. [216.129.126.126]) by smtp.gmail.com with ESMTPSA id f69sm4739123pgc.27.2018.04.13.09.37.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 13 Apr 2018 09:37:12 -0700 (PDT) From: David Ahern To: stephen@networkplumber.org Cc: netdev@vger.kernel.org, whissi@gentoo.org, David Ahern , Serhey Popovych Subject: [PATCH iproute2] utils: Do not reset family for default, any, all addresses Date: Fri, 13 Apr 2018 09:36:33 -0700 Message-Id: <20180413163633.1844-1-dsahern@gmail.com> X-Mailer: git-send-email 2.11.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Thomas reported a change in behavior with respect to autodectecting address families. Specifically, 'ip ro add default via fe80::1' syntax was failing to treat fe80::1 as an IPv6 address as it did in prior releases. The root causes appears to be a change in family when the default keyword is parsed. 'default', 'any' and 'all' are relevant outside of AF_INET. Leave the family arg as is for these when setting addr. Fixes: 93fa12418dc6 ("utils: Always specify family and ->bytelen in get_prefix_1()") Reported-by: Thomas Deutschmann Signed-off-by: David Ahern Cc: Serhey Popovych --- lib/utils.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/utils.c b/lib/utils.c index 60d7eb14b438..8a0bff0babeb 100644 --- a/lib/utils.c +++ b/lib/utils.c @@ -568,7 +568,7 @@ static int __get_addr_1(inet_prefix *addr, const char *name, int family) if (strcmp(name, "default") == 0) { if ((family == AF_DECnet) || (family == AF_MPLS)) return -1; - addr->family = (family != AF_UNSPEC) ? family : AF_INET; + addr->family = family; addr->bytelen = af_byte_len(addr->family); addr->bitlen = -2; addr->flags |= PREFIXLEN_SPECIFIED; @@ -579,7 +579,7 @@ static int __get_addr_1(inet_prefix *addr, const char *name, int family) strcmp(name, "any") == 0) { if ((family == AF_DECnet) || (family == AF_MPLS)) return -1; - addr->family = AF_UNSPEC; + addr->family = family; addr->bytelen = 0; addr->bitlen = -2; return 0;