forked from Mirror/frr
lib, configure.ac: initial LTTng support
This commit adds initial support for LTTng. When --enable-lttng=no or is not specified, no tracing code is included. When --enable-lttng=yes, LTTng tracing events are (will be) generated. configure.ac: - add --enable-lttng - define HAVE_LTTNG when enabled - minimum LTTng version: 2.12.0 lib: - add trace.[ch] - update subdir.am Signed-off-by: Quentin Young <qlyoung@nvidia.com>
This commit is contained in:
parent
02178900de
commit
0cbcadccf7
14
configure.ac
14
configure.ac
|
@ -566,6 +566,8 @@ AC_ARG_ENABLE([grpc],
|
|||
AS_HELP_STRING([--enable-grpc], [enable the gRPC northbound plugin]))
|
||||
AC_ARG_ENABLE([zeromq],
|
||||
AS_HELP_STRING([--enable-zeromq], [enable ZeroMQ handler (libfrrzmq)]))
|
||||
AC_ARG_ENABLE([lttng],
|
||||
AS_HELP_STRING([--enable-lttng], [enable LTTng tracing]))
|
||||
AC_ARG_WITH([libpam],
|
||||
AS_HELP_STRING([--with-libpam], [use libpam for PAM support in vtysh]))
|
||||
AC_ARG_ENABLE([ospfapi],
|
||||
|
@ -1851,6 +1853,18 @@ if test "$enable_grpc" = "yes"; then
|
|||
])
|
||||
fi
|
||||
|
||||
dnl -----
|
||||
dnl LTTng
|
||||
dnl -----
|
||||
if test "$enable_lttng" = "yes"; then
|
||||
PKG_CHECK_MODULES([UST], [lttng-ust >= 2.12.0], [
|
||||
AC_DEFINE([HAVE_LTTNG], [1], [Enable LTTng support])
|
||||
LTTNG=true
|
||||
], [
|
||||
AC_MSG_ERROR([configuration specifies --enable-lttng but lttng-ust was not found])
|
||||
])
|
||||
fi
|
||||
|
||||
dnl ------
|
||||
dnl ZeroMQ
|
||||
dnl ------
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
lib_LTLIBRARIES += lib/libfrr.la
|
||||
lib_libfrr_la_LDFLAGS = -version-info 0:0:0 -Xlinker -e_libfrr_version
|
||||
lib_libfrr_la_LIBADD = $(LIBCAP) $(UNWIND_LIBS) $(LIBYANG_LIBS) $(LUA_LIB) $(LIBM)
|
||||
lib_libfrr_la_LIBADD = $(LIBCAP) $(UNWIND_LIBS) $(LIBYANG_LIBS) $(LUA_LIB) $(UST_LIBS) $(LIBM)
|
||||
|
||||
lib_libfrr_la_SOURCES = \
|
||||
lib/agg_table.c \
|
||||
|
@ -93,6 +93,7 @@ lib_libfrr_la_SOURCES = \
|
|||
lib/table.c \
|
||||
lib/termtable.c \
|
||||
lib/thread.c \
|
||||
lib/trace.c \
|
||||
lib/typerb.c \
|
||||
lib/typesafe.c \
|
||||
lib/vector.c \
|
||||
|
@ -251,6 +252,7 @@ pkginclude_HEADERS += \
|
|||
lib/table.h \
|
||||
lib/termtable.h \
|
||||
lib/thread.h \
|
||||
lib/trace.h \
|
||||
lib/typerb.h \
|
||||
lib/typesafe.h \
|
||||
lib/vector.h \
|
||||
|
|
4
lib/trace.c
Normal file
4
lib/trace.c
Normal file
|
@ -0,0 +1,4 @@
|
|||
#define TRACEPOINT_CREATE_PROBES
|
||||
#define TRACEPOINT_DEFINE
|
||||
|
||||
#include "trace.h"
|
50
lib/trace.h
Normal file
50
lib/trace.h
Normal file
|
@ -0,0 +1,50 @@
|
|||
/* Tracing
|
||||
*
|
||||
* Copyright (C) 2020 NVIDIA Corporation
|
||||
* Quentin Young
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation; either version 2 of the License, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; see the file COPYING; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#if !defined(_TRACE_H) || defined(TRACEPOINT_HEADER_MULTI_READ)
|
||||
#define _TRACE_H
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif /* HAVE_CONFIG_H */
|
||||
|
||||
#ifdef HAVE_LTTNG
|
||||
|
||||
#undef TRACEPOINT_PROVIDER
|
||||
#define TRACEPOINT_PROVIDER frr_libfrr
|
||||
|
||||
#undef TRACEPOINT_INCLUDE
|
||||
#define TRACEPOINT_INCLUDE "./trace.h"
|
||||
|
||||
/* tracepoint definitions go here */
|
||||
|
||||
#include <lttng/tracepoint.h>
|
||||
#include <lttng/tracepoint-event.h>
|
||||
|
||||
#else /* HAVE_LTTNG */
|
||||
|
||||
#define tracepoint(...)
|
||||
#define tracef(...)
|
||||
#define tracelog(...)
|
||||
#define tracepoint_enabled(...) true
|
||||
|
||||
#endif /* HAVE_LTTNG */
|
||||
|
||||
#endif /* _TRACE_H */
|
Loading…
Reference in a new issue