1 # Copyright (c) 2016-2017 Intel Corporation
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
16 # This configuration creates the functionality of a lwAFTR component of the
17 # lw4over6 architecture as described in IETF draft available at:
18 # http://tools.ietf.org/id/draft-ietf-softwire-lw4over6-13.txt
19 # The lwAFTR simply terminates IPv6 tunnels that carry IPv4 traffic for many
20 # customers (one tunnel per customer). It consists of two tasks:
21 # 1) ipv6_encap that encapsulates IPv4 packets into IPv6 and sends those tunnel
22 # packets towards the customer tunnel endpoint. For this, it must use a
23 # binding table that associates with each tunnel, a public IPv4 address and a
25 # 2) ipv6_decap which handles packets arriving from the tunnel, checks they use
26 # a source IPv4 address and port combination that matches their originating
27 # tunnel (based on the same binding table as used by ipv6_encap), removes the
28 # IPv6 encapsulation and sends them out its "internet" interface.
29 # The binding table must be loaded in the [lua] section and assigned to the
30 # tasks using the "tun_bindings" parameter. This configuration loads its binding
31 # table from the provided ip6_tun_bind_65k.lua.
35 bindings = dofile("ip6_tun_bind_65k.lua")
39 $local_ipv6=fe80:0000:0000:0000:0100:00ff:fe00:0000
40 $lookup_port_mask=0xffc0
49 no-output=no ; disable DPDK debug output
90 ;*****************************************************************************************
91 ;##### Send Internet IPv4 traffic into IPv6 tunnels, according to binding table ####
99 local ipv6=$local_ipv6
100 tunnel hop limit=$tun_hop_limit
101 lookup port mask=$lookup_port_mask
102 tun_bindings=bindings
119 local ipv6=$local_ipv6
120 tunnel hop limit=$tun_hop_limit
121 lookup port mask=$lookup_port_mask
122 tun_bindings=bindings
132 ;*****************************************************************************************
133 ;##### Terminate IPv6 tunnels and transmit IPv4 out to Internet ####
134 ;# Binding table is checked to ensure src IPv4 address and port combo is allocated to the originating tunnel
142 local ipv6=$local_ipv6
143 tunnel hop limit=$tun_hop_limit
144 lookup port mask=$lookup_port_mask
145 tun_bindings=bindings
162 local ipv6=$local_ipv6
163 tunnel hop limit=$tun_hop_limit
164 lookup port mask=$lookup_port_mask
165 tun_bindings=bindings