vlib: move pci api types from vnet/pci to vlib/pci
[vpp.git] / src / vnet / CMakeLists.txt
index 1c85daf..1574c3d 100644 (file)
@@ -67,10 +67,14 @@ list(APPEND VNET_HEADERS
   vnet_msg_enum.h
   util/radix.h
   util/refcount.h
+  format_fns.h
+  ip/ip_format_fns.h
+  ethernet/ethernet_format_fns.h
 )
 
 list(APPEND VNET_API_FILES
   interface.api
+  interface_types.api
   ip/ip_types.api
 )
 
@@ -94,7 +98,10 @@ list(APPEND VNET_HEADERS
   policer/xlate.h
 )
 
-list(APPEND VNET_API_FILES policer/policer.api)
+list(APPEND VNET_API_FILES
+  policer/policer.api
+  policer/policer_types.api
+)
 
 ##############################################################################
 # Cop - junk filter
@@ -127,6 +134,7 @@ list(APPEND VNET_API_FILES cop/cop.api)
 # Layer 2 protocol: Ethernet
 ##############################################################################
 list(APPEND VNET_SOURCES
+  ethernet/arp_packet.c
   ethernet/ethernet_types_api.c
   ethernet/format.c
   ethernet/init.c
@@ -153,9 +161,12 @@ list(APPEND VNET_HEADERS
   ethernet/types.def
   ethernet/sfp.h
   ethernet/p2p_ethernet.h
+  ethernet/arp_packet.h
 )
 
-list(APPEND VNET_API_FILES ethernet/p2p_ethernet.api)
+list(APPEND VNET_API_FILES
+  ethernet/p2p_ethernet.api
+  ethernet/ethernet_types.api)
 
 ##############################################################################
 # Layer 2 protocol: Ethernet bridging
@@ -163,6 +174,7 @@ list(APPEND VNET_API_FILES ethernet/p2p_ethernet.api)
 list(APPEND VNET_SOURCES
   l2/feat_bitmap.c
   l2/l2_api.c
+  l2/l2_arp_term.c
   l2/l2_bd.c
   l2/l2_bvi.c
   l2/l2_bvi_node.c
@@ -381,6 +393,7 @@ list(APPEND VNET_API_FILES lldp/lldp.api)
 ##############################################################################
 list(APPEND VNET_SOURCES
   classify/vnet_classify.c
+  classify/trace_classify.h
   classify/ip_classify.c
   classify/in_out_acl.c
   classify/policer_classify.c
@@ -397,6 +410,7 @@ list(APPEND VNET_MULTIARCH_SOURCES
 
 list(APPEND VNET_HEADERS
   classify/vnet_classify.h
+  classify/trace_classify.h
   classify/in_out_acl.h
   classify/policer_classify.h
   classify/flow_classify.h
@@ -417,6 +431,7 @@ list(APPEND VNET_SOURCES
   ip/icmp6.c
   ip/ip46_cli.c
   ip/ip_types_api.c
+  ip/ip46_address.c
   ip/ip4_format.c
   ip/ip4_forward.c
   ip/ip4_punt_drop.c
@@ -426,7 +441,8 @@ list(APPEND VNET_SOURCES
   ip/ip4_pg.c
   ip/ip4_source_and_port_range_check.c
   ip/ip4_source_check.c
-  ip/ip4_reassembly.c
+  ip/reass/ip4_full_reass.c
+  ip/reass/ip4_sv_reass.c
   ip/ip6_format.c
   ip/ip6_forward.c
   ip/ip6_ll_table.c
@@ -434,11 +450,10 @@ list(APPEND VNET_SOURCES
   ip/ip6_punt_drop.c
   ip/ip6_hop_by_hop.c
   ip/ip6_input.c
-  ip/ip6_neighbor.c
+  ip/ip6_link.c
   ip/ip6_pg.c
-  ip/ip6_reassembly.c
-  ip/rd_cp.c
-  ip/ip_neighbor.c
+  ip/reass/ip6_full_reass.c
+  ip/reass/ip6_sv_reass.c
   ip/ip_api.c
   ip/ip_checksum.c
   ip/ip_frag.c
@@ -446,19 +461,24 @@ list(APPEND VNET_SOURCES
   ip/ip_init.c
   ip/ip_in_out_acl.c
   ip/ip_punt_drop.c
+  ip/ip_types.c
   ip/lookup.c
-  ip/ping.c
   ip/punt_api.c
   ip/punt.c
   ip/punt_node.c
+  ip/vtep.c
 )
 
 list(APPEND VNET_MULTIARCH_SOURCES
   ip/ip4_source_check.c
   ip/ip4_punt_drop.c
-  ip/ip4_reassembly.c
+  ip/reass/ip4_full_reass.c
+  ip/ip6_hop_by_hop.c
+  ip/reass/ip6_full_reass.c
+  ip/reass/ip4_sv_reass.c
   ip/ip6_hop_by_hop.c
-  ip/ip6_reassembly.c
+  ip/reass/ip6_full_reass.c
+  ip/reass/ip6_sv_reass.c
   ip/ip6_input.c
   ip/ip6_punt_drop.c
   ip/punt_node.c
@@ -475,16 +495,16 @@ list(APPEND VNET_HEADERS
   ip/ip4.h
   ip/ip4_mtrie.h
   ip/ip4_packet.h
+  ip/ip46_address.h
   ip/ip6_error.h
   ip/ip6.h
   ip/ip6_hop_by_hop.h
   ip/ip6_hop_by_hop_packet.h
   ip/ip6_packet.h
-  ip/ip6_neighbor.h
   ip/ip.h
   ip/ip_packet.h
   ip/ip_source_and_port_range_check.h
-  ip/ip_neighbor.h
+  ip/ip_types.h
   ip/lookup.h
   ip/ports.def
   ip/protocols.def
@@ -494,7 +514,6 @@ list(APPEND VNET_HEADERS
 
 list(APPEND VNET_API_FILES
   ip/ip.api
-  ip/rd_cp.api
   ip/punt.api
 )
 
@@ -505,15 +524,25 @@ list(APPEND VNET_MULTIARCH_SOURCES
 )
 
 ##############################################################################
-# Layer 2/3 ARP
+# Layer 3 neighbours
 ##############################################################################
 list(APPEND VNET_SOURCES
-  ethernet/arp.c
+  ip-neighbor/ip_neighbor.c
+  ip-neighbor/ip_neighbor_api.c
+  ip-neighbor/ip_neighbor_dp.c
+  ip-neighbor/ip_neighbor_types.c
+  ip-neighbor/ip_neighbor_watch.c
+  ip-neighbor/ip4_neighbor.c
+  ip-neighbor/ip6_neighbor.c
 )
 
 list(APPEND VNET_HEADERS
-  ethernet/arp_packet.h
-  ethernet/arp.h
+  ip-neighbor/ip_neighbor.h
+  ip-neighbor/ip_neighbor_types.h
+)
+
+list(APPEND VNET_API_FILES
+  ip-neighbor/ip_neighbor.api
 )
 
 ##############################################################################
@@ -559,19 +588,21 @@ list(APPEND VNET_SOURCES
   ipsec/ipsec.c
   ipsec/ipsec_cli.c
   ipsec/ipsec_format.c
+  ipsec/ipsec_handoff.c
   ipsec/ipsec_input.c
-  ipsec/ipsec_if.c
-  ipsec/ipsec_if_in.c
   ipsec/ipsec_punt.c
   ipsec/ipsec_sa.c
   ipsec/ipsec_spd.c
   ipsec/ipsec_spd_policy.c
+  ipsec/ipsec_tun.c
+  ipsec/ipsec_tun_in.c
   ipsec/esp_format.c
   ipsec/esp_encrypt.c
   ipsec/esp_decrypt.c
   ipsec/ah_decrypt.c
   ipsec/ah_encrypt.c
   ipsec/ipsec_api.c
+  ipsec/ipsec_types_api.c
 )
 
 list(APPEND VNET_MULTIARCH_SOURCES
@@ -579,11 +610,13 @@ list(APPEND VNET_MULTIARCH_SOURCES
   ipsec/esp_decrypt.c
   ipsec/ah_decrypt.c
   ipsec/ah_encrypt.c
-  ipsec/ipsec_if_in.c
+  ipsec/ipsec_handoff.c
   ipsec/ipsec_output.c
   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
@@ -595,7 +628,9 @@ list(APPEND VNET_HEADERS
   ipsec/ipsec_spd.h
   ipsec/ipsec_spd_policy.h
   ipsec/ipsec_sa.h
-  ipsec/ipsec_if.h
+  ipsec/ipsec_tun.h
+  ipsec/ipsec_types_api.h
+  ipsec/ipsec_punt.h
   ipsec/esp.h
   ipsec/ah.h
 )
@@ -625,6 +660,8 @@ list(APPEND VNET_SOURCES
   tcp/tcp_input.c
   tcp/tcp_newreno.c
   tcp/tcp_cubic.c
+  tcp/tcp_bt.c
+  tcp/tcp_debug.c
   tcp/tcp.c
 )
 
@@ -671,33 +708,6 @@ list(APPEND VNET_HEADERS
 
 list(APPEND VNET_API_FILES udp/udp.api)
 
-##############################################################################
-# Layer 4 protocol: sctp
-##############################################################################
-list(APPEND VNET_SOURCES
-  sctp/sctp_api.c
-  sctp/sctp.c
-  sctp/sctp_pg.c
-  sctp/sctp_input.c
-  sctp/sctp_output.c
-  sctp/sctp_output_node.c
-  sctp/sctp_format.c
-)
-
-list(APPEND VNET_MULTIARCH_SOURCES
-  sctp/sctp_output_node.c
-  sctp/sctp_input.c
-)
-
-list(APPEND VNET_HEADERS
-  sctp/sctp_error.def
-  sctp/sctp_packet.h
-  sctp/sctp_timer.h
-  sctp/sctp.h
-)
-
-list(APPEND VNET_API_FILES sctp/sctp.api)
-
 ##############################################################################
 # Tunnel protocol: gre
 ##############################################################################
@@ -741,7 +751,26 @@ list(APPEND VNET_HEADERS
   ipip/ipip.h
 )
 
-list(APPEND VNET_API_FILES ipip/ipip.api)
+list(APPEND VNET_API_FILES
+  ipip/ipip.api
+)
+
+##############################################################################
+# Tunnel infra
+##############################################################################
+list(APPEND VNET_SOURCES
+  tunnel/tunnel.c
+  tunnel/tunnel_types_api.c
+)
+
+list(APPEND VNET_API_FILES
+  tunnel/tunnel_types.api
+)
+
+list(APPEND VNET_HEADERS
+  tunnel/tunnel.h
+  tunnel/tunnel_dp.h
+)
 
 ##############################################################################
 # Tunnel protocol: l2tpv3
@@ -845,28 +874,6 @@ list(APPEND VNET_HEADERS
 
 list(APPEND VNET_API_FILES vxlan-gpe/vxlan_gpe.api)
 
-##############################################################################
-# Tunnel protocol: ipsec+gre
-##############################################################################
-list(APPEND VNET_SOURCES
-  ipsec-gre/ipsec_gre.c
-  ipsec-gre/node.c
-  ipsec-gre/interface.c
-  ipsec-gre/ipsec_gre_api.c
-)
-
-list(APPEND VNET_MULTIARCH_SOURCES
-  ipsec-gre/node.c
-  ipsec-gre/ipsec_gre.c
-)
-
-list(APPEND VNET_HEADERS
-  ipsec-gre/ipsec_gre.h
-  ipsec-gre/error.def
-)
-
-list(APPEND VNET_API_FILES ipsec-gre/ipsec_gre.api)
-
 ##############################################################################
 # LISP control plane: lisp-cp
 ##############################################################################
@@ -922,54 +929,6 @@ list(APPEND VNET_HEADERS
 
 list(APPEND VNET_API_FILES lisp-gpe/lisp_gpe.api)
 
-##############################################################################
-# DHCP client
-##############################################################################
-list(APPEND VNET_SOURCES
-  dhcp/client.c
-  dhcp/dhcp_client_detect.c
-  dhcp/dhcp6_client_common_dp.c
-  dhcp/dhcp6_pd_client_dp.c
-  dhcp/dhcp6_pd_client_cp.c
-  dhcp/dhcp6_ia_na_client_dp.c
-  dhcp/dhcp6_ia_na_client_cp.c
-  dhcp/dhcp_api.c
-)
-
-list(APPEND VNET_MULTIARCH_SOURCES
-  dhcp/dhcp_client_detect.c
-)
-
-list(APPEND VNET_HEADERS
-  dhcp/client.h
-  dhcp/dhcp6_client_common_dp.h
-  dhcp/dhcp6_pd_client_dp.h
-  dhcp/dhcp6_ia_na_client_dp.h
-)
-
-list(APPEND VNET_API_FILES
-  dhcp/dhcp.api
-  dhcp/dhcp6_pd_client_cp.api
-  dhcp/dhcp6_ia_na_client_cp.api
-)
-
-##############################################################################
-# DHCP proxy
-##############################################################################
-list(APPEND VNET_SOURCES
-  dhcp/dhcp6_proxy_node.c
-  dhcp/dhcp4_proxy_node.c
-  dhcp/dhcp_proxy.c
-)
-
-list(APPEND VNET_HEADERS
-  dhcp/dhcp4_packet.h
-  dhcp/dhcp6_packet.h
-  dhcp/dhcp_proxy.h
-  dhcp/dhcp6_proxy_error.def
-  dhcp/dhcp4_proxy_error.def
-)
-
 ##############################################################################
 # ipv6 segment routing
 ##############################################################################
@@ -987,7 +946,10 @@ list(APPEND VNET_HEADERS
   srv6/sr.h
 )
 
-list(APPEND VNET_API_FILES srv6/sr.api)
+list(APPEND VNET_API_FILES
+  srv6/sr.api
+  srv6/sr_types.api
+)
 
 ##############################################################################
 # mpls segment routing
@@ -1003,7 +965,10 @@ list(APPEND VNET_HEADERS
   srmpls/sr_mpls.h
 )
 
-list(APPEND VNET_API_FILES srmpls/sr_mpls.api)
+list(APPEND VNET_API_FILES
+  srmpls/sr_mpls.api
+  srv6/sr_types.api
+)
 
 ##############################################################################
 # IPFIX / netflow v10
@@ -1021,6 +986,24 @@ list(APPEND VNET_HEADERS
 
 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
 ##############################################################################
@@ -1070,24 +1053,6 @@ list(APPEND VNET_HEADERS
 
 list(APPEND VNET_API_FILES span/span.api)
 
-##############################################################################
-# DNS proxy, API
-##############################################################################
-list(APPEND VNET_SOURCES
-  dns/dns.c
-  dns/dns.h
-  dns/dns_packet.h
-  dns/reply_node.c
-  dns/request_node.c
-  dns/resolver_process.c
-)
-
-list(APPEND VNET_HEADERS
-  dns/dns.h
-)
-
-list(APPEND VNET_API_FILES dns/dns.api)
-
 ##############################################################################
 # Packet generator
 ##############################################################################
@@ -1114,28 +1079,30 @@ list(APPEND VNET_API_FILES pg/pg.api)
 ##############################################################################
 
 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
-  devices/virtio/cli.c
-  devices/virtio/pci.c
+  devices/virtio/virtio_types_api.c
 )
 
 list(APPEND VNET_HEADERS
   devices/virtio/pci.h
   devices/virtio/virtio.h
   devices/virtio/vhost_user.h
+  devices/virtio/virtio_types_api.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
@@ -1144,6 +1111,7 @@ list(APPEND VNET_MULTIARCH_SOURCES
 list(APPEND VNET_API_FILES
   devices/virtio/vhost_user.api
   devices/virtio/virtio.api
+  devices/virtio/virtio_types.api
 )
 
 ##############################################################################
@@ -1220,22 +1188,6 @@ list(APPEND VNET_HEADERS
 
 list(APPEND VNET_API_FILES session/session.api)
 
-##############################################################################
-# session layer applications
-##############################################################################
-
-list(APPEND VNET_SOURCES
-  session-apps/echo_client.c
-  session-apps/echo_server.c
-  session-apps/http_server.c
-  session-apps/proxy.c
-)
-
-list(APPEND VNET_HEADERS
-  session-apps/echo_client.h
-  session-apps/proxy.h
-)
-
 ##############################################################################
 # TLS protocol
 ##############################################################################
@@ -1262,7 +1214,6 @@ list(APPEND VNET_SOURCES
 )
 
 list(APPEND VNET_MULTIARCH_SOURCES
-  devices/netmap/device.c
   devices/af_packet/device.c
 )
 
@@ -1272,24 +1223,6 @@ list(APPEND VNET_HEADERS
 
 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
 ##############################################################################
@@ -1337,20 +1270,22 @@ list(APPEND VNET_SOURCES
   fib/fib_node_list.c
   fib/fib_entry.c
   fib/fib_entry_src.c
-  fib/fib_entry_src_rr.c
+  fib/fib_entry_src_adj.c
+  fib/fib_entry_src_api.c
+  fib/fib_entry_src_drop.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_src_mpls.c
+  fib/fib_entry_src_simple.c
+  fib/fib_entry_src_rr.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_source.c
   fib/fib_urpf_list.c
   fib/fib_attached_export.c
   fib/fib_api.c
@@ -1368,8 +1303,11 @@ list(APPEND VNET_HEADERS
   fib/fib_node_list.h
   fib/fib_entry.h
   fib/fib_entry_delegate.h
+  fib/fib_source.h
 )
 
+list(APPEND VNET_API_FILES fib/fib_types.api)
+
 ##############################################################################
 # ADJ
 ##############################################################################
@@ -1399,6 +1337,7 @@ list(APPEND VNET_HEADERS
   adj/adj_glean.h
   adj/adj_nsh.h
   adj/adj_nbr.h
+  adj/adj_midchain.h
   adj/rewrite.h
 )
 
@@ -1424,6 +1363,7 @@ list(APPEND VNET_SOURCES
   dpo/mpls_label_dpo.c
   dpo/l3_proxy_dpo.c
   dpo/dvr_dpo.c
+  dpo/pw_cw.c
 )
 
 list(APPEND VNET_MULTIARCH_SOURCES
@@ -1454,6 +1394,7 @@ list(APPEND VNET_SOURCES
   mfib/mfib_forward.c
   mfib/ip4_mfib.c
   mfib/ip6_mfib.c
+  mfib/mfib_api.c
   mfib/mfib_types.c
   mfib/mfib_signal.c
   mfib/mfib_itf.c
@@ -1476,6 +1417,8 @@ list(APPEND VNET_HEADERS
   mfib/mfib_table.h
 )
 
+list(APPEND VNET_API_FILES mfib/mfib_types.api)
+
 ##############################################################################
 # Utilities
 ##############################################################################
@@ -1501,6 +1444,8 @@ list(APPEND VNET_SOURCES
   qos/qos_egress_map.c
   qos/qos_record.c
   qos/qos_record_node.c
+  qos/qos_store.c
+  qos/qos_store_node.c
   qos/qos_mark.c
   qos/qos_mark_node.c
 )
@@ -1570,6 +1515,57 @@ list(APPEND VNET_HEADERS
 
 list(APPEND VNET_API_FILES syslog/syslog.api)
 
+##############################################################################
+# Tunnel Endpoint Information Base
+##############################################################################
+
+list (APPEND VNET_SOURCES
+  teib/teib_api.c
+  teib/teib_cli.c
+  teib/teib.c
+)
+
+list(APPEND VNET_HEADERS
+  teib/teib.h
+)
+
+list(APPEND VNET_API_FILES teib/teib.api)
+
+##############################################################################
+# ARP/ND
+##############################################################################
+
+list (APPEND VNET_SOURCES
+  arp/arp_api.c
+  arp/arp.c
+  arp/arp_proxy.c
+)
+
+list(APPEND VNET_HEADERS
+  arp/arp.h
+)
+
+list(APPEND VNET_API_FILES arp/arp.api)
+
+list (APPEND VNET_SOURCES
+  ip6-nd/ip6_mld.c
+  ip6-nd/ip6_nd.c
+  ip6-nd/ip6_nd_api.c
+  ip6-nd/ip6_nd_proxy.c
+  ip6-nd/ip6_ra.c
+  ip6-nd/rd_cp.c
+  ip6-nd/rd_cp_api.c
+)
+
+list(APPEND VNET_HEADERS
+  ip6-nd/ip6_nd.h
+)
+
+list(APPEND VNET_API_FILES
+  ip6-nd/ip6_nd.api
+  ip6-nd/rd_cp.api
+)
+
 ##############################################################################
 # VNET Library
 ##############################################################################
@@ -1580,33 +1576,16 @@ add_vpp_library(vnet
   INSTALL_HEADERS ${VNET_HEADERS}
   API_FILES ${VNET_API_FILES}
   LINK_LIBRARIES vppinfra svm vlib ${OPENSSL_LIBRARIES}
-  DEPENDS api_headers
+  DEPENDS vpp_version_h api_headers
 )
 
 ##############################################################################
-# Session echo apps
-##############################################################################
-
-option(VPP_BUILD_SESSION_ECHO_APPS "Build session echo apps." ON)
-if(VPP_BUILD_SESSION_ECHO_APPS)
-  add_vpp_executable(tcp_echo
-    SOURCES ../tests/vnet/session/tcp_echo.c
-    LINK_LIBRARIES vlibmemoryclient svm vppinfra pthread m rt
-    DEPENDS api_headers
-    NO_INSTALL
-    )
-  add_vpp_executable(quic_echo
-    SOURCES ../tests/vnet/session/quic_echo.c
-    LINK_LIBRARIES vlibmemoryclient svm vppinfra pthread m rt
-    DEPENDS api_headers
-    NO_INSTALL
-    )
-  add_vpp_executable(udp_echo
-    SOURCES ../tests/vnet/session/udp_echo.c
-    LINK_LIBRARIES vlibmemoryclient svm vppinfra pthread m rt
-    DEPENDS api_headers
-    NO_INSTALL
-    )
-endif(VPP_BUILD_SESSION_ECHO_APPS)
+# vpp api test client library
+##############################################################################
+
+add_vpp_library (vatclient
+  SOURCES ip/ip_types_api.c
+  DEPENDS api_headers
+)
 
 ##############################################################################