From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DC6FAC282CE for ; Fri, 5 Apr 2019 16:53:03 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A842720989 for ; Fri, 5 Apr 2019 16:53:03 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=networkplumber-org.20150623.gappssmtp.com header.i=@networkplumber-org.20150623.gappssmtp.com header.b="RaiEu/FD" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731487AbfDEQxC (ORCPT ); Fri, 5 Apr 2019 12:53:02 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:45795 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730587AbfDEQxC (ORCPT ); Fri, 5 Apr 2019 12:53:02 -0400 Received: by mail-pf1-f193.google.com with SMTP id e24so3574953pfi.12 for ; Fri, 05 Apr 2019 09:53:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=xcsdzZKvrqFUP00A5R3qigLNVTOzdZpjjysx0dT8jaQ=; b=RaiEu/FDFlOL0J6F5Jv/4gZycaxHGuIXnN2jXCH1GYB9hTV93f4srDDOEFrxqzjpy8 cidClbx1lQhziZN4KFmko1G7Ce/1rBZ+2nZJGNP3U3FbkFXVCXcUoWLwgAdzN1SI6Lmr EE+oFMcHonvD9ZHXQ49juZ5rmf/46ALky4N7oEzARPSgMS8v29jbSBn3tONFh2QbyF2w VpPYpdTVKzKz/CdmDFXPHZy1d4fHfdxTzKMaxAgFdrTWSQ713RjtBcD3jazxdPjQoKDF Pxp1PZ19CYiWNpFMuH2v0nXGMXpMAIAeKDVpRJA32u7U00APr1pfcucoZhEVBlFvM6EZ MgZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=xcsdzZKvrqFUP00A5R3qigLNVTOzdZpjjysx0dT8jaQ=; b=BqObccfY51vNP33GVd27VMCMXCBl8Aj04FGueb01v726mTSCH19bCc6Z/vbUwF5DNX lASx1LlIEPUFmXI7KnchQ20dhC2xSut5cUqeTKbFmW28wdAzrAbz+ucwJLhaaRnX5AC2 V42fjWMrj32qcLswT5YDmFZvAMOnRt/2clGXhwy5B3xQlOkaeWU56NDD0BuCW9DGttsX uGuyz8O0uyILr2s8JtN4mOSt3xZfY+107msmFaCIIvxY6yKO1QoF51NlKtqYhQDfvue7 4iPlsGjPVUtor9EHBVNq5Sn9ByE0s0UPOi/P16hbW94unn55Vsi+SjL+EkWZ2CWWJYgU gylw== X-Gm-Message-State: APjAAAVFek0xquFhosTOi0erIAtDZzkxhp6guh2M3JcOGU+o/8Vl6Hi8 keMV8ozr210zMtM7wbWt4nw6aw== X-Google-Smtp-Source: APXvYqxfP1TWWXoDgsS96ig0A5lmdRQfANfq/GkPQi2jJUXf5bWRqA9P+xKJdhYd7fI8eFLyMOCD0A== X-Received: by 2002:a63:5149:: with SMTP id r9mr12614858pgl.177.1554483181570; Fri, 05 Apr 2019 09:53:01 -0700 (PDT) Received: from shemminger-XPS-13-9360 ([167.220.56.255]) by smtp.gmail.com with ESMTPSA id c189sm34865381pfg.24.2019.04.05.09.53.01 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 05 Apr 2019 09:53:01 -0700 (PDT) Date: Fri, 5 Apr 2019 09:52:59 -0700 From: Stephen Hemminger To: Nikolay Aleksandrov Cc: Roopa Prabhu , David Ahern , network dev Subject: Re: bridge mdb json output broken/invalid Message-ID: <20190405095259.6ca08f67@shemminger-XPS-13-9360> In-Reply-To: <7dcef766-2307-c639-4c4c-74df2afd2910@cumulusnetworks.com> References: <7dcef766-2307-c639-4c4c-74df2afd2910@cumulusnetworks.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Fri, 5 Apr 2019 15:59:03 +0300 Nikolay Aleksandrov wrote: > Hi Stephen, > It seems that commit c7c1a1ef51aea ("bridge: colorize output and use JSON print library") broke > bridge mdb's json output. The json after that commit is invalid, more below. > > Setup: 2 bridges - virbr0 and br-test > > non-json bridge mdb show: > 3: virbr0 vnet3 239.10.10.50 temp > 3: virbr0 vnet3 225.1.2.3 temp > 14: br-test v1 224.224.224.224 permanent > > json bridge -d -p -j mdb show before c7c1a1ef51aea: > { > "mdb": [ { > "dev": "virbr0", > "port": "vnet3", > "grp": "239.10.10.50", > "state": "temp" > },{ > "dev": "virbr0", > "port": "vnet3", > "grp": "225.1.2.3", > "state": "temp" > },{ > "dev": "br-test", > "port": "v1", > "grp": "224.224.224.224", > "state": "permanent" > } ], > "router": { > "virbr0": [ { > "port": "vnet3" > } ], > "br-test": [ { > "port": "v1" > } ] > } > } > > json bridge -d -p -j mdb show after c7c1a1ef51aea: > [ > "mdb": [ { > "index": 3, > "dev": "virbr0", > "port": "vnet3", > "grp": "239.10.10.50", > "state": "temp", > "flags": [ ] > },{ > "index": 3, > "dev": "virbr0", > "port": "vnet3", > "grp": "225.1.2.3", > "state": "temp", > "flags": [ ] > } ], > "router": [ > "virbr0": [ { > "port": "vnet3" > } ] ], > "mdb": [ ], > "mdb": [ { > "index": 14, > "dev": "br-test", > "port": "v1", > "grp": "224.224.224.224", > "state": "permanent", > "flags": [ ] > } ], > "router": [ > "br-test": [ { > "port": "v1" > } ] ] ] > > > Obviously this is not a valid object array and even if it was converted, it must not contain > duplicate entries. The "mdb" and "router" array entries must be unique and should contain > all the single entries inside, also the global context shouldn't be array. > > Cheers, > Nik Yes this is wrong, sending the list twice. Not sure why that is happening, the original code had some awkward flags to handle this.