AUTOMAKE_OPTIONS = foreign subdir-objects
-AM_CFLAGS = -Wall -Werror @DPDK@ @IPSEC@ @IPV6SR@
+AM_CFLAGS = -Wall -Werror @DPDK@ @DPDK_CRYPTO@ @IPSEC@ @IPV6SR@
+
+BUILT_SOURCES = \
+ vnet/interface.api.h \
+ vnet/interface.api.json \
+ vnet/l2/l2.api.h \
+ vnet/l2/l2.api.json \
+ vnet/map/map.api.h \
+ vnet/map/map.api.json
libvnet_la_SOURCES =
libvnetplugin_la_SOURCES =
########################################
libvnet_la_SOURCES += \
vnet/config.c \
+ vnet/devices/devices.c \
vnet/handoff.c \
vnet/interface.c \
+ vnet/interface_api.c \
vnet/interface_cli.c \
vnet/interface_format.c \
vnet/interface_output.c \
vnet/global_funcs.h \
vnet/handoff.h \
vnet/interface.h \
+ vnet/interface.api.h \
vnet/interface_funcs.h \
vnet/l3_types.h \
vnet/pipeline.h \
vnet/replication.h \
vnet/rewrite.h \
- vnet/vnet.h
+ vnet/vnet.h \
+ vnet/vnet_all_api_h.h \
+ vnet/vnet_msg_enum.h
########################################
# Policer infra
########################################
libvnet_la_SOURCES += \
vnet/l2/feat_bitmap.c \
+ vnet/l2/l2_api.c \
vnet/l2/l2_bd.c \
vnet/l2/l2_bvi.c \
vnet/l2/l2_input_classify.c \
vnet/l2/l2_fib.h \
vnet/l2/l2_rw.h \
vnet/l2/l2_xcrw.h \
- vnet/l2/l2_classify.h
+ vnet/l2/l2_classify.h \
+ vnet/l2/l2.api.h
########################################
# Layer 2 protocol: SRP
vnet/ip/ip6_hop_by_hop.h \
vnet/ip/ip6_hop_by_hop_packet.h \
vnet/ip/ip6_packet.h \
+ vnet/ip/ip6_neighbor.h \
vnet/ip/ip.h \
vnet/ip/ip_packet.h \
vnet/ip/ip_source_and_port_range_check.h \
vnet/ipsec/ikev2_cli.c \
vnet/ipsec/ikev2_payload.c \
vnet/ipsec/ikev2_format.c
-endif
+if WITH_DPDK_CRYPTO
+libvnet_la_SOURCES += \
+ vnet/devices/dpdk/ipsec/esp_encrypt.c \
+ vnet/devices/dpdk/ipsec/esp_decrypt.c \
+ vnet/devices/dpdk/ipsec/crypto_node.c \
+ vnet/devices/dpdk/ipsec/cli.c \
+ vnet/devices/dpdk/ipsec/ipsec.c
+endif
+endif
libvnet_la_SOURCES += \
vnet/ipsec/ipsec_output.c
vnet/ipsec/esp.h \
vnet/ipsec/ikev2.h \
vnet/ipsec/ikev2_priv.h
+if WITH_DPDK_CRYPTO
+nobase_include_HEADERS += \
+ vnet/devices/dpdk/ipsec/ipsec.h \
+ vnet/devices/dpdk/ipsec/esp.h
+endif
########################################
# Layer 3 protocol: osi
########################################
# Layer 3 protocol: MAP
########################################
-libvnet_la_SOURCES += \
- vnet/map/map.c \
- vnet/map/map_dpo.c \
- vnet/map/ip4_map.c \
- vnet/map/ip6_map.c \
- vnet/map/ip4_map_t.c \
- vnet/map/ip6_map_t.c
+libvnet_la_SOURCES += \
+ vnet/map/map.c \
+ vnet/map/map_dpo.c \
+ vnet/map/ip4_map.c \
+ vnet/map/ip6_map.c \
+ vnet/map/ip4_map_t.c \
+ vnet/map/ip6_map_t.c \
+ vnet/map/map_api.c
-nobase_include_HEADERS += \
- vnet/map/map.h \
- vnet/map/map_dpo.h
+nobase_include_HEADERS += \
+ vnet/map/map.h \
+ vnet/map/map_dpo.h \
+ vnet/map/map.api.h
if ENABLE_TESTS
TESTS += test_map
vnet/mpls/mpls_features.c \
vnet/mpls/node.c \
vnet/mpls/interface.c \
- vnet/mpls/policy_encap.c \
+ vnet/mpls/mpls_tunnel.c \
vnet/mpls/pg.c
nobase_include_HEADERS += \
vnet/mpls/mpls.h \
vnet/mpls/mpls_types.h \
+ vnet/mpls/mpls_tunnel.h \
vnet/mpls/packet.h \
vnet/mpls/error.def
nobase_include_HEADERS += \
vnet/lawful-intercept/lawful_intercept.h
+########################################
+# SPAN (port mirroring)
+########################################
+
+libvnet_la_SOURCES += \
+ vnet/span/span.c \
+ vnet/span/node.c
+
+nobase_include_HEADERS += \
+ vnet/span/span.h
+
########################################
# Packet generator
########################################
vnet/pg/edit.h
########################################
-# Intel DPDK
+# DPDK
########################################
if WITH_DPDK
libvnet_la_SOURCES += \
########################################
libvnet_la_SOURCES += \
- vnet/devices/feature.c \
vnet/feature/feature.c \
vnet/feature/registration.c
vnet/fib/fib_entry_src_mpls.c \
vnet/fib/fib_entry_src_lisp.c \
vnet/fib/fib_entry_cover.c \
+ vnet/fib/fib_entry_delegate.c \
vnet/fib/fib_path_list.c \
vnet/fib/fib_path.c \
vnet/fib/fib_path_ext.c \
vnet/fib/fib_table.h \
vnet/fib/fib_node.h \
vnet/fib/fib_node_list.h \
- vnet/fib/fib_entry.h
+ vnet/fib/fib_entry.h \
+ vnet/fib/fib_entry_delegate.h
########################################
# ADJ
pcap2pg_LDADD = libvnet.la -l:libvppinfra.a -lpthread -lm -ldl
noinst_PROGRAMS += pcap2pg
+
+# Set the suffix list
+SUFFIXES = .api.h .api .api.json
+
+# install the API definition, so we can produce java bindings, etc.
+
+apidir = $(prefix)/vnet
+api_DATA = \
+ vnet/interface.api.json \
+ vnet/l2/l2.api.json \
+ vnet/map/map.api.json
+
+# The actual %.api.h rule is in .../build-data/packages/suffix-rules.mk
+# and requires a symbolic link at the top of the vnet source tree
+
+include $(top_srcdir)/suffix-rules.mk