summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac12
-rw-r--r--zebra/main.c10
-rw-r--r--zebra/subdir.am2
3 files changed, 21 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac
index b901d7a42..330752a79 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1998,6 +1998,18 @@ if test "$enable_grpc" = "yes"; then
AC_LANG_POP([C++])
fi
+dnl ---------
+dnl DPDK
+dnl ---------
+if test "$enable_dp_dpdk" = "yes"; then
+ PKG_CHECK_MODULES([DPDK], [libdpdk], [
+ AC_DEFINE([HAVE_DPDK], [1], [Enable DPDK backend])
+ DPDK=true
+ ], [
+ AC_MSG_ERROR([configuration specifies --enable-dp-dpdk but DPDK libs were not found])
+ ])
+fi
+
dnl -----
dnl LTTng
dnl -----
diff --git a/zebra/main.c b/zebra/main.c
index 2d492f864..e516688a1 100644
--- a/zebra/main.c
+++ b/zebra/main.c
@@ -105,9 +105,13 @@ const struct option longopts[] = {
#endif /* HAVE_NETLINK */
{0}};
-zebra_capabilities_t _caps_p[] = {ZCAP_NET_ADMIN, ZCAP_SYS_ADMIN,
- ZCAP_NET_RAW, ZCAP_IPC_LOCK,
- ZCAP_READ_SEARCH, ZCAP_SYS_RAWIO};
+zebra_capabilities_t _caps_p[] = {ZCAP_NET_ADMIN, ZCAP_SYS_ADMIN,
+ ZCAP_NET_RAW,
+#ifdef HAVE_DPDK
+ ZCAP_IPC_LOCK, ZCAP_READ_SEARCH,
+ ZCAP_SYS_RAWIO
+#endif
+};
/* zebra privileges to run with */
struct zebra_privs_t zserv_privs = {
diff --git a/zebra/subdir.am b/zebra/subdir.am
index 89836f3ba..a926c14ad 100644
--- a/zebra/subdir.am
+++ b/zebra/subdir.am
@@ -268,3 +268,5 @@ endif
zebra_zebra_dplane_dpdk_la_SOURCES = zebra/dpdk/zebra_dplane_dpdk.c zebra/dpdk/zebra_dplane_dpdk_vty.c
zebra_zebra_dplane_dpdk_la_LDFLAGS = -avoid-version -module -shared -export-dynamic -L/usr/local/lib -v
+zebra_zebra_dplane_dpdk_la_CFLAGS = $(DPDK_CFLAGS)
+zebra_zebra_dplane_dpdk_la_LIBADD = $(DPDK_LIBS)