A Protocol Independent Hierarchical FIB (VPP-352)
[vpp.git] / vnet / Makefile.am
index 72bdd11..41568e0 100644 (file)
@@ -13,7 +13,7 @@
 
 AUTOMAKE_OPTIONS = foreign subdir-objects
 
-AM_CFLAGS = -Wall @DPDK@ @IPSEC@ @IPV6SR@
+AM_CFLAGS = -Wall -Werror @DPDK@ @IPSEC@ @IPV6SR@
 
 libvnet_la_SOURCES =
 libvnetplugin_la_SOURCES =
@@ -21,6 +21,11 @@ nobase_include_HEADERS =
 noinst_PROGRAMS =
 TESTS =
 
+dpdk_libs =
+if WITH_DPDK
+dpdk_libs += -l:libdpdk.a
+endif
+
 ########################################
 # Generic stuff
 ########################################
@@ -106,7 +111,8 @@ libvnet_la_SOURCES +=                               \
  vnet/l2/feat_bitmap.c                         \
  vnet/l2/l2_bd.c                               \
  vnet/l2/l2_bvi.c                              \
- vnet/l2/l2_classify.c                         \
+ vnet/l2/l2_input_classify.c                   \
+ vnet/l2/l2_output_classify.c                  \
  vnet/l2/l2_efp_filter.c                       \
  vnet/l2/l2_fib.c                              \
  vnet/l2/l2_flood.c                            \
@@ -223,6 +229,18 @@ libvnet_la_SOURCES +=                              \
 nobase_include_HEADERS +=                      \
   vnet/cdp/cdp_protocol.h
 
+########################################
+# Layer 2 / LLDP
+########################################
+libvnet_la_SOURCES +=                          \
+  vnet/lldp/lldp_input.c                               \
+  vnet/lldp/lldp_node.c                                \
+  vnet/lldp/lldp_output.c      \
+  vnet/lldp/lldp_cli.c
+
+nobase_include_HEADERS +=                      \
+  vnet/lldp/lldp_protocol.h
+
 ########################################
 # Layer 2/3 "classify"
 ########################################
@@ -246,12 +264,12 @@ 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                               \
  vnet/ip/ip_feature_registration.c             \
  vnet/ip/ip46_cli.c                            \
+ vnet/ip/ping.c                                        \
  vnet/ip/ip4_format.c                          \
  vnet/ip/ip4_forward.c                         \
  vnet/ip/ip4_input.c                           \
@@ -277,7 +295,6 @@ 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                               \
@@ -350,13 +367,29 @@ nobase_include_HEADERS +=                 \
 ########################################
 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
 
 nobase_include_HEADERS +=                       \
- vnet/map/map.h
+ vnet/map/map.h                                 \
+ vnet/map/map_dpo.h
+
+if ENABLE_TESTS
+TESTS += test_map
+test_map_SOURCES =                             \
+ vnet/map/test.c
+test_map_CPPFLAGS = $(AM_CPPFLAGS) -DCLIB_DEBUG
+
+test_map_LDADD = libvnet.la -lvppinfra -lvlib  \
+  -lpthread -lvlibmemory -lvlibapi -lvlib_unix \
+  -ldl -lsvm -lrt
+
+test_map_LDFLAGS = -static
+endif
+
 
 ########################################
 # Tunnel protocol: gre
@@ -389,16 +422,20 @@ nobase_include_HEADERS +=                 \
 # Tunnel protocol: gre+mpls
 ########################################
 libvnet_la_SOURCES +=                          \
- vnet/mpls-gre/mpls.c                          \
- vnet/mpls-gre/node.c                          \
- vnet/mpls-gre/interface.c                     \
- vnet/mpls-gre/policy_encap.c                  \
- vnet/mpls-gre/pg.c
+ vnet/mpls/mpls.c                              \
+ vnet/mpls/mpls_lookup.c                       \
+ vnet/mpls/mpls_output.c                       \
+ vnet/mpls/mpls_features.c                     \
+ vnet/mpls/node.c                              \
+ vnet/mpls/interface.c                         \
+ vnet/mpls/policy_encap.c                      \
+ vnet/mpls/pg.c
  
 nobase_include_HEADERS +=                      \
- vnet/mpls-gre/mpls.h                          \
- vnet/mpls-gre/packet.h                                \
- vnet/mpls-gre/error.def
+ vnet/mpls/mpls.h                              \
+ vnet/mpls/mpls_types.h                                \
+ vnet/mpls/packet.h                            \
+ vnet/mpls/error.def
 
 
 ########################################
@@ -433,6 +470,7 @@ nobase_include_HEADERS +=                   \
 
 libvnet_la_SOURCES +=                          \
  vnet/lisp-cp/lisp_types.c                     \
+ vnet/lisp-cp/lisp_cp_dpo.c                    \
  vnet/lisp-cp/control.c                                \
  vnet/lisp-cp/gid_dictionary.c                 \
  vnet/lisp-cp/lisp_msg_serdes.c                        \
@@ -448,7 +486,7 @@ nobase_include_HEADERS +=                   \
 
 
 if ENABLE_TESTS
-LDS = -lvppinfra -l:libvlib.a -l:libdpdk.a -l:libvlibmemory.a \
+LDS = -lvppinfra -l:libvlib.a $(dpdk_libs) -l:libvlibmemory.a \
        -l:libvlibapi.a -l:libsvm.a -lpthread -ldl -lrt -lm -l:libvlib_unix.a
 
 TESTS += test_cp_serdes test_lisp_types
@@ -480,6 +518,9 @@ endif
 
 libvnet_la_SOURCES +=                          \
  vnet/lisp-gpe/lisp_gpe.c                      \
+ vnet/lisp-gpe/lisp_gpe_sub_interface.c         \
+ vnet/lisp-gpe/lisp_gpe_adjacency.c             \
+ vnet/lisp-gpe/lisp_gpe_tunnel.c                \
  vnet/lisp-gpe/interface.c                     \
  vnet/lisp-gpe/ip_forward.c                    \
  vnet/lisp-gpe/decap.c                         
@@ -626,13 +667,11 @@ endif
 # virtio
 ########################################
 
-if WITH_DPDK
 libvnet_la_SOURCES +=       \
   vnet/devices/virtio/vhost-user.c
 
 nobase_include_HEADERS +=     \
   vnet/devices/virtio/vhost-user.h
-endif WITH_DPDK
 
 ########################################
 # ssvm ethernet
@@ -688,6 +727,90 @@ nobase_include_HEADERS +=                  \
   vnet/unix/tuntap.h                           \
   vnet/unix/tapcli.h
 
+########################################
+# FIB
+########################################
+
+libvnet_la_SOURCES +=                          \
+  vnet/fib/fib.c                                \
+  vnet/fib/fib_test.c                           \
+  vnet/fib/ip4_fib.c                            \
+  vnet/fib/ip6_fib.c                            \
+  vnet/fib/mpls_fib.c                           \
+  vnet/fib/fib_table.c                          \
+  vnet/fib/fib_walk.c                           \
+  vnet/fib/fib_types.c                          \
+  vnet/fib/fib_node.c                           \
+  vnet/fib/fib_node_list.c                      \
+  vnet/fib/fib_entry.c                          \
+  vnet/fib/fib_entry_src.c                      \
+  vnet/fib/fib_entry_src_rr.c                   \
+  vnet/fib/fib_entry_src_interface.c            \
+  vnet/fib/fib_entry_src_default_route.c        \
+  vnet/fib/fib_entry_src_special.c              \
+  vnet/fib/fib_entry_src_api.c                  \
+  vnet/fib/fib_entry_src_adj.c                  \
+  vnet/fib/fib_entry_src_mpls.c                 \
+  vnet/fib/fib_entry_src_lisp.c                 \
+  vnet/fib/fib_entry_cover.c                    \
+  vnet/fib/fib_path_list.c                      \
+  vnet/fib/fib_path.c                          \
+  vnet/fib/fib_path_ext.c                      \
+  vnet/fib/fib_attached_export.c
+
+nobase_include_HEADERS +=                      \
+  vnet/fib/fib.h                               \
+  vnet/fib/ip4_fib.h                           \
+  vnet/fib/ip6_fib.h                           \
+  vnet/fib/fib_types.h                         \
+  vnet/fib/fib_table.h                         \
+  vnet/fib/fib_node.h                          \
+  vnet/fib/fib_node_list.h                     \
+  vnet/fib/fib_entry.h                         
+
+########################################
+# ADJ
+########################################
+
+libvnet_la_SOURCES +=                          \
+  vnet/adj/adj_alloc.c                         \
+  vnet/adj/adj_nbr.c                           \
+  vnet/adj/adj_rewrite.c                       \
+  vnet/adj/adj_glean.c                         \
+  vnet/adj/adj_midchain.c                      \
+  vnet/adj/adj.c                            
+
+nobase_include_HEADERS +=                      \
+  vnet/adj/adj.h                               \
+  vnet/adj/adj_types.h                         \
+  vnet/adj/adj_rewrite.h                       \
+  vnet/adj/adj_glean.h                         \
+  vnet/adj/adj_nbr.h                           
+
+########################################
+# Data-Plane Objects
+########################################
+
+libvnet_la_SOURCES +=                          \
+  vnet/dpo/dpo.c                                \
+  vnet/dpo/drop_dpo.c                           \
+  vnet/dpo/punt_dpo.c                           \
+  vnet/dpo/receive_dpo.c                        \
+  vnet/dpo/load_balance.c                      \
+  vnet/dpo/load_balance_map.c                  \
+  vnet/dpo/lookup_dpo.c                        \
+  vnet/dpo/classify_dpo.c                      \
+  vnet/dpo/mpls_label_dpo.c
+
+nobase_include_HEADERS +=                      \
+  vnet/dpo/load_balance.h                       \
+  vnet/dpo/drop_dpo.h                           \
+  vnet/dpo/lookup_dpo.h                         \
+  vnet/dpo/punt_dpo.h                           \
+  vnet/dpo/classify_dpo.h                       \
+  vnet/dpo/receive_dpo.h                        \
+  vnet/dpo/dpo.h
+
 ########################################
 # Plugin client library
 ########################################
@@ -700,12 +823,6 @@ nobase_include_HEADERS +=                      \
 
 lib_LTLIBRARIES = libvnet.la libvnetplugin.la
 
-dpdk_libs = 
-
-if WITH_DPDK
-dpdk_libs += -l:libdpdk.a
-endif
-
 pcap2pg_SOURCES =                              \
   vnet/unix/pcap2pg.c                          \
   vnet/unix/pcap.h
@@ -714,5 +831,3 @@ pcap2pg_LDFLAGS = -static
 pcap2pg_LDADD = libvnet.la -l:libvppinfra.a -lpthread -lm -ldl
 
 noinst_PROGRAMS += pcap2pg
-
-