API refactoring : lisp
[vpp.git] / vnet / Makefile.am
index 7d6abc6..c3ba6e7 100644 (file)
@@ -15,7 +15,41 @@ AUTOMAKE_OPTIONS = foreign subdir-objects
 
 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/l2tp/l2tp.api.h                          \
+ vnet/l2tp/l2tp.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             \
+ vnet/bfd/bfd.api.h                                    \
+ vnet/bfd/bfd.api.json                         \
+ vnet/ipsec/ipsec.api.h                                \
+ vnet/ipsec/ipsec.api.json                     \
+ vnet/ipsec-gre/ipsec_gre.api.h                \
+ vnet/ipsec-gre/ipsec_gre.api.json     \
+ vnet/lisp-cp/lisp.api.h                       \
+ vnet/lisp-cp/lisp.api.json
 
 libvnet_la_SOURCES =
 libvnetplugin_la_SOURCES =
@@ -116,6 +150,7 @@ nobase_include_HEADERS +=                   \
 ########################################
 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                   \
@@ -149,7 +184,8 @@ nobase_include_HEADERS +=                   \
  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
@@ -218,12 +254,14 @@ nobase_include_HEADERS +=                 \
 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
@@ -291,6 +329,7 @@ libvnet_la_SOURCES +=                               \
  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                                  \
@@ -310,6 +349,7 @@ nobase_include_HEADERS +=                   \
  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                           \
@@ -319,6 +359,7 @@ nobase_include_HEADERS +=                   \
  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      \
@@ -332,6 +373,24 @@ nobase_include_HEADERS +=                  \
  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                                                            \
+ vnet/bfd/bfd.api.h
+
+libvnet_la_SOURCES +=                          \
+ vnet/bfd/bfd_api.h                            \
+ vnet/bfd/bfd_udp.c                             \
+ vnet/bfd/bfd_main.c                            \
+ vnet/bfd/bfd_protocol.c                                               \
+ vnet/bfd/bfd_api.c
+
 ########################################
 # Layer 3 protocol: IPSec
 ########################################
@@ -350,7 +409,8 @@ libvnet_la_SOURCES +=                               \
  vnet/ipsec/ikev2_crypto.c                     \
  vnet/ipsec/ikev2_cli.c                                \
  vnet/ipsec/ikev2_payload.c                    \
- vnet/ipsec/ikev2_format.c
+ vnet/ipsec/ikev2_format.c                     \
+ vnet/ipsec/ipsec_api.c
 if WITH_DPDK_CRYPTO
 libvnet_la_SOURCES +=                          \
  vnet/devices/dpdk/ipsec/esp_encrypt.c         \
@@ -368,7 +428,8 @@ nobase_include_HEADERS +=                           \
  vnet/ipsec/ipsec.h                             \
  vnet/ipsec/esp.h                              \
  vnet/ipsec/ikev2.h                             \
- vnet/ipsec/ikev2_priv.h
+ vnet/ipsec/ikev2_priv.h                                       \
+ vnet/ipsec/ipsec.api.h
 if WITH_DPDK_CRYPTO
 nobase_include_HEADERS +=                      \
  vnet/devices/dpdk/ipsec/ipsec.h               \
@@ -389,17 +450,19 @@ nobase_include_HEADERS +=                 \
 ########################################
 # 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
@@ -422,12 +485,14 @@ libvnet_la_SOURCES +=                             \
  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
@@ -436,11 +501,13 @@ libvnet_la_SOURCES +=                             \
  vnet/l2tp/l2tp.c                              \
  vnet/l2tp/encap.c                             \
  vnet/l2tp/decap.c                             \
- vnet/l2tp/pg.c
+ vnet/l2tp/pg.c                                        \
+ vnet/l2tp/l2tp_api.c
  
 nobase_include_HEADERS +=                      \
  vnet/l2tp/l2tp.h                              \
- vnet/l2tp/packet.h                            
+ vnet/l2tp/packet.h                            \
+ vnet/l2tp/l2tp.api.h  
 
 ########################################
 # Tunnel protocol: gre+mpls
@@ -470,12 +537,14 @@ nobase_include_HEADERS +=                 \
 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
@@ -483,11 +552,13 @@ nobase_include_HEADERS +=                 \
 libvnet_la_SOURCES +=                          \
  vnet/ipsec-gre/ipsec_gre.c                    \
  vnet/ipsec-gre/node.c                         \
- vnet/ipsec-gre/interface.c
+ vnet/ipsec-gre/interface.c                    \
+ vnet/ipsec-gre/ipsec_gre_api.c
 
 nobase_include_HEADERS +=                      \
  vnet/ipsec-gre/ipsec_gre.h                    \
- vnet/ipsec-gre/error.def
+ vnet/ipsec-gre/error.def                      \
+ vnet/ipsec-gre/ipsec_gre.api.h
 
 ########################################
 # LISP control plane: lisp-cp
@@ -499,7 +570,8 @@ libvnet_la_SOURCES +=                               \
  vnet/lisp-cp/control.c                                \
  vnet/lisp-cp/gid_dictionary.c                 \
  vnet/lisp-cp/lisp_msg_serdes.c                        \
- vnet/lisp-cp/packets.c                        
+ vnet/lisp-cp/packets.c                                \
+ vnet/lisp-cp/lisp_api.c
 
 nobase_include_HEADERS +=                      \
  vnet/lisp-cp/lisp_types.h                     \
@@ -507,8 +579,8 @@ nobase_include_HEADERS +=                   \
  vnet/lisp-cp/gid_dictionary.h                 \
  vnet/lisp-cp/lisp_cp_messages.h               \
  vnet/lisp-cp/lisp_msg_serdes.h                        \
- vnet/lisp-cp/control.h                                
-
+ vnet/lisp-cp/control.h                                \                       
+ vnet/lisp-cp/lisp.api.h
 
 if ENABLE_TESTS
 LDS = -lvppinfra -l:libvlib.a $(dpdk_libs) -l:libvlibmemory.a \
@@ -549,14 +621,14 @@ libvnet_la_SOURCES +=                             \
  vnet/lisp-gpe/lisp_gpe_fwd_entry.c            \
  vnet/lisp-gpe/lisp_gpe_tenant.c               \
  vnet/lisp-gpe/interface.c                     \
- vnet/lisp-gpe/decap.c                         
+ vnet/lisp-gpe/decap.c
 
 nobase_include_HEADERS +=                      \
  vnet/lisp-gpe/lisp_gpe.h                      \
  vnet/lisp-gpe/lisp_gpe_fwd_entry.h            \
  vnet/lisp-gpe/lisp_gpe_tenant.h               \
  vnet/lisp-gpe/lisp_gpe_packet.h               \
- vnet/lisp-gpe/lisp_gpe_error.def              
+ vnet/lisp-gpe/lisp_gpe_error.def
 
 if ENABLE_TESTS
 TESTS += test_test
@@ -656,10 +728,12 @@ nobase_include_HEADERS +=                         \
 ########################################
 
 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
 
 ########################################
@@ -706,10 +780,12 @@ endif
 ########################################
 
 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
@@ -729,10 +805,12 @@ libvnet_la_SOURCES +=                             \
   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
@@ -742,11 +820,12 @@ libvnet_la_SOURCES +=                             \
   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
@@ -768,12 +847,14 @@ nobase_include_HEADERS +=                 \
 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
 
 ########################################
@@ -811,6 +892,7 @@ libvnet_la_SOURCES +=                               \
 
 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                         \
@@ -892,7 +974,25 @@ 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
+
+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/l2tp/l2tp.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     \
+ vnet/bfd/bfd.api.json                         \
+ vnet/ipsec/ipsec.api.json                     \
+ vnet/ipsec-gre/ipsec_gre.api.json     \
+ vnet/lisp-cp/lisp.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