1 # Copyright (c) 2018 Cisco and/or its affiliates.
2 # Licensed under the Apache License, Version 2.0 (the "License");
3 # you may not use this file except in compliance with the License.
4 # You may obtain a copy of the License at:
6 # http://www.apache.org/licenses/LICENSE-2.0
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 # See the License for the specific language governing permissions and
12 # limitations under the License.
14 add_definitions (-DWITH_LIBSSL=1)
15 include_directories(${OPENSSL_INCLUDE_DIR})
20 unset(VNET_MULTIARCH_SOURCES)
22 ##############################################################################
24 ##############################################################################
25 list(APPEND VNET_SOURCES
42 list(APPEND VNET_MULTIARCH_SOURCES
47 list(APPEND VNET_HEADERS
70 list(APPEND VNET_API_FILES interface.api)
72 ##############################################################################
74 ##############################################################################
75 list(APPEND VNET_SOURCES
82 list(APPEND VNET_HEADERS
88 list(APPEND VNET_API_FILES policer/policer.api)
90 ##############################################################################
92 ##############################################################################
93 list(APPEND VNET_SOURCES
101 list(APPEND VNET_MULTIARCH_SOURCES
107 list(APPEND VNET_HEADERS
111 list(APPEND VNET_API_FILES cop/cop.api)
113 ##############################################################################
114 # Layer 2 protocols go here
115 ##############################################################################
117 ##############################################################################
118 # Layer 2 protocol: Ethernet
119 ##############################################################################
120 list(APPEND VNET_SOURCES
121 ethernet/ethernet_types_api.c
125 ethernet/mac_address.c
129 ethernet/p2p_ethernet.c
130 ethernet/p2p_ethernet_input.c
131 ethernet/p2p_ethernet_api.c
134 list(APPEND VNET_MULTIARCH_SOURCES ethernet/node.c)
136 list(APPEND VNET_HEADERS
139 ethernet/mac_address.h
143 ethernet/p2p_ethernet.h
146 list(APPEND VNET_API_FILES ethernet/p2p_ethernet.api)
148 ##############################################################################
149 # Layer 2 protocol: Ethernet bridging
150 ##############################################################################
151 list(APPEND VNET_SOURCES
156 l2/l2_input_classify.c
157 l2/l2_output_classify.c
167 l2/l2_in_out_feat_arc.c
175 list(APPEND VNET_MULTIARCH_SOURCES
182 list(APPEND VNET_HEADERS
199 list(APPEND VNET_API_FILES l2/l2.api)
201 ##############################################################################
202 # Layer 2 protocol: SRP
203 ##############################################################################
204 list(APPEND VNET_SOURCES
211 list(APPEND VNET_HEADERS
216 ##############################################################################
217 # Layer 2 protocol: PPP
218 ##############################################################################
219 list(APPEND VNET_SOURCES
225 list(APPEND VNET_HEADERS
231 ##############################################################################
232 # Layer 2 protocol: HDLC
233 ##############################################################################
234 list(APPEND VNET_SOURCES
240 list(APPEND VNET_HEADERS
246 ##############################################################################
247 # Layer 2 protocol: LLC
248 ##############################################################################
249 list(APPEND VNET_SOURCES
255 list(APPEND VNET_HEADERS
259 ##############################################################################
260 # Layer 2 protocol: SNAP
261 ##############################################################################
262 list(APPEND VNET_SOURCES
268 list(APPEND VNET_HEADERS
272 ##############################################################################
274 ##############################################################################
275 list(APPEND VNET_SOURCES
282 list(APPEND VNET_MULTIARCH_SOURCES
286 list(APPEND VNET_HEADERS
289 vxlan/vxlan_error.def
292 list(APPEND VNET_MULTIARCH_SOURCES vxlan/decap.c)
294 list(APPEND VNET_API_FILES vxlan/vxlan.api)
296 ##############################################################################
298 ##############################################################################
299 list(APPEND VNET_SOURCES
306 list(APPEND VNET_MULTIARCH_SOURCES
311 list(APPEND VNET_HEADERS
313 geneve/geneve_packet.h
314 geneve/geneve_error.def
317 list(APPEND VNET_API_FILES geneve/geneve.api)
319 ##############################################################################
321 ##############################################################################
322 list(APPEND VNET_SOURCES
329 list(APPEND VNET_HEADERS
333 list(APPEND VNET_MULTIARCH_SOURCES bonding/node.c bonding/device.c)
334 list(APPEND VNET_API_FILES bonding/bond.api)
336 ##############################################################################
338 ##############################################################################
339 list(APPEND VNET_SOURCES
347 list(APPEND VNET_HEADERS
352 list(APPEND VNET_API_FILES lldp/lldp.api)
354 ##############################################################################
355 # Layer 2/3 "classify"
356 ##############################################################################
357 list(APPEND VNET_SOURCES
358 classify/vnet_classify.c
359 classify/ip_classify.c
360 classify/in_out_acl.c
361 classify/policer_classify.c
362 classify/flow_classify.c
363 classify/flow_classify_node.c
364 classify/vnet_classify.h
365 classify/classify_api.c
368 list(APPEND VNET_HEADERS
369 classify/vnet_classify.h
370 classify/in_out_acl.h
371 classify/policer_classify.h
372 classify/flow_classify.h
375 list(APPEND VNET_API_FILES classify/classify.api)
377 ##############################################################################
378 # Layer 3 protocols go here
379 ##############################################################################
381 ##############################################################################
382 # Layer 3 protocol: IP v4/v6
383 ##############################################################################
384 list(APPEND VNET_SOURCES
397 ip/ip4_source_and_port_range_check.c
398 ip/ip4_source_check.c
424 list(APPEND VNET_HEADERS
437 ip/ip6_hop_by_hop_packet.h
442 ip/ip_source_and_port_range_check.h
451 list(APPEND VNET_API_FILES
457 list(APPEND VNET_MULTIARCH_SOURCES
463 ##############################################################################
465 ##############################################################################
466 list(APPEND VNET_SOURCES
470 list(APPEND VNET_HEADERS
471 ethernet/arp_packet.h
475 ##############################################################################
476 # Bidirectional Forwarding Detection
477 ##############################################################################
479 list(APPEND VNET_HEADERS
486 list(APPEND VNET_SOURCES
495 list(APPEND VNET_API_FILES bfd/bfd.api)
497 ##############################################################################
498 # Layer 3 protocol: IPSec
499 ##############################################################################
500 list(APPEND VNET_SOURCES
509 ipsec/ipsec_spd_policy.c
518 list(APPEND VNET_MULTIARCH_SOURCES
528 list(APPEND VNET_API_FILES ipsec/ipsec.api)
530 list(APPEND VNET_SOURCES
534 list(APPEND VNET_HEADERS
537 ipsec/ipsec_spd_policy.h
544 ##############################################################################
545 # Layer 3 protocol: osi
546 ##############################################################################
547 list(APPEND VNET_SOURCES
553 list(APPEND VNET_HEADERS
557 ##############################################################################
558 # Layer 4 protocol: tcp
559 ##############################################################################
560 list(APPEND VNET_SOURCES
564 tcp/tcp_syn_filter4.c
572 list(APPEND VNET_MULTIARCH_SOURCES
575 tcp/tcp_syn_filter4.c
578 list(APPEND VNET_HEADERS
586 list(APPEND VNET_API_FILES tcp/tcp.api)
588 ##############################################################################
589 # Layer 4 protocol: udp
590 ##############################################################################
591 list(APPEND VNET_SOURCES
602 list(APPEND VNET_MULTIARCH_SOURCES
607 list(APPEND VNET_HEADERS
613 list(APPEND VNET_API_FILES udp/udp.api)
615 ##############################################################################
616 # Layer 4 protocol: sctp
617 ##############################################################################
618 list(APPEND VNET_SOURCES
624 sctp/sctp_output_node.c
628 list(APPEND VNET_MULTIARCH_SOURCES
629 sctp/sctp_output_node.c
633 list(APPEND VNET_HEADERS
640 list(APPEND VNET_API_FILES sctp/sctp.api)
642 ##############################################################################
643 # Tunnel protocol: gre
644 ##############################################################################
645 list(APPEND VNET_SOURCES
653 list(APPEND VNET_MULTIARCH_SOURCES
658 list(APPEND VNET_HEADERS
664 list(APPEND VNET_API_FILES gre/gre.api)
666 ##############################################################################
667 # Tunnel protocol: ipip
668 ##############################################################################
669 list(APPEND VNET_SOURCES
677 list(APPEND VNET_MULTIARCH_SOURCES
681 list(APPEND VNET_HEADERS
685 list(APPEND VNET_API_FILES ipip/ipip.api)
687 ##############################################################################
688 # Tunnel protocol: l2tpv3
689 ##############################################################################
690 list(APPEND VNET_SOURCES
698 list(APPEND VNET_HEADERS
703 list(APPEND VNET_API_FILES l2tp/l2tp.api)
705 ##############################################################################
706 # Tunnel protocol: gre+mpls
707 ##############################################################################
708 list(APPEND VNET_SOURCES
720 list(APPEND VNET_MULTIARCH_SOURCES
727 list(APPEND VNET_HEADERS
735 list(APPEND VNET_API_FILES mpls/mpls.api)
737 ##############################################################################
738 # Tunnel protocol: vxlan-gbp
739 ##############################################################################
740 list(APPEND VNET_SOURCES
743 vxlan-gbp/vxlan_gbp_api.c
744 vxlan-gbp/vxlan_gbp.c
745 vxlan-gbp/vxlan_gbp_packet.c
748 list (APPEND VNET_MULTIARCH_SOURCES
753 list(APPEND VNET_HEADERS
754 vxlan-gbp/vxlan_gbp.h
755 vxlan-gbp/vxlan_gbp_packet.h
756 vxlan-gbp/vxlan_gbp_error.def
759 list(APPEND VNET_API_FILES vxlan-gbp/vxlan_gbp.api)
761 ##############################################################################
762 # Tunnel protocol: vxlan-gpe
763 ##############################################################################
765 list(APPEND VNET_SOURCES
766 vxlan-gpe/vxlan_gpe.c
769 vxlan-gpe/vxlan_gpe_api.c
772 list (APPEND VNET_MULTIARCH_SOURCES
776 list(APPEND VNET_HEADERS
777 vxlan-gpe/vxlan_gpe.h
778 vxlan-gpe/vxlan_gpe_packet.h
779 vxlan-gpe/vxlan_gpe_error.def
782 list(APPEND VNET_API_FILES vxlan-gpe/vxlan_gpe.api)
784 ##############################################################################
785 # Tunnel protocol: ipsec+gre
786 ##############################################################################
787 list(APPEND VNET_SOURCES
788 ipsec-gre/ipsec_gre.c
790 ipsec-gre/interface.c
791 ipsec-gre/ipsec_gre_api.c
794 list(APPEND VNET_HEADERS
795 ipsec-gre/ipsec_gre.h
799 list(APPEND VNET_API_FILES ipsec-gre/ipsec_gre.api)
801 ##############################################################################
802 # LISP control plane: lisp-cp
803 ##############################################################################
805 list(APPEND VNET_SOURCES
807 lisp-cp/lisp_cp_dpo.c
809 lisp-cp/gid_dictionary.c
810 lisp-cp/lisp_msg_serdes.c
818 list(APPEND VNET_HEADERS
821 lisp-cp/gid_dictionary.h
822 lisp-cp/lisp_cp_messages.h
823 lisp-cp/lisp_msg_serdes.h
827 list(APPEND VNET_API_FILES lisp-cp/lisp.api)
828 list(APPEND VNET_API_FILES lisp-cp/one.api)
830 ##############################################################################
831 # Tunnel protocol: lisp-gpe
832 ##############################################################################
834 list(APPEND VNET_SOURCES
836 lisp-gpe/lisp_gpe_sub_interface.c
837 lisp-gpe/lisp_gpe_adjacency.c
838 lisp-gpe/lisp_gpe_tunnel.c
839 lisp-gpe/lisp_gpe_fwd_entry.c
840 lisp-gpe/lisp_gpe_tenant.c
843 lisp-gpe/lisp_gpe_api.c
846 list(APPEND VNET_HEADERS
848 lisp-gpe/lisp_gpe_fwd_entry.h
849 lisp-gpe/lisp_gpe_tenant.h
850 lisp-gpe/lisp_gpe_packet.h
851 lisp-gpe/lisp_gpe_error.def
854 list(APPEND VNET_API_FILES lisp-gpe/lisp_gpe.api)
856 ##############################################################################
858 ##############################################################################
859 list(APPEND VNET_SOURCES
861 dhcp/dhcp_client_detect.c
862 dhcp/dhcp6_client_common_dp.c
863 dhcp/dhcp6_pd_client_dp.c
864 dhcp/dhcp6_pd_client_cp.c
865 dhcp/dhcp6_ia_na_client_dp.c
866 dhcp/dhcp6_ia_na_client_cp.c
870 list(APPEND VNET_HEADERS
872 dhcp/dhcp6_client_common_dp.h
873 dhcp/dhcp6_pd_client_dp.h
874 dhcp/dhcp6_ia_na_client_dp.h
877 list(APPEND VNET_API_FILES
879 dhcp/dhcp6_pd_client_cp.api
880 dhcp/dhcp6_ia_na_client_cp.api
883 ##############################################################################
885 ##############################################################################
886 list(APPEND VNET_SOURCES
887 dhcp/dhcp6_proxy_node.c
888 dhcp/dhcp4_proxy_node.c
892 list(APPEND VNET_HEADERS
896 dhcp/dhcp6_proxy_error.def
897 dhcp/dhcp4_proxy_error.def
900 ##############################################################################
901 # ipv6 segment routing
902 ##############################################################################
904 list(APPEND VNET_SOURCES
907 srv6/sr_policy_rewrite.c
912 list(APPEND VNET_HEADERS
917 list(APPEND VNET_API_FILES srv6/sr.api)
919 ##############################################################################
920 # mpls segment routing
921 ##############################################################################
923 list(APPEND VNET_SOURCES
924 srmpls/sr_mpls_policy.c
925 srmpls/sr_mpls_steering.c
929 list(APPEND VNET_HEADERS
933 list(APPEND VNET_API_FILES srmpls/sr_mpls.api)
935 ##############################################################################
936 # IPFIX / netflow v10
937 ##############################################################################
938 list(APPEND VNET_SOURCES
939 ipfix-export/flow_report.c
940 ipfix-export/flow_api.c
943 list(APPEND VNET_HEADERS
944 ipfix-export/flow_report.h
945 ipfix-export/ipfix_info_elements.h
946 ipfix-export/ipfix_packet.h
949 list(APPEND VNET_API_FILES ipfix-export/ipfix_export.api)
951 ##############################################################################
952 # IPFIX classify code
953 ##############################################################################
955 list(APPEND VNET_SOURCES
956 ipfix-export/flow_report_classify.c
959 list(APPEND VNET_HEADERS
960 ipfix-export/flow_report_classify.h
963 ##############################################################################
965 ##############################################################################
967 list(APPEND VNET_SOURCES
968 lawful-intercept/lawful_intercept.c
969 lawful-intercept/node.c
972 list(APPEND VNET_HEADERS
973 lawful-intercept/lawful_intercept.h
976 ##############################################################################
977 # SPAN (port mirroring)
978 ##############################################################################
980 list(APPEND VNET_SOURCES
986 list(APPEND VNET_MULTIARCH_SOURCES
990 list(APPEND VNET_HEADERS
994 list(APPEND VNET_API_FILES span/span.api)
996 ##############################################################################
998 ##############################################################################
999 list(APPEND VNET_SOURCES
1005 dns/resolver_process.c
1008 list(APPEND VNET_HEADERS
1012 list(APPEND VNET_API_FILES dns/dns.api)
1014 ##############################################################################
1016 ##############################################################################
1018 list(APPEND VNET_SOURCES
1028 list(APPEND VNET_HEADERS
1033 list(APPEND VNET_API_FILES pg/pg.api)
1035 ##############################################################################
1037 ##############################################################################
1039 list(APPEND VNET_SOURCES
1040 devices/virtio/device.c
1041 devices/virtio/node.c
1042 devices/virtio/vhost_user.c
1043 devices/virtio/vhost_user_input.c
1044 devices/virtio/vhost_user_output.c
1045 devices/virtio/vhost_user_api.c
1046 devices/virtio/virtio.c
1047 devices/virtio/virtio_api.c
1048 devices/virtio/cli.c
1049 devices/virtio/pci.c
1052 list(APPEND VNET_HEADERS
1053 devices/virtio/pci.h
1054 devices/virtio/virtio.h
1055 devices/virtio/vhost_user.h
1058 list(APPEND VNET_MULTIARCH_SOURCES
1059 devices/virtio/vhost_user_input.c
1060 devices/virtio/vhost_user_output.c
1061 devices/netmap/node.c
1062 devices/virtio/node.c
1063 devices/af_packet/node.c
1066 list(APPEND VNET_API_FILES
1067 devices/virtio/vhost_user.api
1068 devices/virtio/virtio.api
1071 ##############################################################################
1072 # tap interface (with virtio backend)
1073 ##############################################################################
1075 list(APPEND VNET_SOURCES
1078 devices/tap/tapv2_api.c
1081 list(APPEND VNET_HEADERS
1085 list(APPEND VNET_API_FILES devices/tap/tapv2.api)
1087 ##############################################################################
1088 # tap interface (with virtio backend)
1089 ##############################################################################
1091 list(APPEND VNET_SOURCES
1092 devices/pipe/pipe_api.c
1096 list(APPEND VNET_HEADERS
1100 list(APPEND VNET_API_FILES devices/pipe/pipe.api)
1102 ##############################################################################
1103 # session managmeent
1104 ##############################################################################
1106 list(APPEND VNET_SOURCES
1108 session/session_table.c
1109 session/session_rules_table.c
1110 session/session_lookup.c
1111 session/session_node.c
1113 session/application.c
1114 session/application_worker.c
1115 session/session_cli.c
1116 session/application_interface.c
1117 session/application_local.c
1118 session/application_namespace.c
1119 session/segment_manager.c
1120 session/session_api.c
1123 list(APPEND VNET_HEADERS
1125 session/session_table.h
1126 session/session_rules_table.h
1127 session/session_types.h
1128 session/session_lookup.h
1129 session/application.h
1131 session/transport_types.h
1132 session/application_interface.h
1133 session/application_local.h
1134 session/application_namespace.h
1135 session/session_debug.h
1136 session/segment_manager.h
1137 session/mma_template.h
1138 session/mma_template.c
1143 list(APPEND VNET_API_FILES session/session.api)
1145 ##############################################################################
1146 # session layer applications
1147 ##############################################################################
1149 list(APPEND VNET_SOURCES
1150 session-apps/echo_client.c
1151 session-apps/echo_server.c
1152 session-apps/http_server.c
1153 session-apps/proxy.c
1156 list(APPEND VNET_HEADERS
1157 session-apps/echo_client.h
1158 session-apps/proxy.h
1161 ##############################################################################
1163 ##############################################################################
1165 list(APPEND VNET_SOURCES
1169 list(APPEND VNET_HEADERS
1174 ##############################################################################
1175 # Linux packet interface
1176 ##############################################################################
1178 list(APPEND VNET_SOURCES
1179 devices/af_packet/af_packet.c
1180 devices/af_packet/device.c
1181 devices/af_packet/node.c
1182 devices/af_packet/cli.c
1183 devices/af_packet/af_packet_api.c
1186 list(APPEND VNET_HEADERS
1187 devices/af_packet/af_packet.h
1190 list(APPEND VNET_API_FILES devices/af_packet/af_packet.api)
1192 ##############################################################################
1194 ##############################################################################
1196 list(APPEND VNET_SOURCES
1197 devices/netmap/netmap.c
1198 devices/netmap/device.c
1199 devices/netmap/node.c
1200 devices/netmap/cli.c
1201 devices/netmap/netmap_api.c
1204 list(APPEND VNET_HEADERS
1205 devices/netmap/netmap.h
1208 list(APPEND VNET_API_FILES devices/netmap/netmap.api)
1210 ##############################################################################
1211 # Driver feature graph arc support
1212 ##############################################################################
1214 list(APPEND VNET_SOURCES
1216 feature/feature_api.c
1217 feature/registration.c
1220 list(APPEND VNET_HEADERS
1224 list(APPEND VNET_API_FILES feature/feature.api)
1226 ##############################################################################
1227 # Unix kernel related
1228 ##############################################################################
1230 # FIXME: unix/hgshm.c
1232 list(APPEND VNET_SOURCES
1237 list(APPEND VNET_HEADERS
1241 ##############################################################################
1243 ##############################################################################
1245 list(APPEND VNET_SOURCES
1257 fib/fib_entry_src_rr.c
1258 fib/fib_entry_src_interface.c
1259 fib/fib_entry_src_interpose.c
1260 fib/fib_entry_src_default_route.c
1261 fib/fib_entry_src_special.c
1262 fib/fib_entry_src_api.c
1263 fib/fib_entry_src_adj.c
1264 fib/fib_entry_src_mpls.c
1265 fib/fib_entry_src_lisp.c
1266 fib/fib_entry_cover.c
1267 fib/fib_entry_delegate.c
1272 fib/fib_attached_export.c
1277 list(APPEND VNET_HEADERS
1287 fib/fib_entry_delegate.h
1290 ##############################################################################
1292 ##############################################################################
1294 list(APPEND VNET_SOURCES
1307 list(APPEND VNET_MULTIARCH_SOURCES
1312 list(APPEND VNET_HEADERS
1321 ##############################################################################
1322 # Data-Plane Objects
1323 ##############################################################################
1325 list(APPEND VNET_SOURCES
1333 dpo/load_balance_map.c
1337 dpo/interface_rx_dpo.c
1338 dpo/interface_tx_dpo.c
1339 dpo/mpls_disposition.c
1340 dpo/mpls_label_dpo.c
1345 list(APPEND VNET_HEADERS
1357 ##############################################################################
1359 ##############################################################################
1361 list(APPEND VNET_SOURCES
1370 mfib/mfib_entry_cover.c
1371 mfib/mfib_entry_delegate.c
1372 mfib/mfib_entry_src.c
1373 mfib/mfib_entry_src_rr.c
1377 list(APPEND VNET_HEADERS
1383 ##############################################################################
1385 ##############################################################################
1387 list(APPEND VNET_SOURCES
1394 list(APPEND VNET_HEADERS
1398 ##############################################################################
1400 ##############################################################################
1402 list(APPEND VNET_SOURCES
1405 qos/qos_egress_map.c
1407 qos/qos_record_node.c
1412 list(APPEND VNET_MULTIARCH_SOURCES
1413 qos/qos_record_node.c
1417 list(APPEND VNET_API_FILES qos/qos.api)
1419 ##############################################################################
1421 ##############################################################################
1423 list(APPEND VNET_SOURCES
1424 bier/bier_bit_string.c
1427 bier/bier_fmask_db.c
1436 bier/bier_imp_node.c
1438 bier/bier_disp_entry.c
1439 bier/bier_disp_lookup_node.c
1440 bier/bier_disp_dispatch_node.c
1441 bier/bier_disp_table.c
1442 bier/bier_bift_table.c
1445 list(APPEND VNET_MULTIARCH_SOURCES
1446 bier/bier_disp_dispatch_node.c
1447 bier/bier_disp_lookup_node.c
1448 bier/bier_imp_node.c
1451 list(APPEND VNET_HEADERS
1458 list(APPEND VNET_API_FILES bier/bier.api)
1460 ##############################################################################
1462 ##############################################################################
1464 list (APPEND VNET_SOURCES
1470 list(APPEND VNET_HEADERS
1475 list(APPEND VNET_API_FILES syslog/syslog.api)
1477 ##############################################################################
1479 ##############################################################################
1481 add_vpp_library(vnet
1482 SOURCES ${VNET_SOURCES}
1483 MULTIARCH_SOURCES ${VNET_MULTIARCH_SOURCES}
1484 INSTALL_HEADERS ${VNET_HEADERS}
1485 API_FILES ${VNET_API_FILES}
1486 LINK_LIBRARIES vppinfra svm vlib ${OPENSSL_LIBRARIES}
1490 ##############################################################################
1492 ##############################################################################
1494 option(VPP_BUILD_SESSION_ECHO_APPS "Build session echo apps." ON)
1495 if(VPP_BUILD_SESSION_ECHO_APPS)
1496 add_vpp_executable(tcp_echo
1497 SOURCES ../tests/vnet/session/tcp_echo.c
1498 LINK_LIBRARIES vlibmemoryclient svm vppinfra pthread m rt
1502 add_vpp_executable(udp_echo
1503 SOURCES ../tests/vnet/session/udp_echo.c
1504 LINK_LIBRARIES vlibmemoryclient svm vppinfra pthread m rt
1508 endif(VPP_BUILD_SESSION_ECHO_APPS)
1510 ##############################################################################