From 4c81ac978ee33d85482c0ab76849ac48837c9ca4 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Mon, 26 Aug 2024 21:23:01 +0200 Subject: [PATCH] confd: adjust Frr logging for staticd and ospfd Ensure Frr logs to the local2 syslog facility to allow sorting all Frr (staticd, ospfd) logs into a dedicated /var/log/routing log file. We activate OSPF debugging, but keep log level at 'informational' for the time being. The YANG model needs some sort of "knob" to toggle debug messages when troubleshooting OSPF. Fixes #541 Signed-off-by: Joachim Wiberg --- board/common/rootfs/etc/syslog.d/readme.txt | 2 +- board/common/rootfs/etc/syslog.d/routing.conf | 1 + board/common/rootfs/usr/lib/tmpfiles.d/frr.conf | 1 + src/confd/src/ietf-routing.c | 16 ++++++++++++++-- 4 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 board/common/rootfs/etc/syslog.d/routing.conf create mode 100644 board/common/rootfs/usr/lib/tmpfiles.d/frr.conf diff --git a/board/common/rootfs/etc/syslog.d/readme.txt b/board/common/rootfs/etc/syslog.d/readme.txt index cc74943e..eadc3375 100644 --- a/board/common/rootfs/etc/syslog.d/readme.txt +++ b/board/common/rootfs/etc/syslog.d/readme.txt @@ -2,7 +2,7 @@ Reserved facilities for logging in various subsystems: - local0: rauc - local1: containers - - local2: + - local2: routing (frr) - local3: - local5: - local6: reserved diff --git a/board/common/rootfs/etc/syslog.d/routing.conf b/board/common/rootfs/etc/syslog.d/routing.conf new file mode 100644 index 00000000..3f6de5d0 --- /dev/null +++ b/board/common/rootfs/etc/syslog.d/routing.conf @@ -0,0 +1 @@ +local2.* -/var/log/routing diff --git a/board/common/rootfs/usr/lib/tmpfiles.d/frr.conf b/board/common/rootfs/usr/lib/tmpfiles.d/frr.conf new file mode 100644 index 00000000..b7dc8851 --- /dev/null +++ b/board/common/rootfs/usr/lib/tmpfiles.d/frr.conf @@ -0,0 +1 @@ +d /var/run/frr 0755 frr frr - diff --git a/src/confd/src/ietf-routing.c b/src/confd/src/ietf-routing.c index 73a0d28a..f7ca0fa5 100644 --- a/src/confd/src/ietf-routing.c +++ b/src/confd/src/ietf-routing.c @@ -17,12 +17,14 @@ #define BFDD_CONF "/etc/frr/bfd_enabled" /* Just signal that bfd should be enabled*/ #define BFDD_CONF_NEXT BFDD_CONF "+" -#define FRR_STATIC_CONFIG "! Generated by Infix\n\ +#define FRR_STATIC_CONFIG "! Generated by Infix confd\n\ frr defaults traditional\n\ hostname Router\n\ password zebra \n\ enable password zebra\n\ -log syslog informational\n" +no log unique-id\n\ +log syslog informational\n\ +log facility local2\n" int parse_ospf_interfaces(sr_session_ctx_t *session, struct lyd_node *areas, FILE *fp) { @@ -126,6 +128,14 @@ 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; const char *router_id; int bfd_enabled = 0; @@ -139,6 +149,8 @@ int parse_ospf(sr_session_ctx_t *session, struct lyd_node *ospf) } fputs(FRR_STATIC_CONFIG, fp); + fputs(static_debug, fp); + areas = lydx_get_child(ospf, "areas"); router_id = lydx_get_cattr(ospf, "explicit-router-id"); bfd_enabled = parse_ospf_interfaces(session, areas, fp);