# 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
no-output=no ; disable DPDK debug output

[port 0]
name=p0
mac=hardware
promiscuous=yes

[port 1]
name=p1
mac=hardware
promiscuous=yes

[port 2]
name=p2
mac=hardware
promiscuous=yes

[port 3]
name=p3
mac=hardware
promiscuous=yes

[defaults]
mempool size=4K

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

[global]
start time=5
name=Basic ACL Gen x4

[core 0]
mode=master

[core 1]
name=p0
task=0
mode=gen
tx port=p0
bps=625000000
; 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  FFFFFFFF
; svlan: [0,1]
random=000000000000000X
rand_offset=14
; cvlan: [0..255]
random=00000000XXXXXXXX
rand_offset=18
; src_ip: 192.168.0.0/19
random=1100000010101000000XXXXXXXXXXXXX
rand_offset=34
; dst_ip: [10,11,74,75].[0..255].[0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240].[0..255]
random=0X00101XXXXXXXXXXXXX0000XXXXXXXX
rand_offset=38
; dscp: [0..63]
random=XXXXXX00
rand_offset=23
; sport: [0,2,4,6,8,10,12,14]
; dport: [0..511]
random=000000000000XXX00000000XXXXXXXXX
rand_offset=42

[core 2]
name=p1
task=0
mode=gen
tx port=p1
bps=625000000
; Ethernet + QinQ + IP + UDP
pkt inline=${sut_mac1} 70 00 00 00 00 02 ${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  FFFFFFFF
; svlan: [0,1]
random=000000000000000X
rand_offset=14
; cvlan: [0..255]
random=00000000XXXXXXXX
rand_offset=18
; src_ip: 192.168.0.0/19
random=1100000010101000000XXXXXXXXXXXXX
rand_offset=34
; dst_ip: [10,11,74,75].[0..255].[0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240].[0..255]
random=0X00101XXXXXXXXXXXXX0000XXXXXXXX
rand_offset=38
; dscp: [0..63]
random=XXXXXX00
rand_offset=23
; sport: [0,2,4,6,8,10,12,14]
; dport: [0..511]
random=000000000000XXX00000000XXXXXXXXX
rand_offset=42

[core 3]
name=p2
task=0
mode=gen
tx port=p1
bps=625000000
; Ethernet + QinQ + IP + UDP
pkt inline=${sut_mac2} 70 00 00 00 00 02 ${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  FFFFFFFF
; svlan: [0,1]
random=000000000000000X
rand_offset=14
; cvlan: [0..255]
random=00000000XXXXXXXX
rand_offset=18
; src_ip: 192.168.0.0/19
random=1100000010101000000XXXXXXXXXXXXX
rand_offset=34
; dst_ip: [10,11,74,75].[0..255].[0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240].[0..255]
random=0X00101XXXXXXXXXXXXX0000XXXXXXXX
rand_offset=38
; dscp: [0..63]
random=XXXXXX00
rand_offset=23
; sport: [0,2,4,6,8,10,12,14]
; dport: [0..511]
random=000000000000XXX00000000XXXXXXXXX
rand_offset=42

[core 4]
name=p3
task=0
mode=gen
tx port=p3
bps=625000000
; Ethernet + QinQ + IP + UDP
pkt inline=${sut_mac3} 70 00 00 00 00 04 ${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  FFFFFFFF
; svlan: [0,1]
random=000000000000000X
rand_offset=14
; cvlan: [0..255]
random=00000000XXXXXXXX
rand_offset=18
; src_ip: 192.168.0.0/19
random=1100000010101000000XXXXXXXXXXXXX
rand_offset=34
; dst_ip: [10,11,74,75].[0..255].[0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240].[0..255]
random=0X00101XXXXXXXXXXXXX0000XXXXXXXX
rand_offset=38
; dscp: [0..63]
random=XXXXXX00
rand_offset=23
; sport: [0,2,4,6,8,10,12,14]
; dport: [0..511]
random=000000000000XXX00000000XXXXXXXXX
rand_offset=42

[core 5]
name=rec 0
task=0
mode=lat
rx port=p0

[core 6]
name=rec 1
task=0
mode=lat
rx port=p1

[core 7]
name=rec 2
task=0
mode=lat
rx port=p2

[core 8]
name=rec 3
task=0
mode=lat
rx port=p3