# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. add_definitions (-DWITH_LIBSSL=1) set(VNET_SRCS adj/adj_bfd.c adj/adj.c adj/adj_delegate.c adj/adj_glean.c adj/adj_l2.c adj/adj_mcast.c adj/adj_midchain.c adj/adj_nbr.c adj/adj_nsh.c adj/rewrite.c bfd/bfd_api.c bfd/bfd_cli.c bfd/bfd_main.c bfd/bfd_protocol.c bfd/bfd_udp.c bier/bier_api.c bier/bier_bift_table.c bier/bier_bit_string.c bier/bier_disp_dispatch_node.c bier/bier_disp_entry.c bier/bier_disp_lookup_node.c bier/bier_disp_table.c bier/bier_drop.c bier/bier_entry.c bier/bier_fmask.c bier/bier_fmask_db.c bier/bier_imp.c bier/bier_imp_node.c bier/bier_input.c bier/bier_lookup.c bier/bier_output.c bier/bier_table.c bier/bier_test.c bier/bier_types.c bier/bier_update.c bonding/bond_api.c bonding/cli.c bonding/device.c bonding/node.c buffer.c classify/classify_api.c classify/flow_classify.c classify/flow_classify_node.c classify/in_out_acl.c classify/ip_classify.c classify/policer_classify.c classify/vnet_classify.c config.c cop/cop_api.c cop/cop.c cop/ip4_whitelist.c cop/ip6_whitelist.c cop/node1.c devices/af_packet/af_packet_api.c devices/af_packet/af_packet.c devices/af_packet/cli.c devices/af_packet/device.c devices/af_packet/node.c devices/devices.c devices/netlink.c devices/netmap/cli.c devices/netmap/device.c devices/netmap/netmap_api.c devices/netmap/netmap.c devices/netmap/node.c devices/pipe/pipe_api.c devices/pipe/pipe.c devices/tap/cli.c devices/tap/tap.c devices/tap/tapv2_api.c devices/virtio/device.c devices/virtio/node.c devices/virtio/vhost_user_api.c devices/virtio/vhost_user.c devices/virtio/vhost_user_input.c devices/virtio/vhost_user_output.c devices/virtio/virtio.c dhcp/client.c dhcp/dhcp4_proxy_node.c dhcp/dhcp6_client_common_dp.c dhcp/dhcp6_ia_na_client_cp.c dhcp/dhcp6_ia_na_client_dp.c dhcp/dhcp6_pd_client_cp.c dhcp/dhcp6_pd_client_dp.c dhcp/dhcp6_proxy_node.c dhcp/dhcp_api.c dhcp/dhcp_client_detect.c dhcp/dhcp_proxy.c dns/dns.c dns/reply_node.c dns/request_node.c dns/resolver_process.c dpo/classify_dpo.c dpo/dpo.c dpo/drop_dpo.c dpo/dvr_dpo.c dpo/interface_rx_dpo.c dpo/interface_tx_dpo.c dpo/ip6_ll_dpo.c dpo/ip_null_dpo.c dpo/l3_proxy_dpo.c dpo/load_balance.c dpo/load_balance_map.c dpo/lookup_dpo.c dpo/mpls_disposition.c dpo/mpls_label_dpo.c dpo/punt_dpo.c dpo/receive_dpo.c dpo/replicate_dpo.c ethernet/arp.c ethernet/format.c ethernet/init.c ethernet/interface.c ethernet/node.c ethernet/p2p_ethernet_api.c ethernet/p2p_ethernet.c ethernet/p2p_ethernet_input.c ethernet/pg.c ethernet/sfp.c feature/feature_api.c feature/feature.c feature/registration.c fib/fib_api.c fib/fib_attached_export.c fib/fib_bfd.c fib/fib.c fib/fib_entry.c fib/fib_entry_cover.c fib/fib_entry_delegate.c fib/fib_entry_src_adj.c fib/fib_entry_src_api.c fib/fib_entry_src.c fib/fib_entry_src_default_route.c fib/fib_entry_src_interface.c fib/fib_entry_src_interpose.c fib/fib_entry_src_lisp.c fib/fib_entry_src_mpls.c fib/fib_entry_src_rr.c fib/fib_entry_src_special.c fib/fib_node.c fib/fib_node_list.c fib/fib_path.c fib/fib_path_ext.c fib/fib_path_list.c fib/fib_table.c fib/fib_test.c fib/fib_types.c fib/fib_urpf_list.c fib/fib_walk.c fib/ip4_fib.c fib/ip6_fib.c fib/mpls_fib.c flow/flow.c flow/flow_cli.c geneve/decap.c geneve/encap.c geneve/geneve_api.c geneve/geneve.c gre/gre_api.c gre/gre.c gre/interface.c gre/node.c gre/pg.c handoff.c hdlc/hdlc.c hdlc/node.c hdlc/pg.c interface_api.c interface.c interface_cli.c interface_format.c interface_output.c interface_stats.c ipfix-export/flow_api.c ipfix-export/flow_report.c ipfix-export/flow_report_classify.c ip/format.c ip/icmp4.c ip/icmp6.c ip/ip46_cli.c ip/ip4_format.c ip/ip4_forward.c ip/ip4_input.c ip/ip4_mtrie.c ip/ip4_options.c ip/ip4_pg.c ip/ip4_punt_drop.c ip/ip4_reassembly.c ip/ip4_source_and_port_range_check.c ip/ip4_source_check.c ip/ip6_format.c ip/ip6_forward.c ip/ip6_hop_by_hop.c ip/ip6_input.c ip/ip6_ll_table.c ip/ip6_ll_types.c ip/ip6_neighbor.c ip/ip6_pg.c ip/ip6_punt_drop.c ip/ip6_reassembly.c ip/ip_api.c ip/ip.c ip/ip_checksum.c ip/ip_frag.c ip/ip_init.c ip/ip_in_out_acl.c ipip/ipip_api.c ipip/ipip.c ipip/ipip_cli.c ip/ip_neighbor.c ipip/node.c ipip/sixrd.c ip/ip_types_api.c ip/lookup.c ip/ping.c ip/punt_api.c ip/punt.c ip/rd_cp.c ipsec/ah_decrypt.c ipsec/ah_encrypt.c ipsec/esp_decrypt.c ipsec/esp_encrypt.c ipsec/esp_format.c ipsec-gre/interface.c ipsec-gre/ipsec_gre_api.c ipsec-gre/ipsec_gre.c ipsec-gre/node.c ipsec/ikev2.c ipsec/ikev2_cli.c ipsec/ikev2_crypto.c ipsec/ikev2_format.c ipsec/ikev2_payload.c ipsec/ipsec_api.c ipsec/ipsec.c ipsec/ipsec_cli.c ipsec/ipsec_format.c ipsec/ipsec_if.c ipsec/ipsec_if_in.c ipsec/ipsec_input.c ipsec/ipsec_output.c l2/feat_bitmap.c l2/l2_api.c l2/l2_bd.c l2/l2_bvi.c l2/l2_efp_filter.c l2/l2_fib.c l2/l2_flood.c l2/l2_fwd.c l2/l2_in_out_acl.c l2/l2_input.c l2/l2_input_classify.c l2/l2_input_vtr.c l2/l2_learn.c l2/l2_output.c l2/l2_output_classify.c l2/l2_patch.c l2/l2_rw.c l2/l2_vtr.c l2/l2_xcrw.c l2tp/decap.c l2tp/encap.c l2tp/l2tp_api.c l2tp/l2tp.c l2tp/pg.c lawful-intercept/lawful_intercept.c lawful-intercept/node.c lisp-cp/control.c lisp-cp/gid_dictionary.c lisp-cp/lisp_api.c lisp-cp/lisp_cli.c lisp-cp/lisp_cp_dpo.c lisp-cp/lisp_msg_serdes.c lisp-cp/lisp_types.c lisp-cp/one_api.c lisp-cp/one_cli.c lisp-cp/packets.c lisp-gpe/decap.c lisp-gpe/interface.c lisp-gpe/lisp_gpe_adjacency.c lisp-gpe/lisp_gpe_api.c lisp-gpe/lisp_gpe.c lisp-gpe/lisp_gpe_fwd_entry.c lisp-gpe/lisp_gpe_sub_interface.c lisp-gpe/lisp_gpe_tenant.c lisp-gpe/lisp_gpe_tunnel.c llc/llc.c llc/node.c llc/pg.c lldp/lldp_api.c lldp/lldp_cli.c lldp/lldp_input.c lldp/lldp_node.c lldp/lldp_output.c mfib/ip4_mfib.c mfib/ip6_mfib.c mfib/mfib_entry.c mfib/mfib_forward.c mfib/mfib_itf.c mfib/mfib_signal.c mfib/mfib_table.c mfib/mfib_test.c mfib/mfib_types.c misc.c mpls/interface.c mpls/mpls_api.c mpls/mpls.c mpls/mpls_features.c mpls/mpls_input.c mpls/mpls_lookup.c mpls/mpls_output.c mpls/mpls_tunnel.c mpls/pg.c osi/node.c osi/osi.c osi/pg.c pg/cli.c pg/edit.c pg/init.c pg/input.c pg/output.c pg/pg_api.c pg/stream.c policer/node_funcs.c policer/policer_api.c policer/policer.c policer/xlate.c ppp/node.c ppp/pg.c ppp/ppp.c qos/qos_api.c qos/qos_egress_map.c qos/qos_mark.c qos/qos_record.c qos/qos_types.c replication.c sctp/sctp_api.c sctp/sctp.c sctp/sctp_format.c sctp/sctp_input.c sctp/sctp_output.c sctp/sctp_pg.c session/application.c session/application_interface.c session/application_namespace.c session-apps/echo_client.c session-apps/echo_server.c session-apps/http_server.c session-apps/proxy.c session/segment_manager.c session/session_api.c session/session.c session/session_cli.c session/session_lookup.c session/session_node.c session/session_rules_table.c session/session_table.c session/session_test.c session/transport.c snap/node.c snap/pg.c snap/snap.c span/node.c span/span_api.c span/span.c srmpls/sr_mpls_api.c srmpls/sr_mpls_policy.c srmpls/sr_mpls_steering.c srp/format.c srp/interface.c srp/node.c srp/pg.c srv6/sr_api.c srv6/sr.c srv6/sr_localsid.c srv6/sr_policy_rewrite.c srv6/sr_steering.c tcp/tcp_api.c tcp/tcp.c tcp/tcp_format.c tcp/tcp_input.c tcp/tcp_newreno.c tcp/tcp_output.c tcp/tcp_pg.c tcp/tcp_syn_filter4.c tls/tls.c udp/udp_api.c udp/udp.c udp/udp_encap.c udp/udp_encap_node.c udp/udp_format.c udp/udp_input.c udp/udp_local.c udp/udp_pg.c unix/gdb_funcs.c unix/pcap.c unix/tap_api.c unix/tapcli.c unix/tuntap.c util/radix.c util/refcount.c util/trajectory.c vxlan/decap.c vxlan/encap.c vxlan-gpe/decap.c vxlan-gpe/encap.c vxlan-gpe/vxlan_gpe_api.c vxlan-gpe/vxlan_gpe.c vxlan/vxlan_api.c vxlan/vxlan.c ) set (VNET_API_FILES vxlan-gpe/vxlan_gpe.api ip/ip.api ip/rd_cp.api ip/ip_types.api ip/punt.api fib/fib_types.api devices/virtio/vhost_user.api devices/af_packet/af_packet.api devices/tap/tapv2.api devices/netmap/netmap.api devices/pipe/pipe.api l2tp/l2tp.api bier/bier.api ipsec-gre/ipsec_gre.api cop/cop.api ipsec/ipsec.api lisp-gpe/lisp_gpe.api lldp/lldp.api vxlan/vxlan.api srmpls/sr_mpls.api pg/pg.api bonding/bond.api dns/dns.api feature/feature.api dhcp/dhcp.api dhcp/dhcp6_pd_client_cp.api dhcp/dhcp6_ia_na_client_cp.api sctp/sctp.api ipip/ipip.api qos/qos.api interface.api udp/udp.api lisp-cp/one.api lisp-cp/lisp.api mpls/mpls.api l2/l2.api geneve/geneve.api tcp/tcp.api unix/tap.api srv6/sr.api gre/gre.api span/span.api policer/policer.api session/session.api ethernet/p2p_ethernet.api ipfix-export/ipfix_export.api classify/classify.api bfd/bfd.api ) set(VNET_API_HDRS) foreach (file ${VNET_API_FILES}) vpp_generate_api_header(${file}) list(APPEND VNET_API_HDRS ${file}.h) endforeach() add_custom_target(vnet_api_headers DEPENDS ${VNET_API_HDRS}) add_library(vnet SHARED ${VNET_SRCS}) vpp_library_set_multiarch_sources(vnet bonding/node.c ip/ip4_forward.c ip/ip4_input.c l2/l2_output.c devices/virtio/vhost_user_input.c devices/virtio/vhost_user_output.c ) target_link_libraries(vnet vlib ${OPENSSL_LIBRARIES}) add_dependencies(vnet api_headers) # # Install # install(TARGETS vnet DESTINATION lib)