From patchwork Wed Aug 16 17:02:01 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Lamparter X-Patchwork-Id: 802144 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@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=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xXbJ76jfsz9t4P for ; Thu, 17 Aug 2017 03:02:47 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752523AbdHPRCp (ORCPT ); Wed, 16 Aug 2017 13:02:45 -0400 Received: from eidolon.nox.tf ([185.142.180.128]:43718 "EHLO eidolon.nox.tf" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751678AbdHPRC3 (ORCPT ); Wed, 16 Aug 2017 13:02:29 -0400 Received: from equinox by eidolon.nox.tf with local (Exim 4.89) (envelope-from ) id 1di1i7-001v3G-Gv; Wed, 16 Aug 2017 19:02:27 +0200 From: David Lamparter To: netdev@vger.kernel.org Cc: amine.kherbouche@6wind.com, roopa@cumulusnetworks.com, David Lamparter Subject: [PATCH 5/6] bridge: add VPLS pseudowire info in fdb dump Date: Wed, 16 Aug 2017 19:02:01 +0200 Message-Id: <20170816170202.456851-6-equinox@diac24.net> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170816170202.456851-1-equinox@diac24.net> References: <20170816170202.456851-1-equinox@diac24.net> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Add a NDA_VPLS_WIRE attribute to the FDB dump if we have dst metadata that is indicative of a VPLS pseudowire. This is really helpful for debugging. Signed-off-by: David Lamparter --- include/uapi/linux/neighbour.h | 1 + net/bridge/br_fdb.c | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/include/uapi/linux/neighbour.h b/include/uapi/linux/neighbour.h index 3199d28980b3..703089c91b04 100644 --- a/include/uapi/linux/neighbour.h +++ b/include/uapi/linux/neighbour.h @@ -27,6 +27,7 @@ enum { NDA_MASTER, NDA_LINK_NETNSID, NDA_SRC_VNI, + NDA_VPLS_WIRE, __NDA_MAX }; diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c index 0751fcb89699..ffbaff914d55 100644 --- a/net/bridge/br_fdb.c +++ b/net/bridge/br_fdb.c @@ -670,6 +670,18 @@ static int fdb_fill_info(struct sk_buff *skb, const struct net_bridge *br, if (fdb->vlan_id && nla_put(skb, NDA_VLAN, sizeof(u16), &fdb->vlan_id)) goto nla_put_failure; + if (fdb->md_dst) { + struct metadata_dst *md_dst; + md_dst = (struct metadata_dst *)fdb->md_dst; + /* ensured in br_fdb_update */ + BUG_ON(!(md_dst->dst.flags & DST_METADATA)); + + if (md_dst->type == METADATA_VPLS) { + unsigned wire = md_dst->u.vpls_info.pw_label; + if (nla_put_u32(skb, NDA_VPLS_WIRE, wire)) + goto nla_put_failure; + } + } nlmsg_end(skb, nlh); return 0;