[ovs-dev] [PATCH ovn v8 2/7] Export `VLOG_WARN` and `VLOG_ERR` from libovn for use in ddlog

Ben Pfaff blp at ovn.org
Thu Nov 26 05:48:39 UTC 2020


From: Leonid Ryzhyk <lryzhyk at vmware.com>

Export `ddlog_warn` and `ddlog_err` functions that are just wrappers
around `VLOG_WARN` and `VLOG_ERR`.  This is not ideal because the
functions are exported by `ovn_util.c` and the resulting log messages use
`ovn_util` as module name.  More importantly, these functions do not do
log rate limiting.

Signed-off-by: Leonid Ryzhyk <lryzhyk at vmware.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
---
 TODO.rst       |  6 ++++++
 lib/ovn-util.c | 15 +++++++++++++++
 lib/ovn-util.h |  5 +++++
 3 files changed, 26 insertions(+)

diff --git a/TODO.rst b/TODO.rst
index c15815539f4f..ecfe62870fb0 100644
--- a/TODO.rst
+++ b/TODO.rst
@@ -153,6 +153,12 @@ OVN To-do List
   hashtable lookup in parse_port_group() which can be avoided when we are sure
   that the Southbound DB uses the new format.
 
+* ovn-northd-ddlog: Calls to warn() and err() from DDlog code would be
+  better refactored to use the Warning[] relation (and introduce an
+  Error[] relation once we want to issue some errors that way).  This
+  would be easier with some improvements in DDlog to more easily
+  output to multiple relations from a single production.
+
 * IP Multicast Relay
 
   * When connecting bridged logical switches (localnet) to logical routers
diff --git a/lib/ovn-util.c b/lib/ovn-util.c
index 97d27efa3f20..2606169f0da6 100644
--- a/lib/ovn-util.c
+++ b/lib/ovn-util.c
@@ -734,3 +734,18 @@ ovn_get_internal_version(void)
                      sbrec_get_db_version(),
                      N_OVNACTS, OVN_INTERNAL_MINOR_VER);
 }
+
+#ifdef DDLOG
+/* Callbacks used by the ddlog northd code to print warnings and errors. */
+void
+ddlog_warn(const char *msg)
+{
+    VLOG_WARN("%s", msg);
+}
+
+void
+ddlog_err(const char *msg)
+{
+    VLOG_ERR("%s", msg);
+}
+#endif
diff --git a/lib/ovn-util.h b/lib/ovn-util.h
index 280bcc3e4f6f..5ceeb52cff7b 100644
--- a/lib/ovn-util.h
+++ b/lib/ovn-util.h
@@ -226,4 +226,9 @@ bool ip_address_and_port_from_lb_key(const char *key, char **ip_address,
  * value. */
 char *ovn_get_internal_version(void);
 
+#ifdef DDLOG
+void ddlog_warn(const char *msg);
+void ddlog_err(const char *msg);
+#endif
+
 #endif
-- 
2.26.2



More information about the dev mailing list