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.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,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 4E151C4360F for ; Fri, 5 Apr 2019 12:59:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 128802186A for ; Fri, 5 Apr 2019 12:59:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=cumulusnetworks.com header.i=@cumulusnetworks.com header.b="EA740iK+" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727212AbfDEM7H (ORCPT ); Fri, 5 Apr 2019 08:59:07 -0400 Received: from mail-wr1-f46.google.com ([209.85.221.46]:45296 "EHLO mail-wr1-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726027AbfDEM7H (ORCPT ); Fri, 5 Apr 2019 08:59:07 -0400 Received: by mail-wr1-f46.google.com with SMTP id s15so7847603wra.12 for ; Fri, 05 Apr 2019 05:59:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cumulusnetworks.com; s=google; h=to:cc:from:subject:message-id:date:user-agent:mime-version :content-language:content-transfer-encoding; bh=WOWV2mdc1coTa3owGV1TyVBKKJ+hYr5SsBO48Ac9sWI=; b=EA740iK+XWS7GLo0J+is7j1o1UJRhkcZBAInkGuhKIuwFQcAepw08nr4R9jbnGU7s1 ZKN8q5MMGfoKBLScRY9GZIpi+ZjSuk1h7c6/g4NymR9A4zHTSTMeypvMLUk0h4Jhuk3f LeSz6m1Od/cHQRiJk+AeSXxnHNEY+zHDSa6Ro= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:cc:from:subject:message-id:date:user-agent :mime-version:content-language:content-transfer-encoding; bh=WOWV2mdc1coTa3owGV1TyVBKKJ+hYr5SsBO48Ac9sWI=; b=hPr5+Xyr/SxvhbEmbRYiqxdo0a6HDcN4NsibdLcwvCe/YxjhzWr//0OO5Mfq6Wo1FH 9PaEjgJisfW9Y4AQlaMe+JYlmw5kPJ0P/DyENrAZIGoRR/7bZbH3lCHwaGeI6XZVgYVG 4dw4Bhbe36xjc8AxBXE9L46gOefMmxO/zaA60w13LDKSjYqVUYGtedoJi9CYwOfwhYoD 3AuiziqlORo9QCk4zFESwOTy0hvpnyzaMnMJJGQES0ciKv+n0Xz0Wen3M6IQ8Dkzc/9C O/ocL8B9azXQ6b+1PkVyD0fb2rP3qpM80wjLQ7gLrnYmQ3fjFPa3E7gqVKTXujr2Wxrt D2qQ== X-Gm-Message-State: APjAAAVq6Jxf3zwBgViZjAc72RNtRnPz7IOhhqAaJk74DDBsf+nHMdOq X/oVgW7PjlVGUZFDT+t2gBQYasAB2LY= X-Google-Smtp-Source: APXvYqyv7KAE7W2tNZyb31NUqFDcNvY8UEDVxIJU+HTQeUECVxvqbkPP7alHjy+dcDK61gBN0qZe7Q== X-Received: by 2002:adf:edca:: with SMTP id v10mr8433989wro.157.1554469145450; Fri, 05 Apr 2019 05:59:05 -0700 (PDT) Received: from [192.168.51.243] ([93.152.141.58]) by smtp.gmail.com with ESMTPSA id h9sm1519130wmb.5.2019.04.05.05.59.04 (version=TLS1_3 cipher=AEAD-AES128-GCM-SHA256 bits=128/128); Fri, 05 Apr 2019 05:59:04 -0700 (PDT) To: Stephen Hemminger Cc: Roopa Prabhu , David Ahern , network dev From: Nikolay Aleksandrov Subject: bridge mdb json output broken/invalid Message-ID: <7dcef766-2307-c639-4c4c-74df2afd2910@cumulusnetworks.com> Date: Fri, 5 Apr 2019 15:59:03 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org 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