BVI Interface
[vpp.git] / src / vnet / CMakeLists.txt
index 549b3ac..822ad68 100644 (file)
@@ -39,6 +39,12 @@ list(APPEND VNET_SOURCES
   misc.c
 )
 
+list(APPEND VNET_MULTIARCH_SOURCES
+  interface_output.c
+  interface_stats.c
+  handoff.c
+)
+
 list(APPEND VNET_HEADERS
   api_errno.h
   buffer.h
@@ -74,6 +80,10 @@ list(APPEND VNET_SOURCES
   policer/policer_api.c
 )
 
+list(APPEND VNET_MULTIARCH_SOURCES
+  policer/node_funcs.c
+)
+
 list(APPEND VNET_HEADERS
   policer/police.h
   policer/policer.h
@@ -93,6 +103,12 @@ list(APPEND VNET_SOURCES
   cop/cop_api.c
 )
 
+list(APPEND VNET_MULTIARCH_SOURCES
+  cop/node1.c
+  cop/ip4_whitelist.c
+  cop/ip6_whitelist.c
+)
+
 list(APPEND VNET_HEADERS
   cop/cop.h
 )
@@ -120,11 +136,15 @@ list(APPEND VNET_SOURCES
   ethernet/p2p_ethernet_api.c
 )
 
-list(APPEND VNET_MULTIARCH_SOURCES ethernet/node.c)
+list(APPEND VNET_MULTIARCH_SOURCES
+  ethernet/node.c
+  ethernet/p2p_ethernet_input.c
+)
 
 list(APPEND VNET_HEADERS
   ethernet/error.def
   ethernet/ethernet.h
+  ethernet/mac_address.h
   ethernet/packet.h
   ethernet/types.def
   ethernet/sfp.h
@@ -141,6 +161,7 @@ list(APPEND VNET_SOURCES
   l2/l2_api.c
   l2/l2_bd.c
   l2/l2_bvi.c
+  l2/l2_bvi_node.c
   l2/l2_input_classify.c
   l2/l2_output_classify.c
   l2/l2_efp_filter.c
@@ -152,13 +173,32 @@ list(APPEND VNET_SOURCES
   l2/l2_learn.c
   l2/l2_output.c
   l2/l2_in_out_acl.c
+  l2/l2_in_out_feat_arc.c
   l2/l2_patch.c
   l2/l2_rw.c
+  l2/l2_uu_fwd.c
   l2/l2_vtr.c
   l2/l2_xcrw.c
 )
 
-list(APPEND VNET_MULTIARCH_SOURCES l2/l2_output.c l2/l2_learn.c)
+list(APPEND VNET_MULTIARCH_SOURCES
+  l2/l2_bvi_node.c
+  l2/l2_fwd.c
+  l2/l2_learn.c
+  l2/l2_output.c
+  l2/l2_patch.c
+  l2/l2_in_out_feat_arc.c
+  l2/l2_input_classify.c
+  l2/l2_input.c
+  l2/l2_output_classify.c
+  l2/l2_flood.c
+  l2/l2_uu_fwd.c
+  l2/l2_efp_filter.c
+  l2/l2_rw.c
+  l2/l2_xcrw.c
+  l2/l2_in_out_acl.c
+  l2/l2_input_vtr.c
+)
 
 list(APPEND VNET_HEADERS
   l2/feat_bitmap.h
@@ -260,6 +300,10 @@ list(APPEND VNET_SOURCES
   vxlan/vxlan_api.c
 )
 
+list(APPEND VNET_MULTIARCH_SOURCES
+  vxlan/encap.c
+)
+
 list(APPEND VNET_HEADERS
   vxlan/vxlan.h
   vxlan/vxlan_packet.h
@@ -280,6 +324,11 @@ list(APPEND VNET_SOURCES
   geneve/geneve_api.c
 )
 
+list(APPEND VNET_MULTIARCH_SOURCES
+  geneve/encap.c
+  geneve/decap.c
+)
+
 list(APPEND VNET_HEADERS
   geneve/geneve.h
   geneve/geneve_packet.h
@@ -302,7 +351,7 @@ list(APPEND VNET_HEADERS
   bonding/node.h
 )
 
-list(APPEND VNET_MULTIARCH_SOURCES bonding/node.c)
+list(APPEND VNET_MULTIARCH_SOURCES bonding/node.c bonding/device.c)
 list(APPEND VNET_API_FILES bonding/bond.api)
 
 ##############################################################################
@@ -337,6 +386,11 @@ list(APPEND VNET_SOURCES
   classify/classify_api.c
 )
 
+list(APPEND VNET_MULTIARCH_SOURCES
+  classify/ip_classify.c
+  classify/flow_classify_node.c
+)
+
 list(APPEND VNET_HEADERS
   classify/vnet_classify.h
   classify/in_out_acl.h
@@ -393,6 +447,18 @@ list(APPEND VNET_SOURCES
   ip/punt.c
 )
 
+list(APPEND VNET_MULTIARCH_SOURCES
+  ip/ip4_source_check.c
+  ip/ip4_punt_drop.c
+  ip/ip4_reassembly.c
+  ip/ip6_hop_by_hop.c
+  ip/ip6_reassembly.c
+  ip/ip6_input.c
+  ip/ip6_punt_drop.c
+  ip/punt.c
+  ip/ip_in_out_acl.c
+)
+
 list(APPEND VNET_HEADERS
   ip/format.h
   ip/icmp46_packet.h
@@ -426,7 +492,11 @@ list(APPEND VNET_API_FILES
   ip/punt.api
 )
 
-list(APPEND VNET_MULTIARCH_SOURCES ip/ip4_forward.c ip/ip4_input.c)
+list(APPEND VNET_MULTIARCH_SOURCES
+  ip/ip4_forward.c
+  ip/ip6_forward.c
+  ip/ip4_input.c
+)
 
 ##############################################################################
 # Layer 2/3 ARP
@@ -462,6 +532,20 @@ list(APPEND VNET_SOURCES
 
 list(APPEND VNET_API_FILES bfd/bfd.api)
 
+##############################################################################
+# Crypto
+##############################################################################
+
+list(APPEND VNET_SOURCES
+  crypto/cli.c
+  crypto/crypto.c
+  crypto/format.c
+)
+
+list(APPEND VNET_HEADERS
+  crypto/crypto.h
+)
+
 ##############################################################################
 # Layer 3 protocol: IPSec
 ##############################################################################
@@ -472,19 +556,27 @@ list(APPEND VNET_SOURCES
   ipsec/ipsec_input.c
   ipsec/ipsec_if.c
   ipsec/ipsec_if_in.c
+  ipsec/ipsec_sa.c
+  ipsec/ipsec_spd.c
+  ipsec/ipsec_spd_policy.c
   ipsec/esp_format.c
   ipsec/esp_encrypt.c
   ipsec/esp_decrypt.c
   ipsec/ah_decrypt.c
   ipsec/ah_encrypt.c
-  ipsec/ikev2.c
-  ipsec/ikev2_crypto.c
-  ipsec/ikev2_cli.c
-  ipsec/ikev2_payload.c
-  ipsec/ikev2_format.c
   ipsec/ipsec_api.c
 )
 
+list(APPEND VNET_MULTIARCH_SOURCES
+  ipsec/esp_encrypt.c
+  ipsec/esp_decrypt.c
+  ipsec/ah_decrypt.c
+  ipsec/ah_encrypt.c
+  ipsec/ipsec_if_in.c
+  ipsec/ipsec_output.c
+  ipsec/ipsec_input.c
+)
+
 list(APPEND VNET_API_FILES ipsec/ipsec.api)
 
 list(APPEND VNET_SOURCES
@@ -493,10 +585,12 @@ list(APPEND VNET_SOURCES
 
 list(APPEND VNET_HEADERS
   ipsec/ipsec.h
+  ipsec/ipsec_spd.h
+  ipsec/ipsec_spd_policy.h
+  ipsec/ipsec_sa.h
+  ipsec/ipsec_if.h
   ipsec/esp.h
   ipsec/ah.h
-  ipsec/ikev2.h
-  ipsec/ikev2_priv.h
 )
 
 ##############################################################################
@@ -523,9 +617,16 @@ list(APPEND VNET_SOURCES
   tcp/tcp_output.c
   tcp/tcp_input.c
   tcp/tcp_newreno.c
+  tcp/tcp_cubic.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
@@ -550,6 +651,11 @@ list(APPEND VNET_SOURCES
   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
@@ -567,9 +673,15 @@ list(APPEND VNET_SOURCES
   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
@@ -590,6 +702,11 @@ list(APPEND VNET_SOURCES
   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
@@ -609,6 +726,10 @@ list(APPEND VNET_SOURCES
   ipip/ipip_cli.c
 )
 
+list(APPEND VNET_MULTIARCH_SOURCES
+  ipip/node.c
+)
+
 list(APPEND VNET_HEADERS
   ipip/ipip.h
 )
@@ -626,6 +747,11 @@ list(APPEND VNET_SOURCES
   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
@@ -648,6 +774,13 @@ list(APPEND VNET_SOURCES
   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
@@ -666,6 +799,12 @@ list(APPEND VNET_SOURCES
   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
@@ -687,6 +826,10 @@ list(APPEND VNET_SOURCES
   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
@@ -705,6 +848,11 @@ list(APPEND VNET_SOURCES
   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
@@ -781,6 +929,10 @@ list(APPEND VNET_SOURCES
   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
@@ -883,6 +1035,10 @@ list(APPEND VNET_SOURCES
   lawful-intercept/node.c
 )
 
+list(APPEND VNET_MULTIARCH_SOURCES
+  lawful-intercept/node.c
+)
+
 list(APPEND VNET_HEADERS
   lawful-intercept/lawful_intercept.h
 )
@@ -897,6 +1053,10 @@ list(APPEND VNET_SOURCES
   span/node.c
 )
 
+list(APPEND VNET_MULTIARCH_SOURCES
+  span/node.c
+)
+
 list(APPEND VNET_HEADERS
   span/span.h
 )
@@ -954,9 +1114,13 @@ list(APPEND VNET_SOURCES
   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
 )
 
 list(APPEND VNET_HEADERS
+  devices/virtio/pci.h
   devices/virtio/virtio.h
   devices/virtio/vhost_user.h
 )
@@ -964,9 +1128,16 @@ list(APPEND VNET_HEADERS
 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)
+list(APPEND VNET_API_FILES
+  devices/virtio/vhost_user.api
+  devices/virtio/virtio.api
+)
 
 ##############################################################################
 # tap interface (with virtio backend)
@@ -1011,11 +1182,12 @@ list(APPEND VNET_SOURCES
   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_test.c
   session/session_api.c
 )
 
@@ -1023,12 +1195,13 @@ list(APPEND VNET_HEADERS
   session/session.h
   session/session_table.h
   session/session_rules_table.h
-  session/stream_session.h
+  session/session_types.h
   session/session_lookup.h
   session/application.h
   session/transport.h
-  session/transport_interface.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
@@ -1066,6 +1239,7 @@ list(APPEND VNET_SOURCES
 
 list(APPEND VNET_HEADERS
   tls/tls.h
+  tls/tls_test.h
 )
 
 ##############################################################################
@@ -1080,6 +1254,11 @@ list(APPEND VNET_SOURCES
   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
 )
@@ -1128,27 +1307,19 @@ list(APPEND VNET_API_FILES feature/feature.api)
 
 list(APPEND VNET_SOURCES
   unix/gdb_funcs.c
-  unix/pcap.c
-  unix/tap_api.c
-  unix/tapcli.c
   unix/tuntap.c
 )
 
 list(APPEND VNET_HEADERS
-  unix/pcap.h
   unix/tuntap.h
-  unix/tapcli.h
 )
 
-list(APPEND VNET_API_FILES unix/tap.api)
-
 ##############################################################################
 # FIB
 ##############################################################################
 
 list(APPEND VNET_SOURCES
   fib/fib.c
-  fib/fib_test.c
   fib/ip4_fib.c
   fib/ip6_fib.c
   fib/mpls_fib.c
@@ -1209,6 +1380,11 @@ list(APPEND VNET_SOURCES
   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
@@ -1242,6 +1418,14 @@ list(APPEND VNET_SOURCES
   dpo/dvr_dpo.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
@@ -1259,7 +1443,6 @@ list(APPEND VNET_HEADERS
 ##############################################################################
 
 list(APPEND VNET_SOURCES
-  mfib/mfib_test.c
   mfib/mfib_forward.c
   mfib/ip4_mfib.c
   mfib/ip6_mfib.c
@@ -1267,9 +1450,18 @@ list(APPEND VNET_SOURCES
   mfib/mfib_signal.c
   mfib/mfib_itf.c
   mfib/mfib_entry.c
+  mfib/mfib_entry.c
+  mfib/mfib_entry_cover.c
+  mfib/mfib_entry_delegate.c
+  mfib/mfib_entry_src.c
+  mfib/mfib_entry_src_rr.c
   mfib/mfib_table.c
 )
 
+list(APPEND VNET_MULTIARCH_SOURCES
+  mfib/mfib_forward.c
+)
+
 list(APPEND VNET_HEADERS
   mfib/ip4_mfib.h
   mfib/mfib_types.h
@@ -1300,7 +1492,14 @@ list(APPEND VNET_SOURCES
   qos/qos_api.c
   qos/qos_egress_map.c
   qos/qos_record.c
+  qos/qos_record_node.c
   qos/qos_mark.c
+  qos/qos_mark_node.c
+)
+
+list(APPEND VNET_MULTIARCH_SOURCES
+  qos/qos_record_node.c
+  qos/qos_mark_node.c
 )
 
 list(APPEND VNET_API_FILES qos/qos.api)
@@ -1319,7 +1518,6 @@ list(APPEND VNET_SOURCES
   bier/bier_output.c
   bier/bier_table.c
   bier/bier_types.c
-  bier/bier_test.c
   bier/bier_api.c
   bier/bier_drop.c
   bier/bier_update.c
@@ -1332,6 +1530,12 @@ list(APPEND VNET_SOURCES
   bier/bier_bift_table.c
 )
 
+list(APPEND VNET_MULTIARCH_SOURCES
+  bier/bier_disp_dispatch_node.c
+  bier/bier_disp_lookup_node.c
+  bier/bier_imp_node.c
+)
+
 list(APPEND VNET_HEADERS
   bier/bier_types.h
   bier/bier_entry.h
@@ -1341,6 +1545,27 @@ list(APPEND VNET_HEADERS
 
 list(APPEND VNET_API_FILES bier/bier.api)
 
+##############################################################################
+# SYSLOG
+##############################################################################
+
+list (APPEND VNET_SOURCES
+  syslog/syslog_api.c
+  syslog/syslog_udp.c
+  syslog/syslog.c
+)
+
+list(APPEND VNET_HEADERS
+  syslog/syslog_udp.h
+  syslog/syslog.h
+)
+
+list(APPEND VNET_API_FILES syslog/syslog.api)
+
+##############################################################################
+# VNET Library
+##############################################################################
+
 add_vpp_library(vnet
   SOURCES ${VNET_SOURCES}
   MULTIARCH_SOURCES ${VNET_MULTIARCH_SOURCES}
@@ -1349,3 +1574,25 @@ add_vpp_library(vnet
   LINK_LIBRARIES vppinfra svm vlib ${OPENSSL_LIBRARIES}
   DEPENDS 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(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)
+
+##############################################################################