AUTOMAKE_OPTIONS = foreign subdir-objects
-AM_CFLAGS = -Wall @DPDK@ @VIRL@
+AM_CFLAGS = -Wall @DPDK@ @IPSEC@ @IPV6SR@
libvnet_la_SOURCES =
libvnetplugin_la_SOURCES =
nobase_include_HEADERS =
noinst_PROGRAMS =
+TESTS =
########################################
# Generic stuff
########################################
libvnet_la_SOURCES += \
vnet/config.c \
+ vnet/handoff.c \
vnet/interface.c \
vnet/interface_cli.c \
vnet/interface_format.c \
vnet/buffer.h \
vnet/config.h \
vnet/global_funcs.h \
+ vnet/handoff.h \
vnet/interface.h \
vnet/interface_funcs.h \
vnet/l3_types.h \
nobase_include_HEADERS += \
vnet/policer/police.h \
+ vnet/policer/policer.h \
+ vnet/policer/fix_types.h \
vnet/policer/xlate.h
+########################################
+# Cop - junk filter
+########################################
+
+libvnet_la_SOURCES += \
+ vnet/cop/cop.c \
+ vnet/cop/node1.c \
+ vnet/cop/ip4_whitelist.c \
+ vnet/cop/ip6_whitelist.c
+
+nobase_include_HEADERS += \
+ vnet/cop/cop.h
########################################
# Layer 2 protocols go here
########################################
libvnet_la_SOURCES += \
vnet/ethernet/arp.c \
- vnet/ethernet/cli.c \
vnet/ethernet/format.c \
vnet/ethernet/init.c \
vnet/ethernet/interface.c \
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
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
nobase_include_HEADERS += \
vnet/vxlan/vxlan.h \
- vnet/vxlan/vxlan_packet.h \
+ vnet/vxlan/vxlan_packet.h \
vnet/vxlan/vxlan_error.def
+########################################
+# Layer 2 / CDP
+########################################
+libvnet_la_SOURCES += \
+ vnet/cdp/cdp_input.c \
+ vnet/cdp/cdp_node.c \
+ vnet/cdp/cdp_periodic.c
+
+nobase_include_HEADERS += \
+ vnet/cdp/cdp_protocol.h
+
########################################
# Layer 2/3 "classify"
########################################
# Layer 3 protocols go here
########################################
-# vnet/ip/tcp.c \
-# vnet/ip/tcp_format.c \
-# vnet/ip/tcp_init.c \
-# vnet/ip/tcp_pg.c
-
-
########################################
# 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/ip4_format.c \
vnet/ip/ip4_forward.c \
- vnet/ip/ip4_hop_by_hop.c \
vnet/ip/ip4_input.c \
vnet/ip/ip4_mtrie.c \
vnet/ip/ip4_pg.c \
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 \
vnet/ip/icmp6.h \
vnet/ip/igmp_packet.h \
vnet/ip/ip.h \
+ vnet/ip/ip_feature_registration.h \
vnet/ip/ip4.h \
vnet/ip/ip4_mtrie.h \
vnet/ip/ip4_error.h \
vnet/ip/ip_packet.h \
vnet/ip/ports.def \
vnet/ip/protocols.def \
- vnet/ip/tcp.h \
vnet/ip/tcp_packet.h \
vnet/ip/udp.h \
vnet/ip/udp_error.def \
########################################
# Layer 3 protocol: IPSec
########################################
-if WITH_DPDK
+if WITH_IPSEC
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 \
vnet/ipsec/ikev2_cli.c \
vnet/ipsec/ikev2_payload.c \
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 \
vnet/ipsec/ikev2.h \
vnet/ipsec/ikev2_priv.h
-endif
########################################
# Layer 3 protocol: osi
vnet/map/map.c \
vnet/map/ip4_map.c \
vnet/map/ip6_map.c \
- vnet/map/sixrd.c \
- vnet/map/ip4_sixrd.c \
- vnet/map/ip6_sixrd.c \
vnet/map/ip4_map_t.c \
vnet/map/ip6_map_t.c
nobase_include_HEADERS += \
- vnet/map/map.h \
- vnet/map/sixrd.h
+ vnet/map/map.h
########################################
# Tunnel protocol: gre
########################################
-# 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
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
########################################
# ipv6 segment routing
########################################
+
+if WITH_IPV6SR
libvnet_la_SOURCES += \
- vnet/sr/sr.c
+ vnet/sr/sr.c \
+ vnet/sr/sr_replicate.c
+endif
nobase_include_HEADERS += \
vnet/sr/sr_packet.h \
vnet/sr/sr_error.def \
vnet/sr/sr.h
-########################################
-# CGN
-#########################################
-libvnet_la_SOURCES += \
- vnet/vcgn/cnat_bulk_port.c \
- vnet/vcgn/cnat_config.c \
- vnet/vcgn/cnat_db_scanner.c \
- vnet/vcgn/cnat_db_v2.c \
- vnet/vcgn/cnat_debug_msg_handler.c \
- vnet/vcgn/cnat_cli_handler.c \
- vnet/vcgn/cnat_global.c \
- vnet/vcgn/cnat_ipv4_udp_inside_input.c \
- vnet/vcgn/cnat_ipv4_udp_inside_input_exceptions.c \
- vnet/vcgn/cnat_ipv4_udp_outside_input.c \
- vnet/vcgn/cnat_ipv4_tcp_inside_input.c \
- vnet/vcgn/cnat_ipv4_tcp_inside_input_exceptions.c \
- vnet/vcgn/cnat_ipv4_tcp_outside_input.c \
- vnet/vcgn/cnat_ipv4_icmp_query_inside_input.c \
- vnet/vcgn/cnat_ipv4_icmp_query_inside_input_exception.c \
- vnet/vcgn/cnat_ipv4_icmp_query_outside_input.c \
- vnet/vcgn/cnat_ipv4_icmp_error_inside_input.c \
- vnet/vcgn/cnat_ipv4_icmp_error_outside_input.c \
- vnet/vcgn/cnat_logging.c \
- vnet/vcgn/cnat_ports.c \
- vnet/vcgn/cnat_util.c \
- vnet/vcgn/cnat_show.c \
- vnet/vcgn/cnat_syslog.c \
- vnet/vcgn/cnat_v4_functions.c \
- vnet/vcgn/index_list.c \
- vnet/vcgn/spp_platform_trace_log.c \
- vnet/vcgn/vcgn_classify.c
-
########################################
# DHCPv6 proxy
########################################
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 \
vnet/devices/dpdk/vhost_user.c \
vnet/devices/dpdk/cli.c
nobase_include_HEADERS += \
- vnet/devices/dpdk/dpdk.h \
- vnet/devices/dpdk/threads.h
+ vnet/devices/dpdk/dpdk.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
########################################
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
########################################
# Plugin client library
########################################
-libvnetplugin_la_SOURCES += \
+libvnetplugin_la_SOURCES += \
vnet/plugin/p1.c
-nobase_include_HEADERS += \
+nobase_include_HEADERS += \
vnet/plugin/plugin.h
lib_LTLIBRARIES = libvnet.la libvnetplugin.la
pcap2pg_LDADD = libvnet.la -l:libvppinfra.a -lpthread -lm -ldl
noinst_PROGRAMS += pcap2pg
+
+