confd: add support for toggling OSPF debug logs

Backported from origin/main 7edc3c19f7

Fixes #1281

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg
2025-12-18 14:12:01 +01:00
parent f71722c111
commit 2557eb4900
4 changed files with 82 additions and 11 deletions
+35 -10
View File
@@ -130,15 +130,7 @@ int parse_ospf_areas(sr_session_ctx_t *session, struct lyd_node *areas, FILE *fp
int parse_ospf(sr_session_ctx_t *session, struct lyd_node *ospf)
{
const char *static_debug = "! OSPF default debug\
debug ospf bfd\n\
debug ospf packet all detail\n\
debug ospf ism\n\
debug ospf nsm\n\
debug ospf default-information\n\
debug ospf nssa\n\
! OSPF configuration\n";
struct lyd_node *areas, *default_route;
struct lyd_node *areas, *default_route, *debug;
const char *router_id;
int bfd_enabled = 0;
int num_areas = 0;
@@ -151,7 +143,40 @@ debug ospf nssa\n\
}
fputs(FRR_STATIC_CONFIG, fp);
fputs(static_debug, fp);
/* Handle OSPF debug configuration */
debug = lydx_get_child(ospf, "debug");
if (debug) {
int any_debug = 0;
if (lydx_get_bool(debug, "bfd")) {
fputs("debug ospf bfd\n", fp);
any_debug = 1;
}
if (lydx_get_bool(debug, "packet")) {
fputs("debug ospf packet all detail\n", fp);
any_debug = 1;
}
if (lydx_get_bool(debug, "ism")) {
fputs("debug ospf ism\n", fp);
any_debug = 1;
}
if (lydx_get_bool(debug, "nsm")) {
fputs("debug ospf nsm\n", fp);
any_debug = 1;
}
if (lydx_get_bool(debug, "default-information")) {
fputs("debug ospf default-information\n", fp);
any_debug = 1;
}
if (lydx_get_bool(debug, "nssa")) {
fputs("debug ospf nssa\n", fp);
any_debug = 1;
}
if (any_debug)
fputs("!\n", fp);
}
areas = lydx_get_child(ospf, "areas");
router_id = lydx_get_cattr(ospf, "explicit-router-id");
+1 -1
View File
@@ -22,7 +22,7 @@ MODULES=(
"ieee802-dot1q-types@2022-10-29.yang"
"infix-ip@2024-09-16.yang"
"infix-if-type@2025-02-12.yang"
"infix-routing@2024-11-27.yang"
"infix-routing@2025-12-02.yang"
"ieee802-dot1ab-lldp@2022-03-15.yang"
"infix-lldp@2025-05-05.yang"
"infix-dhcp-common@2025-01-29.yang"
+46
View File
@@ -20,6 +20,13 @@ module infix-routing {
contact "kernelkit@googlegroups.com";
description "Deviations and augments for ietf-routing and ietf-ospf.";
revision 2025-12-02 {
description "Add configurable OSPF debug logging container.
Allows users to enable specific OSPF debug categories
(bfd, packet, ism, nsm, default-information, nssa) for troubleshooting.
All debug options default to disabled to prevent log flooding.";
reference "Issue #1281";
}
revision 2024-11-27 {
description "Deviate address-family in OSPF";
reference "internal";
@@ -278,6 +285,45 @@ module infix-routing {
}
}
}
augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ospf:ospf" {
description "Add support for configurable OSPF debug logging.
Allows users to enable specific OSPF debug categories for troubleshooting.
All debug options default to disabled to prevent log flooding in
production environments.";
container debug {
description "OSPF debug logging configuration";
leaf bfd {
type boolean;
default false;
description "Enable OSPF BFD (Bidirectional Forwarding Detection) debug messages";
}
leaf packet {
type boolean;
default false;
description "Enable detailed OSPF packet debug messages (all packet types)";
}
leaf ism {
type boolean;
default false;
description "Enable OSPF Interface State Machine debug messages";
}
leaf nsm {
type boolean;
default false;
description "Enable OSPF Neighbor State Machine debug messages";
}
leaf default-information {
type boolean;
default false;
description "Enable OSPF default route origination debug messages";
}
leaf nssa {
type boolean;
default false;
description "Enable OSPF NSSA (Not-So-Stubby Area) debug messages";
}
}
}
deviation "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface" {
deviate add {
must "count(../../../../ospf:areas/ospf:area/ospf:interfaces/ospf:interface[ospf:name=current()/name]) <= 1" {