From f0bfb2b0c8467154990b49beafb991b7515e37e3 Mon Sep 17 00:00:00 2001 From: Deepak S Date: Mon, 17 Apr 2017 23:03:43 -0700 Subject: vCGNAPT VNF initial check-in MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit JIRA: SAMPLEVNF-5 The vCGNAPT implementation contains following features: • Static and dynamic Network address translation. • Static and dynamic Network address and port translation • ARP (request, response, gratuitous) • ICMP (terminal echo, echo response, pass-through) • ICMPv6 and ND • UDP, TCP and ICMP protocol pass-through • Multithread support and Multiple physical port support • Limiting max ports per client • Limiting max clients per public IP address • Live Session tracking to NAT flow • NAT64 – connectivity between IPv6 access network to IPv4 data • PCP - Port Control protocol • SIP functionality • FTP functionality Change-Id: I5ebb44ae60e32dd6da5e793efd91a6831a4d30a7 Signed-off-by: Deepak S --- VNFs/vCGNAPT/Makefile | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 VNFs/vCGNAPT/Makefile (limited to 'VNFs/vCGNAPT/Makefile') diff --git a/VNFs/vCGNAPT/Makefile b/VNFs/vCGNAPT/Makefile new file mode 100644 index 00000000..e2025a13 --- /dev/null +++ b/VNFs/vCGNAPT/Makefile @@ -0,0 +1,119 @@ +# Copyright (c) 2017 Intel Corporation +# +# 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. + +ifeq ($(RTE_SDK),) +$(error "Please define RTE_SDK environment variable") +endif + +ifeq ($(VNF_CORE),) +$(error "Please define VNF_CORE environment variable") +endif + +# Default target, can be overridden by command line or environment +RTE_TARGET ?= x86_64-native-linuxapp-gcc + +DIRS-(CONFIG_RTE_LIBRTE_PIPELINE) += pipeline + +include $(RTE_SDK)/mk/rte.vars.mk + +# binary name +APP = vCGNAPT + +VPATH += $(VNF_CORE)/common/vnf_common +VPATH += $(VNF_CORE)/common/VIL/pipeline_arpicmp +VPATH += $(VNF_CORE)/common/VIL/conntrack +VPATH += $(VNF_CORE)/common/VIL/pipeline_common +VPATH += $(VNF_CORE)/common/VIL/pipeline_loadb +VPATH += $(VNF_CORE)/common/VIL/pipeline_master +VPATH += $(VNF_CORE)/common/VIL/pipeline_passthrough +VPATH += $(SRCDIR)/pipeline +VPATH += $(VNF_CORE)/common/VIL/pipeline_txrx +VPATH += $(VNF_CORE)/common/VIL/alg +VPATH += $(VNF_CORE)/common/VIL/l2l3_stack + +INC += $(wildcard *.h) +INC += $(wildcard pipeline/*.h) +INC += $(wildcard $(VNF_CORE)/common/vnf_common/*.h) +INC += $(wildcard $(VNF_CORE)/common/VIL/l2l3_stack/*.h) +INC += $(wildcard $(VNF_CORE)/common/VIL/conntrack/*.h) +INC += $(wildcard $(VNF_CORE)/common/VIL/pipeline_loadb/*.h) +INC += $(wildcard $(VNF_CORE)/common/VIL/pipeline_common/*.h) +INC += $(wildcard $(VNF_CORE)/common/VIL/pipeline_master/*.h) +INC += $(wildcard $(VNF_CORE)/common/VIL/pipeline_passthrough/*.h) +INC += $(wildcard $(VNF_CORE)/common/VIL/pipeline_txrx/*.h) +INC += $(wildcard $(VNF_CORE)/common/VIL/conntrack/*.h) +INC += $(wildcard $(VNF_CORE)/common/VIL/alg/*.h) + +CFLAGS += -I$(SRCDIR) -mrtm -mhle -I$(SRCDIR)/pipeline -I$(VNF_CORE)/common/vnf_common +CFLAGS += -I$(VNF_CORE)/common/VIL/l2l3_stack -I$(VNF_CORE)/common/VIL/conntrack +CFLAGS += -I$(VNF_CORE)/common/VIL/pipeline_common -I$(VNF_CORE)/common/VIL/pipeline_loadb +CFLAGS += -I$(VNF_CORE)/common/VIL/pipeline_master -I$(VNF_CORE)/common/VIL/pipeline_passthrough +CFLAGS += -I$(VNF_CORE)/common/VIL/pipeline_txrx -I$(VNF_CORE)/common/VIL/alg +CFLAGS += -I$(VNF_CORE)/common/VIL/pipeline_arpicmp + +# all source are stored in SRCS-y +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) := main.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += config_parse.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += config_parse_tm.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += config_check.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += init.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += thread.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += thread_fe.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += cpu_core_map.c + +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += lib_arp.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += lib_icmpv6.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += interface.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += hle.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += tsx.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += l2_proto.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += l3fwd_main.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += l3fwd_lpm4.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += l3fwd_lpm6.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += bond.c + +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += pipeline_common_be.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += pipeline_common_fe.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += pipeline_master_be.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += pipeline_master.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += pipeline_cgnapt.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += pipeline_cgnapt_be.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += pipeline_loadb.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += pipeline_loadb_be.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += pipeline_timer.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += pipeline_timer_be.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += vnf_common.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += pipeline_arpicmp.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += pipeline_arpicmp_be.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += rte_ct_tcp.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += rte_cnxn_tracking.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += rte_ct_udp.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += rte_ct_synproxy.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += pipeline_txrx.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += pipeline_txrx_be.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += cgnapt_pcp_be.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += cgnapt_pcp_fe.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += lib_sip_alg.c +SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += lib_ftp_alg.c + +CFLAGS += -O3 +CFLAGS += -DIPV6 +CFLAGS += -DPCP_ENABLE +CFLAGS += -DHW_CHECKSUM_REQ +CFLAGS += -DSIP_ALG +CFLAGS += -DALG +CFLAGS += -DCT_CGNAT +CFLAGS += -DFTP_ALG + +include $(RTE_SDK)/mk/rte.extapp.mk -- cgit 1.2.3-korg