yang: Improve must expressions for multicast-filters

Add a must expression to limit invalid configurations.
Not belonging to VLAN when added to a multicast-filter in
that VLAN. Make sure multicast snooping is enabled when
using multicast filters.

This fixes #587

Signed-off-by: Mattias Walström <lazzer@gmail.com>
This commit is contained in:
Mattias Walström
2024-08-29 16:29:44 +02:00
parent 2119fd239a
commit 764a64bee8
@@ -32,6 +32,15 @@ submodule infix-if-bridge {
contact "kernelkit@googlegroups.com";
description "Linux bridge extension for ietf-interfaces.";
revision 2024-08-26 {
description "Improve must expressions for multicast.
Add a must expression forcing a port in a dot1q multicast-filter
to also belong to the VLAN. Also add must expression (for both
8021d and 8021q) to force snooping to be anabled when enable
multicast-filters";
reference "internal";
}
revision 2024-03-28 {
description "Rename mdb -> multicast-filters.
@@ -386,6 +395,13 @@ submodule infix-if-bridge {
}
}
}
deviation "/if:interfaces/if:interface/infix-if:bridge/type/ieee8021d/multicast-filters/multicast-filter" {
deviate add {
must "../../multicast/snooping = 'true'" {
error-message "Multicast snooping is required when configure multicast-filters ";
}
}
}
deviation "/if:interfaces/if:interface/infix-if:bridge/type/ieee8021q/vlans/vlan/multicast-filters/multicast-filter/ports/port" {
deviate add {
@@ -395,6 +411,20 @@ submodule infix-if-bridge {
}
}
}
deviation "/if:interfaces/if:interface/infix-if:bridge/type/ieee8021q/vlans/vlan/multicast-filters/multicast-filter/ports/port" {
deviate add {
must "(../../../../untagged[contains(., current())]) or (../../../../tagged[contains(., current())])" {
error-message "Port is not member of of VLAN";
}
}
}
deviation "/if:interfaces/if:interface/infix-if:bridge/type/ieee8021q/vlans/vlan/multicast-filters/multicast-filter" {
deviate add {
must "../../multicast/snooping = 'true'" {
error-message "Multicast snooping is required when configure multicast-filters ";
}
}
}
deviation "/if:interfaces/if:interface/ip:ipv4/ip:enabled" {
deviate add {