blob: b24db2044c848d9f3d08525816346f2b2164e21c [file] [log] [blame]
# 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)
include_directories(${OPENSSL_INCLUDE_DIR})
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
)
vpp_add_api_files(vnet_api_headers
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
)
vpp_add_header_files(vnet
l3_types.h
vxlan-gpe/vxlan_gpe.h
vxlan-gpe/vxlan_gpe_packet.h
vxlan-gpe/vxlan_gpe_error.def
ip/icmp6.h
ip/ip_source_and_port_range_check.h
ip/ports.def
ip/ip6_to_ip4.h
ip/ip4_error.h
ip/ip6_error.h
ip/ip4_packet.h
ip/lookup.h
ip/ip_neighbor.h
ip/ip6_hop_by_hop_packet.h
ip/format.h
ip/ip4_mtrie.h
ip/icmp4.h
ip/icmp46_packet.h
ip/igmp_packet.h
ip/protocols.def
ip/ip6_neighbor.h
ip/ip4.h
ip/ip6_hop_by_hop.h
ip/punt.h
ip/ip6.h
ip/ip6_packet.h
ip/punt_error.def
ip/ip.h
ip/ip_packet.h
ip/ip4_to_ip6.h
adj/adj_nbr.h
adj/adj_glean.h
adj/adj_nsh.h
adj/adj.h
adj/adj_types.h
adj/rewrite.h
fib/fib_table.h
fib/fib_entry.h
fib/fib.h
fib/ip4_fib.h
fib/fib_node.h
fib/ip6_fib.h
fib/fib_types.h
fib/fib_node_list.h
fib/fib_entry_delegate.h
devices/virtio/virtio.h
devices/virtio/vhost_user.h
devices/af_packet/af_packet.h
devices/devices.h
devices/tap/tap.h
devices/netmap/netmap.h
devices/netlink.h
devices/pipe/pipe.h
vnet_msg_enum.h
dpo/load_balance.h
dpo/dpo.h
dpo/punt_dpo.h
dpo/lookup_dpo.h
dpo/drop_dpo.h
dpo/classify_dpo.h
dpo/receive_dpo.h
dpo/ip_null_dpo.h
dpo/replicate_dpo.h
l2tp/packet.h
l2tp/l2tp.h
global_funcs.h
bier/bier_types.h
bier/bier_entry.h
bier/bier_table.h
bier/bier_update.h
ipsec-gre/ipsec_gre.h
ipsec-gre/error.def
interface_funcs.h
lawful-intercept/lawful_intercept.h
util/radix.h
util/refcount.h
cop/cop.h
ipsec/ikev2.h
ipsec/ikev2_priv.h
ipsec/ah.h
ipsec/esp.h
ipsec/ipsec.h
flow/flow.h
lisp-gpe/lisp_gpe_packet.h
lisp-gpe/lisp_gpe_error.def
lisp-gpe/lisp_gpe_fwd_entry.h
lisp-gpe/lisp_gpe_tenant.h
lisp-gpe/lisp_gpe.h
lldp/lldp.h
lldp/lldp_protocol.h
pipeline.h
hdlc/packet.h
hdlc/hdlc.h
hdlc/error.def
vxlan/vxlan_packet.h
vxlan/vxlan.h
vxlan/vxlan_error.def
srmpls/sr_mpls.h
pg/edit.h
pg/pg.h
bonding/node.h
dns/dns.h
feature/feature.h
dhcp/dhcp6_pd_client_dp.h
dhcp/client.h
dhcp/dhcp4_proxy_error.def
dhcp/dhcp4_packet.h
dhcp/dhcp6_proxy_error.def
dhcp/dhcp6_client_common_dp.h
dhcp/dhcp_proxy.h
dhcp/dhcp6_ia_na_client_dp.h
dhcp/dhcp6_packet.h
tls/tls.h
sctp/sctp_error.def
sctp/sctp_packet.h
sctp/sctp_timer.h
sctp/sctp.h
ipip/ipip.h
handoff.h
api_errno.h
osi/osi.h
udp/udp_error.def
udp/udp_packet.h
udp/udp.h
ppp/packet.h
ppp/ppp.h
ppp/error.def
lisp-cp/lisp_types.h
lisp-cp/lisp_cp_messages.h
lisp-cp/packets.h
lisp-cp/gid_dictionary.h
lisp-cp/lisp_msg_serdes.h
lisp-cp/control.h
vnet.h
mpls/packet.h
mpls/mpls.h
mpls/mpls_tunnel.h
mpls/mpls_types.h
mpls/error.def
mfib/mfib_types.h
mfib/ip4_mfib.h
mfib/mfib_table.h
interface.h
plugin/plugin.h
l2/l2_xcrw.h
l2/l2_output.h
l2/l2_rw.h
l2/l2_fib.h
l2/l2_vtr.h
l2/feat_bitmap.h
l2/l2_flood.h
l2/l2_classify.h
l2/l2_bd.h
l2/l2_efp_filter.h
l2/l2_fwd.h
l2/l2_input.h
l2/l2_input_vtr.h
l2/l2_bvi.h
geneve/geneve.h
geneve/geneve_error.def
geneve/geneve_packet.h
tcp/tcp_packet.h
tcp/tcp_debug.h
tcp/tcp_timer.h
tcp/tcp_error.def
tcp/tcp.h
session-apps/echo_client.h
session-apps/proxy.h
unix/pcap.h
unix/tuntap.h
unix/tapcli.h
srv6/sr.h
srv6/sr_packet.h
gre/packet.h
gre/gre.h
gre/error.def
span/span.h
policer/xlate.h
policer/policer.h
policer/police.h
config.h
buffer.h
llc/llc.h
session/session_lookup.h
session/mma_template.c
session/application.h
session/segment_manager.h
session/mma_template.h
session/session_rules_table.h
session/session.h
session/transport.h
session/session_debug.h
session/mma_16.h
session/mma_40.h
session/session_table.h
session/transport_interface.h
session/application_namespace.h
session/stream_session.h
session/application_interface.h
replication.h
ethernet/packet.h
ethernet/arp.h
ethernet/p2p_ethernet.h
ethernet/sfp.h
ethernet/types.def
ethernet/arp_packet.h
ethernet/ethernet.h
ethernet/error.def
ipfix-export/ipfix_info_elements.h
ipfix-export/flow_report.h
ipfix-export/flow_report_classify.h
ipfix-export/ipfix_packet.h
snap/snap.h
classify/flow_classify.h
classify/in_out_acl.h
classify/vnet_classify.h
classify/policer_classify.h
bfd/bfd_udp.h
bfd/bfd_protocol.h
bfd/bfd_main.h
srp/packet.h
srp/srp.h
)
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)