;; ;; Copyright (c) 2010-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 sets up a system that handles the same workload as ; config/bng-4ports.cfg, but on 8 ports instead of 4 and on CPU socket 1 ; instead of socket 0. ;; [eal options] -n=4 ; force number of memory channels no-output=no ; disable DPDK debug output [variables] ;uncomment one of the following to change the number of worker threads $lb_drop=yes $wk_drop=yes $rxd=128 $txd=128 $promiscuous=yes $mp=16K $mcs=512 $rs=128 [port 0] name=cpe0 mac=00:00:01:00:00:01 rx desc=$rxd tx desc=$txd promiscuous=$promiscuous [port 1] name=inet0 mac=00:00:01:00:00:02 rx desc=$rxd tx desc=$txd promiscuous=$promiscuous [port 2] name=cpe1 mac=00:00:01:00:00:03 rx desc=$rxd tx desc=$txd promiscuous=$promiscuous [port 3] name=inet1 mac=00:00:01:00:00:04 rx desc=$rxd tx desc=$txd promiscuous=$promiscuous [port 4] name=cpe2 mac=00:00:01:00:00:01 rx desc=$rxd tx desc=$txd promiscuous=$promiscuous [port 5] name=inet2 mac=00:00:01:00:00:02 rx desc=$rxd tx desc=$txd promiscuous=$promiscuous [port 6] name=cpe3 mac=00:00:01:00:00:03 rx desc=$rxd tx desc=$txd promiscuous=$promiscuous [port 7] name=inet3 mac=00:00:01:00:00:04 rx desc=$rxd tx desc=$txd promiscuous=$promiscuous [lua] lpm4 = dofile("ipv4-4ports.lua") dscp_table = dofile("dscp.lua") user_table = dofile("user_table-131K-bng.lua") wk="5s1-9s1,5s1h-9s1h" name="BNG (" .. task_count(wk) .. " workers)" [defaults] mempool size=$mp qinq tag=0xa888 [global] start time=10 duration time=0 name=$name unique mempool per socket=yes shuffle=yes [core 0s1] task=0 mode=master tx cores=(${wk})t0m ; IPv4 ;***************************************************************************************** ;##### Load Balancing receiving from CPE and from Internet #### [core 1s1] name=LB-inet task=0 mode=lbnetwork rx port=inet0 untag mpls=yes tx cores=(${wk})t1 proto=ipv4 drop=$lb_drop memcache size=$mcs ring size=$rs [core 1s1h] name=LB-inet task=0 mode=lbnetwork untag mpls=yes rx port=inet1 tx cores=(${wk})t1 proto=ipv4 drop=$lb_drop memcache size=$mcs ring size=$rs [core 2s1] name=LB-inet task=0 mode=lbnetwork rx port=inet2 untag mpls=yes tx cores=(${wk})t1 proto=ipv4 drop=$lb_drop memcache size=$mcs ring size=$rs [core 2s1h] name=LB-inet task=0 mode=lbnetwork untag mpls=yes rx port=inet3 tx cores=(${wk})t1 proto=ipv4 drop=$lb_drop memcache size=$mcs ring size=$rs [core 3s1] name=LB-cpe task=0 mode=lbqinq rx port=cpe0 tx cores=(${wk})t0 proto=ipv4 tx cores=(${wk})t0p proto=arp drop=$lb_drop memcache size=$mcs ring size=$rs [core 3s1h] name=LB-cpe task=0 mode=lbqinq rx port=cpe1 tx cores=(${wk})t0 proto=ipv4 tx cores=(${wk})t0p proto=arp drop=$lb_drop memcache size=$mcs ring size=$rs [core 4s1] name=LB-cpe task=0 mode=lbqinq rx port=cpe2 tx cores=(${wk})t0 proto=ipv4 tx cores=(${wk})t0p proto=arp drop=$lb_drop memcache size=$mcs ring size=$rs [core 4s1h] name=LB-cpe task=0 mode=lbqinq rx port=cpe3 tx cores=(${wk})t0 proto=ipv4 tx cores=(${wk})t0p proto=arp drop=$lb_drop memcache size=$mcs ring size=$rs ;***************************************************************************************** ;#### Worker Threads receiving from LB ;#### Task 0: QinQ decapsulation + gre encapsulation + routing ;#### Task 1: ARP ;#### Task 2: GRE depcapsulation + QinQ encapsulation + use learned mac [core $wk] name=WK task=0 mode=qinqdecapv4 rx ring=yes tx ports from routing table=inet0,inet1,inet2,inet3 route table=lpm4 local ipv4=21.22.23.24 drop=$wk_drop handle arp=yes cpe table timeout ms=15000 user table=user_table task=1 mode=qinqencapv4 rx ring=yes ; gre received from internal queue tx ports from cpe table=cpe0,cpe1,cpe2,cpe3 drop=$wk_drop user table=user_table