# 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.
#

[eal options]
-n=4 ; tester_memory_channels
no-output=no ; disable DPDK debug output

[variables]
$qinq_tag_inline=88 a8
$sut_mac0=@@dst_mac0
$sut_mac1=@@dst_mac1
$sut_mac2=@@dst_mac2
$sut_mac3=@@dst_mac3

[port 0]
name=cpe0
mac=hardware
[port 1]
name=inet0
mac=hardware
[port 2]
name=cpe1
mac=hardware
[port 3]
name=inet1
mac=hardware

[defaults]
mempool size=4K

[global]
start time=5
name=BNG gen
shuffle=yes

[core 0]
mode=master

[core 1]
name=arp

task=0
mode=gen
tx port=cpe0
bps=12500000
; Ethernet + QinQ + ARP-reply
pkt inline=${sut_mac0} 70 00 00 00 00 01 ${qinq_tag_inline} 00 01 81 00 00 01 08 06 00 01 08 00 06 04 00 02 00 1e 67 3e b8 df c0 a8 01 01 00 00 00 00 00 00 c0 a8 01 01
; svlan: [0..127]
random=000000000XXXXXXX
rand_offset=14
; cvlan: 256*[0..15]+16*[0..3]+[0..3]
random=0000XXXX00XX00XX
rand_offset=18

[core 1]
name=arp_task
task=1
mode=gen
tx port=cpe1
bps=12500000
; Ethernet + QinQ + ARP-reply
pkt inline=${sut_mac2} 70 00 00 00 00 03 ${qinq_tag_inline} 00 01 81 00 00 01 08 06 00 01 08 00 06 04 00 02 00 1e 67 3e b8 df c0 a8 01 01 00 00 00 00 00 00 c0 a8 01 01
; svlan: [128..255]
random=000000001XXXXXXX
rand_offset=14
; cvlan: 256*[0..15]+16*[0..3]+[0..3]
random=0000XXXX00XX00XX
rand_offset=18

[core 2]
name=cpe0
task=0
mode=gen
tx port=cpe0
bps=1069289928
; Ethernet + QinQ + IP + UDP
pkt inline=${sut_mac0} 70 00 00 00 00 01 ${qinq_tag_inline} 00 01 81 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 08 7c 21
; svlan: [0..127]
random=000000000XXXXXXX
rand_offset=14
; cvlan: 256*[0..15]+16*[0..3]+[0..3]
random=0000XXXX00XX00XX
rand_offset=18
; dst_ip: [10,11].[0..255].[0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240].[0..255]
random=0000101XXXXXXXXXXXXX0000XXXXXXXX
rand_offset=38
lat pos=42

[core 3]
name=cpe1
task=0
mode=gen
tx port=cpe1
bps=1069289928
; Ethernet + QinQ + IP + UDP
pkt inline=${sut_mac2} 70 00 00 00 00 03 ${qinq_tag_inline} 00 01 81 00 00 01 08 00 45 00 00 1c 00 01 00 00 40 11 f7 7d c0 a8 01 01 c0 a8 01 01 00 35 00 35 00 08 7c 21
; svlan: [128..255]
random=000000001XXXXXXX
rand_offset=14
; cvlan: 256*[0..15]+16*[0..3]+[0..3]
random=0000XXXX00XX00XX
rand_offset=18
; dst_ip: [10,11].[0..255].[0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240].[0..255]
random=0000101XXXXXXXXXXXXX0000XXXXXXXX
rand_offset=38
lat pos=42

[core 4]
name=inet0
task=0
mode=gen
tx port=inet0
bps=1250000000
; Ethernet + MPLS + IP + GRE + IP + UDP
pkt inline=${sut_mac1} 70 00 00 00 00 02 88 47 00 00 31 00 45 00 00 38 00 01 00 00 40 2f 7c 94 7f 00 00 01 7f 00 00 01 20 00 08 00 00 00 00 00 45 00 00 1c 00 01 00 00 40 11 f6 b7 c0 a8 01 c7 c0 a8 01 01 00 35 00 35 00 08 7b 5b
; GRE key: [0..65535]
random=0000000000000000XXXXXXXXXXXXXXXX
rand_offset=42
lat pos=66

[core 5]
name=inet1
task=0
mode=gen
tx port=inet1
bps=1250000000
; Ethernet + MPLS + IP + GRE + IP + UDP
pkt inline=${sut_mac3} 70 00 00 00 00 04 88 47 00 00 31 00 45 00 00 38 00 01 00 00 40 2f 7c 94 7f 00 00 01 7f 00 00 01 20 00 08 00 00 00 00 00 45 00 00 1c 00 01 00 00 40 11 f6 b7 c0 a8 01 c7 c0 a8 01 01 00 35 00 35 00 08 7b 5b
; GRE key: [0..65535]
random=0000000000000000XXXXXXXXXXXXXXXX
rand_offset=42
lat pos=66

[core 8]
name=CPE0
task=0
mode=lat
rx port=cpe0
lat pos=42

[core 9]
name=CPE1
task=0
mode=lat
rx port=cpe1
lat pos=42

[core 10]
name=INET0
task=0
mode=lat
rx port=inet0
lat pos=66

[core 11]
name=INET1
task=0
mode=lat
rx port=inet1
lat pos=66