AUTOMAKE_OPTIONS = foreign subdir-objects
-AM_CFLAGS = -Wall @DPDK@ @VIRL@
+AM_CFLAGS = -Wall @DPDK@ @VIRL@ @IPSEC@ @VCGN@ @IPV6SR@
libvnet_la_SOURCES =
-libvnetplugin_la_SOURCES =
nobase_include_HEADERS =
+noinst_PROGRAMS =
########################################
# Generic stuff
vnet/interface_funcs.h \
vnet/l3_types.h \
vnet/pipeline.h \
+ vnet/plugin/plugin.h \
vnet/replication.h \
vnet/rewrite.h \
vnet/vnet.h
vnet/policer/police.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
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
########################################
nobase_include_HEADERS += \
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_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
########################################
# ipv6 segment routing
########################################
+
+if WITH_IPV6SR
libvnet_la_SOURCES += \
vnet/sr/sr.c
+endif
nobase_include_HEADERS += \
vnet/sr/sr_packet.h \
########################################
# CGN
#########################################
+
+if WITH_VCGN
libvnet_la_SOURCES += \
vnet/vcgn/cnat_bulk_port.c \
vnet/vcgn/cnat_config.c \
vnet/vcgn/index_list.c \
vnet/vcgn/spp_platform_trace_log.c \
vnet/vcgn/vcgn_classify.c
+endif
########################################
# 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/unix/tuntap.h \
vnet/unix/tapcli.h
-########################################
-# Plugin client library
-########################################
-
-libvnetplugin_la_SOURCES += \
- vnet/plugin/p1.c
-
-nobase_include_HEADERS += \
- vnet/plugin/plugin.h
-
-lib_LTLIBRARIES = libvnet.la libvnetplugin.la
-
-noinst_PROGRAMS = vnet_unix
+lib_LTLIBRARIES = libvnet.la
-vnet_unix_SOURCES = \
- example/main_stub.c
-
-vnet_unix_LDFLAGS = -static
dpdk_libs =
if WITH_DPDK
dpdk_libs += -l:libdpdk.a
endif
-vnet_unix_LDADD = libvnet.la -l:libvlib_unix.a -l:libvlib.a -l:libvppinfra.a -lpthread -lvlibapi -lvlibmemory -lsvm -lm -ldl $(dpdk_libs) -lrt
-
pcap2pg_SOURCES = \
vnet/unix/pcap2pg.c \
vnet/unix/pcap.h