$(call test,vpp,vpp,test)
test-ext:
- $(if $(filter-out $(3),retest),make -C $(BR) PLATFORM=vpp TAG=vpp_debug vom-install,)
+ $(if $(filter-out $(3),retest),make -C $(BR) PLATFORM=vpp TAG=vpp_debug vom-install japi-install,)
$(eval EXTENDED_TESTS=yes)
$(call test,vpp,vpp_debug,test-ext)
@make -C build-root PLATFORM=vpp TAG=vpp sample-plugin-install
$(call banner,"Building libmemif")
@make -C build-root PLATFORM=vpp TAG=vpp libmemif-install
+ $(call banner,"Building JAPI")
+ @make -C build-root PLATFORM=vpp TAG=vpp japi-install
$(call banner,"Building VOM")
@make -C build-root PLATFORM=vpp TAG=vpp vom-install
$(call banner,"Building $(PKG) packages")
--- /dev/null
+japi_configure_depend = vpp-install
+japi_source = extras
+japi_configure_subdir = japi
+japi_CPPFLAGS = $(call installed_includes_fn, vpp) $(call installed_includes_fn, vpp)/vpp_plugins
+japi_LDFLAGS = $(call installed_libs_fn, vpp)
+
>> deb/debian/vpp-dev.install ; \
echo ../$(INSTALL_PREFIX)$(ARCH)/vpp/share/vpp/JSON.py /usr/share/vpp \
>> deb/debian/vpp-dev.install ; \
- echo ../../src/vpp-api/java/jvpp/gen/jvpp_gen.py /usr/bin \
+ echo ../../extras/japi/java/jvpp/gen/jvpp_gen.py /usr/bin \
>> deb/debian/vpp-dev.install ; \
for i in $$(ls ../src/vpp-api/java/jvpp/gen/jvppgen/*.py); do \
echo ../$${i} /usr/lib/python2.7/dist-packages/jvppgen \
# Uncoment to enable building unit tests
# vpp_enable_tests = yes
-vpp_root_packages = vpp vom
+vpp_root_packages = vpp vom japi
# DPDK configuration parameters
# vpp_uses_dpdk_mlx4_pmd = yes
rm -f $2
-for i in $(find ${1}/vpp/share/java/ -type f -print); do
+for i in $(find ${1}/japi/share/java/ -type f -print); do
echo ../${i} /usr/share/java >> ${2}
done
--- /dev/null
+
+
+AUTOMAKE_OPTIONS = foreign subdir-objects
+
+SUBDIRS = java
--- /dev/null
+AC_INIT(japi, 18.10)
+LT_INIT
+AM_INIT_AUTOMAKE
+AM_SILENT_RULES([yes])
+AC_PREFIX_DEFAULT([/usr])
+
+PKG_CHECK_MODULES([CHECK], [check], [HAVE_CHECK=1], [HAVE_CHECK=0])
+AM_CONDITIONAL([USE_CHECK],[test "$HAVE_CHECK" -eq 1])
+
+AC_PROG_CC
+AC_PROG_CXX
+
+AM_CONDITIONAL(ENABLE_ACL_PLUGIN, test "yes" = "yes")
+AM_CONDITIONAL(ENABLE_NAT_PLUGIN, test "yes" = "yes")
+AM_CONDITIONAL(ENABLE_L2E_PLUGIN, test "yes" = "yes")
+AM_CONDITIONAL(ENABLE_GBP_PLUGIN, test "yes" = "yes")
+AM_CONDITIONAL(ENABLE_PPPOE_PLUGIN, test "yes" = "yes")
+AM_CONDITIONAL(ENABLE_GTPU_PLUGIN, test "yes" = "yes")
+AM_CONDITIONAL(ENABLE_IOAM_PLUGIN, test "yes" = "yes")
+
+AX_VPP_FIND_JDK8
+AC_SUBST(JAVA_HOME)
+AC_SUBST(JAVAC)
+AC_SUBST(JAVAH)
+AC_SUBST(JAR)
+
+AS_CASE([$host_cpu],
+ [x86_64], [CPU_FLAGS="-march=corei7 -mtune=corei7-avx"],
+ [aarch64], [CPU_FLAGS="-march=armv8-a+crc"],
+ [CPU_FLAGS=""],
+)
+AC_SUBST([CPU_FLAGS])
+
+AC_OUTPUT([Makefile java/Makefile])
+
+AC_CONFIG_MACRO_DIR([m4])
# See the License for the specific language governing permissions and
# limitations under the License.
-AUTOMAKE_OPTIONS = foreign
+AUTOMAKE_OPTIONS = foreign subdir-objects
ACLOCAL_AMFLAGS = -I m4
AM_LIBTOOLFLAGS = --quiet
lib_LTLIBRARIES = libjvpp_common.la
libjvpp_common_la_SOURCES = jvpp-common/jvpp_common.c
-libjvpp_common_la_LDFLAGS = shared -rpath /none -no-undefined
+libjvpp_common_la_LDFLAGS = shared -rpath /none -no-undefined -lvppinfra
JVPP_LIBS = \
libjvpp_common.la \
- $(top_builddir)/libvppinfra.la \
- $(top_builddir)/libvlibmemoryclient.la \
- $(top_builddir)/libsvm.la \
- -lpthread -lm -lrt
+ -lvppinfra -lvlibmemoryclient -lsvm -lpthread -lm -lrt
#
# jvpp-registry (connection management + plugin registry)
CLEANDIRS += jvpp-core/target
# Include all VPP API files
-jvpp_core_json_files = $(shell find @top_builddir@/vnet/ -type f -name '*.api.json')
-jvpp_core_json_files += $(shell find @top_builddir@/vpp/ -type f -name '*.api.json')
+jvpp_core_json_files = $(shell find @top_builddir@/../vpp/vnet -type f -name '*.api.json')
+jvpp_core_json_files += $(shell find @top_builddir@/../vpp/vpp -type f -name '*.api.json')
# except for plugins and unsupported ones:
# jvpp_core_json_files += @top_builddir@/vlibmemory/memclnt.api.json
JAR_FILES += jvpp-acl-$(PACKAGE_VERSION).jar
CLEANDIRS += jvpp-acl/target
-jvpp_acl_json_files = @top_builddir@/plugins/acl/acl.api.json
+jvpp_acl_json_files = @top_builddir@/../vpp/plugins/acl/acl.api.json
jvpp-acl/io_fd_vpp_jvpp_acl_JVppAclImpl.h: $(jvpp_registry_ok) $(jvpp_acl_json_files)
$(call japigen,acl,JVppAclImpl)
JAR_FILES += jvpp-gtpu-$(PACKAGE_VERSION).jar
CLEANDIRS += jvpp-gtpu/target
-jvpp_gtpu_json_files = @top_builddir@/plugins/gtpu/gtpu.api.json
+jvpp_gtpu_json_files = @top_builddir@/../vpp/plugins/gtpu/gtpu.api.json
jvpp-gtpu/io_fd_vpp_jvpp_gtpu_JVppGtpuImpl.h: $(jvpp_registry_ok) $(jvpp_gtpu_json_files)
$(call japigen,gtpu,JVppGtpuImpl)
JAR_FILES += jvpp-pppoe-$(PACKAGE_VERSION).jar
CLEANDIRS += jvpp-pppoe/target
-jvpp_pppoe_json_files = @top_builddir@/plugins/pppoe/pppoe.api.json
+jvpp_pppoe_json_files = @top_builddir@/../vpp/plugins/pppoe/pppoe.api.json
jvpp-pppoe/io_fd_vpp_jvpp_pppoe_JVppPppoeImpl.h: $(jvpp_registry_ok) $(jvpp_pppoe_json_files)
$(call japigen,pppoe,JVppPppoeImpl)
JAR_FILES += jvpp-nat-$(PACKAGE_VERSION).jar
CLEANDIRS += jvpp-nat/target
-jvpp_nat_json_files = @top_builddir@/plugins/nat/nat.api.json
+jvpp_nat_json_files = @top_builddir@/../vpp/plugins/nat/nat.api.json
jvpp-nat/io_fd_vpp_jvpp_nat_JVppNatImpl.h: $(jvpp_registry_ok) $(jvpp_nat_json_files)
$(call japigen,nat,JVppNatImpl)
JAR_FILES += jvpp-ioamtrace-$(PACKAGE_VERSION).jar
CLEANDIRS += jvpp-ioamtrace/target
-jvpp_ioamtrace_json_files = @top_builddir@/plugins/ioam/lib-trace/trace.api.json
+jvpp_ioamtrace_json_files = @top_builddir@/../vpp/plugins/ioam/lib-trace/trace.api.json
jvpp-ioamtrace/io_fd_vpp_jvpp_ioamtrace_JVppIoamtraceImpl.h: $(jvpp_registry_ok) $(jvpp_ioamtrace_json_files)
$(call japigen,ioamtrace,JVppIoamtraceImpl)
JAR_FILES += jvpp-ioampot-$(PACKAGE_VERSION).jar
CLEANDIRS += jvpp-ioampot/target
-jvpp_ioampot_json_files = @top_builddir@/plugins/ioam/lib-pot/pot.api.json
+jvpp_ioampot_json_files = @top_builddir@/../vpp/plugins/ioam/lib-pot/pot.api.json
jvpp-ioampot/io_fd_vpp_jvpp_ioampot_JVppIoampotImpl.h: $(jvpp_registry_ok) $(jvpp_ioampot_json_files)
$(call japigen,ioampot,JVppIoampotImpl)
JAR_FILES += jvpp-ioamexport-$(PACKAGE_VERSION).jar
CLEANDIRS += jvpp-ioamexport/target
-jvpp_ioamexport_json_files = @top_builddir@/plugins/ioam/export/ioam_export.api.json
+jvpp_ioamexport_json_files = @top_builddir@/../vpp/plugins/ioam/export/ioam_export.api.json
jvpp-ioamexport/io_fd_vpp_jvpp_ioamexport_JVppIoamexportImpl.h: $(jvpp_registry_ok) $(jvpp_ioamexport_json_files)
$(call japigen,ioamexport,JVppIoamexportImpl)
# Java bindings
mkdir -p -m755 %{buildroot}%{_datadir}/java
-for file in $(find %{_vpp_install_dir}/vpp/share/java -type f -name '*.jar' -print )
+for file in $(find %{_vpp_install_dir}/japi/share/java -type f -name '*.jar' -print )
do
install -p -m 644 $file %{buildroot}%{_datadir}/java
done
done
mkdir -p -m755 %{buildroot}%{python_sitelib}/jvppgen
-install -p -m755 %{_vpp_build_dir}/../src/vpp-api/java/jvpp/gen/jvpp_gen.py %{buildroot}%{_prefix}/bin
-for i in $(ls %{_vpp_build_dir}/../src/vpp-api/java/jvpp/gen/jvppgen/*.py); do
+install -p -m755 %{_vpp_build_dir}/../extras/japi/java/jvpp/gen/jvpp_gen.py %{buildroot}%{_prefix}/bin
+for i in $(ls %{_vpp_build_dir}/../extras/japi/java/jvpp/gen/jvppgen/*.py); do
install -p -m755 ${i} %{buildroot}%{python_sitelib}/jvppgen
done;
# Java bindings
mkdir -p -m755 %{buildroot}/usr/share/java
-for file in $(find %{_mu_build_dir}/%{_vpp_install_dir}/vpp/share/java -type f -name '*.jar' -print )
+for file in $(find %{_mu_build_dir}/%{_vpp_install_dir}/japi/share/java -type f -name '*.jar' -print )
do
install -p -m 644 $file %{buildroot}/usr/share/java
done
done
mkdir -p -m755 %{buildroot}%{python2_sitelib}/jvppgen
-install -p -m755 %{_mu_build_dir}/../src/vpp-api/java/jvpp/gen/jvpp_gen.py %{buildroot}/usr/bin
-for i in $(ls %{_mu_build_dir}/../src/vpp-api/java/jvpp/gen/jvppgen/*.py); do
+install -p -m755 %{_mu_build_dir}/../extras/japi/java/jvpp/gen/jvpp_gen.py %{buildroot}/usr/bin
+for i in $(ls %{_mu_build_dir}/../extras/japi/java/jvpp/gen/jvppgen/*.py); do
install -p -m666 ${i} %{buildroot}%{python2_sitelib}/jvppgen
done;
SUBDIRS += vpp-api/python
endif
-if ENABLE_JAPI
-SUBDIRS += vpp-api/java
-endif
-
###############################################################################
# API
###############################################################################
Makefile \
plugins/Makefile \
vpp-api/python/Makefile \
- vpp-api/java/Makefile \
vpp-api/vapi/Makefile \
vlib/config.h \
vppinfra/config.h \
DISABLE_ARG(vlib, [Disable vlib and dependant libs and binaries])
DISABLE_ARG(svm, [Disable svm and dependant libs and binaries])
DISABLE_ARG(papi, [Disable Python API bindings])
-DISABLE_ARG(japi, [Disable Java API bindings])
# --with-X
AM_CONDITIONAL(ENABLE_TLSOPENSSL_PLUGIN, false)
])
-###############################################################################
-# JAVA
-###############################################################################
-
-AM_COND_IF([ENABLE_JAPI],
-[
- AX_VPP_FIND_JDK8
- AC_SUBST(JAVA_HOME)
- AC_SUBST(JAVAC)
- AC_SUBST(JAVAH)
- AC_SUBST(JAR)
-])
-
###############################################################################
# PYTHON
###############################################################################
PRINT_VAL([LDFLAGS], ${LDFLAGS})
PRINT_VAL([LOG2_CACHE_LINE_BYTES], ${with_log2_cache_line_bytes})
PRINT_VAL([DLMALLOC], ${enable_dlmalloc})
-AM_COND_IF([ENABLE_JAPI],
-[
- PRINT_VAL([JAVA_VERSION], ${JAVA_VERSION})
- PRINT_VAL([JAVA_HOME], ${JAVA_HOME})
-])
AC_MSG_RESULT([])
AC_MSG_RESULT([with:])
ioam/lib-trace/trace_api.c
IOAM_TRACE_NOINST_HDR = \
- ioam/export/ioam_export_all_api_h.h \
ioam/lib-trace/trace_all_api_h.h \
ioam/lib-trace/trace_msg_enum.h \
ioam/lib-trace/trace.api.h \
ioam/export-vxlan-gpe/vxlan_gpe_ioam_export_thread.c
IOAM_VXLAN_GPE_NOINST_HDR = \
- ioam/export/ioam_export_all_api_h.h \
ioam/lib-vxlan-gpe/vxlan_gpe_all_api_h.h \
ioam/lib-vxlan-gpe/vxlan_gpe_msg_enum.h \
ioam/lib-vxlan-gpe/ioam_vxlan_gpe.api.h \
$(IOAM_IP6_MANYCAST_API) \
$(UDP_PING_API)
-noinst_HEADERS += \
+nobase_apiinclude_HEADERS += \
$(IOAM_POT_NOINST_HDR) \
$(IOAM_EXPORT_NOINST_HDR) \
$(IOAM_TRACE_NOINST_HDR) \
vppinfra/memcpy_avx512.h \
vppinfra/mhash.h \
vppinfra/mheap.h \
+ vppinfra/mheap_bootstrap.h \
vppinfra/os.h \
vppinfra/pipeline.h \
vppinfra/pool.h \
import os
import subprocess
+import unittest
-from framework import VppTestCase
+from framework import VppTestCase, running_extended_tests
# Api files path
-API_FILES_PATH = "vpp/vpp-api/java"
+API_FILES_PATH = "japi/java"
# Registry jar file name prefix
REGISTRY_JAR_PREFIX = "jvpp-registry"
+@unittest.skipUnless(running_extended_tests(), "part of extended tests")
class TestJVpp(VppTestCase):
""" JVPP Core Test Case """