From cb9cadad578297ffd78fa8a33670bdf1ab669e7e Mon Sep 17 00:00:00 2001 From: Ed Warnicke Date: Tue, 8 Dec 2015 15:45:58 -0700 Subject: Initial commit of vpp code. Change-Id: Ib246f1fbfce93274020ee93ce461e3d8bd8b9f17 Signed-off-by: Ed Warnicke --- vnet/Makefile.am | 632 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 632 insertions(+) create mode 100644 vnet/Makefile.am (limited to 'vnet/Makefile.am') diff --git a/vnet/Makefile.am b/vnet/Makefile.am new file mode 100644 index 00000000000..ee01bff1ee9 --- /dev/null +++ b/vnet/Makefile.am @@ -0,0 +1,632 @@ +# Copyright (c) 2015 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. + +AUTOMAKE_OPTIONS = foreign subdir-objects + +AM_CFLAGS = -Wall @DPDK@ @VIRL@ + +libvnet_la_SOURCES = +libvnetplugin_la_SOURCES = +nobase_include_HEADERS = + +######################################## +# Generic stuff +######################################## +libvnet_la_SOURCES += \ + vnet/config.c \ + vnet/interface.c \ + vnet/interface_cli.c \ + vnet/interface_format.c \ + vnet/interface_output.c \ + vnet/misc.c \ + vnet/replication.c \ + vnet/rewrite.c + +nobase_include_HEADERS += \ + vnet/api_errno.h \ + vnet/buffer.h \ + vnet/config.h \ + vnet/global_funcs.h \ + vnet/interface.h \ + vnet/interface_funcs.h \ + vnet/l3_types.h \ + vnet/pipeline.h \ + vnet/replication.h \ + vnet/rewrite.h \ + vnet/vnet.h + +######################################## +# Policer infra +######################################## + +libvnet_la_SOURCES += \ + vnet/policer/node_funcs.c \ + vnet/policer/policer.c \ + vnet/policer/xlate.c + +nobase_include_HEADERS += \ + vnet/policer/police.h \ + vnet/policer/xlate.h + + +######################################## +# Layer 2 protocols go here +######################################## + +######################################## +# Layer 2 protocol: Ethernet +######################################## +libvnet_la_SOURCES += \ + vnet/ethernet/arp.c \ + vnet/ethernet/cli.c \ + vnet/ethernet/format.c \ + vnet/ethernet/init.c \ + vnet/ethernet/interface.c \ + vnet/ethernet/node.c \ + vnet/ethernet/pg.c + +nobase_include_HEADERS += \ + vnet/ethernet/arp_packet.h \ + vnet/ethernet/error.def \ + vnet/ethernet/ethernet.h \ + vnet/ethernet/packet.h \ + vnet/ethernet/types.def + +######################################## +# Layer 2 protocol: Ethernet bridging +######################################## +libvnet_la_SOURCES += \ + vnet/l2/feat_bitmap.c \ + vnet/l2/l2_bd.c \ + vnet/l2/l2_bvi.c \ + vnet/l2/l2_classify.c \ + vnet/l2/l2_efp_filter.c \ + vnet/l2/l2_fib.c \ + vnet/l2/l2_flood.c \ + vnet/l2/l2_fwd.c \ + vnet/l2/l2_input_acl.c \ + vnet/l2/l2_input.c \ + vnet/l2/l2_input_vtr.c \ + vnet/l2/l2_learn.c \ + vnet/l2/l2_output_acl.c \ + vnet/l2/l2_output.c \ + vnet/l2/l2_patch.c \ + vnet/l2/l2_vtr.c \ + vnet/l2/l2_xcrw.c + +nobase_include_HEADERS += \ + vnet/l2/feat_bitmap.h \ + vnet/l2/l2_input.h \ + vnet/l2/l2_output.h \ + vnet/l2/l2_vtr.h \ + vnet/l2/l2_input_vtr.h \ + vnet/l2/l2_efp_filter.h \ + vnet/l2/l2_fwd.h \ + vnet/l2/l2_bd.h \ + vnet/l2/l2_bvi.h \ + vnet/l2/l2_flood.h \ + vnet/l2/l2_fib.h \ + vnet/l2/l2_xcrw.h \ + vnet/l2/l2_classify.h + +######################################## +# Layer 2 protocol: SRP +######################################## +libvnet_la_SOURCES += \ + vnet/srp/format.c \ + vnet/srp/interface.c \ + vnet/srp/node.c \ + vnet/srp/pg.c + +nobase_include_HEADERS += \ + vnet/srp/packet.h \ + vnet/srp/srp.h + +######################################## +# Layer 2 protocol: PPP +######################################## +libvnet_la_SOURCES += \ + vnet/ppp/node.c \ + vnet/ppp/pg.c \ + vnet/ppp/ppp.c + +nobase_include_HEADERS += \ + vnet/ppp/error.def \ + vnet/ppp/ppp.h \ + vnet/ppp/packet.h + +######################################## +# Layer 2 protocol: HDLC +######################################## +libvnet_la_SOURCES += \ + vnet/hdlc/node.c \ + vnet/hdlc/pg.c \ + vnet/hdlc/hdlc.c + +nobase_include_HEADERS += \ + vnet/hdlc/error.def \ + vnet/hdlc/hdlc.h \ + vnet/hdlc/packet.h + +######################################## +# Layer 2 protocol: LLC +######################################## +libvnet_la_SOURCES += \ + vnet/llc/llc.c \ + vnet/llc/node.c \ + vnet/llc/pg.c + +nobase_include_HEADERS += \ + vnet/llc/llc.h + +######################################## +# Layer 2 protocol: SNAP +######################################## +libvnet_la_SOURCES += \ + vnet/snap/snap.c \ + vnet/snap/node.c \ + vnet/snap/pg.c + +nobase_include_HEADERS += \ + vnet/snap/snap.h + +######################################## +# Layer 2 / vxlan +######################################## +libvnet_la_SOURCES += \ + vnet/vxlan/vxlan.c \ + vnet/vxlan/encap.c \ + vnet/vxlan/decap.c + +nobase_include_HEADERS += \ + vnet/vxlan/vxlan.h \ + vnet/vxlan/vxlan_packet.h \ + vnet/vxlan/vxlan_error.def + +######################################## +# Layer 2/3 "classify" +######################################## +libvnet_la_SOURCES += \ + vnet/classify/vnet_classify.c \ + vnet/classify/ip_classify.c \ + vnet/classify/input_acl.c \ + vnet/classify/vnet_classify.h + +nobase_include_HEADERS += \ + vnet/classify/vnet_classify.h \ + vnet/classify/input_acl.h + +######################################## +# Layer 3 protocols go here +######################################## + +# vnet/ip/tcp.c \ +# vnet/ip/tcp_format.c \ +# vnet/ip/tcp_init.c \ +# vnet/ip/tcp_pg.c + + +######################################## +# Layer 3 protocol: IP v4/v6 +######################################## +libvnet_la_SOURCES += \ + vnet/ip/format.c \ + vnet/ip/icmp4.c \ + vnet/ip/icmp6.c \ + vnet/ip/ip46_cli.c \ + vnet/ip/ip4_format.c \ + vnet/ip/ip4_forward.c \ + vnet/ip/ip4_hop_by_hop.c \ + vnet/ip/ip4_input.c \ + vnet/ip/ip4_mtrie.c \ + vnet/ip/ip4_pg.c \ + vnet/ip/ip4_source_check.c \ + vnet/ip/ip6_format.c \ + vnet/ip/ip6_forward.c \ + vnet/ip/ip6_hop_by_hop.c \ + vnet/ip/ip6_input.c \ + vnet/ip/ip6_neighbor.c \ + vnet/ip/ip6_pg.c \ + vnet/ip/ip_checksum.c \ + vnet/ip/ip.h \ + vnet/ip/ip_init.c \ + vnet/ip/lookup.c \ + vnet/ip/udp_format.c \ + vnet/ip/udp_init.c \ + vnet/ip/udp_local.c \ + vnet/ip/udp_pg.c \ + vnet/ip/ip_input_acl.c \ + vnet/ip/ip_frag.c + +nobase_include_HEADERS += \ + vnet/ip/format.h \ + vnet/ip/icmp46_packet.h \ + vnet/ip/icmp6.h \ + vnet/ip/igmp_packet.h \ + vnet/ip/ip.h \ + vnet/ip/ip4.h \ + vnet/ip/ip4_mtrie.h \ + vnet/ip/ip4_error.h \ + vnet/ip/ip4_packet.h \ + vnet/ip/ip6.h \ + vnet/ip/ip6_error.h \ + vnet/ip/ip6_hop_by_hop.h \ + vnet/ip/ip6_hop_by_hop_packet.h \ + vnet/ip/ip6_packet.h \ + vnet/ip/lookup.h \ + vnet/ip/ip_packet.h \ + vnet/ip/ports.def \ + vnet/ip/protocols.def \ + vnet/ip/tcp.h \ + vnet/ip/tcp_packet.h \ + vnet/ip/udp.h \ + vnet/ip/udp_error.def \ + vnet/ip/udp_packet.h + +######################################## +# Layer 3 protocol: IPSec +######################################## +if WITH_DPDK +libvnet_la_SOURCES += \ + vnet/ipsec/ipsec.c \ + vnet/ipsec/ipsec_cli.c \ + vnet/ipsec/ipsec_format.c \ + vnet/ipsec/ipsec_output.c \ + vnet/ipsec/ipsec_input.c \ + vnet/ipsec/ipsec_if.c \ + vnet/ipsec/ipsec_if_in.c \ + vnet/ipsec/ipsec_if_out.c \ + vnet/ipsec/esp_encrypt.c \ + vnet/ipsec/esp_decrypt.c \ + vnet/ipsec/ikev2.c \ + vnet/ipsec/ikev2_crypto.c \ + vnet/ipsec/ikev2_cli.c \ + vnet/ipsec/ikev2_payload.c \ + vnet/ipsec/ikev2_format.c + +nobase_include_HEADERS += \ + vnet/ipsec/ipsec.h \ + vnet/ipsec/esp.h \ + vnet/ipsec/ikev2.h \ + vnet/ipsec/ikev2_priv.h +endif + +######################################## +# Layer 3 protocol: osi +######################################## +libvnet_la_SOURCES += \ + vnet/osi/node.c \ + vnet/osi/osi.c \ + vnet/osi/pg.c + +nobase_include_HEADERS += \ + vnet/osi/osi.h + +######################################## +# Layer 3 protocol: MAP +######################################## +libvnet_la_SOURCES += \ + vnet/map/map.c \ + vnet/map/ip4_map.c \ + vnet/map/ip6_map.c \ + vnet/map/sixrd.c \ + vnet/map/ip4_sixrd.c \ + vnet/map/ip6_sixrd.c \ + vnet/map/ip4_map_t.c \ + vnet/map/ip6_map_t.c + +nobase_include_HEADERS += \ + vnet/map/map.h \ + vnet/map/sixrd.h + +######################################## +# Tunnel protocol: gre +######################################## +libvnet_la_SOURCES += \ + vnet/gre/gre.c \ + vnet/gre/node.c \ + vnet/gre/interface.c \ + vnet/gre/pg.c + +nobase_include_HEADERS += \ + vnet/gre/gre.h \ + vnet/gre/packet.h \ + vnet/gre/error.def + +######################################## +# Tunnel protocol: l2tpv3 +######################################## +libvnet_la_SOURCES += \ + vnet/l2tp/l2tp.c \ + vnet/l2tp/encap.c \ + vnet/l2tp/decap.c \ + vnet/l2tp/pg.c + +nobase_include_HEADERS += \ + vnet/l2tp/l2tp.h \ + vnet/l2tp/packet.h + +######################################## +# Tunnel protocol: gre+mpls +######################################## +libvnet_la_SOURCES += \ + vnet/mpls-gre/mpls.c \ + vnet/mpls-gre/node.c \ + vnet/mpls-gre/interface.c \ + vnet/mpls-gre/policy_encap.c \ + vnet/mpls-gre/pg.c + +nobase_include_HEADERS += \ + vnet/mpls-gre/mpls.h \ + vnet/mpls-gre/packet.h \ + vnet/mpls-gre/error.def + + +######################################## +# Tunnel protocol: nsh-gre +######################################## + +libvnet_la_SOURCES += \ + vnet/nsh-gre/nsh_gre.c \ + vnet/nsh-gre/encap.c \ + vnet/nsh-gre/decap.c + +nobase_include_HEADERS += \ + vnet/nsh-gre/nsh_gre.h \ + vnet/nsh-gre/nsh_gre_packet.h \ + vnet/nsh-gre/nsh_gre_error.def + +######################################## +# Tunnel protocol: nsh-vxlan-gpe +######################################## + +libvnet_la_SOURCES += \ + vnet/nsh-vxlan-gpe/nsh_vxlan_gpe.c \ + vnet/nsh-vxlan-gpe/encap.c \ + vnet/nsh-vxlan-gpe/decap.c + +nobase_include_HEADERS += \ + vnet/nsh-vxlan-gpe/nsh_vxlan_gpe.h \ + vnet/nsh-vxlan-gpe/vxlan_gpe_packet.h \ + vnet/nsh-vxlan-gpe/nsh_vxlan_gpe_error.def + +######################################## +# Tunnel protocol: lisp-gpe +######################################## + +libvnet_la_SOURCES += \ + vnet/lisp-gpe/lisp_gpe.c \ + vnet/lisp-gpe/encap.c \ + vnet/lisp-gpe/decap.c + +nobase_include_HEADERS += \ + vnet/lisp-gpe/lisp_gpe.h \ + vnet/lisp-gpe/lisp_gpe_packet.h \ + vnet/lisp-gpe/lisp_gpe_error.def + +######################################## +# DHCP client +######################################## +libvnet_la_SOURCES += \ + vnet/dhcp/client.c \ + vnet/dhcp/client.h + +nobase_include_HEADERS += \ + vnet/dhcp/client.h + +######################################## +# DHCP proxy +######################################## +libvnet_la_SOURCES += \ + vnet/dhcp/proxy_node.c \ + vnet/dhcp/proxy.h + +nobase_include_HEADERS += \ + vnet/dhcp/packet.h \ + vnet/dhcp/proxy.h \ + vnet/dhcp/proxy_error.def + +######################################## +# ipv6 segment routing +######################################## +libvnet_la_SOURCES += \ + vnet/sr/sr.c + +nobase_include_HEADERS += \ + vnet/sr/sr_packet.h \ + vnet/sr/sr_error.def \ + vnet/sr/sr.h + +######################################## +# CGN +######################################### +libvnet_la_SOURCES += \ + vnet/vcgn/cnat_bulk_port.c \ + vnet/vcgn/cnat_config.c \ + vnet/vcgn/cnat_db_scanner.c \ + vnet/vcgn/cnat_db_v2.c \ + vnet/vcgn/cnat_debug_msg_handler.c \ + vnet/vcgn/cnat_cli_handler.c \ + vnet/vcgn/cnat_global.c \ + vnet/vcgn/cnat_ipv4_udp_inside_input.c \ + vnet/vcgn/cnat_ipv4_udp_inside_input_exceptions.c \ + vnet/vcgn/cnat_ipv4_udp_outside_input.c \ + vnet/vcgn/cnat_ipv4_tcp_inside_input.c \ + vnet/vcgn/cnat_ipv4_tcp_inside_input_exceptions.c \ + vnet/vcgn/cnat_ipv4_tcp_outside_input.c \ + vnet/vcgn/cnat_ipv4_icmp_query_inside_input.c \ + vnet/vcgn/cnat_ipv4_icmp_query_inside_input_exception.c \ + vnet/vcgn/cnat_ipv4_icmp_query_outside_input.c \ + vnet/vcgn/cnat_ipv4_icmp_error_inside_input.c \ + vnet/vcgn/cnat_ipv4_icmp_error_outside_input.c \ + vnet/vcgn/cnat_logging.c \ + vnet/vcgn/cnat_ports.c \ + vnet/vcgn/cnat_util.c \ + vnet/vcgn/cnat_show.c \ + vnet/vcgn/cnat_syslog.c \ + vnet/vcgn/cnat_v4_functions.c \ + vnet/vcgn/index_list.c \ + vnet/vcgn/spp_platform_trace_log.c \ + vnet/vcgn/vcgn_classify.c + +######################################## +# DHCPv6 proxy +######################################## +libvnet_la_SOURCES += \ + vnet/dhcpv6/proxy_node.c + +nobase_include_HEADERS += \ + vnet/dhcpv6/packet.h \ + vnet/dhcpv6/proxy.h \ + vnet/dhcpv6/proxy_error.def + +######################################## +# IPFIX / netflow v10 +######################################## +libvnet_la_SOURCES += \ + vnet/flow/flow_report.c + +nobase_include_HEADERS += \ + vnet/flow/flow_report.h \ + vnet/flow/ipfix_info_elements.h \ + vnet/flow/ipfix_packet.h + +######################################## +# IPFIX sample code +######################################## + +libvnet_la_SOURCES += \ + vnet/flow/flow_report_sample.c + +nobase_include_HEADERS += \ + vnet/flow/flow_report_sample.h + +######################################## +# lawful intercept +######################################## + +libvnet_la_SOURCES += \ + vnet/lawful-intercept/lawful_intercept.c \ + vnet/lawful-intercept/node.c + +nobase_include_HEADERS += \ + vnet/dpdk_replication.h \ + vnet/lawful-intercept/lawful_intercept.h + +######################################## +# Packet generator +######################################## + +libvnet_la_SOURCES += \ + vnet/pg/cli.c \ + vnet/pg/edit.c \ + vnet/pg/init.c \ + vnet/pg/input.c \ + vnet/pg/output.c \ + vnet/pg/stream.c + +nobase_include_HEADERS += \ + vnet/pg/pg.h \ + vnet/pg/edit.h + +######################################## +# Intel DPDK +######################################## +if WITH_DPDK +libvnet_la_SOURCES += \ + vnet/devices/dpdk/dpdk_priv.h \ + vnet/devices/dpdk/device.c \ + vnet/devices/dpdk/init.c \ + vnet/devices/dpdk/node.c \ + vnet/devices/dpdk/threads.c \ + vnet/devices/dpdk/vhost_user.c \ + vnet/devices/dpdk/cli.c + +nobase_include_HEADERS += \ + vnet/devices/dpdk/dpdk.h \ + vnet/devices/dpdk/threads.h +endif + +######################################## +# virtio +######################################## + +if WITH_DPDK +libvnet_la_SOURCES += \ + vnet/devices/virtio/vhost-user.c + +nobase_include_HEADERS += \ + vnet/devices/virtio/vhost-user.h +endif WITH_DPDK + +######################################## +# ssvm ethernet +######################################## +libvnet_la_SOURCES += \ + vnet/devices/ssvm/ssvm_eth.c \ + vnet/devices/ssvm/node.c + +nobase_include_HEADERS += \ + vnet/devices/ssvm/ssvm_eth.h + +######################################## +# Unix kernel related +######################################## + +# FIXME: vnet/unix/hgshm.c + +libvnet_la_SOURCES += \ + vnet/unix/gdb_funcs.c \ + vnet/unix/pcap.c \ + vnet/unix/tapcli.c \ + vnet/unix/tuntap.c + +nobase_include_HEADERS += \ + vnet/unix/pcap.h \ + vnet/unix/tuntap.h \ + vnet/unix/tapcli.h + +######################################## +# Plugin client library +######################################## + +libvnetplugin_la_SOURCES += \ + vnet/plugin/p1.c + +nobase_include_HEADERS += \ + vnet/plugin/plugin.h + +lib_LTLIBRARIES = libvnet.la libvnetplugin.la + +noinst_PROGRAMS = vnet_unix + +vnet_unix_SOURCES = \ + example/main_stub.c + +vnet_unix_LDFLAGS = -static +dpdk_libs = + +if WITH_DPDK +dpdk_libs += -l:libdpdk.a +endif + +vnet_unix_LDADD = libvnet.la -l:libvlib_unix.a -l:libvlib.a -l:libvppinfra.a -lpthread -lvlibapi -lvlibmemory -lsvm -lm -ldl $(dpdk_libs) -lrt + +pcap2pg_SOURCES = \ + vnet/unix/pcap2pg.c \ + vnet/unix/pcap.h + +pcap2pg_LDFLAGS = -static +pcap2pg_LDADD = libvnet.la -l:libvppinfra.a -lpthread -lm -ldl + +noinst_PROGRAMS += pcap2pg -- cgit 1.2.3-korg