AM_CFLAGS = -Wall -Werror @DPDK@ @DPDK_CRYPTO@ @IPSEC@ @IPV6SR@
-BUILT_SOURCES = vnet/interface.api.h vnet/interface.api.json
+BUILT_SOURCES = \
+ vnet/devices/af_packet/af_packet.api.h \
+ vnet/devices/af_packet/af_packet.api.json \
+ vnet/devices/netmap/netmap.api.h \
+ vnet/devices/netmap/netmap.api.json \
+ vnet/devices/virtio/vhost_user.api.h \
+ vnet/devices/virtio/vhost_user.api.json \
+ vnet/gre/gre.api.h \
+ vnet/gre/gre.api.json \
+ vnet/interface.api.h \
+ vnet/interface.api.json \
+ vnet/ip/ip.api.h \
+ vnet/ip/ip.api.json \
+ vnet/l2/l2.api.h \
+ vnet/l2/l2.api.json \
+ vnet/map/map.api.h \
+ vnet/map/map.api.json \
+ vnet/span/span.api.h \
+ vnet/span/span.api.json \
+ vnet/unix/tap.api.h \
+ vnet/unix/tap.api.json \
+ vnet/vxlan/vxlan.api.h \
+ vnet/vxlan/vxlan.api.json \
+ vnet/vxlan-gpe/vxlan_gpe.api.h \
+ vnet/vxlan-gpe/vxlan_gpe.api.json
libvnet_la_SOURCES =
libvnetplugin_la_SOURCES =
########################################
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
libvnet_la_SOURCES += \
vnet/vxlan/vxlan.c \
vnet/vxlan/encap.c \
- vnet/vxlan/decap.c
+ vnet/vxlan/decap.c \
+ vnet/vxlan/vxlan_api.c
nobase_include_HEADERS += \
vnet/vxlan/vxlan.h \
vnet/vxlan/vxlan_packet.h \
- vnet/vxlan/vxlan_error.def
+ vnet/vxlan/vxlan_error.def \
+ vnet/vxlan/vxlan.api.h
########################################
# Layer 2 / CDP
vnet/ip/ip6_input.c \
vnet/ip/ip6_neighbor.c \
vnet/ip/ip6_pg.c \
+ vnet/ip/ip_api.c \
vnet/ip/ip_checksum.c \
vnet/ip/ip_frag.c \
vnet/ip/ip.h \
vnet/ip/icmp4.h \
vnet/ip/icmp6.h \
vnet/ip/igmp_packet.h \
+ vnet/ip/ip.api.h \
vnet/ip/ip4_error.h \
vnet/ip/ip4.h \
vnet/ip/ip4_mtrie.h \
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/ip/udp.h \
vnet/ip/udp_packet.h
+########################################
+# Bidirectional Forwarding Detection
+########################################
+
+nobase_include_HEADERS += \
+ vnet/bfd/bfd_protocol.h \
+ vnet/bfd/bfd_main.h \
+ vnet/bfd/bfd_api.h \
+ vnet/bfd/bfd_udp.h
+
+libvnet_la_SOURCES += \
+ vnet/bfd/bfd_api.h \
+ vnet/bfd/bfd_udp.c \
+ vnet/bfd/bfd_main.c \
+ vnet/bfd/bfd_protocol.c
+
########################################
# Layer 3 protocol: IPSec
########################################
########################################
# 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/gre/gre.c \
vnet/gre/node.c \
vnet/gre/interface.c \
- vnet/gre/pg.c
+ vnet/gre/pg.c \
+ vnet/gre/gre_api.c
nobase_include_HEADERS += \
vnet/gre/gre.h \
vnet/gre/packet.h \
- vnet/gre/error.def
+ vnet/gre/error.def \
+ vnet/gre/gre.api.h
########################################
# Tunnel protocol: l2tpv3
libvnet_la_SOURCES += \
vnet/vxlan-gpe/vxlan_gpe.c \
vnet/vxlan-gpe/encap.c \
- vnet/vxlan-gpe/decap.c
+ vnet/vxlan-gpe/decap.c \
+ vnet/vxlan-gpe/vxlan_gpe_api.c
nobase_include_HEADERS += \
vnet/vxlan-gpe/vxlan_gpe.h \
vnet/vxlan-gpe/vxlan_gpe_packet.h \
- vnet/vxlan-gpe/vxlan_gpe_error.def
+ vnet/vxlan-gpe/vxlan_gpe_error.def \
+ vnet/vxlan-gpe/vxlan_gpe.api.h
########################################
# Tunnel protocol: ipsec+gre
########################################
libvnet_la_SOURCES += \
- vnet/span/span.c \
+ vnet/span/span_api.c \
+ vnet/span/span.c \
vnet/span/node.c
nobase_include_HEADERS += \
+ vnet/span/span.api.h \
vnet/span/span.h
########################################
########################################
libvnet_la_SOURCES += \
- vnet/devices/virtio/vhost-user.c
+ vnet/devices/virtio/vhost-user.c \
+ vnet/devices/virtio/vhost_user_api.c
nobase_include_HEADERS += \
- vnet/devices/virtio/vhost-user.h
+ vnet/devices/virtio/vhost-user.h \
+ vnet/devices/virtio/vhost_user.api.h
########################################
# ssvm ethernet
vnet/devices/af_packet/af_packet.c \
vnet/devices/af_packet/device.c \
vnet/devices/af_packet/node.c \
- vnet/devices/af_packet/cli.c
+ vnet/devices/af_packet/cli.c \
+ vnet/devices/af_packet/af_packet_api.c
-nobase_include_HEADERS += \
- vnet/devices/af_packet/af_packet.h
+nobase_include_HEADERS += \
+ vnet/devices/af_packet/af_packet.h \
+ vnet/devices/af_packet/af_packet.api.h
########################################
# NETMAP interface
vnet/devices/netmap/netmap.c \
vnet/devices/netmap/device.c \
vnet/devices/netmap/node.c \
- vnet/devices/netmap/cli.c
+ vnet/devices/netmap/cli.c \
+ vnet/devices/netmap/netmap_api.c
nobase_include_HEADERS += \
- vnet/devices/netmap/netmap.h
-
+ vnet/devices/netmap/netmap.h \
+ vnet/devices/netmap/netmap.api.h
########################################
# Driver feature graph arc support
libvnet_la_SOURCES += \
vnet/unix/gdb_funcs.c \
vnet/unix/pcap.c \
+ vnet/unix/tap_api.c \
vnet/unix/tapcli.c \
vnet/unix/tuntap.c
nobase_include_HEADERS += \
vnet/unix/pcap.h \
vnet/unix/tuntap.h \
+ vnet/unix/tap.api.h \
vnet/unix/tapcli.h
########################################
nobase_include_HEADERS += \
vnet/fib/fib.h \
+ vnet/fib/fib_api.h \
vnet/fib/ip4_fib.h \
vnet/fib/ip6_fib.h \
vnet/fib/fib_types.h \
# install the API definition, so we can produce java bindings, etc.
apidir = $(prefix)/vnet
-api_DATA = vnet/interface.api.json
+api_DATA = \
+ vnet/devices/af_packet/af_packet.api.json \
+ vnet/devices/netmap/netmap.api.json \
+ vnet/devices/virtio/vhost_user.api.json \
+ vnet/gre/gre.api.json \
+ vnet/interface.api.json \
+ vnet/ip/ip.api.json \
+ vnet/l2/l2.api.json \
+ vnet/map/map.api.json \
+ vnet/span/span.api.json \
+ vnet/unix/tap.api.json \
+ vnet/vxlan/vxlan.api.json \
+ vnet/vxlan-gpe/vxlan_gpe.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