# limitations under the License.
lib_LTLIBRARIES += libvnet.la
+noinst_LTLIBRARIES =
libvnet_la_SOURCES =
libvnet_la_DEPENDENCIES = \
libsvmdb.la \
libsvm.la \
libvlibmemory.la
+libvnet_multiversioning_files =
libvnet_la_LIBADD = $(libvnet_la_DEPENDENCIES) -lm -lpthread -ldl -lrt
vnet/config.c \
vnet/devices/devices.c \
vnet/devices/netlink.c \
+ vnet/flow/flow.c \
+ vnet/flow/flow_cli.c \
vnet/handoff.c \
vnet/interface.c \
vnet/interface_api.c \
vnet/interface_cli.c \
vnet/interface_format.c \
vnet/interface_output.c \
+ vnet/interface_stats.c \
vnet/misc.c \
vnet/replication.c
vnet/config.h \
vnet/devices/devices.h \
vnet/devices/netlink.h \
+ vnet/flow/flow.h \
vnet/global_funcs.h \
vnet/handoff.h \
vnet/interface.h \
vnet/ethernet/p2p_ethernet_input.c \
vnet/ethernet/p2p_ethernet_api.c
+libvnet_multiversioning_files += \
+ vnet/l2/l2_output.c
+
nobase_include_HEADERS += \
vnet/ethernet/arp_packet.h \
vnet/ethernet/error.def \
API_FILES += vnet/geneve/geneve.api
+########################################
+# Layer 2 / Bonding
+########################################
+libvnet_la_SOURCES += \
+ vnet/bonding/cli.c \
+ vnet/bonding/node.c \
+ vnet/bonding/device.c \
+ vnet/bonding/bond_api.c
+
+nobase_include_HEADERS += \
+ vnet/bonding/node.h \
+ vnet/bonding/bond.api.h
+
+API_FILES += vnet/bonding/bond.api
+
########################################
# Layer 2 / LLDP
########################################
vnet/ip/ip6_pg.c \
vnet/ip/ip6_reassembly.c \
vnet/ip/rd_cp.c \
+ vnet/ip/ip_neighbor.c \
vnet/ip/ip_api.c \
vnet/ip/ip_checksum.c \
vnet/ip/ip_frag.c \
vnet/ip/ip.h \
vnet/ip/ip_packet.h \
vnet/ip/ip_source_and_port_range_check.h \
+ vnet/ip/ip_neighbor.h \
vnet/ip/lookup.h \
vnet/ip/ports.def \
vnet/ip/protocols.def \
# IPFIX / netflow v10
########################################
libvnet_la_SOURCES += \
- vnet/flow/flow_report.c \
- vnet/flow/flow_api.c
+ vnet/ipfix-export/flow_report.c \
+ vnet/ipfix-export/flow_api.c
nobase_include_HEADERS += \
- vnet/flow/flow_report.h \
- vnet/flow/ipfix_info_elements.h \
- vnet/flow/ipfix_packet.h \
- vnet/flow/flow.api.h
+ vnet/ipfix-export/flow_report.h \
+ vnet/ipfix-export/ipfix_info_elements.h \
+ vnet/ipfix-export/ipfix_packet.h \
+ vnet/ipfix-export/ipfix_export.api.h
-API_FILES += vnet/flow/flow.api
+API_FILES += vnet/ipfix-export/ipfix_export.api
########################################
# IPFIX classify code
########################################
libvnet_la_SOURCES += \
- vnet/flow/flow_report_classify.c
+ vnet/ipfix-export/flow_report_classify.c
nobase_include_HEADERS += \
- vnet/flow/flow_report_classify.h
+ vnet/ipfix-export/flow_report_classify.h
########################################
# lawful intercept
API_FILES += vnet/bier/bier.api
+if CPU_X86_64
+if CC_SUPPORTS_AVX2
+###############################################################
+# AVX2
+###############################################################
+libvnet_avx2_la_SOURCES = $(libvnet_multiversioning_files)
+libvnet_avx2_la_CFLAGS = \
+ $(AM_CFLAGS) @CPU_AVX2_FLAGS@ \
+ -DCLIB_MULTIARCH_VARIANT=avx2
+noinst_LTLIBRARIES += libvnet_avx2.la
+libvnet_la_LIBADD += libvnet_avx2.la
+endif
+
+if CC_SUPPORTS_AVX512
+###############################################################
+# AVX512
+###############################################################
+libvnet_avx512_la_SOURCES = $(libvnet_multiversioning_files)
+libvnet_avx512_la_CFLAGS = \
+ $(AM_CFLAGS) @CPU_AVX512_FLAGS@ \
+ -DCLIB_MULTIARCH_VARIANT=avx512
+noinst_LTLIBRARIES += libvnet_avx512.la
+libvnet_la_LIBADD += libvnet_avx512.la
+endif
+endif
+
########################################
# Test apps
########################################