blob: 349ef6458bf286c98d312827b2ff5be544e2a526 [file] [log] [blame]
Damjan Marion612dd6a2018-07-30 12:45:07 +02001# 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:
5#
6# http://www.apache.org/licenses/LICENSE-2.0
7#
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.
13
14add_definitions (-DWITH_LIBSSL=1)
15set(VNET_SRCS
16 adj/adj_bfd.c
17 adj/adj.c
18 adj/adj_delegate.c
19 adj/adj_glean.c
20 adj/adj_l2.c
21 adj/adj_mcast.c
22 adj/adj_midchain.c
23 adj/adj_nbr.c
24 adj/adj_nsh.c
25 adj/rewrite.c
26 bfd/bfd_api.c
27 bfd/bfd_cli.c
28 bfd/bfd_main.c
29 bfd/bfd_protocol.c
30 bfd/bfd_udp.c
31 bier/bier_api.c
32 bier/bier_bift_table.c
33 bier/bier_bit_string.c
34 bier/bier_disp_dispatch_node.c
35 bier/bier_disp_entry.c
36 bier/bier_disp_lookup_node.c
37 bier/bier_disp_table.c
38 bier/bier_drop.c
39 bier/bier_entry.c
40 bier/bier_fmask.c
41 bier/bier_fmask_db.c
42 bier/bier_imp.c
43 bier/bier_imp_node.c
44 bier/bier_input.c
45 bier/bier_lookup.c
46 bier/bier_output.c
47 bier/bier_table.c
48 bier/bier_test.c
49 bier/bier_types.c
50 bier/bier_update.c
51 bonding/bond_api.c
52 bonding/cli.c
53 bonding/device.c
54 bonding/node.c
55 buffer.c
56 classify/classify_api.c
57 classify/flow_classify.c
58 classify/flow_classify_node.c
59 classify/in_out_acl.c
60 classify/ip_classify.c
61 classify/policer_classify.c
62 classify/vnet_classify.c
63 config.c
64 cop/cop_api.c
65 cop/cop.c
66 cop/ip4_whitelist.c
67 cop/ip6_whitelist.c
68 cop/node1.c
69 devices/af_packet/af_packet_api.c
70 devices/af_packet/af_packet.c
71 devices/af_packet/cli.c
72 devices/af_packet/device.c
73 devices/af_packet/node.c
74 devices/devices.c
75 devices/netlink.c
76 devices/netmap/cli.c
77 devices/netmap/device.c
78 devices/netmap/netmap_api.c
79 devices/netmap/netmap.c
80 devices/netmap/node.c
81 devices/pipe/pipe_api.c
82 devices/pipe/pipe.c
83 devices/tap/cli.c
84 devices/tap/tap.c
85 devices/tap/tapv2_api.c
86 devices/virtio/device.c
87 devices/virtio/node.c
88 devices/virtio/vhost_user_api.c
89 devices/virtio/vhost_user.c
90 devices/virtio/vhost_user_input.c
91 devices/virtio/vhost_user_output.c
92 devices/virtio/virtio.c
93 dhcp/client.c
94 dhcp/dhcp4_proxy_node.c
95 dhcp/dhcp6_client_common_dp.c
96 dhcp/dhcp6_ia_na_client_cp.c
97 dhcp/dhcp6_ia_na_client_dp.c
98 dhcp/dhcp6_pd_client_cp.c
99 dhcp/dhcp6_pd_client_dp.c
100 dhcp/dhcp6_proxy_node.c
101 dhcp/dhcp_api.c
102 dhcp/dhcp_client_detect.c
103 dhcp/dhcp_proxy.c
104 dns/dns.c
105 dns/reply_node.c
106 dns/request_node.c
107 dns/resolver_process.c
108 dpo/classify_dpo.c
109 dpo/dpo.c
110 dpo/drop_dpo.c
111 dpo/dvr_dpo.c
112 dpo/interface_rx_dpo.c
113 dpo/interface_tx_dpo.c
114 dpo/ip6_ll_dpo.c
115 dpo/ip_null_dpo.c
116 dpo/l3_proxy_dpo.c
117 dpo/load_balance.c
118 dpo/load_balance_map.c
119 dpo/lookup_dpo.c
120 dpo/mpls_disposition.c
121 dpo/mpls_label_dpo.c
122 dpo/punt_dpo.c
123 dpo/receive_dpo.c
124 dpo/replicate_dpo.c
125 ethernet/arp.c
126 ethernet/format.c
127 ethernet/init.c
128 ethernet/interface.c
129 ethernet/node.c
130 ethernet/p2p_ethernet_api.c
131 ethernet/p2p_ethernet.c
132 ethernet/p2p_ethernet_input.c
133 ethernet/pg.c
134 ethernet/sfp.c
135 feature/feature_api.c
136 feature/feature.c
137 feature/registration.c
138 fib/fib_api.c
139 fib/fib_attached_export.c
140 fib/fib_bfd.c
141 fib/fib.c
142 fib/fib_entry.c
143 fib/fib_entry_cover.c
144 fib/fib_entry_delegate.c
145 fib/fib_entry_src_adj.c
146 fib/fib_entry_src_api.c
147 fib/fib_entry_src.c
148 fib/fib_entry_src_default_route.c
149 fib/fib_entry_src_interface.c
150 fib/fib_entry_src_interpose.c
151 fib/fib_entry_src_lisp.c
152 fib/fib_entry_src_mpls.c
153 fib/fib_entry_src_rr.c
154 fib/fib_entry_src_special.c
155 fib/fib_node.c
156 fib/fib_node_list.c
157 fib/fib_path.c
158 fib/fib_path_ext.c
159 fib/fib_path_list.c
160 fib/fib_table.c
161 fib/fib_test.c
162 fib/fib_types.c
163 fib/fib_urpf_list.c
164 fib/fib_walk.c
165 fib/ip4_fib.c
166 fib/ip6_fib.c
167 fib/mpls_fib.c
168 flow/flow.c
169 flow/flow_cli.c
170 geneve/decap.c
171 geneve/encap.c
172 geneve/geneve_api.c
173 geneve/geneve.c
174 gre/gre_api.c
175 gre/gre.c
176 gre/interface.c
177 gre/node.c
178 gre/pg.c
179 handoff.c
180 hdlc/hdlc.c
181 hdlc/node.c
182 hdlc/pg.c
183 interface_api.c
184 interface.c
185 interface_cli.c
186 interface_format.c
187 interface_output.c
188 interface_stats.c
189 ipfix-export/flow_api.c
190 ipfix-export/flow_report.c
191 ipfix-export/flow_report_classify.c
192 ip/format.c
193 ip/icmp4.c
194 ip/icmp6.c
195 ip/ip46_cli.c
196 ip/ip4_format.c
197 ip/ip4_forward.c
198 ip/ip4_input.c
199 ip/ip4_mtrie.c
200 ip/ip4_options.c
201 ip/ip4_pg.c
202 ip/ip4_punt_drop.c
203 ip/ip4_reassembly.c
204 ip/ip4_source_and_port_range_check.c
205 ip/ip4_source_check.c
206 ip/ip6_format.c
207 ip/ip6_forward.c
208 ip/ip6_hop_by_hop.c
209 ip/ip6_input.c
210 ip/ip6_ll_table.c
211 ip/ip6_ll_types.c
212 ip/ip6_neighbor.c
213 ip/ip6_pg.c
214 ip/ip6_punt_drop.c
215 ip/ip6_reassembly.c
216 ip/ip_api.c
217 ip/ip.c
218 ip/ip_checksum.c
219 ip/ip_frag.c
220 ip/ip_init.c
221 ip/ip_in_out_acl.c
222 ipip/ipip_api.c
223 ipip/ipip.c
224 ipip/ipip_cli.c
225 ip/ip_neighbor.c
226 ipip/node.c
227 ipip/sixrd.c
228 ip/ip_types_api.c
229 ip/lookup.c
230 ip/ping.c
231 ip/punt_api.c
232 ip/punt.c
233 ip/rd_cp.c
234 ipsec/ah_decrypt.c
235 ipsec/ah_encrypt.c
236 ipsec/esp_decrypt.c
237 ipsec/esp_encrypt.c
238 ipsec/esp_format.c
239 ipsec-gre/interface.c
240 ipsec-gre/ipsec_gre_api.c
241 ipsec-gre/ipsec_gre.c
242 ipsec-gre/node.c
243 ipsec/ikev2.c
244 ipsec/ikev2_cli.c
245 ipsec/ikev2_crypto.c
246 ipsec/ikev2_format.c
247 ipsec/ikev2_payload.c
248 ipsec/ipsec_api.c
249 ipsec/ipsec.c
250 ipsec/ipsec_cli.c
251 ipsec/ipsec_format.c
252 ipsec/ipsec_if.c
253 ipsec/ipsec_if_in.c
254 ipsec/ipsec_input.c
255 ipsec/ipsec_output.c
256 l2/feat_bitmap.c
257 l2/l2_api.c
258 l2/l2_bd.c
259 l2/l2_bvi.c
260 l2/l2_efp_filter.c
261 l2/l2_fib.c
262 l2/l2_flood.c
263 l2/l2_fwd.c
264 l2/l2_in_out_acl.c
265 l2/l2_input.c
266 l2/l2_input_classify.c
267 l2/l2_input_vtr.c
268 l2/l2_learn.c
269 l2/l2_output.c
270 l2/l2_output_classify.c
271 l2/l2_patch.c
272 l2/l2_rw.c
273 l2/l2_vtr.c
274 l2/l2_xcrw.c
275 l2tp/decap.c
276 l2tp/encap.c
277 l2tp/l2tp_api.c
278 l2tp/l2tp.c
279 l2tp/pg.c
280 lawful-intercept/lawful_intercept.c
281 lawful-intercept/node.c
282 lisp-cp/control.c
283 lisp-cp/gid_dictionary.c
284 lisp-cp/lisp_api.c
285 lisp-cp/lisp_cli.c
286 lisp-cp/lisp_cp_dpo.c
287 lisp-cp/lisp_msg_serdes.c
288 lisp-cp/lisp_types.c
289 lisp-cp/one_api.c
290 lisp-cp/one_cli.c
291 lisp-cp/packets.c
292 lisp-gpe/decap.c
293 lisp-gpe/interface.c
294 lisp-gpe/lisp_gpe_adjacency.c
295 lisp-gpe/lisp_gpe_api.c
296 lisp-gpe/lisp_gpe.c
297 lisp-gpe/lisp_gpe_fwd_entry.c
298 lisp-gpe/lisp_gpe_sub_interface.c
299 lisp-gpe/lisp_gpe_tenant.c
300 lisp-gpe/lisp_gpe_tunnel.c
301 llc/llc.c
302 llc/node.c
303 llc/pg.c
304 lldp/lldp_api.c
305 lldp/lldp_cli.c
306 lldp/lldp_input.c
307 lldp/lldp_node.c
308 lldp/lldp_output.c
309 mfib/ip4_mfib.c
310 mfib/ip6_mfib.c
311 mfib/mfib_entry.c
312 mfib/mfib_forward.c
313 mfib/mfib_itf.c
314 mfib/mfib_signal.c
315 mfib/mfib_table.c
316 mfib/mfib_test.c
317 mfib/mfib_types.c
318 misc.c
319 mpls/interface.c
320 mpls/mpls_api.c
321 mpls/mpls.c
322 mpls/mpls_features.c
323 mpls/mpls_input.c
324 mpls/mpls_lookup.c
325 mpls/mpls_output.c
326 mpls/mpls_tunnel.c
327 mpls/pg.c
328 osi/node.c
329 osi/osi.c
330 osi/pg.c
331 pg/cli.c
332 pg/edit.c
333 pg/init.c
334 pg/input.c
335 pg/output.c
336 pg/pg_api.c
337 pg/stream.c
338 policer/node_funcs.c
339 policer/policer_api.c
340 policer/policer.c
341 policer/xlate.c
342 ppp/node.c
343 ppp/pg.c
344 ppp/ppp.c
345 qos/qos_api.c
346 qos/qos_egress_map.c
347 qos/qos_mark.c
348 qos/qos_record.c
349 qos/qos_types.c
350 replication.c
351 sctp/sctp_api.c
352 sctp/sctp.c
353 sctp/sctp_format.c
354 sctp/sctp_input.c
355 sctp/sctp_output.c
356 sctp/sctp_pg.c
357 session/application.c
358 session/application_interface.c
359 session/application_namespace.c
360 session-apps/echo_client.c
361 session-apps/echo_server.c
362 session-apps/http_server.c
363 session-apps/proxy.c
364 session/segment_manager.c
365 session/session_api.c
366 session/session.c
367 session/session_cli.c
368 session/session_lookup.c
369 session/session_node.c
370 session/session_rules_table.c
371 session/session_table.c
372 session/session_test.c
373 session/transport.c
374 snap/node.c
375 snap/pg.c
376 snap/snap.c
377 span/node.c
378 span/span_api.c
379 span/span.c
380 srmpls/sr_mpls_api.c
381 srmpls/sr_mpls_policy.c
382 srmpls/sr_mpls_steering.c
383 srp/format.c
384 srp/interface.c
385 srp/node.c
386 srp/pg.c
387 srv6/sr_api.c
388 srv6/sr.c
389 srv6/sr_localsid.c
390 srv6/sr_policy_rewrite.c
391 srv6/sr_steering.c
392 tcp/tcp_api.c
393 tcp/tcp.c
394 tcp/tcp_format.c
395 tcp/tcp_input.c
396 tcp/tcp_newreno.c
397 tcp/tcp_output.c
398 tcp/tcp_pg.c
399 tcp/tcp_syn_filter4.c
400 tls/tls.c
401 udp/udp_api.c
402 udp/udp.c
403 udp/udp_encap.c
404 udp/udp_encap_node.c
405 udp/udp_format.c
406 udp/udp_input.c
407 udp/udp_local.c
408 udp/udp_pg.c
409 unix/gdb_funcs.c
410 unix/pcap.c
411 unix/tap_api.c
412 unix/tapcli.c
413 unix/tuntap.c
414 util/radix.c
415 util/refcount.c
416 util/trajectory.c
417 vxlan/decap.c
418 vxlan/encap.c
419 vxlan-gpe/decap.c
420 vxlan-gpe/encap.c
421 vxlan-gpe/vxlan_gpe_api.c
422 vxlan-gpe/vxlan_gpe.c
423 vxlan/vxlan_api.c
424 vxlan/vxlan.c
425)
426
Neale Ranns5ff0e0b2018-08-20 07:41:52 -0700427vpp_add_api_files(vnet_api_headers
Damjan Marion612dd6a2018-07-30 12:45:07 +0200428 vxlan-gpe/vxlan_gpe.api
429 ip/ip.api
430 ip/rd_cp.api
431 ip/ip_types.api
432 ip/punt.api
433 fib/fib_types.api
434 devices/virtio/vhost_user.api
435 devices/af_packet/af_packet.api
436 devices/tap/tapv2.api
437 devices/netmap/netmap.api
438 devices/pipe/pipe.api
439 l2tp/l2tp.api
440 bier/bier.api
441 ipsec-gre/ipsec_gre.api
442 cop/cop.api
443 ipsec/ipsec.api
444 lisp-gpe/lisp_gpe.api
445 lldp/lldp.api
446 vxlan/vxlan.api
447 srmpls/sr_mpls.api
448 pg/pg.api
449 bonding/bond.api
450 dns/dns.api
451 feature/feature.api
452 dhcp/dhcp.api
453 dhcp/dhcp6_pd_client_cp.api
454 dhcp/dhcp6_ia_na_client_cp.api
455 sctp/sctp.api
456 ipip/ipip.api
457 qos/qos.api
458 interface.api
459 udp/udp.api
460 lisp-cp/one.api
461 lisp-cp/lisp.api
462 mpls/mpls.api
463 l2/l2.api
464 geneve/geneve.api
465 tcp/tcp.api
466 unix/tap.api
467 srv6/sr.api
468 gre/gre.api
469 span/span.api
470 policer/policer.api
471 session/session.api
472 ethernet/p2p_ethernet.api
473 ipfix-export/ipfix_export.api
474 classify/classify.api
475 bfd/bfd.api
476)
477
Damjan Marion2bfdda72018-08-24 21:36:42 +0200478vpp_add_header_files(vnet
479 l3_types.h
480 vxlan-gpe/vxlan_gpe.h
481 vxlan-gpe/vxlan_gpe_packet.h
482 vxlan-gpe/vxlan_gpe_error.def
483 ip/icmp6.h
484 ip/ip_source_and_port_range_check.h
485 ip/ports.def
486 ip/ip6_to_ip4.h
487 ip/ip4_error.h
488 ip/ip6_error.h
489 ip/ip4_packet.h
490 ip/lookup.h
491 ip/ip_neighbor.h
492 ip/ip6_hop_by_hop_packet.h
493 ip/format.h
494 ip/ip4_mtrie.h
495 ip/icmp4.h
496 ip/icmp46_packet.h
497 ip/igmp_packet.h
498 ip/protocols.def
499 ip/ip6_neighbor.h
500 ip/ip4.h
501 ip/ip6_hop_by_hop.h
502 ip/punt.h
503 ip/ip6.h
504 ip/ip6_packet.h
505 ip/punt_error.def
506 ip/ip.h
507 ip/ip_packet.h
508 ip/ip4_to_ip6.h
509 adj/adj_nbr.h
510 adj/adj_glean.h
511 adj/adj_nsh.h
512 adj/adj.h
513 adj/adj_types.h
514 adj/rewrite.h
515 fib/fib_table.h
516 fib/fib_entry.h
517 fib/fib.h
518 fib/ip4_fib.h
519 fib/fib_node.h
520 fib/ip6_fib.h
521 fib/fib_types.h
522 fib/fib_node_list.h
523 fib/fib_entry_delegate.h
524 devices/virtio/virtio.h
525 devices/virtio/vhost_user.h
526 devices/af_packet/af_packet.h
527 devices/devices.h
528 devices/tap/tap.h
529 devices/netmap/netmap.h
530 devices/netlink.h
531 devices/pipe/pipe.h
532 vnet_msg_enum.h
533 dpo/load_balance.h
534 dpo/dpo.h
535 dpo/punt_dpo.h
536 dpo/lookup_dpo.h
537 dpo/drop_dpo.h
538 dpo/classify_dpo.h
539 dpo/receive_dpo.h
540 dpo/ip_null_dpo.h
541 dpo/replicate_dpo.h
542 l2tp/packet.h
543 l2tp/l2tp.h
544 global_funcs.h
545 bier/bier_types.h
546 bier/bier_entry.h
547 bier/bier_table.h
548 bier/bier_update.h
549 ipsec-gre/ipsec_gre.h
550 ipsec-gre/error.def
551 interface_funcs.h
552 lawful-intercept/lawful_intercept.h
553 util/radix.h
554 util/refcount.h
555 cop/cop.h
556 ipsec/ikev2.h
557 ipsec/ikev2_priv.h
558 ipsec/ah.h
559 ipsec/esp.h
560 ipsec/ipsec.h
561 flow/flow.h
562 lisp-gpe/lisp_gpe_packet.h
563 lisp-gpe/lisp_gpe_error.def
564 lisp-gpe/lisp_gpe_fwd_entry.h
565 lisp-gpe/lisp_gpe_tenant.h
566 lisp-gpe/lisp_gpe.h
567 lldp/lldp.h
568 lldp/lldp_protocol.h
569 pipeline.h
570 hdlc/packet.h
571 hdlc/hdlc.h
572 hdlc/error.def
573 vxlan/vxlan_packet.h
574 vxlan/vxlan.h
575 vxlan/vxlan_error.def
576 srmpls/sr_mpls.h
577 pg/edit.h
578 pg/pg.h
579 bonding/node.h
580 dns/dns.h
581 feature/feature.h
582 dhcp/dhcp6_pd_client_dp.h
583 dhcp/client.h
584 dhcp/dhcp4_proxy_error.def
585 dhcp/dhcp4_packet.h
586 dhcp/dhcp6_proxy_error.def
587 dhcp/dhcp6_client_common_dp.h
588 dhcp/dhcp_proxy.h
589 dhcp/dhcp6_ia_na_client_dp.h
590 dhcp/dhcp6_packet.h
591 tls/tls.h
592 sctp/sctp_error.def
593 sctp/sctp_packet.h
594 sctp/sctp_timer.h
595 sctp/sctp.h
596 ipip/ipip.h
597 handoff.h
598 api_errno.h
599 osi/osi.h
600 udp/udp_error.def
601 udp/udp_packet.h
602 udp/udp.h
603 ppp/packet.h
604 ppp/ppp.h
605 ppp/error.def
606 lisp-cp/lisp_types.h
607 lisp-cp/lisp_cp_messages.h
608 lisp-cp/packets.h
609 lisp-cp/gid_dictionary.h
610 lisp-cp/lisp_msg_serdes.h
611 lisp-cp/control.h
612 vnet.h
613 mpls/packet.h
614 mpls/mpls.h
615 mpls/mpls_tunnel.h
616 mpls/mpls_types.h
617 mpls/error.def
618 mfib/mfib_types.h
619 mfib/ip4_mfib.h
620 mfib/mfib_table.h
621 interface.h
622 plugin/plugin.h
623 l2/l2_xcrw.h
624 l2/l2_output.h
625 l2/l2_rw.h
626 l2/l2_fib.h
627 l2/l2_vtr.h
628 l2/feat_bitmap.h
629 l2/l2_flood.h
630 l2/l2_classify.h
631 l2/l2_bd.h
632 l2/l2_efp_filter.h
633 l2/l2_fwd.h
634 l2/l2_input.h
635 l2/l2_input_vtr.h
636 l2/l2_bvi.h
637 geneve/geneve.h
638 geneve/geneve_error.def
639 geneve/geneve_packet.h
640 tcp/tcp_packet.h
641 tcp/tcp_debug.h
642 tcp/tcp_timer.h
643 tcp/tcp_error.def
644 tcp/tcp.h
645 session-apps/echo_client.h
646 session-apps/proxy.h
647 unix/pcap.h
648 unix/tuntap.h
649 unix/tapcli.h
650 srv6/sr.h
651 srv6/sr_packet.h
652 gre/packet.h
653 gre/gre.h
654 gre/error.def
655 span/span.h
656 policer/xlate.h
657 policer/policer.h
658 policer/police.h
659 config.h
660 buffer.h
661 llc/llc.h
662 session/session_lookup.h
663 session/mma_template.c
664 session/application.h
665 session/segment_manager.h
666 session/mma_template.h
667 session/session_rules_table.h
668 session/session.h
669 session/transport.h
670 session/session_debug.h
671 session/mma_16.h
672 session/mma_40.h
673 session/session_table.h
674 session/transport_interface.h
675 session/application_namespace.h
676 session/stream_session.h
677 session/application_interface.h
678 replication.h
679 ethernet/packet.h
680 ethernet/arp.h
681 ethernet/p2p_ethernet.h
682 ethernet/sfp.h
683 ethernet/types.def
684 ethernet/arp_packet.h
685 ethernet/ethernet.h
686 ethernet/error.def
687 ipfix-export/ipfix_info_elements.h
688 ipfix-export/flow_report.h
689 ipfix-export/flow_report_classify.h
690 ipfix-export/ipfix_packet.h
691 snap/snap.h
692 classify/flow_classify.h
693 classify/in_out_acl.h
694 classify/vnet_classify.h
695 classify/policer_classify.h
696 bfd/bfd_udp.h
697 bfd/bfd_protocol.h
698 bfd/bfd_main.h
699 srp/packet.h
700 srp/srp.h
701)
702
Damjan Marion612dd6a2018-07-30 12:45:07 +0200703add_library(vnet SHARED ${VNET_SRCS})
704
705vpp_library_set_multiarch_sources(vnet
706 bonding/node.c
707 ip/ip4_forward.c
708 ip/ip4_input.c
709 l2/l2_output.c
710 devices/virtio/vhost_user_input.c
711 devices/virtio/vhost_user_output.c
712)
713target_link_libraries(vnet vlib ${OPENSSL_LIBRARIES})
714add_dependencies(vnet api_headers)
715
716#
717# Install
718#
719install(TARGETS vnet DESTINATION lib)