Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp2029464pxj; Sun, 9 May 2021 12:46:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzitwfpWHSoztw7GPCd0W6CuYyFCdSghS+UpMKKJi7sjYm4PPLjlbi2vP8f9j3fP377oTFt X-Received: by 2002:a17:906:c788:: with SMTP id cw8mr21825379ejb.190.1620589613307; Sun, 09 May 2021 12:46:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620589613; cv=none; d=google.com; s=arc-20160816; b=fOkTYMM5sMjr+lz3/Tu6g7TfnW910yQp4Hc5ziyfkvP+6FteAkvbsfUTCPEFDge23q 1R7JvEr/6HOq7WcIWMKX5OSiOZVBMwK3lkGc+EsAyR0e+dAC5tpg5gvq1txXnOBmFVxT fIS54kdSPTlCASxqUcMCWdiS/NjCX4qWQYq932ryv3zlhiRbUVJW0UV38iXyBJRvF0rI rEqPnFn12KEsZGPiOF99p3UEMa5MH2AK6yNS5TZx9LDn2nUghcgz2uQrasWavzYjb+Ym z76gNICpUlqIIk4ai1Pt3ZKmf7uRacsuHu07mayOPEyXfqREfG2Igm/pEN+H3sDZVwt2 Byvg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=aKZfSTJ3DifSpW9C+/c0Fdhg1USCp90E5dZZDkhe5GQ=; b=0mK8Wt6JGquWGBzFD+8W0jKRRrLbmgztLGUKNQU08alWrInWRA9JmUWcXh05gRnTsF C+Cg/rD2xxFY6kT4iG+SAdZJOQY9nQwEBwolNfYSXl0hnzIWUF55C8KqmzqxHy+19HbZ 0Q7p3qVe3A9u9kvtnE3E5rLiQh+B9mEdH+apXa0S8Lb3Njen0Zkzmb8ymafYppkzScCi 4tTtao5uXrgVHAv2pitato2SIwwJaJRnGdaZHorQawbtyO5JDA2miLTc7th3MfIOI7f/ z4YP6VlinlJfKCytYcLHVp7/zX2hklmEMxcpsaklqm6q0Afo+RdwU5LYQ8s6RVXZkD8N 18bg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y21si11697947ejp.635.2021.05.09.12.46.30; Sun, 09 May 2021 12:46:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229999AbhEITqh (ORCPT + 99 others); Sun, 9 May 2021 15:46:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41906 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229840AbhEITq3 (ORCPT ); Sun, 9 May 2021 15:46:29 -0400 Received: from mail.aperture-lab.de (mail.aperture-lab.de [IPv6:2a01:4f8:c2c:665b::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0C01DC061573; Sun, 9 May 2021 12:45:24 -0700 (PDT) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 8239E3ED8B; Sun, 9 May 2021 21:45:20 +0200 (CEST) From: =?UTF-8?q?Linus=20L=C3=BCssing?= To: netdev@vger.kernel.org Cc: Roopa Prabhu , Nikolay Aleksandrov , Jakub Kicinski , "David S . Miller" , bridge@lists.linux-foundation.org, b.a.t.m.a.n@lists.open-mesh.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next v2 00/11] net: bridge: split IPv4/v6 mc router state and export for batman-adv Date: Sun, 9 May 2021 21:44:58 +0200 Message-Id: <20210509194509.10849-1-linus.luessing@c0d3.blue> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Last-TLS-Session-Version: TLSv1.2 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, The following patches are splitting the so far combined multicast router state in the Linux bridge into two ones, one for IPv4 and one for IPv6, for a more fine-grained detection of multicast routers. This avoids sending IPv4 multicast packets to an IPv6-only multicast router and avoids sending IPv6 multicast packets to an IPv4-only multicast router. This also allows batman-adv to make use of the now split information in the final patch. The first eight patches prepare the bridge code to avoid duplicate code or IPv6-#ifdef clutter for the multicast router state split. And contain no functional changes yet. The ninth patch then implements the IPv4+IPv6 multicast router state split. Patch number ten adds IPv4+IPv6 specific timers to the mdb netlink router port dump, so that the timers validity can be checked individually from userspace. The final, eleventh patch exports this now per protocol family multicast router state so that batman-adv can then later make full use of the Multicast Router Discovery (MRD) support in the Linux bridge. The batman-adv protocol format currently expects separate multicast router states for IPv4 and IPv6, therefore it depends on the first patch. batman-adv will then make use of this newly exported functions like this[0]. Regards, Linus [0]: https://git.open-mesh.org/batman-adv.git/shortlog/refs/heads/linus/multicast-routeable-mrd -> https://git.open-mesh.org/batman-adv.git/commit/d4bed3a92427445708baeb1f2d1841c5fb816fd4 Changelog v2: * split into multiple patches as suggested by Nikolay * added helper functions to br_multicast_flood(), avoiding IPv6 #ifdef clutter * fixed reverse xmas tree ordering in br_rports_fill_info() and added helper functions to avoid IPv6 #ifdef clutter * Added a common br_multicast_add_router() and a helper function to retrieve the correct slot to avoid duplicate code for an ip4 and ip6 variant * replaced the "1" and "2" constants in br_multicast_is_router() with the appropriate enums * added br_{ip4,ip6}_multicast_rport_del() wrappers to reduce IPv6 #ifdef clutter * added return values to br_*multicast_rport_del() to only notify if the port was actually removed and did not race with a readdition somewhere else * added empty, void br_ip6_multicast_mark_router() if compiled without IPv6, to reduce IPv6 #ifdef clutter