From patchwork Thu Jan 3 04:38:31 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Ahern X-Patchwork-Id: 1020171 X-Patchwork-Delegate: dsahern@gmail.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=kernel.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.b="r6Obq5Wv"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43VZtY6RfNz9rxp for ; Thu, 3 Jan 2019 15:38:45 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729382AbfACEim (ORCPT ); Wed, 2 Jan 2019 23:38:42 -0500 Received: from mail.kernel.org ([198.145.29.99]:34048 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729071AbfACEif (ORCPT ); Wed, 2 Jan 2019 23:38:35 -0500 Received: from kenny.it.cumulusnetworks.com. (fw.cumulusnetworks.com [216.129.126.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 2702221479; Thu, 3 Jan 2019 04:38:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1546490315; bh=juXz0RU3yxXuBai+YXgoEgDPsWZMLZCojGzDcPa+2qI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=r6Obq5WvlbspVNukPyaQGfHshqkus9M6/Y6hFKXfLNJemz/ymRXIMYwXYFVdbpLfi UsGnc1xSjC8CS0aHDZgH02arL3E7oqHZFAOSVI02fTNvgDNIzpimHvY8HHW8OGc0BE 4Sk9Z2f+5aoVu9zO2l2qlG4bVxef5fgNYC1n/Uwk= From: David Ahern To: netdev@vger.kernel.org Cc: idosch@mellanox.com, stephen@networkplumber.org, David Ahern Subject: [PATCH iproute2-next 4/5] libnetlink: Add RTNL_HANDLE_F_STRICT_CHK flag Date: Wed, 2 Jan 2019 20:38:31 -0800 Message-Id: <20190103043832.3748-5-dsahern@kernel.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190103043832.3748-1-dsahern@kernel.org> References: <20190103043832.3748-1-dsahern@kernel.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: David Ahern Add RTNL_HANDLE_F_STRICT_CHK flag and set in rth flags to let know commands know if the kernel supports strict checking. Extracted from patch from Ido to fix filtering with strict checking enabled. Cc: Ido Schimmel Signed-off-by: David Ahern --- include/libnetlink.h | 1 + lib/libnetlink.c | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/include/libnetlink.h b/include/libnetlink.h index 148951510d1e..0854d6ad2fab 100644 --- a/include/libnetlink.h +++ b/include/libnetlink.h @@ -23,6 +23,7 @@ struct rtnl_handle { FILE *dump_fp; #define RTNL_HANDLE_F_LISTEN_ALL_NSID 0x01 #define RTNL_HANDLE_F_SUPPRESS_NLERR 0x02 +#define RTNL_HANDLE_F_STRICT_CHK 0x04 int flags; }; diff --git a/lib/libnetlink.c b/lib/libnetlink.c index 19318b445266..600e9a2476ba 100644 --- a/lib/libnetlink.c +++ b/lib/libnetlink.c @@ -166,8 +166,11 @@ void rtnl_set_strict_dump(struct rtnl_handle *rth) { int one = 1; - setsockopt(rth->fd, SOL_NETLINK, NETLINK_GET_STRICT_CHK, - &one, sizeof(one)); + if (setsockopt(rth->fd, SOL_NETLINK, NETLINK_GET_STRICT_CHK, + &one, sizeof(one)) < 0) + return; + + rth->flags |= RTNL_HANDLE_F_STRICT_CHK; } void rtnl_close(struct rtnl_handle *rth)