# 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. # [lua] lpm4 = dofile("ipv4_bng.lua") user_table = dofile("gre_table.lua") [eal options] -n=4 ; $sut_memory_channels no-output=no ; disable DPDK debug output [variables] $master =0 $core_lb_cpe0 =1 $core_inet0 =2 $core_lb_cpe1 =3 $core_inet1 =4 $core_workers =13-14,15-16,17-18,19-20 $core_tx_cpe0 =6 $core_tx_cpe1 =8 $core_tx_inet0 =9 $core_tx_inet1 =11 $core_cpe1 =12 [port 0] name=cpe0 mac=hardware rx desc=2048 tx desc=2048 [port 1] name=inet0 mac=hardware rx desc=2048 tx desc=2048 [port 2] name=cpe1 mac=hardware rx desc=2048 tx desc=2048 [port 3] name=inet1 mac=hardware rx desc=2048 tx desc=2048 [defaults] mempool size=142K memcache size=512 qinq tag=0xa888 [global] start time=20 name=BNG [core $master] mode=master ; IPv4 ;***************************************************************************************** ;##### Load Balancing receiving from CPE and from Internet #### [core $core_lb_cpe0] name=LB-cpe task=0 mode=lbqinq rx port=cpe0 tx cores=(${core_workers})t0 proto=ipv4 tx cores=(${core_workers})t0 proto=arp drop=no [core $core_inet0] name=LB-inet task=0 mode=lbnetwork rx port=inet0 untag mpls=yes tx cores=(${core_workers})t1 proto=ipv4 drop=no [core $core_lb_cpe1] name=LB-cpe task=0 mode=lbqinq rx port=cpe1 tx cores=(${core_workers})t0 proto=ipv4 tx cores=(${core_workers})t0 proto=arp drop=no [core $core_inet1] name=LB-inet task=0 mode=lbnetwork rx port=inet1 untag mpls=yes tx cores=(${core_workers})t1 proto=ipv4 drop=no [core $core_tx_cpe0] name=LB-cpe task=0 mode=nop rx ring=yes tx port=cpe0 drop=no [core $core_tx_inet0] name=LB-cpe task=0 mode=nop rx ring=yes tx port=inet0 drop=no [core $core_tx_cpe1] name=LB-cpe task=0 mode=nop rx ring=yes tx port=cpe1 drop=no [core $core_tx_inet1] name=LB-cpe task=0 mode=nop rx ring=yes tx port=inet1 drop=no ;***************************************************************************************** ;#### Workers receiving from LB ;#### Task 0: QinQ decapsulation + gre encapsulation + routing ;#### Task 1: ARP ;#### Task 2: GRE depcapsulation + QinQ encapsulation + use learned mac [core $core_workers] name=Worker task=0 mode=qinqdecapv4 rx ring=yes tx cores from routing table=${core_tx_inet0},${core_tx_inet1} drop=no route table=lpm4 local ipv4=21.22.23.24 handle arp=yes user table=user_table fast path handle arp=yes task=1 mode=qinqencapv4 rx ring=yes ; gre received from internal queue tx cores from cpe table=${core_tx_cpe0},${core_tx_cpe1} remap=cpe0,cpe1 drop=no user table=user_table ;