package/mcd: bump and add support for per-bridge mcast router ports

Fixes #395

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg
2026-04-30 11:02:56 +02:00
parent f9ea5567c4
commit b1ad0f1656
8 changed files with 29 additions and 3 deletions
+1 -1
View File
@@ -1,2 +1,2 @@
sha256 dcd639c77689c432e84e63267202c00958fb1032e066ae355e3cbc68d9fcd063 mcd-2.3.tar.gz
sha256 896c455c1a013a153cbf3186b5f87b7a3344b8939603c0f09e534de714a32e65 mcd-2.4.tar.gz
sha256 99a0480db163445c5a1a5bf7f85bc37cbb5be8c40e9e441291ad78e8d4252d0b LICENSE
+1 -1
View File
@@ -4,7 +4,7 @@
#
################################################################################
MCD_VERSION = 2.3
MCD_VERSION = 2.4
MCD_SITE = https://github.com/kernelkit/mcd/releases/download/v$(MCD_VERSION)
MCD_LICENSE = BSD-3-Clause
MCD_LICENSE_FILES = LICENSE
+1 -1
View File
@@ -47,7 +47,7 @@ MODULES=(
"ieee802-ethernet-interface@2019-06-21.yang"
"infix-ethernet-interface@2024-02-27.yang"
"infix-factory-default@2023-06-28.yang"
"infix-interfaces@2026-04-09.yang -e vlan-filtering"
"infix-interfaces@2026-04-29.yang -e vlan-filtering"
"ietf-crypto-types -e cleartext-symmetric-keys"
"infix-crypto-types@2026-02-14.yang"
"ietf-keystore -e symmetric-keys"
+11
View File
@@ -29,6 +29,11 @@ submodule infix-if-bridge {
contact "kernelkit@googlegroups.com";
description "Linux bridge extension for ietf-interfaces.";
revision 2026-04-29 {
description "Add operational state for multicast router ports per bridge.";
reference "internal";
}
revision 2025-10-28 {
description "Prevent IP addresses on bridge ports.";
reference "internal";
@@ -389,6 +394,12 @@ submodule infix-if-bridge {
}
default 125;
}
leaf-list router-ports {
config false;
description "Ports with detected multicast routers, learned by IGMP/MLD snooping.";
type if:interface-ref;
}
}
}
@@ -41,6 +41,11 @@ module infix-interfaces {
contact "kernelkit@googlegroups.com";
description "Linux bridge and lag extensions for ietf-interfaces.";
revision 2026-04-29 {
description "Add operational state for multicast router ports per bridge.";
reference "internal";
}
revision 2026-04-09 {
description "Add ptp-capabilities submodule for per-interface PTP timestamping info.";
reference "internal";
@@ -218,6 +218,13 @@ def mctl(ifname, vid, mctldata):
return {}
def mctl_router_ports(brname, mctldata):
for entry in mctldata.get("multicast-router-ports", []):
if entry.get("bridge") == brname:
return entry.get("ports", [])
return []
def multicast_filters(iplink, vid):
filt = ["dev", iplink["ifname"]] + (["vid", str(vid)] if vid else [])
brmdb = HOST.run_json(["bridge", "-j", "mdb", "show"] + filt)[0]["mdb"]
@@ -253,6 +260,9 @@ def multicast(iplink, info, mctldata):
if interval := mctlq.get("interval"):
mcast["query-interval"] = interval
if ports := mctl_router_ports(iplink["ifname"], mctldata):
mcast["router-ports"] = ports
return mcast