Add Vxlan-Gpe over IPv6
[vpp.git] / vnet / Makefile.am
index fc5a3ec..9feffc5 100644 (file)
@@ -16,8 +16,10 @@ AUTOMAKE_OPTIONS = foreign subdir-objects
 AM_CFLAGS = -Wall @DPDK@ @VIRL@ @IPSEC@ @VCGN@ @IPV6SR@
 
 libvnet_la_SOURCES =
+libvnetplugin_la_SOURCES =
 nobase_include_HEADERS =
 noinst_PROGRAMS =
+TESTS =
 
 ########################################
 # Generic stuff
@@ -41,7 +43,6 @@ nobase_include_HEADERS +=                     \
   vnet/interface_funcs.h                       \
   vnet/l3_types.h                              \
   vnet/pipeline.h                              \
-  vnet/plugin/plugin.h                         \
   vnet/replication.h                           \
   vnet/rewrite.h                               \
   vnet/vnet.h
@@ -57,6 +58,8 @@ libvnet_la_SOURCES +=                         \
 
 nobase_include_HEADERS +=                      \
   vnet/policer/police.h                                \
+  vnet/policer/policer.h                       \
+  vnet/policer/fix_types.h                     \
   vnet/policer/xlate.h
 
 ########################################
@@ -81,7 +84,6 @@ nobase_include_HEADERS +=                     \
 ########################################
 libvnet_la_SOURCES +=                          \
  vnet/ethernet/arp.c                           \
- vnet/ethernet/cli.c                           \
  vnet/ethernet/format.c                                \
  vnet/ethernet/init.c                          \
  vnet/ethernet/interface.c                     \
@@ -114,6 +116,7 @@ libvnet_la_SOURCES +=                               \
  vnet/l2/l2_output_acl.c                       \
  vnet/l2/l2_output.c                           \
  vnet/l2/l2_patch.c                            \
+ vnet/l2/l2_rw.c                                \
  vnet/l2/l2_vtr.c                              \
  vnet/l2/l2_xcrw.c
 
@@ -129,6 +132,7 @@ nobase_include_HEADERS +=                   \
  vnet/l2/l2_bvi.h                              \
  vnet/l2/l2_flood.h                            \
  vnet/l2/l2_fib.h                              \
+ vnet/l2/l2_rw.h                                \
  vnet/l2/l2_xcrw.h                             \
  vnet/l2/l2_classify.h
 
@@ -238,6 +242,7 @@ nobase_include_HEADERS +=                   \
 # Layer 3 protocol: IP v4/v6
 ########################################
 libvnet_la_SOURCES +=                          \
+ vnet/ip/adj_alloc.c                           \
  vnet/ip/format.c                              \
  vnet/ip/icmp4.c                               \
  vnet/ip/icmp6.c                               \
@@ -267,6 +272,7 @@ libvnet_la_SOURCES +=                               \
  vnet/ip/ip_frag.c
 
 nobase_include_HEADERS +=                      \
+ vnet/ip/adj_alloc.h                           \
  vnet/ip/format.h                              \
  vnet/ip/icmp46_packet.h                       \
  vnet/ip/icmp4.h                               \
@@ -299,7 +305,6 @@ libvnet_la_SOURCES +=                               \
  vnet/ipsec/ipsec.c                            \
  vnet/ipsec/ipsec_cli.c                        \
  vnet/ipsec/ipsec_format.c                     \
- vnet/ipsec/ipsec_output.c                     \
  vnet/ipsec/ipsec_input.c                      \
  vnet/ipsec/ipsec_if.c                         \
  vnet/ipsec/ipsec_if_in.c                      \
@@ -313,6 +318,9 @@ libvnet_la_SOURCES +=                               \
  vnet/ipsec/ikev2_format.c
 endif 
 
+libvnet_la_SOURCES +=                          \
+ vnet/ipsec/ipsec_output.c
+
 nobase_include_HEADERS +=                      \
  vnet/ipsec/ipsec.h                             \
  vnet/ipsec/esp.h                              \
@@ -391,32 +399,65 @@ nobase_include_HEADERS +=                 \
 
 
 ########################################
-# Tunnel protocol: nsh-gre
+# Tunnel protocol: vxlan-gpe
 ########################################
 
 libvnet_la_SOURCES +=                          \
- vnet/nsh-gre/nsh_gre.c                                \
- vnet/nsh-gre/encap.c                          \
- vnet/nsh-gre/decap.c
+ vnet/vxlan-gpe/vxlan_gpe.c                    \
+ vnet/vxlan-gpe/encap.c                                \
+ vnet/vxlan-gpe/decap.c
 
 nobase_include_HEADERS +=                      \
- vnet/nsh-gre/nsh_gre.h                                \
- vnet/nsh-gre/nsh_gre_packet.h                 \
- vnet/nsh-gre/nsh_gre_error.def
+ vnet/vxlan-gpe/vxlan_gpe.h                    \
+ vnet/vxlan-gpe/vxlan_gpe_packet.h             \
+ vnet/vxlan-gpe/vxlan_gpe_error.def
 
 ########################################
-# Tunnel protocol: nsh-vxlan-gpe
+# LISP control plane: lisp-cp
 ########################################
 
 libvnet_la_SOURCES +=                          \
- vnet/nsh-vxlan-gpe/nsh_vxlan_gpe.c            \
- vnet/nsh-vxlan-gpe/encap.c                    \
- vnet/nsh-vxlan-gpe/decap.c
+ vnet/lisp-cp/lisp_types.c                     \
+ vnet/lisp-cp/control.c                                \
+ vnet/lisp-cp/gid_dictionary.c                 \
+ vnet/lisp-cp/lisp_msg_serdes.c                        \
+ vnet/lisp-cp/packets.c                        
 
 nobase_include_HEADERS +=                      \
- vnet/nsh-vxlan-gpe/nsh_vxlan_gpe.h            \
- vnet/nsh-vxlan-gpe/vxlan_gpe_packet.h         \
- vnet/nsh-vxlan-gpe/nsh_vxlan_gpe_error.def
+ vnet/lisp-cp/lisp_types.h                     \
+ vnet/lisp-cp/packets.h                                \
+ 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                                
+
+
+if ENABLE_TESTS
+LDS = -lvppinfra -l:libvlib.a -l:libdpdk.a -l:libvlibmemory.a \
+       -l:libvlibapi.a -l:libsvm.a -lpthread -ldl -lrt -lm -l:libvlib_unix.a
+
+TESTS += test_cp_serdes test_lisp_types
+
+test_cp_serdes_SOURCES =                       \
+ test/lisp-cp/test_cp_serdes.c         \
+ vnet/lisp-cp/lisp_msg_serdes.c                        \
+ vnet/lisp-cp/lisp_types.c                     \
+ vnet/lisp-cp/packets.c                                \
+ vnet/ip/ip_checksum.c
+
+test_lisp_types_SOURCES =                      \
+ test/lisp-cp/test_lisp_types.c                \
+ vnet/lisp-cp/lisp_types.c
+
+test_cp_serdes_CPPFLAGS = $(AM_CPPFLAGS) -DCLIB_DEBUG
+test_lisp_types_CPPFLAGS = $(AM_CPPFLAGS) -DCLIB_DEBUG
+
+test_cp_serdes_LDADD = libvnet.la $(LDS)
+test_lisp_types_LDADD = libvnet.la $(LDS)
+
+test_cp_serdes_LDFLAGS = -static
+test_lisp_types_LDFLAGS = -static
+endif
 
 ########################################
 # Tunnel protocol: lisp-gpe
@@ -424,13 +465,27 @@ nobase_include_HEADERS +=                 \
 
 libvnet_la_SOURCES +=                          \
  vnet/lisp-gpe/lisp_gpe.c                      \
- vnet/lisp-gpe/encap.c                         \
- vnet/lisp-gpe/decap.c
+ vnet/lisp-gpe/interface.c                     \
+ vnet/lisp-gpe/ip_forward.c                    \
+ vnet/lisp-gpe/decap.c                         
 
 nobase_include_HEADERS +=                      \
  vnet/lisp-gpe/lisp_gpe.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
+
+test_test_SOURCES = test/lisp-gpe/test.c
+
+test_test_CPPFLAGS = $(AM_CPPFLAGS) -DCLIB_DEBUG
+
+test_test_LDADD = $(LIBOBJS)
+
+noinst_PROGRAMS += $(TESTS)
+check_PROGRAMS = $(TESTS)
+endif
 
 ########################################
 # DHCP client
@@ -460,7 +515,8 @@ nobase_include_HEADERS +=                   \
 
 if WITH_IPV6SR
 libvnet_la_SOURCES +=                          \
- vnet/sr/sr.c
+ vnet/sr/sr.c                                  \
+ vnet/sr/sr_replicate.c
 endif
  
 nobase_include_HEADERS +=                      \
@@ -570,6 +626,7 @@ if WITH_DPDK
 libvnet_la_SOURCES +=                          \
   vnet/devices/dpdk/dpdk_priv.h                \
   vnet/devices/dpdk/device.c           \
+  vnet/devices/dpdk/format.c           \
   vnet/devices/dpdk/init.c                     \
   vnet/devices/dpdk/node.c                     \
   vnet/devices/dpdk/threads.c       \
@@ -579,6 +636,12 @@ libvnet_la_SOURCES +=                              \
 nobase_include_HEADERS +=                      \
   vnet/devices/dpdk/dpdk.h                     \
   vnet/devices/dpdk/threads.h
+else
+libvnet_la_SOURCES +=                          \
+  vnet/devices/nic/ixge.c                       \
+  vnet/devices/nic/ixge.h                       \
+  vnet/devices/nic/sfp.c                        \
+  vnet/devices/nic/sfp.h
 endif
 
 ########################################
@@ -603,6 +666,33 @@ libvnet_la_SOURCES +=                              \
 nobase_include_HEADERS +=                      \
   vnet/devices/ssvm/ssvm_eth.h
 
+########################################
+# Linux packet interface
+########################################
+
+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
+
+nobase_include_HEADERS +=                      \
+  vnet/devices/af_packet/af_packet.h
+
+########################################
+# NETMAP interface
+########################################
+
+libvnet_la_SOURCES +=                          \
+  vnet/devices/netmap/netmap.c                 \
+  vnet/devices/netmap/device.c                 \
+  vnet/devices/netmap/node.c                   \
+  vnet/devices/netmap/cli.c
+
+nobase_include_HEADERS +=                      \
+  vnet/devices/netmap/netmap.h
+
+
 ########################################
 # Unix kernel related
 ########################################
@@ -620,7 +710,27 @@ nobase_include_HEADERS +=                  \
   vnet/unix/tuntap.h                           \
   vnet/unix/tapcli.h
 
-lib_LTLIBRARIES = libvnet.la 
+########################################
+# Plugin client library
+########################################
+
+libvnetplugin_la_SOURCES +=                    \
+  vnet/plugin/p1.c
+
+nobase_include_HEADERS +=                      \
+  vnet/plugin/plugin.h
+
+########################################
+# Service Chain verification util
+########################################
+libvnet_la_SOURCES +=       \
+ vnet/lib-scv/scv_util.c
+
+nobase_include_HEADERS +=                       \
+ vnet/lib-scv/scv_util.h                        \
+ vnet/lib-scv/math64.h
+
+lib_LTLIBRARIES = libvnet.la libvnetplugin.la
 
 dpdk_libs = 
 
@@ -636,3 +746,5 @@ pcap2pg_LDFLAGS = -static
 pcap2pg_LDADD = libvnet.la -l:libvppinfra.a -lpthread -lm -ldl
 
 noinst_PROGRAMS += pcap2pg
+
+