aboutsummaryrefslogtreecommitdiffstats
path: root/samples/vnf_samples/nsut/prox/configs/handle_lw_aftr-4.cfg
diff options
context:
space:
mode:
Diffstat (limited to 'samples/vnf_samples/nsut/prox/configs/handle_lw_aftr-4.cfg')
-rw-r--r--samples/vnf_samples/nsut/prox/configs/handle_lw_aftr-4.cfg175
1 files changed, 175 insertions, 0 deletions
diff --git a/samples/vnf_samples/nsut/prox/configs/handle_lw_aftr-4.cfg b/samples/vnf_samples/nsut/prox/configs/handle_lw_aftr-4.cfg
new file mode 100644
index 000000000..60b5dc7ca
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/configs/handle_lw_aftr-4.cfg
@@ -0,0 +1,175 @@
+# Copyright (c) 2016-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.
+#
+#
+# This configuration creates the functionality of a lwAFTR component of the
+# lw4over6 architecture as described in IETF draft available at:
+# http://tools.ietf.org/id/draft-ietf-softwire-lw4over6-13.txt
+# The lwAFTR simply terminates IPv6 tunnels that carry IPv4 traffic for many
+# customers (one tunnel per customer). It consists of two tasks:
+# 1) ipv6_encap that encapsulates IPv4 packets into IPv6 and sends those tunnel
+# packets towards the customer tunnel endpoint. For this, it must use a
+# binding table that associates with each tunnel, a public IPv4 address and a
+# set of ports.
+# 2) ipv6_decap which handles packets arriving from the tunnel, checks they use
+# a source IPv4 address and port combination that matches their originating
+# tunnel (based on the same binding table as used by ipv6_encap), removes the
+# IPv6 encapsulation and sends them out its "internet" interface.
+# The binding table must be loaded in the [lua] section and assigned to the
+# tasks using the "tun_bindings" parameter. This configuration loads its binding
+# table from the provided ip6_tun_bind_65k.lua.
+#
+
+[lua]
+bindings = dofile("ip6_tun_bind_65k.lua")
+
+[variables]
+$tun_hop_limit=5
+$local_ipv6=fe80:0000:0000:0000:0100:00ff:fe00:0000
+$lookup_port_mask=0xffc0
+$master =0
+$core_inet_0 =1
+$core_inet_1 =2
+$core_lwb4_0 =3
+$core_lwb4_1 =4
+
+[eal options]
+-n=4
+no-output=no ; disable DPDK debug output
+
+[port 0]
+name=inet_0
+mac=hardware
+rx desc=2048
+tx desc=2048
+promiscuous=yes
+
+[port 1]
+name=lwB4_0
+mac=hardware
+rx desc=2048
+tx desc=2048
+promiscuous=yes
+
+[port 2]
+name=inet_1
+mac=hardware
+rx desc=2048
+tx desc=2048
+promiscuous=yes
+
+[port 3]
+name=lwB4_1
+mac=hardware
+rx desc=2048
+tx desc=2048
+promiscuous=yes
+
+[defaults]
+mempool size=32K
+memcache size=512
+
+[global]
+start time=20
+name=lwAFTR
+
+[core $master]
+mode=master
+
+;*****************************************************************************************
+;##### Send Internet IPv4 traffic into IPv6 tunnels, according to binding table ####
+[core $core_inet_0]
+name=v6_encap
+task=0
+mode=ipv6_encap
+rx port=inet_0
+tx cores=${self}t1
+drop=no
+local ipv6=$local_ipv6
+tunnel hop limit=$tun_hop_limit
+lookup port mask=$lookup_port_mask
+tun_bindings=bindings
+
+name=tx_lwb4_0
+task=1
+mode=l2fwd
+dst mac=@@tester_p1
+rx ring=yes
+tx port=lwB4_0
+drop=no
+
+[core $core_inet_1]
+name=v6_encap
+task=0
+mode=ipv6_encap
+rx port=inet_1
+tx cores=${self}t1
+drop=no
+local ipv6=$local_ipv6
+tunnel hop limit=$tun_hop_limit
+lookup port mask=$lookup_port_mask
+tun_bindings=bindings
+
+name=tx_lwb4_1
+task=1
+mode=l2fwd
+dst mac=@@tester_p3
+rx ring=yes
+tx port=lwB4_1
+drop=no
+
+;*****************************************************************************************
+;##### Terminate IPv6 tunnels and transmit IPv4 out to Internet ####
+;# Binding table is checked to ensure src IPv4 address and port combo is allocated to the originating tunnel
+[core $core_lwb4_0]
+name=v6_decap
+task=0
+mode=ipv6_decap
+rx port=lwB4_0
+tx cores=${self}t1
+drop=no
+local ipv6=$local_ipv6
+tunnel hop limit=$tun_hop_limit
+lookup port mask=$lookup_port_mask
+tun_bindings=bindings
+
+name=tx_inet_0
+task=1
+mode=l2fwd
+dst mac=@@tester_p0
+rx ring=yes
+tx port=inet_0
+drop=no
+
+[core $core_lwb4_1]
+name=v6_decap
+task=0
+mode=ipv6_decap
+rx port=lwB4_1
+tx cores=${self}t1
+drop=no
+local ipv6=$local_ipv6
+tunnel hop limit=$tun_hop_limit
+lookup port mask=$lookup_port_mask
+tun_bindings=bindings
+
+name=tx_inet_1
+task=1
+mode=l2fwd
+dst mac=@@tester_p2
+rx ring=yes
+tx port=inet_1
+drop=no
+
+