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
@@ -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