From 8f6a75806fbf6006b489a50a629d39e228c40585 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Fri, 24 Jan 2025 14:03:45 +0100 Subject: [PATCH] yang: Add STP hello-time This was an oversight in the original model, but was noticed in review. --- src/confd/src/infix-if-bridge.c | 3 +++ src/confd/yang/infix-if-bridge.yang | 9 +++++++++ src/statd/python/cli_pretty/cli_pretty.py | 9 +++++---- src/statd/python/yanger/ietf_interfaces/bridge.py | 1 + 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/confd/src/infix-if-bridge.c b/src/confd/src/infix-if-bridge.c index cc9d2e6f..25650b34 100644 --- a/src/confd/src/infix-if-bridge.c +++ b/src/confd/src/infix-if-bridge.c @@ -371,6 +371,9 @@ static int gen_stp(struct ixif_br *br) fprintf(mstpctl, "setforcevers %s %s\n", br->name, lydx_get_cattr(stp, "force-protocol")); + fprintf(mstpctl, "sethello %s %s\n", br->name, + lydx_get_cattr(stp, "hello-time")); + fprintf(mstpctl, "setfdelay %s %s\n", br->name, lydx_get_cattr(stp, "forward-delay")); diff --git a/src/confd/yang/infix-if-bridge.yang b/src/confd/yang/infix-if-bridge.yang index 7e7aa131..cfa0e412 100644 --- a/src/confd/yang/infix-if-bridge.yang +++ b/src/confd/yang/infix-if-bridge.yang @@ -639,6 +639,15 @@ submodule infix-if-bridge { reference "IEEE 802.1Q-2018 13.7.2"; } + leaf hello-time { + description "Hello time."; + type uint8 { + range "1..10"; + } + default 2; + reference "IEEE 802.1Q-2018 13.25"; + } + leaf forward-delay { description "Forward delay."; type uint8 { diff --git a/src/statd/python/cli_pretty/cli_pretty.py b/src/statd/python/cli_pretty/cli_pretty.py index 3806d9b9..ec34da38 100755 --- a/src/statd/python/cli_pretty/cli_pretty.py +++ b/src/statd/python/cli_pretty/cli_pretty.py @@ -725,10 +725,11 @@ class Iface: print(f"{'bridge-id':<{20}}: {bid} ({self.name})") print(f"{'root-id':<{20}}: {rid}") print(f"{'protocol':<{20}}: {stp.get('force-protocol', 'UNKNOWN')}") - print(f"{'forward delay':<{20}}: {stp.get('forward-delay', 'UNKNOWN')} seconds") - print(f"{'max age':<{20}}: {stp.get('max-age', 'UNKNOWN')} seconds") - print(f"{'transmit hold count':<{20}}: {stp.get('transmit-hold-count', 'UNKNOWN')}") - print(f"{'max hops':<{20}}: {stp.get('max-hops', 'UNKNOWN')}") + print(f"{'hello time':<{20}}: {stp.get('hello-time', 'UNKNOWN'):2} seconds") + print(f"{'forward delay':<{20}}: {stp.get('forward-delay', 'UNKNOWN'):2} seconds") + print(f"{'max age':<{20}}: {stp.get('max-age', 'UNKNOWN'):2} seconds") + print(f"{'transmit hold count':<{20}}: {stp.get('transmit-hold-count', 'UNKNOWN'):2}") + print(f"{'max hops':<{20}}: {stp.get('max-hops', 'UNKNOWN'):2}") if tc := stp["cist"].get("topology-change"): print(f"{'topology change':<{20}}:") diff --git a/src/statd/python/yanger/ietf_interfaces/bridge.py b/src/statd/python/yanger/ietf_interfaces/bridge.py index 14e22667..b57536b4 100644 --- a/src/statd/python/yanger/ietf_interfaces/bridge.py +++ b/src/statd/python/yanger/ietf_interfaces/bridge.py @@ -179,6 +179,7 @@ def stp(iplink): stp = { "force-protocol": state["force-protocol-version"], + "hello-time": int(state["hello-time"]), "forward-delay": int(state["forward-delay"]), "max-age": int(state["max-age"]), "transmit-hold-count": int(state["tx-hold-count"]),