summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQuentin Young <qlyoung@nvidia.com>2020-09-18 21:14:09 +0200
committerQuentin Young <qlyoung@nvidia.com>2020-10-23 21:13:51 +0200
commita72255a336c68dcc62d7bd9fcc1d409ee766cf77 (patch)
treee9b45dc7bece4b9a21e33ac15154bd9b748ed495
parentlib: add tracepoints for *malloc, list ops (diff)
downloadfrr-a72255a336c68dcc62d7bd9fcc1d409ee766cf77.tar.xz
frr-a72255a336c68dcc62d7bd9fcc1d409ee766cf77.zip
lib: add tracepoint for route table get
Signed-off-by: Quentin Young <qlyoung@nvidia.com>
-rw-r--r--lib/table.c7
-rw-r--r--lib/trace.h13
2 files changed, 20 insertions, 0 deletions
diff --git a/lib/table.c b/lib/table.c
index b315637f1..0d1be2bef 100644
--- a/lib/table.c
+++ b/lib/table.c
@@ -27,6 +27,7 @@
#include "table.h"
#include "memory.h"
#include "sockunion.h"
+#include "trace.h"
DEFINE_MTYPE_STATIC(LIB, ROUTE_TABLE, "Route table")
DEFINE_MTYPE(LIB, ROUTE_NODE, "Route node")
@@ -276,6 +277,12 @@ struct route_node *route_node_lookup_maynull(struct route_table *table,
struct route_node *route_node_get(struct route_table *table,
union prefixconstptr pu)
{
+ if (tracepoint_enabled(frr_libfrr, route_node_get)) {
+ char buf[PREFIX2STR_BUFFER];
+ prefix2str(pu, buf, sizeof(buf));
+ tracepoint(frr_libfrr, route_node_get, table, buf);
+ }
+
struct route_node search;
struct prefix *p = &search.p;
diff --git a/lib/trace.h b/lib/trace.h
index 989361e66..5e0b13a65 100644
--- a/lib/trace.h
+++ b/lib/trace.h
@@ -39,6 +39,7 @@
#include "thread.h"
#include "memory.h"
#include "linklist.h"
+#include "table.h"
/* clang-format off */
@@ -219,6 +220,18 @@ TRACEPOINT_EVENT(
)
)
+TRACEPOINT_EVENT(
+ frr_libfrr,
+ route_node_get,
+ TP_ARGS(
+ struct route_table *, table, char *, prefix
+ ),
+ TP_FIELDS(
+ ctf_integer_hex(intptr_t, table, table)
+ ctf_string(prefix, prefix)
+ )
+)
+
/* clang-format on */
#include <lttng/tracepoint-event.h>