[ovs-dev] [PATCH] netdev-afxdp: Enable libbpf logging to OVS.

William Tu u9012063 at gmail.com
Wed Nov 20 20:25:56 UTC 2019


libbpf has pr_warn, pr_info, and pr_debug. The patch registers
these print functions, integrating the libbpf logs to OVS log.

Signed-off-by: William Tu <u9012063 at gmail.com>
---
 lib/netdev-afxdp.c | 20 ++++++++++++++++++++
 lib/netdev-afxdp.h |  1 +
 lib/netdev-linux.c |  1 +
 3 files changed, 22 insertions(+)

diff --git a/lib/netdev-afxdp.c b/lib/netdev-afxdp.c
index e1cd88351ca0..ca2dfd005b9f 100644
--- a/lib/netdev-afxdp.c
+++ b/lib/netdev-afxdp.c
@@ -1099,6 +1099,26 @@ netdev_afxdp_rxq_destruct(struct netdev_rxq *rxq_ OVS_UNUSED)
     /* Nothing. */
 }
 
+static int
+libbpf_print(enum libbpf_print_level level,
+             const char *format, va_list args)
+{
+    if (level == LIBBPF_WARN) {
+        vlog_valist(&this_module, VLL_WARN, format, args);
+    } else if (level == LIBBPF_INFO) {
+        vlog_valist(&this_module, VLL_INFO, format, args);
+    } else {
+        vlog_valist(&this_module, VLL_DBG, format, args);
+    }
+    return 0;
+}
+
+int netdev_afxdp_init(void)
+{
+    libbpf_set_print(libbpf_print);
+    return 0;
+}
+
 int
 netdev_afxdp_construct(struct netdev *netdev)
 {
diff --git a/lib/netdev-afxdp.h b/lib/netdev-afxdp.h
index 54079c80c010..8188bc669526 100644
--- a/lib/netdev-afxdp.h
+++ b/lib/netdev-afxdp.h
@@ -46,6 +46,7 @@ struct netdev_custom_stats;
 
 int netdev_afxdp_rxq_construct(struct netdev_rxq *rxq_);
 void netdev_afxdp_rxq_destruct(struct netdev_rxq *rxq_);
+int netdev_afxdp_init(void);
 int netdev_afxdp_construct(struct netdev *netdev_);
 void netdev_afxdp_destruct(struct netdev *netdev_);
 int netdev_afxdp_verify_mtu_size(const struct netdev *netdev, int mtu);
diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
index 0a32cf9bcae1..f8e59bacfb13 100644
--- a/lib/netdev-linux.c
+++ b/lib/netdev-linux.c
@@ -3299,6 +3299,7 @@ const struct netdev_class netdev_afxdp_class = {
     NETDEV_LINUX_CLASS_COMMON,
     .type = "afxdp",
     .is_pmd = true,
+    .init = netdev_afxdp_init,
     .construct = netdev_afxdp_construct,
     .destruct = netdev_afxdp_destruct,
     .get_stats = netdev_afxdp_get_stats,
-- 
2.7.4



More information about the dev mailing list