mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-22 01:13:00 +02:00
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:
@@ -1,2 +1,2 @@
|
||||
sha256 dcd639c77689c432e84e63267202c00958fb1032e066ae355e3cbc68d9fcd063 mcd-2.3.tar.gz
|
||||
sha256 896c455c1a013a153cbf3186b5f87b7a3344b8939603c0f09e534de714a32e65 mcd-2.4.tar.gz
|
||||
sha256 99a0480db163445c5a1a5bf7f85bc37cbb5be8c40e9e441291ad78e8d4252d0b LICENSE
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user