;; ;; 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 simplified Border Network Gateway (BNG) on the ; first socket (socket 0). Four load balancers (two physical cores, four logical ; cores) and eight workers (four physical cores, eight logical cores) are set ; up. The number of workers can be changed by uncommenting one of the lines in ; the [variables] section. If this configuration is to be used on a system with ; few cores, the number of workers need to be reduced. ;; [eal options] -n=4 ; force number of memory channels no-output=no ; disable DPDK debug output [port 0] name=cpe0 mac=hardware [port 1] name=inet0 mac=hardware [port 2] name=cpe1 mac=hardware [port 3] name=inet1 mac=hardware [lua] lpm4 = dofile("ipv4.lua") user_table = dofile("user_table-65K-bng.lua") [variables] ;uncomment one of the following to change the number of workers ;$wk=3s0,3s0h; 2 workers ;$wk=3s0-4s0,3s0h-4s0h; 4 workers ;$wk=3s0-5s0,3s0h-5s0h; 6 workers $wk=3s0-6s0,3s0h-6s0h; 8 workers ;$wk=3s0-7s0,3s0h-7s0h; 10 workers ;$wk=3s0-8s0,3s0h-8s0h; 12 workers [defaults] mempool size=16K qinq tag=0x0081 [global] start time=20 name=BNG [core 0s0] mode=master ; IPv4 ;***************************************************************************************** ;##### Load Balancing receiving from CPE and from Internet #### [core 1s0] name=LB-cpe task=0 mode=lbqinq rx port=cpe0 tx cores=(${wk})t0 proto=ipv4 tx cores=(${wk})t0 proto=arp drop=no [core 1s0h] name=LB-inet task=0 mode=lbnetwork rx port=inet0 untag mpls=yes tx cores=(${wk})t1 proto=ipv4 drop=no [core 2s0] name=LB-cpe task=0 mode=lbqinq rx port=cpe1 tx cores=(${wk})t0 proto=ipv4 tx cores=(${wk})t0 proto=arp drop=no [core 2s0h] name=LB-inet task=0 mode=lbnetwork untag mpls=yes rx port=inet1 tx cores=(${wk})t1 proto=ipv4 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 $wk] name=Worker task=0 mode=qinqdecapv4 rx ring=yes tx ports from routing table=inet0,inet1 route table=lpm4 local ipv4=21.22.23.24 handle arp=yes user table=user_table drop=no fast path handle arp=yes task=1 mode=qinqencapv4 rx ring=yes ; gre received from internal queue tx ports from cpe table=cpe0,cpe1 user table=user_table drop=no