+ ipsec/ipsec_input.c
+ ipsec/ipsec_tun_in.c
+)
+
+list(APPEND VNET_API_FILES ipsec/ipsec_types.api)
+list(APPEND VNET_API_FILES ipsec/ipsec.api)
+
+list(APPEND VNET_SOURCES
+ ipsec/ipsec_output.c
+)
+
+list(APPEND VNET_HEADERS
+ ipsec/ipsec.h
+ ipsec/ipsec_spd.h
+ ipsec/ipsec_spd_policy.h
+ ipsec/ipsec_sa.h
+ ipsec/ipsec_tun.h
+ ipsec/ipsec_types_api.h
+ ipsec/ipsec_punt.h
+ ipsec/esp.h
+ ipsec/ah.h
+)
+
+##############################################################################
+# Layer 3 protocol: osi
+##############################################################################
+list(APPEND VNET_SOURCES
+ osi/node.c
+ osi/osi.c
+ osi/pg.c
+)
+
+list(APPEND VNET_HEADERS
+ osi/osi.h
+)
+
+##############################################################################
+# Layer 4 protocol: tcp
+##############################################################################
+list(APPEND VNET_SOURCES
+ tcp/tcp_api.c
+ tcp/tcp_format.c
+ tcp/tcp_pg.c
+ tcp/tcp_syn_filter4.c
+ tcp/tcp_output.c
+ tcp/tcp_input.c
+ tcp/tcp_newreno.c
+ tcp/tcp_cubic.c
+ tcp/tcp_bt.c
+ tcp/tcp_debug.c
+ tcp/tcp.c
+)
+
+list(APPEND VNET_MULTIARCH_SOURCES
+ tcp/tcp_input.c
+ tcp/tcp_output.c
+ tcp/tcp_syn_filter4.c
+)
+
+list(APPEND VNET_HEADERS
+ tcp/tcp_packet.h
+ tcp/tcp_timer.h
+ tcp/tcp_debug.h
+ tcp/tcp.h
+ tcp/tcp_error.def
+)
+
+list(APPEND VNET_API_FILES tcp/tcp.api)
+
+##############################################################################
+# Layer 4 protocol: udp
+##############################################################################
+list(APPEND VNET_SOURCES
+ udp/udp.c
+ udp/udp_input.c
+ udp/udp_format.c
+ udp/udp_local.c
+ udp/udp_pg.c
+ udp/udp_encap_node.c
+ udp/udp_encap.c
+ udp/udp_api.c
+)
+
+list(APPEND VNET_MULTIARCH_SOURCES
+ udp/udp_local.c
+ udp/udp_encap_node.c
+)
+
+list(APPEND VNET_HEADERS
+ udp/udp_error.def
+ udp/udp.h
+ udp/udp_packet.h
+)
+
+list(APPEND VNET_API_FILES udp/udp.api)
+
+##############################################################################
+# Tunnel protocol: gre
+##############################################################################
+list(APPEND VNET_SOURCES
+ gre/gre.c
+ gre/node.c
+ gre/interface.c
+ gre/pg.c
+ gre/gre_api.c
+)
+
+list(APPEND VNET_MULTIARCH_SOURCES
+ gre/node.c
+ gre/gre.c
+)
+
+list(APPEND VNET_HEADERS
+ gre/gre.h
+ gre/packet.h
+ gre/error.def
+)
+
+list(APPEND VNET_API_FILES gre/gre.api)
+
+##############################################################################
+# Tunnel protocol: ipip
+##############################################################################
+list(APPEND VNET_SOURCES
+ ipip/ipip.c
+ ipip/node.c
+ ipip/sixrd.c
+ ipip/ipip_api.c
+ ipip/ipip_cli.c
+ ipip/ipip_types_api.c
+)
+
+list(APPEND VNET_MULTIARCH_SOURCES
+ ipip/node.c
+)
+
+list(APPEND VNET_HEADERS
+ ipip/ipip.h
+ ipip/ipip_types_api.h
+)
+
+list(APPEND VNET_API_FILES
+ ipip/ipip_types.api
+ ipip/ipip.api
+)
+
+##############################################################################
+# Tunnel protocol: l2tpv3
+##############################################################################
+list(APPEND VNET_SOURCES
+ l2tp/l2tp.c
+ l2tp/encap.c
+ l2tp/decap.c
+ l2tp/pg.c
+ l2tp/l2tp_api.c
+)
+
+list(APPEND VNET_MULTIARCH_SOURCES
+ l2tp/encap.c
+ l2tp/decap.c
+)
+
+list(APPEND VNET_HEADERS
+ l2tp/l2tp.h
+ l2tp/packet.h
+)
+
+list(APPEND VNET_API_FILES l2tp/l2tp.api)
+
+##############################################################################
+# Tunnel protocol: gre+mpls
+##############################################################################
+list(APPEND VNET_SOURCES
+ mpls/mpls.c
+ mpls/mpls_lookup.c
+ mpls/mpls_output.c
+ mpls/mpls_features.c
+ mpls/mpls_input.c
+ mpls/interface.c
+ mpls/mpls_tunnel.c
+ mpls/pg.c
+ mpls/mpls_api.c
+)
+
+list(APPEND VNET_MULTIARCH_SOURCES
+ mpls/mpls_output.c
+ mpls/mpls_input.c
+ mpls/mpls_lookup.c
+ mpls/mpls_features.c
+)
+
+list(APPEND VNET_HEADERS
+ mpls/mpls.h
+ mpls/mpls_types.h
+ mpls/mpls_tunnel.h
+ mpls/packet.h
+ mpls/error.def
+)
+
+list(APPEND VNET_API_FILES mpls/mpls.api)
+
+##############################################################################
+# Tunnel protocol: vxlan-gbp
+##############################################################################
+list(APPEND VNET_SOURCES
+ vxlan-gbp/decap.c
+ vxlan-gbp/encap.c
+ vxlan-gbp/vxlan_gbp_api.c
+ vxlan-gbp/vxlan_gbp.c
+ vxlan-gbp/vxlan_gbp_packet.c
+)
+
+list (APPEND VNET_MULTIARCH_SOURCES
+ vxlan-gbp/decap.c
+ vxlan-gbp/encap.c
+)
+
+list(APPEND VNET_HEADERS
+ vxlan-gbp/vxlan_gbp.h
+ vxlan-gbp/vxlan_gbp_packet.h
+ vxlan-gbp/vxlan_gbp_error.def
+)
+
+list(APPEND VNET_API_FILES vxlan-gbp/vxlan_gbp.api)
+
+##############################################################################
+# Tunnel protocol: vxlan-gpe
+##############################################################################
+
+list(APPEND VNET_SOURCES
+ vxlan-gpe/vxlan_gpe.c
+ vxlan-gpe/encap.c
+ vxlan-gpe/decap.c
+ vxlan-gpe/vxlan_gpe_api.c
+)
+
+list (APPEND VNET_MULTIARCH_SOURCES
+ vxlan-gpe/decap.c
+)
+
+list(APPEND VNET_HEADERS
+ vxlan-gpe/vxlan_gpe.h
+ vxlan-gpe/vxlan_gpe_packet.h
+ vxlan-gpe/vxlan_gpe_error.def
+)
+
+list(APPEND VNET_API_FILES vxlan-gpe/vxlan_gpe.api)
+
+##############################################################################
+# LISP control plane: lisp-cp
+##############################################################################
+
+list(APPEND VNET_SOURCES
+ lisp-cp/lisp_types.c
+ lisp-cp/lisp_cp_dpo.c
+ lisp-cp/control.c
+ lisp-cp/gid_dictionary.c
+ lisp-cp/lisp_msg_serdes.c
+ lisp-cp/packets.c
+ lisp-cp/one_cli.c
+ lisp-cp/lisp_cli.c
+ lisp-cp/one_api.c
+ lisp-cp/lisp_api.c
+)
+
+list(APPEND VNET_HEADERS
+ lisp-cp/lisp_types.h
+ lisp-cp/packets.h
+ lisp-cp/gid_dictionary.h
+ lisp-cp/lisp_cp_messages.h
+ lisp-cp/lisp_msg_serdes.h
+ lisp-cp/control.h
+)
+
+list(APPEND VNET_API_FILES lisp-cp/lisp.api)
+list(APPEND VNET_API_FILES lisp-cp/one.api)
+
+##############################################################################
+# Tunnel protocol: lisp-gpe
+##############################################################################
+
+list(APPEND VNET_SOURCES
+ lisp-gpe/lisp_gpe.c
+ lisp-gpe/lisp_gpe_sub_interface.c
+ lisp-gpe/lisp_gpe_adjacency.c
+ lisp-gpe/lisp_gpe_tunnel.c
+ lisp-gpe/lisp_gpe_fwd_entry.c
+ lisp-gpe/lisp_gpe_tenant.c
+ lisp-gpe/interface.c
+ lisp-gpe/decap.c
+ lisp-gpe/lisp_gpe_api.c
+)
+
+list(APPEND VNET_HEADERS
+ lisp-gpe/lisp_gpe.h
+ lisp-gpe/lisp_gpe_fwd_entry.h
+ lisp-gpe/lisp_gpe_tenant.h
+ lisp-gpe/lisp_gpe_packet.h
+ lisp-gpe/lisp_gpe_error.def
+)
+
+list(APPEND VNET_API_FILES lisp-gpe/lisp_gpe.api)
+
+##############################################################################
+# ipv6 segment routing
+##############################################################################
+
+list(APPEND VNET_SOURCES
+ srv6/sr.c
+ srv6/sr_localsid.c
+ srv6/sr_policy_rewrite.c
+ srv6/sr_steering.c
+ srv6/sr_api.c
+)
+
+list(APPEND VNET_HEADERS
+ srv6/sr_packet.h
+ srv6/sr.h
+)
+
+list(APPEND VNET_API_FILES srv6/sr.api)
+
+##############################################################################
+# mpls segment routing
+##############################################################################
+
+list(APPEND VNET_SOURCES
+ srmpls/sr_mpls_policy.c
+ srmpls/sr_mpls_steering.c
+ srmpls/sr_mpls_api.c
+)
+
+list(APPEND VNET_HEADERS
+ srmpls/sr_mpls.h
+)
+
+list(APPEND VNET_API_FILES srmpls/sr_mpls.api)
+
+##############################################################################
+# IPFIX / netflow v10
+##############################################################################
+list(APPEND VNET_SOURCES
+ ipfix-export/flow_report.c
+ ipfix-export/flow_api.c
+)
+
+list(APPEND VNET_HEADERS
+ ipfix-export/flow_report.h
+ ipfix-export/ipfix_info_elements.h
+ ipfix-export/ipfix_packet.h
+)
+
+list(APPEND VNET_API_FILES ipfix-export/ipfix_export.api)
+
+##############################################################################
+# GSO
+##############################################################################
+list(APPEND VNET_SOURCES
+ gso/cli.c
+ gso/gso.c
+ gso/gso_api.c
+ gso/node.c
+)
+
+list(APPEND VNET_HEADERS
+ gso/gso.h
+)
+
+list(APPEND VNET_API_FILES
+ gso/gso.api
+)
+
+##############################################################################
+# IPFIX classify code
+##############################################################################
+
+list(APPEND VNET_SOURCES
+ ipfix-export/flow_report_classify.c
+)
+
+list(APPEND VNET_HEADERS
+ ipfix-export/flow_report_classify.h
+)
+
+##############################################################################
+# lawful intercept
+##############################################################################
+
+list(APPEND VNET_SOURCES
+ lawful-intercept/lawful_intercept.c
+ lawful-intercept/node.c
+)
+
+list(APPEND VNET_MULTIARCH_SOURCES
+ lawful-intercept/node.c
+)
+
+list(APPEND VNET_HEADERS
+ lawful-intercept/lawful_intercept.h
+)
+
+##############################################################################
+# SPAN (port mirroring)
+##############################################################################
+
+list(APPEND VNET_SOURCES
+ span/span_api.c
+ span/span.c
+ span/node.c
+)
+
+list(APPEND VNET_MULTIARCH_SOURCES
+ span/node.c
+)
+
+list(APPEND VNET_HEADERS
+ span/span.h
+)
+
+list(APPEND VNET_API_FILES span/span.api)
+
+##############################################################################
+# Packet generator
+##############################################################################
+
+list(APPEND VNET_SOURCES
+ pg/cli.c
+ pg/edit.c
+ pg/init.c
+ pg/input.c
+ pg/output.c
+ pg/stream.c
+ pg/pg_api.c
+)
+
+list(APPEND VNET_HEADERS
+ pg/pg.h
+ pg/edit.h
+)
+
+list(APPEND VNET_API_FILES pg/pg.api)
+
+##############################################################################
+# virtio
+##############################################################################
+
+list(APPEND VNET_SOURCES
+ devices/virtio/cli.c
+ devices/virtio/device.c
+ devices/virtio/format.c
+ devices/virtio/node.c
+ devices/virtio/pci.c
+ devices/virtio/vhost_user.c
+ devices/virtio/vhost_user_input.c
+ devices/virtio/vhost_user_output.c
+ devices/virtio/vhost_user_api.c
+ devices/virtio/virtio.c
+ devices/virtio/virtio_api.c
+)
+
+list(APPEND VNET_HEADERS
+ devices/virtio/pci.h
+ devices/virtio/virtio.h
+ devices/virtio/vhost_user.h
+)
+
+list(APPEND VNET_MULTIARCH_SOURCES
+ devices/virtio/vhost_user_input.c
+ devices/virtio/vhost_user_output.c
+ devices/netmap/node.c
+ devices/virtio/node.c
+ devices/af_packet/node.c
+ devices/virtio/device.c
+)
+
+list(APPEND VNET_API_FILES
+ devices/virtio/vhost_user.api
+ devices/virtio/virtio.api
+)
+
+##############################################################################
+# tap interface (with virtio backend)
+##############################################################################
+
+list(APPEND VNET_SOURCES
+ devices/tap/cli.c
+ devices/tap/tap.c
+ devices/tap/tapv2_api.c
+)
+
+list(APPEND VNET_HEADERS
+ devices/tap/tap.h
+)
+
+list(APPEND VNET_API_FILES devices/tap/tapv2.api)
+
+##############################################################################
+# tap interface (with virtio backend)
+##############################################################################
+
+list(APPEND VNET_SOURCES
+ devices/pipe/pipe_api.c
+ devices/pipe/pipe.c
+)
+
+list(APPEND VNET_HEADERS
+ devices/pipe/pipe.h
+)
+
+list(APPEND VNET_API_FILES devices/pipe/pipe.api)
+
+##############################################################################
+# session managmeent
+##############################################################################
+
+list(APPEND VNET_SOURCES
+ session/session.c
+ session/session_table.c
+ session/session_rules_table.c
+ session/session_lookup.c
+ session/session_node.c
+ session/transport.c
+ session/application.c
+ session/application_worker.c
+ session/session_cli.c
+ session/application_interface.c
+ session/application_local.c
+ session/application_namespace.c
+ session/segment_manager.c
+ session/session_api.c
+)
+
+list(APPEND VNET_HEADERS
+ session/session.h
+ session/session_table.h
+ session/session_rules_table.h
+ session/session_types.h
+ session/session_lookup.h
+ session/application.h
+ session/transport.h
+ session/transport_types.h
+ session/application_interface.h
+ session/application_local.h
+ session/application_namespace.h
+ session/session_debug.h
+ session/segment_manager.h
+ session/mma_template.h
+ session/mma_template.c
+ session/mma_16.h
+ session/mma_40.h
+)
+
+list(APPEND VNET_API_FILES session/session.api)
+
+##############################################################################
+# TLS protocol
+##############################################################################
+
+list(APPEND VNET_SOURCES
+ tls/tls.c
+)
+
+list(APPEND VNET_HEADERS
+ tls/tls.h
+ tls/tls_test.h
+)
+
+##############################################################################
+# Linux packet interface
+##############################################################################
+
+list(APPEND VNET_SOURCES
+ devices/af_packet/af_packet.c
+ devices/af_packet/device.c
+ devices/af_packet/node.c
+ devices/af_packet/cli.c
+ devices/af_packet/af_packet_api.c
+)
+
+list(APPEND VNET_MULTIARCH_SOURCES
+ devices/netmap/device.c
+ devices/af_packet/device.c
+)
+
+list(APPEND VNET_HEADERS
+ devices/af_packet/af_packet.h
+)
+
+list(APPEND VNET_API_FILES devices/af_packet/af_packet.api)
+
+##############################################################################
+# NETMAP interface
+##############################################################################
+
+list(APPEND VNET_SOURCES
+ devices/netmap/netmap.c
+ devices/netmap/device.c
+ devices/netmap/node.c
+ devices/netmap/cli.c
+ devices/netmap/netmap_api.c
+)
+
+list(APPEND VNET_HEADERS
+ devices/netmap/netmap.h
+)
+
+list(APPEND VNET_API_FILES devices/netmap/netmap.api)
+
+##############################################################################
+# Driver feature graph arc support
+##############################################################################
+
+list(APPEND VNET_SOURCES
+ feature/feature.c
+ feature/feature_api.c
+ feature/registration.c
+)
+
+list(APPEND VNET_HEADERS
+ feature/feature.h
+)
+
+list(APPEND VNET_API_FILES feature/feature.api)
+
+##############################################################################
+# Unix kernel related
+##############################################################################
+
+# FIXME: unix/hgshm.c
+
+list(APPEND VNET_SOURCES
+ unix/gdb_funcs.c
+ unix/tuntap.c
+)
+
+list(APPEND VNET_HEADERS
+ unix/tuntap.h
+)
+
+##############################################################################
+# FIB
+##############################################################################
+
+list(APPEND VNET_SOURCES
+ fib/fib.c
+ fib/ip4_fib.c
+ fib/ip6_fib.c
+ fib/mpls_fib.c
+ fib/fib_table.c
+ fib/fib_walk.c
+ fib/fib_types.c
+ fib/fib_node.c
+ fib/fib_node_list.c
+ fib/fib_entry.c
+ fib/fib_entry_src.c
+ fib/fib_entry_src_rr.c
+ fib/fib_entry_src_interface.c
+ fib/fib_entry_src_interpose.c
+ fib/fib_entry_src_default_route.c
+ fib/fib_entry_src_special.c
+ fib/fib_entry_src_api.c
+ fib/fib_entry_src_adj.c
+ fib/fib_entry_src_mpls.c
+ fib/fib_entry_src_lisp.c
+ fib/fib_entry_cover.c
+ fib/fib_entry_delegate.c
+ fib/fib_entry_track.c
+ fib/fib_path_list.c
+ fib/fib_path.c
+ fib/fib_path_ext.c
+ fib/fib_urpf_list.c
+ fib/fib_attached_export.c
+ fib/fib_api.c
+ fib/fib_bfd.c
+)
+
+list(APPEND VNET_HEADERS
+ fib/fib.h
+ fib/fib_api.h
+ fib/ip4_fib.h
+ fib/ip6_fib.h
+ fib/fib_types.h
+ fib/fib_table.h
+ fib/fib_node.h
+ fib/fib_node_list.h
+ fib/fib_entry.h
+ fib/fib_entry_delegate.h
+)
+
+list(APPEND VNET_API_FILES fib/fib_types.api)
+
+##############################################################################
+# ADJ
+##############################################################################
+
+list(APPEND VNET_SOURCES
+ adj/adj_nbr.c
+ adj/adj_glean.c
+ adj/adj_midchain.c
+ adj/adj_midchain_delegate.c
+ adj/adj_mcast.c
+ adj/adj_l2.c
+ adj/adj_nsh.c
+ adj/adj.c
+ adj/rewrite.c
+ adj/adj_bfd.c
+ adj/adj_delegate.c
+)
+
+list(APPEND VNET_MULTIARCH_SOURCES
+ adj/adj_nsh.c
+ adj/adj_l2.c
+)
+
+list(APPEND VNET_HEADERS
+ adj/adj.h
+ adj/adj_types.h
+ adj/adj_glean.h
+ adj/adj_nsh.h
+ adj/adj_nbr.h
+ adj/adj_midchain.h
+ adj/rewrite.h
+)
+
+##############################################################################
+# Data-Plane Objects
+##############################################################################
+
+list(APPEND VNET_SOURCES
+ dpo/dpo.c
+ dpo/drop_dpo.c
+ dpo/ip_null_dpo.c
+ dpo/ip6_ll_dpo.c
+ dpo/punt_dpo.c
+ dpo/receive_dpo.c
+ dpo/load_balance.c
+ dpo/load_balance_map.c
+ dpo/lookup_dpo.c
+ dpo/classify_dpo.c
+ dpo/replicate_dpo.c
+ dpo/interface_rx_dpo.c
+ dpo/interface_tx_dpo.c
+ dpo/mpls_disposition.c
+ dpo/mpls_label_dpo.c
+ dpo/l3_proxy_dpo.c
+ dpo/dvr_dpo.c
+ dpo/pw_cw.c
+)
+
+list(APPEND VNET_MULTIARCH_SOURCES
+ dpo/lookup_dpo.h
+ dpo/mpls_disposition.c
+ dpo/dvr_dpo.c
+ dpo/mpls_label_dpo.c
+ dpo/interface_rx_dpo.c
+)
+
+list(APPEND VNET_HEADERS
+ dpo/load_balance.h
+ dpo/drop_dpo.h
+ dpo/lookup_dpo.h
+ dpo/punt_dpo.h
+ dpo/classify_dpo.h
+ dpo/receive_dpo.h
+ dpo/ip_null_dpo.h
+ dpo/replicate_dpo.h
+ dpo/dpo.h
+)
+
+##############################################################################
+# Multicast FIB
+##############################################################################
+
+list(APPEND VNET_SOURCES
+ mfib/mfib_forward.c