AUTOMAKE_OPTIONS = foreign subdir-objects
-AM_CFLAGS = -Wall @DPDK@ @IPSEC@ @IPV6SR@
+AM_CFLAGS = -Wall -Werror @DPDK@ @IPSEC@ @IPV6SR@
libvnet_la_SOURCES =
libvnetplugin_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 \
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"
########################################
vnet/classify/ip_classify.c \
vnet/classify/input_acl.c \
vnet/classify/policer_classify.c \
+ vnet/classify/flow_classify.c \
+ vnet/classify/flow_classify_node.c \
vnet/classify/vnet_classify.h
nobase_include_HEADERS += \
vnet/classify/vnet_classify.h \
vnet/classify/input_acl.h \
- vnet/classify/policer_classify.h
+ vnet/classify/policer_classify.h \
+ vnet/classify/flow_classify.h
########################################
# Layer 3 protocols go here
# Layer 3 protocol: IP v4/v6
########################################
libvnet_la_SOURCES += \
- vnet/ip/adj_alloc.c \
+ vnet/ip/feature_registration.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_input.c \
vnet/ip/ip4_mtrie.c \
vnet/ip/ip4_pg.c \
- vnet/ip/ip4_source_check.c \
vnet/ip/ip4_source_and_port_range_check.c \
+ vnet/ip/ip4_source_check.c \
vnet/ip/ip6_format.c \
vnet/ip/ip6_forward.c \
vnet/ip/ip6_hop_by_hop.c \
vnet/ip/ip6_neighbor.c \
vnet/ip/ip6_pg.c \
vnet/ip/ip_checksum.c \
+ vnet/ip/ip_frag.c \
vnet/ip/ip.h \
vnet/ip/ip_init.c \
+ vnet/ip/ip_input_acl.c \
vnet/ip/lookup.c \
+ vnet/ip/ping.c \
+ vnet/ip/punt.c \
vnet/ip/udp_format.c \
vnet/ip/udp_init.c \
vnet/ip/udp_local.c \
- vnet/ip/udp_pg.c \
- vnet/ip/ip_input_acl.c \
- vnet/ip/ip_frag.c
+ vnet/ip/udp_pg.c
nobase_include_HEADERS += \
- vnet/ip/adj_alloc.h \
+ vnet/ip/feature_registration.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/ip_source_and_port_range_check.h \
+ vnet/ip/ip4_error.h \
vnet/ip/ip4.h \
vnet/ip/ip4_mtrie.h \
- vnet/ip/ip4_error.h \
vnet/ip/ip4_packet.h \
- vnet/ip/ip6.h \
vnet/ip/ip6_error.h \
+ vnet/ip/ip6.h \
vnet/ip/ip6_hop_by_hop.h \
vnet/ip/ip6_hop_by_hop_packet.h \
vnet/ip/ip6_packet.h \
- vnet/ip/lookup.h \
+ vnet/ip/ip.h \
vnet/ip/ip_packet.h \
+ vnet/ip/ip_source_and_port_range_check.h \
+ vnet/ip/lookup.h \
vnet/ip/ports.def \
vnet/ip/protocols.def \
+ vnet/ip/punt_error.def \
+ vnet/ip/punt.h \
vnet/ip/tcp_packet.h \
- vnet/ip/udp.h \
vnet/ip/udp_error.def \
+ vnet/ip/udp.h \
vnet/ip/udp_packet.h
########################################
########################################
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
# 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
########################################
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 \
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/lisp_gpe_fwd_entry.c \
+ vnet/lisp-gpe/lisp_gpe_tenant.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_fwd_entry.h \
+ vnet/lisp-gpe/lisp_gpe_tenant.h \
vnet/lisp-gpe/lisp_gpe_packet.h \
vnet/lisp-gpe/lisp_gpe_error.def
vnet/devices/dpdk/format.c \
vnet/devices/dpdk/init.c \
vnet/devices/dpdk/node.c \
- vnet/devices/dpdk/vhost_user.c \
+ vnet/devices/dpdk/hqos.c \
vnet/devices/dpdk/cli.c
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_urpf_list.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_nbr.c \
+ vnet/adj/adj_rewrite.c \
+ vnet/adj/adj_glean.c \
+ vnet/adj/adj_midchain.c \
+ vnet/adj/adj_l2.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/ip_null_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/ip_null_dpo.h \
+ vnet/dpo/dpo.h
+
########################################
# Plugin client library
########################################