From 12eae1ec2bfce7e30bdaa66018a4085c5a2a8f88 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Mon, 4 Mar 2024 10:51:58 +0100 Subject: [PATCH] confd: initial mdb support, per bridge and per VLAN Note, no VLAN id, or other VLAN specific information is contained in the MDB entries, only forwarding information and per-port state. Signed-off-by: Joachim Wiberg --- .../yang/infix-if-bridge@2024-02-19.yang | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/src/confd/yang/infix-if-bridge@2024-02-19.yang b/src/confd/yang/infix-if-bridge@2024-02-19.yang index ed04ebd3..1e616f58 100644 --- a/src/confd/yang/infix-if-bridge@2024-02-19.yang +++ b/src/confd/yang/infix-if-bridge@2024-02-19.yang @@ -10,6 +10,9 @@ submodule infix-if-bridge { import ietf-interfaces { prefix if; } + import ietf-inet-types { + prefix inet; + } import ieee802-dot1q-types { prefix dot1q-types; } @@ -143,6 +146,20 @@ submodule infix-if-bridge { } } + typedef mdb-state { + description "Origin of mdb entry for a given port."; + type enumeration { + enum temp { + value 0; + description "Learned from IGMP/MLD snooping."; + } + enum permanent { + value 1; + description "Static entry, from configuration."; + } + } + } + /* * Shared settings */ @@ -198,6 +215,37 @@ submodule infix-if-bridge { } } + grouping mdb { + container mdb { + description "Bridge multicast database."; + config false; + + list entry { + description "MDB entry."; + key "group"; + + leaf group { + description "IP multicast group."; + type inet:ip-address; + } + + list ports { + description "Port members of group."; + + leaf port { + description "Port with static or dynamic membership of group."; + type if:interface-ref; + } + + leaf state { + description "State of membership, permanent or temporary."; + type mdb-state; + } + } + } + } + } + /* * Data Nodes */ @@ -219,6 +267,7 @@ submodule infix-if-bridge { } uses multicast; + uses mdb; container vlans { if-feature "vlan-filtering"; @@ -240,6 +289,7 @@ submodule infix-if-bridge { } uses multicast; + uses mdb; leaf-list untagged { type if:interface-ref;